Hallo
hab eine Frage zu einem DOIF das folgendermassen aussieht:
defmod autoRollBad_DOIF DOIF ([auto_rolladen_bad_fenster] eq "on"\
and\
(([auto_rolladen_zentral] eq "Sommer"\
and\
[daemmerung_messwert] ge [auto_wetterstation_daemmerung_so:state:d]\
and\
[temperatur_wetterstation] ge [auto_wetterstation_temp:state:d]\
)\
or\
(\
[auto_rolladen_zentral] eq "Winter"\
and\
[daemmerung_messwert] le [auto_wetterstation_daemmerung_wi:state:d]\
and\
[[auto_rolladen_starttime_wi]-[auto_rolladen_endtime_wi]]\
)\
)\
)\
(set rolladen_bad_fenster Nacht)
attr autoRollBad_DOIF DbLogExclude .*
attr autoRollBad_DOIF cmdpause 14400
attr autoRollBad_DOIF do always
attr autoRollBad_DOIF group Rolladenautomatik
attr autoRollBad_DOIF room Automation->DOIF
Ich möchte nun das Ganze für 9 andere Fenster/Türen auch anlegen, es ändert sich nur aber nur der fett markierte Teil: rolladen_bad_fenster und auto_rolladen_bad_fenster.
Muss ich für alle ein einzelnes DOIF anlegen oder kann man da den Code irgendwie zusammenfassen ?
Gruß Marco
Du kannst das auto_rolladen_bad_fenster aus der Bedingung nehmen und auf der Ausführungsseite einen Filter verwenden.
Du könntest mit $DEVICE arbeiten :
defmod autorollo DOIF ( ["rolladen_.*_fenster"] and [?auto_$DEVICE] eq "on"] ...
ok danke werde es die Tage mal ausprobieren
Mein Problem ist ähnlich, aber die Lösung scheint bei mir nicht zu funktionieren.
Ich möchte mit indirekten Zeiten arbeiten und habe für jedes Device ein DOIF angelegt.
Bedingungsteil:([{strftime("%H:%M",localtime([WeckerRT:aWeckTime]))}] and ($ymd eq {strftime("%Y-%m-%d", localtime([WeckerRT:aWeckTime]))}))
Es gibt die Decive WeckerRT und WeckerKT und später noch mehr.
Kann man hier auch mit Wildcards arbeiten?