In ESPHome habe ich ein Script, welches die Helligkeit eines LED-Streifens auf Grundlage eines Helligkeitssensors (ein LDR am ADC) berechnet. Dieses Script funktioniert auch hervorragend und tut, was es soll.
script:
- id: refresh_brightness
then:
- light.turn_on:
id: neopixel_ring
brightness: !lambda 'return id(brightness_sensor).state/100;'
Aufgerufen wird das Script jedes mal, wenn sich die Helligkeit ändert:
sensor:
- platform: adc
id: brightness_sensor
pin: GPIO34
name: "Helligkeitssensor"
update_interval: 5s
device_class: illuminance
unit_of_measurement: "%"
filters:
- calibrate_linear:
datapoints:
- 0.0 -> ${minimum_brightness}
- 1.05 -> 100
on_value:
then:
- script.execute: refresh_brightness
Nun möchte ich in Abhängigkeit eines Schalters die Helligkeit auf 100% setzen. Der Schalter ist einfach ein digitaler Ausgang, der aus HA angesprochen wird.
switch:
- platform: gpio
name: "Nachtlicht"
pin:
number: 26
id: nachtlicht
device_class: switch
Allerdings schaffe ich es irgendwie nicht, den Rückgabewert in Abhängigkeit des Switches auf 100% zu setzen.
Versucht habe ich es so:
script:
- id: refresh_brightness
then:
- light.turn_on:
id: neopixel_ring
brightness:
- lambda: |-
if (id(nachtlicht).state) {
return 100;
} else {
return id(brightness_sensor).state/100;
}
bekomme aber beim validate folgende Fehler:
INFO ESPHome 2026.2.4
INFO Reading configuration /config/esphome/uhr-wz.yaml...
ERROR Error while reading config: Invalid YAML syntax:
while scanning a simple key
in "/config/esphome/uhr-wz.yaml", line 288, column 15
could not find expected ':'
in "/config/esphome/uhr-wz.yaml", line 290, column 15
Zeile 288 ist die mit dem if und 290 die mit dem else.
So langsam komme ich hier einfach nicht mehr weiter. Kann mir jemand sagen, wo hier mein Fehler liegt?