DOIF mit repeatcmd: triggert obwohl Bedingung nicht mehr wahr

Begonnen von merasil, 08 März 2019, 17:05:57

Vorheriges Thema - Nächstes Thema

merasil

Servus,

ich vermute das ist nur ne kleine Sache, aber ich bin anscheinend zu blöd dafür.
Habe mit meinem Homematic Wassermelder quasi genau das erste Beispielszenario (nur mit Wasser statt mit Frost).
Mein DOIF sieht so aus:
([KG_WA1:state] eq "damp")
(set HS_Push msg message='Es wurde leichte Feuchtigkeit registriert.' title='Wasser!!')
DOELSEIF ([KG_WA1:state] eq "wet")
(set HS_Push msg message='Es wurde Wasser registriert.' title='Wasser!!')

Als Attribute habe ich "repeatcmd 10:10" gesetzt. Wenn der Wechsel von dry auf damp oder wet wechselt, dann wird eine Nachricht gesendet. Allerdings hört es gar nicht mehr auf, auch wenn der Zustand wieder dry ist.
Ziel ist es solange Nachrichten zu bekommen, bis sich der Zustand ändert.

*EDIT*
Es funktioniert wenn ich die zweite Bedingung weglasse. Ist repeatcmd nicht für DOELSEIFs gedacht? Ich könnte das Ganze jetzt mit zwei DOIFs machen, allerdings ist das ja auch irgendwie unschön.

Damian

Zitat von: merasil am 08 März 2019, 17:05:57
Servus,

ich vermute das ist nur ne kleine Sache, aber ich bin anscheinend zu blöd dafür.
Habe mit meinem Homematic Wassermelder quasi genau das erste Beispielszenario (nur mit Wasser statt mit Frost).
Mein DOIF sieht so aus:
([KG_WA1:state] eq "damp")
(set HS_Push msg message='Es wurde leichte Feuchtigkeit registriert.' title='Wasser!!')
DOELSEIF ([KG_WA1:state] eq "wet")
(set HS_Push msg message='Es wurde Wasser registriert.' title='Wasser!!')

Als Attribute habe ich "repeatcmd 10:10" gesetzt. Wenn der Wechsel von dry auf damp oder wet wechselt, dann wird eine Nachricht gesendet. Allerdings hört es gar nicht mehr auf, auch wenn der Zustand wieder dry ist.
Ziel ist es solange Nachrichten zu bekommen, bis sich der Zustand ändert.

*EDIT*
Es funktioniert wenn ich die zweite Bedingung weglasse. Ist repeatcmd nicht für DOELSEIFs gedacht?

Du hast auch keinen Fall für "dry" definiert
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

merasil

Ja ich verstehe die Logik dahinter. Ich vermute ich müsste dann einfach DOELSE und dann nichts in die Definition schreiben oder?

Damian

Zitat von: merasil am 08 März 2019, 17:26:32
Ja ich verstehe die Logik dahinter. Ich vermute ich müsste dann einfach DOELSE und dann nichts in die Definition schreiben oder?

Das sollte schon reichen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF