Einfache Script Beispiele

Die Verwendung von Skripten liegt im eigenen Ermessen des Benutzers. Unterstützung für Skripte wird vom Autor des Skripts bereitgestellt.
  • 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.