NEWS
Blockly-Script triggert dauerhaft nach Auslösung
-
Hallo zusammen,
ich habe folgendes Blockly-Script, welches einen Sonoff TH16 steuert. Der Sonoff hängt an einer Lampe in einem Schrank, und am Sonoff hängt ein Taster der mit der Schranktür verbunden ist - Schranktür auf = Lampe an, Schranktür zu = Lampe wieeder aus.
Weil ich aber häufig den Schrank offen stehen lasse, aber dann nicht die ganze Zeit das Licht brennen soll, nutze ich folgendes Script, um das Licht nach einiger Zeit automatisch abzuschalten:
on({id: "sonoff.0.DVES_5174.POWER"/*DVES_5174 POWER*/, change: "ne", ack: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("sonoff.0.DVES_5174.POWER").val == true) { setStateDelayed("sonoff.0.DVES_5174.POWER"/*DVES_5174 POWER*/, false, 180000, true); } });
Im "Normalbetrieb" läuft alles prima. Mir ist aber aufgefallen: Wenn ich die Tür nur leicht zu schubse, sodass sie vom Taster wieder abprallt und den Taster mehrmals pro Sekunde betätigt (oder wenn ich mich bei offener Tür hinstelle und den Taster selber ein paar mal schnell hintereinander drücke und wieder loslasse), läuft das Script amok - im Millisekundentakt geht das Licht an und aus, ausgelöst durch ioBroker (nicht durch den Sonoff selbst). Debuggen / analysieren lässt sich auch nix mehr, weil das Log überläuft - ich muss dann den Iobroker neustarten, es reicht nicht, den Sonoff neuzustarten.
Halte ich den Iobroker an (iobroker stop), kann ich den Taster so oft drücken wie ich will und alles funktioniert, ebenso, wenn der Iobroker läuft und nur das Script nicht. Wenn das Script läuft und ich dann den Taster schnell hintereinander drücke, gibts wieder Probleme.
Woher kommt das? Kommt der Iobroker durcheinander, wenn das Script schnell hintereinander ausgeführt wird? Warum das?
5800_bildschirmfoto_von__2018-04-17_18-42-42_.png -
Hallo,
ich verwende zwar keine sonoffs aber:
Womit läuft das Log denn über?
Sind es eventuell gar keine Meldungen von diesem Script sondern vom sonoff Adapter oder so?
Ich sehe in diesem Script nämlich nichts, was "von selbst" einen Eintrag im Log auslösen würde..
Gruß