Hallo in die Runde,
ich habe einige Shelly pro/ plus-Geräte im Einsatz auf denen verschieden Skripte laufen. Diese fragen den Shelly auf dem sie laufen in regelmäßigen Zeitabständen über
Shelly.call nach dem Status und die gesammelten Werte werden dann nach Tago.io gesendet. Damit mir die Skripte nicht abstürzen, wenn mal keine Wifi-Verbindung steht
habe ich sicherheitshalber eine Abfrage davor gebastelt.
Shelly.call("WiFi.GetStatus", null, function (WifiStatus)
{
if (WifiStatus.status === "got ip")...
...und noch zur Sicherheit - falls das Skript aus einem mir unbekannten Fall abschmiert - ein zweites Skript, was alle zwanzig Minuten schaut, ob das erste Skript noch läuft.
Soweit so gut . Die ganze Sache funzt eigentlich ganz gut, bis mir irgendwann auffällt, dass keine aktuellen Werte mehr bei Tago.io ankommen.
Ich gehe also auf die Weboberfläche des entsprechenden Shelly und schaue, ob die Skripte noch laufen. Das tuen sie dann auch, aber sie arbeiten den Code nicht mehr ab!!
Im log sieht das dann so aus:
shelly_notification:163 Status change of switch:0: {"id":0,"aenergy":{"by_minute":[0.000,0.000,0.000],"minute_ts":1701427199,"total":624.311}}
11:40:00
shelly_ejs_rpc.cpp:41 Shelly.call WiFi.GetStatus null
Wenn man das Skript anhält und wieder neu startet ändert sich auch nichts. Der Shelly tut so, als ob er das Skript abarbeitet. Ich glaube in der Vergangenheit stand auch manchmal
soetwas wie -> 'to many shelly.calls' open oder so ähnlich.
Führe ich dann einen Reboot durch, funktioniert wieder alles wie es soll.
shelly_notification:163 Status change of switch:0: {"id":0,"voltage":115.7}
11:45:29
shelly_http_client.:606 0x3ffe2abc: Finished; bytes 342, code 202, redir 0/3, auth 0, status OK
Hat jemand ähnliche Erfahrungen gemacht? Woran kann das liegen?
Ich habe die aktuellste Firmware auf allen installiert.
Danke und Grüße.
Kay