NEWS
[Gelöst] Problem mit timeout
-
@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.
-
-
@paul53 Guten Morgen, bei deinem Vorschlag werden doch die BWM bei manuellem einschalten nicht berücksichtigt. So wie ich das verstehe wird das Licht dann immer nach dem Timeout von 15 Minuten ausgeschaltet, auch wenn noch jemand in der Küche ist und die oder der BWM aktiv ist, oder sehe ich das falsch?
EDIT 1: Oder wird der Timeout durch jede Änderung der BWM neu gestartet und erst wenn beide BWM auf falsch stehen, und nichts mehr passiert, läuft der Timeout von 15 Minuten durch und die Lampen gehen aus?
EDIT 2: So wie ich es mir gedacht habe, das Licht wird immer nach 15 Minuten (Test mit 70 Sekunden) ausgeschaltet. Die Timeouts werden ja nicht gestoppt, da sich weder die BWM noch der manuelle DP ändern. Die BWM bleiben die ganze Zeit auf true stehen und das mindestens 1 Minute. Wird nach mehr als einer Minute keine Bewegung mehr erkannt, dann geht nach etwa 25 Sekunden der Status der BWM auf falsch. Es spielt auch keine Rolle, ob der Trigger auf "wurde geändert" oder "wurde aktualisiert" steht.
So sieht das Blockly jetzt aus:
-
@jojo58 sagte: das Licht wird immer nach 15 Minuten (Test mit 70 Sekunden) ausgeschaltet.
Ich bin davon ausgegangen, dass sich innerhalb von 15 Minuten mind. ein BWM-Wert ändert.
@jojo58 sagte in Problem mit timeout:
Die BWM bleiben die ganze Zeit auf true stehen und das mindestens 1 Minute.
Wenn die BWM eine interne Ausschaltverzögerung haben, ist die Ausschaltverzögerung im Blockly nicht erforderlich.
-
@paul53 sagte in Problem mit timeout:
Ich bin davon ausgegangen, dass sich innerhalb von 15 Minuten mind. ein BWM-Wert ändert.
Ich bis eben auch, habe dann mal den Zeitstempel beobachtet und dabei ist es aufgefallen.
Machst du den ganzen Tag nichts anderes als Blocklys, oder wie zum Kuckuck kommst du so schnell auf eine andere Lösung?
Im letzten "Falls" Block wird ja nur auf eine Lampe geprüft, reicht das, obwohl es zwei sind? Klar, die werden ja immer zusammen geschaltet, bin mir aber unsicher. So sieht das jetzt aus und es funktioniert wie gewünscht:
-
@jojo58 sagte: die werden ja immer zusammen geschaltet
Deshalb genügt die Prüfung einer Lampe.
-
@paul53 Ich weiß jetzt wieder, warum ich mit einem Timeout gearbeitet habe. Ich hatte ganz am Anfang, da gab es nur einen BWM und nur auf der rechten Seite den LED Streifen, die Lampe = BWM gesetzt. Als BWM true, dann LED auch true. Dabei ist dann aufgefallen, das der BWM nicht besonders empfindlich ist und ich auch nichts einstellen kann, also konnte es passieren, das man mal 30 Sekunden ruhig steht und das Licht aus ging.
Ich werde es jetzt erst mal so lassen und sollte es wieder vorkommen das die Lampen ausgehen, dann muss ich halt noch mal ran an das Blockly. -
@paul53 Darf ich dich mit einem zweiten Blockly nerven? Es geht dabei um einen BWM im Bad. Die Lampe ist eine HUE Birne und der BWM ist das gleiche Modell wie die in der Küche. Bei diesem Blockly wird zuerst geprüft ob über Alexa die Lampe eingeschaltet wurde. Wenn ja, wird die Variable "manuellEin" auf "wahr" gesetzt und der BWM wird ignoriert. Steht die Variable auf falsch, wird der BWM, die Uhrzeit und die Helligkeit geprüft und wenn alles passt, die Lampe eingeschaltet. Dann kommt das Timeout, das auf 130 Sekunden steht, und bevor die Lampe dann wirklich ausgeschaltet wird, wird nach dem Timeout nochmal die Variable geprüft. Das funktioniert auch alles, aber da der Trigger sich nicht ändert, greift immer das Timeout und nach 130 Sekunden geht ganz kurz das Licht aus und auch sofort wieder an. Und das stört mich etwas. Dann habe ich gedacht, ich setzte einen zusätzlichen "Falls" Block vor dem Timeout und prüfe auf BWM = falsch und dann erst den Timeout starten, aber dann geht die Lampe überhaupt nicht mehr aus. Gibt's eine Möglichkeit dieses kurze ausschalten abzufangen?
Falls du keine Zeit und Lust mehr hast, verstehe ich das und ich hätte kein Problem damit. Falls du doch helfen kannst, hier das aktuelle Blockly: