[Gelöst] DOIF so richtig verwendet? 2 Bedingungen, Watchdog, ....

Begonnen von hanshome, 25 Oktober 2022, 21:19:59

Vorheriges Thema - Nächstes Thema

hanshome

'nabend,

nachdem ich jetzt 2 Abende rumprobiert habe, würde ich für mich meinen dass es so passt. Alleine, meine ersten Gehversuche mit FHEM sind 5 Jahre her und seit dem habe ich nichts gemacht....

Anforderung: Eine elektrische Handtuchheizung soll Mo-Fr morgens um 06:30 für 1,5 Stunden (im Beispiel unten 30sec) angehen. Außerdem soll man per on-Tasterdruck ebenfalls die Heizung für 1,5 Stunden aktivieren können und auch per on-Tastendruck um 1,5 Std verlängern. Per off-Tastendruck soll die Heizung ausgestellt werden, völlig egal durch welche Aktion sie aktiviert wurde. Man soll sie aber auch sofort wieder aktivieren können (hier hatte ich erst Probleme da ich kein DOELSEIF hatte)

defmod di_Heizung DOIF ([06:30|Mo Di Mi Do Fr] or [MQTT2_zigbee_Taster1:"action:.on"]) (set MQTT2_zigbee_Steckdose1 on) (set MQTT2_zigbee_Steckdose1 off) DOELSEIF ([MQTT2_zigbee_Taster1:"action:.off"]) (set MQTT2_zigbee_Steckdose1 off)
attr di_Heizung do resetwait
attr di_Heizung wait 0,30:0


Passt das so? Oder ist da irgendwas völlig blöde gemacht?

Damian

Zitat von: hanshome am 25 Oktober 2022, 21:19:59
'nabend,

nachdem ich jetzt 2 Abende rumprobiert habe, würde ich für mich meinen dass es so passt. Alleine, meine ersten Gehversuche mit FHEM sind 5 Jahre her und seit dem habe ich nichts gemacht....

Anforderung: Eine elektrische Handtuchheizung soll Mo-Fr morgens um 06:30 für 1,5 Stunden (im Beispiel unten 30sec) angehen. Außerdem soll man per on-Tasterdruck ebenfalls die Heizung für 1,5 Stunden aktivieren können und auch per on-Tastendruck um 1,5 Std verlängern. Per off-Tastendruck soll die Heizung ausgestellt werden, völlig egal durch welche Aktion sie aktiviert wurde. Man soll sie aber auch sofort wieder aktivieren können (hier hatte ich erst Probleme da ich kein DOELSEIF hatte)

defmod di_Heizung DOIF ([06:30|Mo Di Mi Do Fr] or [MQTT2_zigbee_Taster1:"action:.on"]) (set MQTT2_zigbee_Steckdose1 on) (set MQTT2_zigbee_Steckdose1 off) DOELSEIF ([MQTT2_zigbee_Taster1:"action:.off"]) (set MQTT2_zigbee_Steckdose1 off)
attr di_Heizung do resetwait
attr di_Heizung wait 0,30:0


Passt das so? Oder ist da irgendwas völlig blöde gemacht?

Hast du es schon getestet?
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hanshome

Achso sorry, ja natürlich. Mit dem 30sec Timer hier auch zur Uhrzeit 21:00 Uhr. Hat so funktioniert wie gedacht.

Meinte eher ob ich da irgendeine Konstellation gebaut habe, die mir irgendwann um die Ohren fliegt.

Damian

Zitat von: hanshome am 25 Oktober 2022, 21:34:57
Achso sorry, ja natürlich. Mit dem 30sec Timer hier auch zur Uhrzeit 21:00 Uhr. Hat so funktioniert wie gedacht.

Meinte eher ob ich da irgendeine Konstellation gebaut habe, die mir irgendwann um die Ohren fliegt.

Das kann immer passieren, auch wenn dein Konstrukt korrekt ist. :)

Wenn z. B. der Off-Befehl nicht durchkommt, dann wird dein Handtuchhalter schön durchheizen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hanshome

Da hast du natürlich recht. Aber es würde ja in der Konstellation nix schlimmes passieren. Außer das die Handtücher immer schön warm wären und ich das am Jahresende im Portemonnaie merke ;-)

Aber angenommen das würde passieren: Am nächsten Tag zwischen Mo-Fr würde das Ausschaltkommando ja wieder gesendet korrekt? Oder/und ich könnte das off-Kommando als dritten Befehl im DOIF mit wenigen Sekunden Abstand zur Sicherheit noch mal senden. Und auch im DOELSEIF im Zweifelsfall zwei mal hintereinander mit Abstand.

Damian

Zitat von: hanshome am 25 Oktober 2022, 21:55:05
Da hast du natürlich recht. Aber es würde ja in der Konstellation nix schlimmes passieren. Außer das die Handtücher immer schön warm wären und ich das am Jahresende im Portemonnaie merke ;-)

Aber angenommen das würde passieren: Am nächsten Tag zwischen Mo-Fr würde das Ausschaltkommando ja wieder gesendet korrekt? Oder/und ich könnte das off-Kommando als dritten Befehl im DOIF mit wenigen Sekunden Abstand zur Sicherheit noch mal senden. Und auch im DOELSEIF im Zweifelsfall zwei mal hintereinander mit Abstand.

Das kannst du machen. Alternativ einen Aktor nehmen der den on-for-timer intern realisiert hat, dann würde dieser immer ausgehen. Bei Zigbee ist der on-for-timer glaube ich nur im Treiber realisiert - also auch nicht sicher.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

hanshome

Zitat von: Damian am 25 Oktober 2022, 22:08:38
Das kannst du machen. Alternativ einen Aktor nehmen der den on-for-timer intern realisiert hat, dann würde dieser immer ausgehen. Bei Zigbee ist der on-for-timer glaube ich nur im Treiber realisiert - also auch nicht sicher.

Danke dir. Das merke ich mir für kritische Anwendungsfälle.