NEWS
[ESPHome] Syntaxfrage: mehrere if conditions
-
Ich möchte nach einem Ereignis (z.B. ein Sensort löst aus) mehrer Aktionen ion Abhängigkeit von anderen Größen ausführen. Also in der Art:
switch: - platform: gpio pin: number: D5 mode: OUTPUT inverted: true name: "D5" id: GPIOD5 on_turn_off: if: condition: lambda: return id(GlobaleVariable ==3); then: - switch.turn_on: LED1 if: condition: lambda: return id(GlobaleVariable== 4); then: - switch.tun_off: LED2
Es wird aber moniert, dass das Keyword "if" doppel vorhanden ist.
Wie macht man sowas? (Einfach das zweite "if" weglassen geht auch nicht, dann wird das doppelte "condition" moniert) -
@wolfgangfb
https://community.home-assistant.io/t/noob-question-chained-conditions-if-elseif/316585Sieht so aus, als wenn da ein then: hinter on_turn_off: gehört.
Hab nur aus Neugier gesucht
-
@ticaki
HiNe, wenn nur eine Bedingung erfüllt sein soll ist
on_turn_off: if: condition: lambda: return id(GlobaleVariable ==3); then: - switch.turn_on: LED1
korrekt und funktioniert. Die Frage ist, wie ich die zweite Bedingung einbaue. Auch wenn ich hinter on_turn_off ein "then:" einfüge wird trotzdem dsas zweite "if" als "duplicate key" moniert.
-
@wolfgangfb
Die einzige was ich gefunden habe, ist alles in ein lambda zu packen und die Aktoren über die C++ Syntax zu setzen, also in der Art:on_press: then: - lambda: | if (id(Hauszustand) == 0){id(LED).turn_on();} if (id(Hauszustand) == 1){id(LED_Rot).turn_on();} ....