NEWS
[gelöst] Blockly schaltet zu oft
-
@chris777 sagte in [gelöst] Blockly schaltet zu oft:
Es ist nicht wie in einer SPS, dass solange das Signal anliegt die Bedingung erfüllt ist und der Timer läuft?
Nein - auf keinen Fall.
Es können viele gleiche Timeouts gestartet werden?
Ja!
Wenn viele Timeouts gestartet sind, kann ich nicht alle stoppen?
Wenn die einzeln per Name ansprechbar sind: Ja.
Wenn Du einen Timer mehrfach nacheinander gestartet hast: Soweit mir bekannt - Nein.Bedenke immer, dass Du hier keine nacheinander ablaufende Prozesssteuerung hast, sondern ein Ereignisgesteuertes System, bei dem Prozesse auch noch asynchron ablaufen können.
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md
-
ein Ereignisgesteuertes System, bei dem Prozesse auch noch asynchron ablaufen können.
Stichwort: https://www.google.com/search?q=nebenläufige+programmierung
-
Könnte es jetzt so funktionieren? Mir ist noch nicht klar, ob ich so SG Aktiv in true und false setzen kann oder ob es sich gegenseitig beeinflusst.
-
-
Und wie schalte ich SG Aktiv wieder auf false?
-
@chris777 sagte: Und wie schalte ich SG Aktiv wieder auf false?
Wenn die Variable
aktiv
auf false wechselt und dann 30 Minuten auf false bleibt, schaltet "SG Aktiv" auf false (Variablenwert). -
Ich versuche es mal kurz in Worte zu fassen:
Falls sich value ändert setze aktiv 1 auf true, wenn die Bedingungen Hausb.. etc. erfüllt sind. Wenn Aktiv 1 gleich SG Aktiv ist (egal ob true oder false) stoppe timeout3. Sonst, falls timeout3 nicht true ist, führe timeout3 aus und schalte nach 5 Minuten SG Aktiv auf den Wert von aktiv 1 (hier mit true). Das gleiche, wenn Aktiv 1 auf false wechselt.
Korrekt? -
@chris777 sagte: Wenn Aktiv 1 gleich SG Aktiv ist (egal ob true oder false) stoppe timeout3. Sonst, falls timeout3 nicht true ist, führe timeout3 aus und schalte nach 5 Minuten SG Aktiv auf den Wert von aktiv 1 (hier mit true). Das gleiche, wenn Aktiv 1 auf false wechselt.
Korrekt?
Fast korrekt: falls timeout3 null oder undefined ist,
-
-
Also der Blockly funktioniert nicht. Er schaltet nicht auf aktiv true obwohl die Bedingung erfüllt sind.
-
@chris777 sagte: schaltet nicht auf aktiv true obwohl die Bedingung erfüllt sind.
Sicher, dass die Bedingungen 5 Minuten lang erfüllt sind? Bau einen Debug-Block ein, um es zu prüfen.
-
So scheint es erstmal heute funktioniert zu haben. Jeweils nur ein sauberes True oder False für die entsprechende Zeit..