NEWS
[Gelöst] Problem mit timeout
-
@homoran Okay, das mit dem "nicht zwischen" hab verstanden und geändert. Hat aber nichts geändert, Licht geht immer noch aus.
@paul53 Um deinen Vorschlag umzusetzen brauche ich etwas.Wie kann man den sinnvoll Debugblöcke einsetzen? Habe es jetzt mal probiert und an verschiedenen Stellen einen Debug reingesetzt, der den Wert des DP der geschaltet wird, zusammen mit einem Text ausgibt. Ist sowas gemeint?
-
-
@paul53 Was meinst du mit dem "falls sonst" ganz unten, was ist mit Objekt Licht gemeint?
-
@jojo58 sagte in Problem mit timeout:
was ist mit Objekt Licht gemeint?
dein lichtaktor
@jojo58 sagte in Problem mit timeout:
Was meinst du mit dem "falls sonst" ganz unten
wenn licht an, mach es aus
-
@jojo58 sagte: Was meinst du mit dem "falls sonst" ganz unten, was ist mit Objekt Licht gemeint?
Licht = einer von den beiden Datenpunkten "ON_SET", denn sie werden im Skript immer zusammen geschaltet. Am Tage soll nicht ständig das Licht ausgeschaltet werden, wenn es bereits aus ist.
-
@paul53 Dein Vorschlag hat einen ganz anderen Ansatz als ich es hatte. Ich war der Meinung das der Timeout beginnt und und die Zeit abgelaufen ist, werden die Lampen ausgeschaltet. Ändert sich der BWM zwischendurch und steht erneut auf wahr, stoppt der aktuelle Timeout und ein neuer beginnt. Also habe ich immer eine Nachlaufzeit von diesen 65 Sekunden nachdem beide BWM auf falsch stehen. So habe ich gedacht, aber das funktionierte ja nicht.
Bei deinem Blockly gehen die Lampen sofort aus, sobald beide BWM auf falsch stehen. Da gibt es keine Verzögerung mehr, also das Timeout greift nicht. Ich sehe das an den Debugblöcken, es wird immer nur der Erste "vor TimeOut Küche rechts" und der letzte "nach sonst falls" im Log angezeigt.
Das Problem das die Lampen sich immer abschalten ist weg, aber dafür greift der DP um die Lampen über Alexa oder VIS zu schalten, nicht mehr. Wenn ich die über Alexa einschalte, und dann in die Küche gehe und die BWM aktiviert werden, wird das Licht ausgeschaltet, sobald beide BWM auf falsch sind. Und das obwohl ich auf diesen DP prüfe. -
@jojo58 wenn du innerhalb von 65 sekunden 2x oder öfter ins sonst kommst, wird derselbe Timeout mehrfach gestartet.
Das darf nicht passieren, da ein stop timeout dann nicht mehr greift. -
@homoran Kann ich vor dem Start des Timeout ein weiteres stop timeout einsetzen? oder darf man keine 2 Stops verwenden? Wie kann ich das denn sonst abfangen?
-
@jojo58 sagte in Problem mit timeout:
Kann ich vor dem Start des Timeout ein weiteres stop timeout einsetzen?
solltest du sogar
-
@homoran Zweiter stop timeout st drin.
Ich prüfe ja auf BWM 1 - ODER - BWM 2 - UND - DP1 = falsch. Also nur wenn der BWM 1 aktiv ist, oder der BWM 2 aktiv ist und dann muss der DP1 auf falsch stehen, nur dann soll was gemacht werden. Geht das so nicht? Muss man da mit einem zusätzlichen Logikblock "Falls" arbeiten? Oder warum greift das bei mir nicht? -
@jojo58 Tipp:
bei und/oder mit der rechten Maustaste anklicken und auf externe Eingänge umschalten.
Dann wird es übersichlicher@jojo58 sagte in Problem mit timeout:
Ich prüfe ja auf BWM 1 - ODER - BWM 2 - UND - DP1 = falsch
so wie ich es sehe auf BWM1 ODER (BWM2 UND DP1=falsch)
-
@jojo58 sagte: Bei deinem Blockly gehen die Lampen sofort aus
Bei Deinem Blockly, das mit meinem Vorschlag wenig zu tun hat.
Außerdem muss auf "wurde geändert" getriggert werden, da sonst der Timeout mehrfach gestartet werden kann und dann nicht mehr gestoppt werden kann.Die BWM dürfen nur in der inneren falls-Prüfung ausgewertet werden!
-
@paul53 Wenn du damit sagen willst, ich wäre zu blöd dein Blockly nachzubauen, muss ich dir leider recht geben.
Den obersten falls Block mit "falls" manuell ein, habe ich jetzt erst gesehen. Sorry
@Homoran Du hattest mit dem und (und oder) auch recht. habe es geändert und jetzt funktioniert die Prüfung auch. Hätte ich, wie von @paul53 vorgeschlagen ganz am Anfang auf den manuellen DP geprüft, hätte ich mir das schenken können. Aber im Moment sieht alles gut aus, teste jetzt nochmal etwas.
Freu mich immer wenn ich was neues lerne und sogar begreife.
-
@jojo58 sagte: Aber im Moment sieht alles gut aus
Sieht es nicht. Das muss raus:
Damit wird ohne Verzögerung ausgeschaltet!
-
@paul53 Jetzt sollte es aber deinem Vorschlag entsprechen, oder hab ich noch Fehler drin?
-
@jojo58 sagte: Jetzt sollte es aber deinem Vorschlag entsprechen
Fast: Wenn der Trigger von "wurde aktualisiert" auf "wurde geändert" geändert wird, kann man sich das "stop timeout" über dem "Ausführen timeout" sparen.
-
@paul53 Ich habe ein zweites Blockly, was den manuellen DP überwacht. Die Lampen werden über Alexa oder VIS eingeschaltet, falls meine Frau mal wieder mit Torten backen beschäftigt ist. Sollte sie anschließend vergessen das Licht auszuschalten, wird das nach 15 Minuten Inaktivität der BWM automatisch ausgeschaltet.
Kann ich das so lassen, oder hättest du dafür auch einen Verbesserungsvorschlag?EDIT: Ich sehe gerade, das ich die Abfrage ja auch im ersten Script habe, also könnte ich doch den kompletten zweiten Falls Block von diesem in meinem ersten Script als Sonst hinzufügen, oder?
-
@paul53 So sieht das dann aus:
-
@jojo58 sagte: So sieht das dann aus:
Das geht einfacher:
Durch das "stop timeout" oben kann man auch die Abfrage des manuellen Datenpunktes in der Ausschaltverzögerung weglassen.
-