FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: the ratman am 23 Dezember 2017, 09:29:44

Titel: [erledigt] doif mit mehreren IF im befehlsteil
Beitrag von: the ratman am 23 Dezember 2017, 09:29:44
hiho,

irgendwie finde ich nichts dazu, wie das ganze korrekt klammern usw. verpasst kriegen muß.
ein bspl.:(... bedienungen ...)
(set DLNA_d5a619f4804c volume [$SELF:ls];)
(IF ([$SELF:licht1] eq "ein") ( set rgb_sofa1 dimUp;))
(IF ([$SELF:licht2] eq "ein") ( set rgb_sofa2 dimUp;))
(IF ([$SELF:licht3] eq "ein") ( set rgb_sofa3 dimUp;))
(IF ([$SELF:sound] eq "morgenvogel") ( set DLNA_d5a619f4804c stream http://url zu/morgenvogel.mp3;))
(IF ([$SELF:sound] eq "aaa") ( set DLNA_d5a619f4804c stream http://url zu/aaa.mp3;))
(IF ([$SELF:sound] eq "bbb") ( set DLNA_d5a619f4804c stream http://url zu/bbb.mp3;))
(IF ([$SELF:sound] eq "ccc") ( set DLNA_d5a619f4804c stream http://url zu/ccc.mp3;))
DOELSEIF
...

würde das so funzen, oder wie muß das richtig aussehen?
Titel: Antw:doif mit mehreren IF im befehlsteil
Beitrag von: Ellert am 23 Dezember 2017, 11:37:39
Zitat von: the ratman am 23 Dezember 2017, 09:29:44
hiho,

irgendwie finde ich nichts dazu, wie das ganze korrekt klammern usw. verpasst kriegen muß.
ein bspl.:(... bedienungen ...)
(set DLNA_d5a619f4804c volume [$SELF:ls];)
(IF ([$SELF:licht1] eq "ein") ( set rgb_sofa1 dimUp;))
(IF ([$SELF:licht2] eq "ein") ( set rgb_sofa2 dimUp;))
(IF ([$SELF:licht3] eq "ein") ( set rgb_sofa3 dimUp;))
(IF ([$SELF:sound] eq "morgenvogel") ( set DLNA_d5a619f4804c stream http://url zu/morgenvogel.mp3;))
(IF ([$SELF:sound] eq "aaa") ( set DLNA_d5a619f4804c stream http://url zu/aaa.mp3;))
(IF ([$SELF:sound] eq "bbb") ( set DLNA_d5a619f4804c stream http://url zu/bbb.mp3;))
(IF ([$SELF:sound] eq "ccc") ( set DLNA_d5a619f4804c stream http://url zu/ccc.mp3;))
DOELSEIF
...

würde das so funzen, oder wie muß das richtig aussehen?

hier: "irgendwie finde ich nichts dazu"

deutschsprachige Commandref:
- IF
- DOIF --> Stichworte: Syntax, Angaben im Ausführungsteil, Wait und Sequenzen

Forensuche im Unterforum DOIF --> Stichworte DOIF IF
Titel: Antw:doif mit mehreren IF im befehlsteil
Beitrag von: the ratman am 23 Dezember 2017, 11:48:04
ja, da findest aber immer nur 1 IF im ausführungsteil - somit is es mir nicht klar, wie man dann weiter macht, sonst würd ich nicht fragen.
Titel: Antw:doif mit mehreren IF im befehlsteil
Beitrag von: Damian am 23 Dezember 2017, 12:21:19
Zitat von: the ratman am 23 Dezember 2017, 11:48:04
ja, da findest aber immer nur 1 IF im ausführungsteil - somit is es mir nicht klar, wie man dann weiter macht, sonst würd ich nicht fragen.

Du kannst doch immer etwas mit einfachen Konstruktionen ausprobieren. Dann weißt du was syntaktisch geht und was nicht. Wenn ich mir nicht sicher bin oder irgendwelche Doku missverständlich ist, dann probiere ich es einfach aus.

Zu deinem Konstrukt fällt mir ein:

-Wozu Semikolon?
-mehre IF-Abfragen würde ich nicht in einzelne Sequenzen unterteilen, das macht man, wenn man Verzögerungen mit wait dazwischen schalten will. Es reicht ein Komma zwischen den IF-Abfragen


Also:

(... bedienungen ...)
   (
        set DLNA_d5a619f4804c volume [$SELF:ls],
IF ([$SELF:licht1] eq "ein") ( set rgb_sofa1 dimUp),
        IF ([$SELF:licht2] eq "ein") ( set rgb_sofa2 dimUp),
...

Titel: Antw:doif mit mehreren IF im befehlsteil
Beitrag von: the ratman am 23 Dezember 2017, 13:04:16
ahh, thx an dich
war echt verwirrt wegen der beistriche.

btw. die sektionen brauch ich tatsäclich wegen wait, die holde wünscht sichs aufgeteilt ...