Einfache Script Beispiele

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.

  • In diesem Thread werden einige Beispiel Scripts aufgelistet.

    Status von anderen Shelly prüfen, mit HTTP Endpoint querys :

    Beispiel für, wenn Shelly_x = an, Shelly_c = an und Shelly_z = aus dann schalte Shelly_k aus:

    Damit das Ganze funktioniert, müssen natürlich auf den anderen Shellys die entsprechenden Actions manuell über die grafische Benutzeroberfläche erstellt werden:

    Jeder externer Shelly muss dann den Link(Endpoint), den das Skript erstellt, samt query String im Link via Action aufrufen.

    Der Query String ist das, was nach dem "?" kommt und in dem Beispiel sind 3 Keys vordefiniert: "switch1", "switch2" und "switch3", als Value wird "on" und "off" akzeptiert.

    So könnten die Links aussehen, die man als Actions auf den anderen Shellys anlegen muss.

    -->http://admin:@192.168.10.23/script/2/exampel?switch1=on

    -->http://admin:@192.168.10.23/script/2/exampel?switch1=off

    -->http://admin:@192.168.10.23/script/2/exampel?switch2=on

    -->http://admin:@192.168.10.23/script/2/exampel?switch2=off

    -->http://admin:@192.168.10.23/script/2/exampel?switch3=on

    -->http://admin:@192.168.10.23/script/2/exampel?switch3=off

    Warum sind Actions auf den anderen Shellys notwendig?

    Woher zum Geier soll denn der Shelly im Wohnzimmer wissen, wann genau der Shelly im Flur angeschalten wird!

    Ein Endpoint ist im Grunde so etwas wie eine Telefonnummer und mit Actions sagt man seinem Shelly im Flur, ruf den Shelly im Wohnzimmer unter dieser Nummer an, wenn ich das Licht einschalte.

    Ein einfacher Anruf reicht aber nicht, denn der Shelly im Wohnzimmer soll ja wissen, dass etwas Bestimmtes passiert, ist und um zu übermitteln, was genau hier passiert ist, sozusagen die Nachricht,

    brauchen wir Querys. Im Query String, dem Teil nach dem "?" in der URL sagt der Shelly im Flur, also dem Wohnzimmer Shelly Script, was genau der Grund für den Call war.

    So ich hoffe, ich konnte das Thema jetzt einigermaßen verständlich erklären.

    12 Mal editiert, zuletzt von _[Deleted]_ (29. Januar 2024 um 21:45)

  • _[Deleted]_ 22. Januar 2024 um 20:51

    Hat den Titel des Themas von „Einfache Beispiel Scripts“ zu „Einfache Script Beispiele“ geändert.
  • HTTP Endpoint:

    Ein einfaches http Endpoint Skript, das Skript erstellt einen Http Endpoint und gibt die Endpoint URL und alle Client Anfragen, die auf der Endpoint URL reinkommen, über die Skript Konsole aus.

    3 Mal editiert, zuletzt von _[Deleted]_ (24. Januar 2024 um 14:16)

  • Schedules jobs local via Script:

    Das Beispiel zeigt, wie man lokale Schedule Jobs per Skript auf nem lokalen Shelly erstellt, aktualisiert, löscht und abfragt .

    Was sind Schedule Jobs?

    - Schedule Jobs sind Aufgaben/Shelly.calls() die in bestimmten Intervallen ausgeführt werden, wie die Intervalle genau aussehen kann man anhand des übergebenen "timespec:" Strings definieren, der im cron Format definiert werden muss:

    Warum sollte jemand Schedule Jobs per Skript erstellen, wenn es doch eine grafische Benutzeroberfläche dafür gibt?

    - Via Script kann man jede mögliche Shelly RPC Methode als Shelly.call() angeben.

    Beispiel:

    - Mit einem via Script erstellten Schedule Job kann man auch ein Script einmal pro Minute starten, stoppen etc...

    Vorsicht, wer seinen Shelly mit unlösbaren Jobs füllt, die mehrmals in der Minute ausgeführt werden, braucht sich nicht zu wundern, wenn das Gerät nicht mehr erreichbar ist, in so einem Fall hilft nur noch ein Werksreset.

    Hier findet ihr mehr Infos zum Cron Time Format:

    --> https://cloud.google.com/scheduler/docs…schedules?hl=de


    Und hier noch ein Codebeispiel diesmal nur für "Schedule.Create":

    9 Mal editiert, zuletzt von _[Deleted]_ (24. Januar 2024 um 14:15)

  • Schedules jobs auf anderen Shellys (remote) via Script:

    Das Beispiel zeigt, wie man Schedule Jobs per Skript auf externen Shellys erstellt, aktualisiert, löscht und abfragt .

    Was sind Schedule Jobs?

    - Schedule Jobs sind Aufgaben/Shelly.calls() die in bestimmten Intervallen ausgeführt werden, wie die Intervalle genau aussehen kann man anhand des übergebenen "timespec:" Strings definieren, der im cron Format definiert werden muss:

    Warum sollte jemand Schedule Jobs per Skript erstellen, wenn es doch eine grafische Benutzeroberfläche dafür gibt?

    - Via Script kann man jede mögliche Shelly RPC Methode als Shelly.call() angeben.

    Beispiel:

    - Mit einem via Script erstellten Schedule Job kann man auch ein Script einmal pro Minute starten, stoppen etc...

    Vorsicht, wer seinen Shelly mit unlösbaren Jobs füllt, die mehrmals in der Minute ausgeführt werden, braucht sich nicht zu wundern, wenn das Gerät nicht mehr erreichbar ist, in so einem Fall hilft nur noch ein Werksreset.

    Hier findet ihr mehr Infos zum Cron Time Format:

    --> https://cloud.google.com/scheduler/docs…schedules?hl=de

    6 Mal editiert, zuletzt von _[Deleted]_ (24. Januar 2024 um 14:15)

  • Abfrage der Shelly Timer Restzeit:

    JavaScript
    let timerRest= 0, sw= Shelly.getComponentStatus('Switch',0);
    if(sw.timer_started_at) timerRest= sw.timer_duration-((Date.now()/1000)-sw.timer_started_at);
    print('Turn off in ',timerRest,'sek ,',timerRest/60,'min ,',timerRest/60/60, ' std.');

    Einmal editiert, zuletzt von _[Deleted]_ (24. Januar 2024 um 14:15)

  • Dieses Thema enthält 22 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind.