[erledigt] doif mit mehreren IF im befehlsteil

Begonnen von the ratman, 23 Dezember 2017, 09:29:44

Vorheriges Thema - Nächstes Thema

the ratman

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?
→do↑p!dnʇs↓shit←

Ellert

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

the ratman

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.
→do↑p!dnʇs↓shit←

Damian

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),
...

Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

the ratman

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 ...

→do↑p!dnʇs↓shit←