ein oder mehere DOIFs / DOIFs oder Notifies

Begonnen von UweUwe, 22 Januar 2019, 21:14:59

Vorheriges Thema - Nächstes Thema

UweUwe

Hallo,
abhängig von dem Status Bewohner:state will ich 4 , später möglicherweise noch weitere Auswahlen treffen.
Ist es sinnvoll hier alles in ein DOIF zusammenzufassen? Historisch gewachsen ist:
3 DOIF
set RufumleitungDOIF ([Bewohner:state] eq "home") (set Fritzbox diversity 1 off) DOELSEIF  ([Bewohner:state] ne "home") (set Fritzbox diversity 1 on)
set WLANDOIF DOIF ([Bewohner:state] eq "home") (set Fritzbox wlan on) DOELSEIF  ([Bewohner:state] ne "home") (set Fritzbox  wlan off)
set HomeDOIF DOIF ([Bewohner:state] eq "home") (set teleBot message @#Senior Home Status) DOELSEIF  ([Bewohner:state] ne "home") (set teleBot message @#Senior Absent Status


und 2 notifies
• set Absent.N notify Bewohner:absent set AAA armed 0
• set Home.N notify Bewohner:home set AAA disarmed 0

Das funktioniert soweit.

Man könnte alles in ein DOIF zusammenfassen, das ist doch korrekt?

set HomeGDOIF ([Bewohner:state] eq "home")
                            (set teleBot message @#Senior Home Status)
                                      (set Fritzbox wlan on)
                                      (set Fritzbox diversity 1 off)
                                                     (set AAA disarmed 0)
                DOELSEIF
                            (set teleBot message @#Senior Absent Status
                                     (set Fritzbox  wlan off)
                                     (set Fritzbox diversity 1 on)
                                                      (set AAA armed 0)


Ist doch korrekt? Bis bisher in solche "Tiefen" noch nicht vorgedrungen...


Per

Bis auf die fehlende Klammer kannst du das so machen. Wenn du keine zusätzlichen Attribute (wait o.ä.) brauchst, kannst du statt mit Klammern auch mit Komma trennen.

Damian

Zitat von: UweUwe am 22 Januar 2019, 21:14:59

Zitatset RufumleitungDOIF ([Bewohner:state] eq "home") (set Fritzbox diversity 1 off) DOELSEIF  ([Bewohner:state] ne "home") (set Fritzbox diversity 1 on)
set WLANDOIF DOIF ([Bewohner:state] eq "home") (set Fritzbox wlan on) DOELSEIF  ([Bewohner:state] ne "home") (set Fritzbox  wlan off)
set HomeDOIF DOIF ([Bewohner:state] eq "home") (set teleBot message @#Senior Home Status) DOELSEIF  ([Bewohner:state] ne "home") (set teleBot message @#Senior Absent Status



das sind wohl keine set-Befehle sondern define-Befehle
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF