schedule script function

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.

  • Hi,

    ich möchte eine eigene Script Function regelmäßig über den Scheduler aufrufen. Leider funktioniert es nicht wie erwartet:

    Der Scheduler startet hier um 15:34, liefert aber: mg_rpc.c:291 No handler for disableswitch

    Wie bekomme ich das hin?

    Stephan

  • Ich reagiere nun sehr spät, weil ich mich derzeit mit den Schedule-Jobs per Skripts beschäftige.

    Ich kenne keine Methode "disableswitch". Deshalb gibt es auch keinen Handler dazu. Jedenfalls nicht auf Shelly Plus 1 Geräten.

    Wenn du alle verfügbaren Methoden deines Device wissen willst, nutze bspw. http:<device ip address>/rpc/shelly.listmethods !

    Du kannst bspw. die Methode "script.eval" nutzen, welche als Parameter die Script Id und den Namen der aufzurufenden Funktion braucht.

    Hierzu gibt es ein Beispiel-Skript namens "register-scheduled-script.js".

    Der damit angelegte Schedule-Job beinhaltet "calls":[{"params":{"code":"scheduledTask()","id":2},"method":"script.eval"}].

    Der Parameter "id":2 kann selbstverständlich einen anderen id-Wert haben, abhängig von den gerade gespeicherten Skripts bzw. der id des o.a. Skripts.

    In diesem Skript muss die Funktion scheduledTask() existieren. Sie kann aber auch in einem anderen Skript existieren, welches notwendigerweise laufen muss.

    Statt scheduledTask() ist selbstverständlich eine andere Funktion wie "myFunction()" verwendbar, die dann im Schedule-Job einzutragen ist.

    Du kannst auch die optionalen Schedule-Einträge deines Device verwenden und per http://<device ip address>/rpc/schedule.list analysieren.

    ... ;)

    An Cloud-/Szenen-Benutzer (insbesondere für Regelungen): Was erwartest du, wenn Internet oder Cloud sabotiert werden? Nicht nur dafür meine kleine Skripteinführung  8)

    Die einzig existierende Konstante ist der Wandel. Oft liegt die größte Schwierigkeit darin, das Anliegen des Klienten zu verstehen.