ESPHOME Lichtsteuerung per LUX Wert, allerdings wenn Licht an, ist hell und schaltet aus

Hallo,

bisserl doof zu erklären, und eigentlich macht der Code genau was er soll nur nicht was ich will.

Ich schalte eine Lampe per Bewegungsmelder und BH1750 Beleuchtungsmesser.
Wenn unter 10 Lux soll das Licht per Bewegungsmelder eingeschaltet werden, solange bis der Bewegungsmelder nichts mehr meldet.
Das klappt auch wunderbar, nur sobald das Licht an ist, ist es hell und somit der Lux Wert grösser als die Schaltschwelle und das Licht wieder aus :frowning:

hier der Code im ESPHome vom ESP32 Chip der das steuert:

 - platform: template
    name: "Dark enough to switch light"
    id: good2go
    lambda: !lambda |-
      if ((id(detected).state) && (id(old_stairway_eg_sensor_lux).state < 10)) {
        return true;
      } else {
        return false;
      }
    on_press:
      - then:
          - switch.turn_on: led_light
    on_release:
      then:
        - switch.turn_off: led_light

Ich denke es liegt an der && Verknüpfung, kann man die abändern das der Lux Wert nur beim Einschalten relevant ist, solange aber eingeschaltet ist, ignoriert wird?

Irgendwie komisch die Frage richtig zu formulieren, entschuldigt.
Gruss Toni

Du musst die Prüfung Bewegung und Helligkeit voneinander trennen bzw. nach einander umsetzen.

- platform: template
    name: "Dark enough to switch light"
    id: good2go
    lambda: !lambda |-
      if (id(detected).state) { 
        // Bewegung erkannt
        if (id(led_light).state) { 
          // Licht ist bereits an
          return true;
        } else if (id(old_stairway_eg_sensor_lux).state < 10) { 
          // Es ist dunkel genug und Licht ist noch aus
          return true;
        }
      }
      return false; // Keine Bewegung oder Lichtbedingungen nicht erfüllt
    on_press:
      - then:
          - switch.turn_on: led_light
    on_release:
      - then:
          - switch.turn_off: led_light

Hallo tarag,

jetzt funktioniert es wie es soll. Lieben Dank für die Unterstützung.

Gruss Toni

1 „Gefällt mir“