Hauptmenü

DOIF und ATTR repeatcmd

Begonnen von horni, 20 Juli 2021, 17:29:20

Vorheriges Thema - Nächstes Thema

horni

Muss jetzt mal fragen ob das zur Zeit ein Bug ist oder habe ich in der einfachen Zeile einen Denkfehler drin. So sieht mein DOIF aus

defmod abfragescheissen DOIF ([ichwarscheissen:state] eq "on")
(set HM_5892CE off)
(set HM_5892CE on)

attr abfragescheissen do always
attr abfragescheissen repeatcmd 60
attr abfragescheissen wait 0,18

CMD1 soll so lange alle 60 Sekunden ausgeführt werden bis "ichwarscheissen" auf off gesetzt wird. Laut DOIF Beschreibung passt das auch so alles. Aber er führt immer und immer wieder den Teil aus obwohl "ichwarscheissen" auf off gesetzt ist. Wo ist jetzt da bitte mein Fehler drin. ICh verstehe es einfach nicht.
In der Commandref ist dazu das Beispiel mit repeatcmd auch genau so drin

Damian

Dein Modul kann den Zustand nicht wechseln, um die Wiederholung zu beenden, daher einen else-Fall setzen:

DOIF ([ichwarscheissen:state] eq "on") DOELSE
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

horni

Ja genau da war der Fehler. Jetzt gehts. Sollte man vielleicht in der Beschreibung in der Comandoref "DOIF" vielleicht auch mal ändern. Da fehlt auch das DOELSE
Besten Dank.

Damian

Zitat von: horni am 22 Juli 2021, 07:17:56
Ja genau da war der Fehler. Jetzt gehts. Sollte man vielleicht in der Beschreibung in der Comandoref "DOIF" vielleicht auch mal ändern. Da fehlt auch das DOELSE
Besten Dank.

Wenn man kein do always setzt, dann ist der doelse-Fall automatisch drin, sonst könnte man nur einmal etwas ausführen, weil das Modul keine Möglichkeit hätte aus cmd_1 herauszukommen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF