A script for comparing time to sunrise

Hinweis zur Nutzung von Skripten (für Nutzer)

Die Verwendung von Skripten erfolgt ausdrücklich auf eigene Gefahr. Weder Shelly noch die jeweiligen Autoren oder Entwickler der Skripte übernehmen irgendeine Form der Haftung für mögliche Schäden, Fehlfunktionen, Datenverluste oder anderweitige Beeinträchtigungen, die durch die Nutzung dieser Skripte entstehen könnten. Bitte stellen Sie vor dem Einsatz sicher, dass Sie den Quellcode verstehen und sich der möglichen Auswirkungen bewusst sind. Die Skripte werden ohne Gewähr bereitgestellt und unterliegen keiner regelmäßigen Wartung oder offiziellen Unterstützung.


Hinweis für Entwickler

Wenn Sie eigene Skripte bereitstellen, achten Sie bitte darauf, eine klare Beschreibung, eventuelle Einschränkungen und Sicherheitsaspekte zu dokumentieren. Beachten Sie zudem, dass Nutzer Ihre Skripte grundsätzlich auf eigenes Risiko verwenden. Eine Haftung für Schäden ist ausgeschlossen, sofern diese nicht vorsätzlich oder grob fahrlässig verursacht wurden oder gesetzlich anderweitig geregelt ist.

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

  • Hello!

    I want a script that turns on a relay in the morning at 07:00 if it´s before sunrise.

    Is it possible to make such a script that compares a scheduled time with the time for sunrise?

    I don´t want the lights to go on if it´s already daylight outside.

  • After some thinking maybe I just create two schedules?

    One that turns the lights on at 07:00 and another one that disables that schedule at sunrise so the lights doesn´t go on.

  • Shelly.call("schedule.create",
    {
    "id":9
    "enable":true,
    "timespec":"0 0 7 * * * SUN,MON,TUE,WED,THU,FRI,SAT",
    "calls":[{
    "method":"switch.set",
    "params":{
    "id":0,
    "on":true
    }
    ]
    }
    )
    Shelly.call("schedule.create",
    {
    "enable":true,
    "timespec":"@sunrise * * *",
    "calls":[{
    "method":"schedule.update",
    "params":{
    "id":9,
    "enable":false
    }
    ]
    }
    )

  • I had the same problem, and I've made a few scripts on the theme of tampering with schedules and they are kind of a workaround:

    schedule_delete_all:

    Shelly.call("schedule.deleteall",null,null,null);

    Shelly.call("schedule.list",null,function(res,error_code,error_msg,ud){print(JSON.stringify(res));},null);

    schedule_create:

    let i = 1;

    while(i < 5){

    Shelly.call("schedule.create",{"enable":true,"timespec":"0 0 0 * * SUN,MON,TUE,WED,THU,FRI,SAT","calls":[

    {"method":"switch.set","params":{"id":0,"on":false}}

    ]},null,null);

    i++;

    }

    Shelly.call("schedule.list",null,function(res,error_code,error_msg,ud){print(JSON.stringify(res));},null);

    schedule_update:

    Shelly.call("schedule.update",{"id":1,"timespec":"0 0 5 * * SUN,MON,TUE,WED,THU,FRI,SAT","calls":[

    {"method":"switch.set","params":{"on":true,"id":0}}

    ]},null,null);

    Shelly.call("schedule.update",{"id":2,"enable":true,"timespec":"@sunrise * * SUN,MON,TUE,WED,THU,FRI,SAT","calls":[

    {"method":"switch.set","params":{"id":0,"on":false}}

    {"method":"schedule.update","params":{"id":1,"enable":false}}

    {"method":"schedule.update","params":{"id":3,"enable":true}}

    ]},null,null);

    Shelly.call("schedule.update",{"id":3,"timespec":"@sunset * * SUN,MON,TUE,WED,THU,FRI,SAT","calls":[

    {"method":"switch.set","params":{"on":true,"id":0}}

    ]},null,null);

    Shelly.call("schedule.update",{"id":4,"enable":true,"timespec":"0 0 23 * * SUN,MON,TUE,WED,THU,FRI,SAT","calls":[

    {"method":"switch.set","params":{"id":0,"on":false}}

    {"method":"schedule.update","params":{"id":1,"enable":true}}

    {"method":"schedule.update","params":{"id":3,"enable":false}}

    ]},null,null);

    Shelly.call("schedule.list",null,function(res,error_code,error_msg,ud){print(JSON.stringify(res));},null); //valfri