NEWS
SONOFF stürzt bei Script ab
-
Hallo miteinander,
ich habe mir ein kleines Script zusammengebastelt, welches einen SONOFF Basic schalten soll, wenn ein Bewegungsmelder was registriert und dann nach einer einstellbaren Zeit wieder ausschalten.
Der Bewegungsmelder kann nur ein Signal senden und wird über RFLink abgefragt, was auch super klappt. Anfangs läuft alles wunderbar, aber nach einiger Zeit wirkt es, als ob der SONOFF abstürzt. Ich dachte erst an einen Hardwaredefekt und habe den SONOFF bereits getauscht, aber bei dem neuen tritt das gleiche Phänomen auf. Der SONOFF funktioniert dann erst wieder, wenn der Strom komplett getrennt wurde.
Hier das Blockly-Script
und der entsprechenden Code
!
var Zeit; on({id: 'rflink.0.channels.EV1527_1.SWITCH_06', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; Zeit = (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds()); Zeit = (typeof Zeit == 'number' ? Zeit : 0) + 30; setState("javascript.0.scriptEnabled.Eigene.Küche.Bewegungsmelder_Zeit", Zeit, true); setState("sonoff.0.SON_Kueche_Licht.POWER"/*SON_Kueche_Licht POWER*/, true); }); on({id: 'sonoff.0.SON_Kueche_Licht.POWER', val: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; schedule("* * * * * *", function () { if (Zeit <= (new Date().getHours() * 3600 + new Date().getMinutes() * 60 + new Date().getSeconds())) { setState("sonoff.0.SON_Kueche_Licht.POWER"/*SON_Kueche_Licht POWER*/, false); } }); }); !
Hier noch ein Auszug aus der Konsole vom SONOFF
! ````
15:59:42 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T15:59:42","Uptime":"11T08:34:57","Vcc":3.206,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":60,"APMac":"XX:XX:XX:XX:XX:XX"}}
15:59:53 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T15:59:52","Uptime":"11T08:35:07","Vcc":3.209,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:00:03 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:00:02","Uptime":"11T08:35:17","Vcc":3.208,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:00:12 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:00:12","Uptime":"11T08:35:27","Vcc":3.207,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:00:23 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:00:22","Uptime":"11T08:35:37","Vcc":3.207,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:00:33 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:00:32","Uptime":"11T08:35:47","Vcc":3.208,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":60,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:00:42 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:00:42","Uptime":"11T08:35:57","Vcc":3.208,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":60,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:00:53 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:00:52","Uptime":"11T08:36:07","Vcc":3.208,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":60,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:01:03 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:01:02","Uptime":"11T08:36:17","Vcc":3.209,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":60,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:01:12 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:01:12","Uptime":"11T08:36:27","Vcc":3.206,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":60,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:01:23 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:01:22","Uptime":"11T08:36:37","Vcc":3.206,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:01:33 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:01:32","Uptime":"11T08:36:47","Vcc":3.207,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:01:42 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:01:42","Uptime":"11T08:36:57","Vcc":3.208,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:01:53 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:01:52","Uptime":"11T08:37:07","Vcc":3.205,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:02:01 MQT: tele/sonoff/UPTIME = {"Time":"2018-10-09T16:02:00","Uptime":"11T08:37:15"}
16:02:02 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:02:02","Uptime":"11T08:37:17","Vcc":3.207,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:02:12 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:02:12","Uptime":"11T08:37:27","Vcc":3.209,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:02:23 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:02:22","Uptime":"11T08:37:37","Vcc":3.206,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:02:33 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:02:32","Uptime":"11T08:37:47","Vcc":3.208,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:02:42 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:02:42","Uptime":"11T08:37:57","Vcc":3.209,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:02:53 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:02:52","Uptime":"11T08:38:07","Vcc":3.207,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}
16:03:03 MQT: tele/sonoff/STATE = {"Time":"2018-10-09T16:03:02","Uptime":"11T08:38:17","Vcc":3.208,"POWER":"ON","Wifi":{"AP":1,"SSId":"ROUTER","RSSI":58,"APMac":"XX:XX:XX:XX:XX:XX"}}Ich habe das Gefühl, dass das Script immer wieder den Status auf "off" setzt. Der SONOFF empfängt dieses per MQTT und … mhmm Speicherüberlauf fällt mir als Wort dazu ein. Ich hoffe mir kann jemand helfen. Sollte es, wie ich vermute, am Script liegen, bitte ich auch um eine Erklärung was falsch ist :) Vielen Dank im Voraus
-
@DKM:Ich habe das Gefühl, dass das Script immer wieder den Status auf "off" setzt. `
Ja, per Zeitplan jede Sekunde.
@DKM:SONOFF Basic schalten soll, wenn ein Bewegungsmelder was registriert und dann nach einer einstellbaren Zeit wieder ausschalten. `
Ausschalten: steuere SONOFF mit unwahr mit Verzögerung (<u>Haken</u>) 30 s -
ok, das funktioniert besser.
Ich habe das Script so geschrieben, dass das Licht anbleibt, wenn innerhalb der 30 Sekunden eine erneute Bewegung registriert wird.
Nun habe ich, so wie du beschrieben hast, den unteren Teil geändert. Leider schaltet der SONOFF nun auch aus, wenn innerhalb der Zeit eine neue Bewegung registriert wird.
Hast du für das Problem auch eine Lösung?
Liebe Grüße
P.S. "löschen falls läuft" hatte ich testweise mal aktiviert, aber da schaltet der SONOFF sofort nach dem einschalten wieder aus.
-
Was soll das Schreiben der Variablen Zeit auf den Datenpunkt javascript.0.scriptEnabled.Eigene.Küche.Bewegung.. bewirken ?
Die 3 Statements mit dieser Variablen solltest Du löschen !
@DKM:Leider schaltet der SONOFF nun auch aus, wenn innerhalb der Zeit eine neue Bewegung registriert wird. `
Versuche es mal mit einem Haken bei ,löschen falls läuft. -
Super, es lag tatsächlich an der Variable, da ich vorher schon den Haken mal testweise gesetzt habe. Ich lass es mal einen Tag laufen und schau wie der SONOFF reagiert.
Die Variable hatte ich gesetzt, damit ich einen rechnerischen Wert ermitteln konnte und der SONOFF nach einer definierten Zeit ausschaltet.
Ich habe dabei die Differenz der gespeicherten Zeit in der Variable mit der aktuellen Zeit verglichen und sobald diese über dem Wert (30 Sek.) war, hat der SONOFF ausgeschaltet. Daher auch der Zeitplan. Ich dachte eigentlich, dass dieser dann auch ausschaltet, sobald das Script fertig ist, aber das war wohl nicht der Fall.
Danke für deine Hilfe