FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: tmuecksch am 09 Oktober 2016, 18:40:07

Titel: [Erledigt] Befehle trennen im Befehlsteil von IF
Beitrag von: tmuecksch am 09 Oktober 2016, 18:40:07
Liebe Community,

leider habe ich Probleme beim Trennen von Befehlen im Befehlsteil von IF.

Bisher war ich es gewohnt, dass ich Befehle mit ; oder ;; trennen konnte.

Das hier funktioniert einwandfrei:
IF (Value("MAIN_SWITCH") eq "on") (set ZWave_SWITCH_3 on)
oder
IF (Value("MAIN_SWITCH") eq "on") (set ZWave_SWITCH_4 on)


Das hier funktioniert nicht:
IF (Value("MAIN_SWITCH") eq "on") (set ZWave_SWITCH_3 on ; set ZWave_SWITCH_4 on)


Es wird beim Zweiten Ansatz dieser Fehler im Logfile angezeigt:

IF: no right bracket: (set ZWave_SWITCH_3 on
Unknown argument on), choose one of associationAdd associationDel [... und so weiter ...]


Da es aber jeweils einzeln funktioniert kann es nicht am Argument "on" liegen. Also gehe ich davon aus, dass die Befehlstrennung nicht funktioniert und er daher davon ausgeht dass die weiteren Strings als Argumente zu behandeln sind.

Wie muss ich also in diesem Fall die Befehle trennen?


Vielen Dank im Voraus  :D
Titel: Antw:Befehle trennen im Befehlsteil von IF
Beitrag von: Ellert am 09 Oktober 2016, 18:56:42
Das müsste in der Befehlsreferenz zu If stehen. Hast Du schon mal nachgesehen?
Titel: Antw:Befehle trennen im Befehlsteil von IF
Beitrag von: tmuecksch am 09 Oktober 2016, 19:11:17
Doch schon,

dort wird soweit ich das korrekt verstehe die Version mit den zwei Semikolon empfohlen. Dennoch klappt es leider nicht...

Es wird zwar auch das hier vorgeschlagen:

(set switch1,switch2 off)

was mir aber auch nur hilft so lange alle switches den selben Wert bekommen sollen. Sobald ich die Regel aber etwas ausbaue hilft das auch nicht mehr...
Titel: Antw:Befehle trennen im Befehlsteil von IF
Beitrag von: tmuecksch am 09 Oktober 2016, 19:16:44
Zitat von: tmuecksch am 09 Oktober 2016, 19:11:17
Doch schon,

dort wird soweit ich das korrekt verstehe die Version mit den zwei Semikolon empfohlen. Dennoch klappt es leider nicht...

Es wird zwar auch das hier vorgeschlagen:

(set switch1,switch2 off)

was mir aber auch nur hilft so lange alle switches den selben Wert bekommen sollen. Sobald ich die Regel aber etwas ausbaue hilft das auch nicht mehr...


EDIT: Also mit Komma klappt es... bspw. (set SWITCH_1 on, set SWITCH_2 off) klappt. Danke für die Hilfe zur Selbsthilfe  ;D
Titel: Antw:Befehle trennen im Befehlsteil von IF
Beitrag von: Grinsekatze am 10 Oktober 2016, 12:24:48
Das klappt nicht, weil es korrekt so lauten muss:
if (value("MAIN_SWITCH") eq "on") { fhem ("set ZWave_SWITCH_3 on ;; set ZWave_SWITCH_4 on")}
Titel: Antw:Befehle trennen im Befehlsteil von IF
Beitrag von: Ellert am 10 Oktober 2016, 12:51:32
Zitat von: Grinsekatze am 10 Oktober 2016, 12:24:48
Das klappt nicht, weil es korrekt so lauten muss:
if (value("MAIN_SWITCH") eq "on") { fhem ("set ZWave_SWITCH_3 on ;; set ZWave_SWITCH_4 on")}

Es geht hier um die Vervendung des FHEM "IF" (http://fhem.de/commandref_DE.html#IF) und nicht des Perl "if"  ;)
Titel: Antw:Befehle trennen im Befehlsteil von IF
Beitrag von: Grinsekatze am 10 Oktober 2016, 15:54:35
Zitat von: tmuecksch am 09 Oktober 2016, 19:16:44

EDIT: Also mit Komma klappt es... bspw. (set SWITCH_1 on, set SWITCH_2 off) klappt. Danke für die Hilfe zur Selbsthilfe  ;D


... dann markiere doch mal den Thread als erledigt ....