FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: kutschi am 28 April 2016, 21:33:35

Titel: DOIF schaltet nicht immer
Beitrag von: kutschi am 28 April 2016, 21:33:35
Hallo zusammen,

ich baue meine Rolladensteuerung auf DOIF um. Irgendwie schaltet der DOIF aber nicht immer. Anbei der Code ausschnitt. Vielleicht sieht ja jemand einen Fehler. Der DOIF wird über eine Zeit ausgelöst.

define WzRoru DOIF (([[du_Rollo_Zeit_ru]]) and ([du_Rollo_Master] eq "an") and ([du_Rollo_Modus] eq "Zeitgesteuert" )) (set Test an) DOELSEIF (([du_Rollo_Master] eq "an") and ([du_Rollo_Modus] eq "Sonnenuntergang" ) and ([du_Tageslicht] eq "dunkel" )) (set Test an)

define WzRoho DOIF (([[du_Rollo_Zeit_ho]]) and ([du_Rollo_Master] eq "an")) (set Test aus)


Markus
Titel: Antw:DOIF schaltet nicht immer
Beitrag von: Damian am 28 April 2016, 21:37:08
Zitat von: kutschi am 28 April 2016, 21:33:35
Hallo zusammen,

ich baue meine Rolladensteuerung auf DOIF um. Irgendwie schaltet der DOIF aber nicht immer. Anbei der Code ausschnitt. Vielleicht sieht ja jemand einen Fehler. Der DOIF wird über eine Zeit ausgelöst.

define WzRoru DOIF (([[du_Rollo_Zeit_ru]]) and ([du_Rollo_Master] eq "an") and ([du_Rollo_Modus] eq "Zeitgesteuert" )) (set Test an) DOELSEIF (([du_Rollo_Master] eq "an") and ([du_Rollo_Modus] eq "Sonnenuntergang" ) and ([du_Tageslicht] eq "dunkel" )) (set Test an)

define WzRoho DOIF (([[du_Rollo_Zeit_ho]]) and ([du_Rollo_Master] eq "an")) (set Test aus)


Markus

Dass DOIF mit Zuständen arbeitet ist dir bekannt?

Zitat aus der aktuellen Commandref des Moduls:

ZitatDas DOIF-Modul arbeitet mit Zuständen. Jeder Ausführungszweig DOIF/DOELSEIF..DOELSEIF/DOELSE stellt einen eigenen Zustand dar (cmd_1, cmd_2, usw.). Das Modul merkt sich den zuletzt ausgeführten Ausführungszweig und wiederholt diesen standardmäßig nicht. Ein Ausführungszweig wird erst dann wieder ausgeführt, wenn zwischenzeitlich ein anderer Ausführungszweig ausgeführt wurde, also ein Zustandswechsel stattgefunden hat. Dieses Verhalten ist sinnvoll, um zu verhindern, dass zyklisch sendende Sensoren (Temperatur, Feuchtigkeit, Helligkeit, usw.) zu ständiger Wiederholung des selben Befehls oder Befehlsabfolge führen.

Gruß

Damian
Titel: Antw:DOIF schaltet nicht immer
Beitrag von: kutschi am 28 April 2016, 21:46:17
Hallo,

das habe ich so noch nicht gelesen. Damit natürlich auch nicht so bedacht. Da muss ich mal sehen wie ich das umbaue.


Danke für den Tipp
Titel: Antw:DOIF schaltet nicht immer
Beitrag von: Muschelpuster am 28 April 2016, 21:53:32
Es würde das Attribut do always helfen, denn die Betonung liegt auf 'standardmäßig':attr WzRoru do always
attr WzRoho do always
Aber warum überhaupt 2 DOIFs?
define WzRo DOIF (([[du_Rollo_Zeit_ru]]) and ([du_Rollo_Master] eq "an") and ([du_Rollo_Modus] eq "Zeitgesteuert" )) (set Test an)
    DOELSEIF (([du_Rollo_Master] eq "an") and ([du_Rollo_Modus] eq "Sonnenuntergang" ) and ([du_Tageslicht] eq "dunkel" )) (set Test an)
    DOELSEIF (([[du_Rollo_Zeit_ho]]) and ([du_Rollo_Master] eq "an")) (set Test aus)


vereinfachte Grüße
Niels
Titel: Antw:DOIF schaltet nicht immer
Beitrag von: Damian am 28 April 2016, 21:56:42
Wenn du nicht zyklisch sendende Sensoren abfragst reicht bereits das Attribut do always.

Gruß

Damian