Steuerung der Helligkeit in Abhängigkeit eines Lichtsensors

Hallo in die Runde :slight_smile:

als Einsteiger habe ich noch keine Lösung für die Umsetzung folgende Automatisierung:

Trigger: Bewegungsmelder

Aktion: Hue Lampe an/aus, jedoch mit einer Helligkeit in Abhängigkeit der aktuellen Lichtstärke eines Lichtsensors.

Gibt es vlt. einen Blueprint oder hat jemand solch eine Automatisierung bereits im Einsatz und würde hier den Code spendieren :wink:

Liebe Grüße

Du hast schon den Helligkeitssensor?

Welche Entitäten stellt der aktuell bereit?

1 „Gefällt mir“

Hier hatte ich es mal beschrieben

1 „Gefällt mir“

Beleuchtungsstärke in lx

wenn ich es richtig verstehe, wird hier in Abhängigkeit der Lichtstärke eines Helligkeitssensors eine Lampe eingeschaltet?

Ich suche nach eine Möglichkeit das Licht durch einen Bewegungssensor (immer) eingeschaltet wird. Jedoch mit einer dynamisch” angepassten/geregelten” Helligkeit entsprechend der lx eines Lichtsensors.

Ich hab spaßeshalber mal Folgendes bei Claude eingegeben

Ich habe in Home Assistant

	•	einen Bewegungsmelder mit der Entität binary_sensor.bewegungsmelder
	•	einen Helligkeitssensor sensor.helligkeit mit Werten in lx
	•	eine dimmbare Lampe light.wohnzimmer
Bei Bewegungsmelder „on“ soll das Licht eingeschaltet und abhängig von der vorhandenen Helligkeit wie folgt gedimmt werden
0 bis 10 lx auf 100%
ab 10lx auf 90 %
ab 20lx auf 85%
ab 30lx auf 75%
ab 40lx auf 60%
ab 50lx auf 50%
ab 70lx auf 40%
ab 100 lx auf 0% (ausgeschaltet)
Erstelle dafür den Yaml-Code für eine Automation „Licht Wohnzimmer“

Herausgekommen ist:

alias: Licht Wohnzimmer
description: Licht bei Bewegung abhängig von der Helligkeit dimmen
trigger:
 - platform: state
   entity_id: binary_sensor.bewegungsmelder
   to: "on"
condition: []
action:
 - choose:
     - conditions:
         - condition: numeric_state
           entity_id: sensor.helligkeit
           below: 10
       sequence:
         - service: light.turn_on
           target:
             entity_id: light.wohnzimmer
           data:
             brightness_pct: 100
     - conditions:
         - condition: numeric_state
           entity_id: sensor.helligkeit
           above: 99.99
       sequence:
         - service: light.turn_off
           target:
             entity_id: light.wohnzimmer
     - conditions:
         - condition: numeric_state
           entity_id: sensor.helligkeit
           above: 69.99
       sequence:
         - service: light.turn_on
           target:
             entity_id: light.wohnzimmer
           data:
             brightness_pct: 40
     - conditions:
         - condition: numeric_state
           entity_id: sensor.helligkeit
           above: 49.99
       sequence:
         - service: light.turn_on
           target:
             entity_id: light.wohnzimmer
           data:
             brightness_pct: 50
     - conditions:
         - condition: numeric_state
           entity_id: sensor.helligkeit
           above: 39.99
       sequence:
         - service: light.turn_on
           target:
             entity_id: light.wohnzimmer
           data:
             brightness_pct: 60
     - conditions:
         - condition: numeric_state
           entity_id: sensor.helligkeit
           above: 29.99
       sequence:
         - service: light.turn_on
           target:
             entity_id: light.wohnzimmer
           data:
             brightness_pct: 75
     - conditions:
         - condition: numeric_state
           entity_id: sensor.helligkeit
           above: 19.99
       sequence:
         - service: light.turn_on
           target:
             entity_id: light.wohnzimmer
           data:
             brightness_pct: 85
     - conditions:
         - condition: numeric_state
           entity_id: sensor.helligkeit
           above: 9.99
       sequence:
         - service: light.turn_on
           target:
             entity_id: light.wohnzimmer
           data:
             brightness_pct: 90
mode: single

Der Zusammenhang zwischen lx und Dimmstufe ist natürlich völlig willkürlich gewählt und müsste auf reale Werte geändert werden.

Der Code sieht aber brauchbar aus. Du kannst ihn ändern oder die Frage an Claude mit deinen Werten und Entitätsnsmen stellen.

1 „Gefällt mir“

@HaGoDo, vielen Dank.

Ich teste und melde mich morgen mit dem Ergebnis :smiley:

Am Samstag morgen habe ich keine Lust zu testen, aber der Syntax des Ki Code sieht zumindest falsch aus.

Die Grundlage ist mittlerweile:

description: ""
mode: single
triggers: []
conditions: []
actions: []

Auch platform ist deprecated und mittlerweile falsch
service gibts auch nicht mehr, bzw nicht für light. Heißt jetzt action.

Eine Automation mit so einer langen choose Liste würde ich auch nicht bauen. Wenn man da so hin wollte, würde ich nen if/else nehmen, oder für choose genau zwei Wahlmöglichkeiten (entweder / oder.

@HaGoDo: Dein Hilfsangebot in Ehren, aber falschen KI-Code reinzuwerfen, macht auch keinen Sinn.

Ich konnte die Automation mangels passender Geräte nicht testen. HA akzeptiert aber den Code bis auf die fehlenden Entitäten ohne Fehlermeldung. Daher ist er vielleicht nicht optimal, aber auch nicht falsch.

Außerdem ging es mir weniger darum, ein fertige Lösung zu präsentieren, sondern zu zeigen, welche Antwort man zu so einer Anfrage an Claude bekommt. Wenn da etwas nicht stimmt, kann man mit ein paar Worten eine Korrektur anfordern.

Edit:

Ich habe die Automation mit einem Schalter (statt Bewegungsmelder) und einem Sensor-Helfer für die Helligkeit getestet. Sie funktioniert fehlerfrei.

1 „Gefällt mir“

Mit Chat-GPT kann man das ganze ins unendliche optimieren, ob es dann auch funktioniert steht auf einem anderen Blatt :grinning_face:
Hier mal eine ungetestete Version :thinking:

alias: Hue Wohnzimmer - Smart Lighting v4.2
mode: restart

trigger:
  - platform: state
    entity_id: binary_sensor.bewegungsmelder
    to: "on"
    id: motion_on

  - platform: state
    entity_id: binary_sensor.bewegungsmelder
    to: "off"
    for: "00:00:45"
    id: motion_off


action:
  - variables:
      # =========================
      # 🌡 Sensorwerte
      # =========================
      lux: "{{ states('sensor.helligkeit') | float(0) }}"
      sun_elevation: "{{ state_attr('sun.sun', 'elevation') | float(0) }}"
      night: "{{ sun_elevation < 0 }}"

      # =========================
      # 🌤 stabilisierte Lux-Kurve (weicher als vorher)
      # =========================
      lux_safe: "{{ [lux, 1] | max }}"
      lux_factor: "{{ 1 / (1 + (lux_safe / 45)) }}"

      # =========================
      # 💡 Basishelligkeit
      # =========================
      base: "{{ 95 * lux_factor }}"

      # 🌙 sanfter Nachtfaktor (nicht binär hart)
      night_factor: >
        {% if sun_elevation < -3 %}
          0.25
        {% elif sun_elevation < 10 %}
          0.6
        {% else %}
          1
        {% endif %}

      # =========================
      # 🎯 Zielhelligkeit
      # =========================
      brightness_raw: "{{ base * night_factor }}"

      brightness: >
        {{ [([brightness_raw | round(0) | int, 5] | max), 100] | min }}

      # =========================
      # 🧠 aktueller Zustand
      # =========================
      current_brightness: "{{ state_attr('light.wohnzimmer', 'brightness') | default(0) }}"
      current_pct: "{{ (current_brightness / 2.55) | float(0) | round(0) | int }}"

      # =========================
      # 🔁 adaptive Hysterese
      # =========================
      brightness_diff: "{{ (brightness | int - current_pct | int) | abs }}"

      # =========================
      # 🚶 Motion stabil
      # =========================
      motion: "{{ is_state('binary_sensor.bewegungsmelder', 'on') }}"


  - choose:

      # ==================================================
      # 🌟 MOTION ON
      # ==================================================
      - conditions:
          - condition: trigger
            id: motion_on

        sequence:

          # 🔒 nur reagieren wenn echte Änderung nötig ist
          - condition: template
            value_template: >
              {{ brightness_diff > (6 if night else 10) or current_pct == 0 }}

          - delay: "00:00:01"

          - service: light.turn_on
            target:
              entity_id: light.wohnzimmer
            data:
              brightness_pct: "{{ brightness | int }}"
              transition: 2


      # ==================================================
      # 🌙 MOTION OFF
      # ==================================================
      - conditions:
          - condition: trigger
            id: motion_off

        sequence:

          - condition: state
            entity_id: light.wohnzimmer
            state: "on"

          # 🌘 sanftes runterdimmen
          - service: light.turn_on
            target:
              entity_id: light.wohnzimmer
            data:
              brightness_pct: 8
              transition: 6

          # 🧠 echte Ruheprüfung
          - wait_template: >
              {{ is_state('binary_sensor.bewegungsmelder', 'off') }}
            timeout: "00:00:50"
            continue_on_timeout: true

          # 📴 nur ausschalten wenn wirklich kein Motion mehr
          - condition: state
            entity_id: binary_sensor.bewegungsmelder
            state: "off"

          - service: light.turn_off
            target:
              entity_id: light.wohnzimmer
            data:
              transition: 6

Der von euch gezeigte Syntax gehört zum legacy Syntax, der durch den Modern Syntax abgelöst wird. Legacy wird dabei schrittweise deprecated. Bei den Template Sensoren ist das ab der aktuellen Version 2026.6.x der Fall. Den veralteten Code weiter durch die KI Wurst zu drehen und hier ungetestet reinzusetzen, für mutmaßlich Besucher, Gäste und Stammmitglieder und die höchstwahrscheinlich durch den heute schon alten Code dann auf Zeit auf ein Nichtfunktinionieren zusteuern zu lassen, finde ich persönlich nicht gut.

Aber gut. Ich habe meinen Senf ja nun auch dargelegt. Ich denke der Themenersteller wird seine Schlüsse daraus ziehen. Zurück zum Thema :+1:

2 „Gefällt mir“

Zumindest nicht unkommentiert aber das hast Du gerade getan, finde ich gut. :+1:

Danke euch für die Kommentare, auch wenn mich diese als HA Anfänger etwas verwirren.

Ich dachte, dass jemand so eine Automatisierung am Laufen hat:
Leuchten nicht (nur) in Abhängigkeit des Lichtsensors zu schalten, sondern (auch) die Helligkeit der Leuchten entsprechend der Beleuchtungsstärke des Lichtsensors zu steuern.
…wäre doch smart-home (?)

Liebe Grüße

Bei mir schaltet das Licht im Flur je nach Tageszeit bei Bewegung und nur unter bestimmter Beleuchtungsstärke mit zwei unterschiedlichen Helligkeiten. Zusätzlich wird das Licht Nachts Erst gedimmt bevor es komplett ausgeschaltet wird. Ob die Helligkeit 10% oder 15% mehr oder weniger hell ist fällt gar nicht auf.

alias: Licht - Flur - Bewegung
description: >-
  Steuert die Beleuchtung im Flur basierend auf Bewegung, Tageszeit und
  Helligkeit, inklusive Dimmfunktion bei Nacht.
triggers:
  - trigger: motion.detected
    target:
      area_id: flur
    options:
      behavior: first
    id: An
  - trigger: motion.cleared
    target:
      area_id: flur
    options:
      behavior: all
    id: Dimmen
  - trigger: motion.cleared
    target:
      area_id: flur
    options:
      behavior: all
      for:
        hours: 0
        minutes: 2
        seconds: 0
    id: Aus
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - An
          - condition: time
            after: "10:00:00"
            before: "23:00:00"
          - condition: illuminance.is_value
            target:
              entity_id: sensor.bm_flur_illumination_2
            options:
              behavior: any
              threshold:
                type: below
                value:
                  active_choice: number
                  number: 1
        sequence:
          - data:
              transition: 1
              brightness_pct: 100
            target:
              entity_id:
                - light.flur
            action: light.turn_on
          - data:
              transition: 1
              brightness_pct: 5
            target:
              entity_id:
                - light.schuhregal
            action: light.turn_on
        alias: Licht an - Tag
      - conditions:
          - condition: trigger
            id:
              - An
          - condition: time
            after: "23:00:00"
            before: "10:00:00"
          - condition: illuminance.is_value
            target:
              entity_id: sensor.bm_flur_illumination_2
            options:
              behavior: any
              threshold:
                type: below
                value:
                  active_choice: number
                  number: 0.1
        sequence:
          - data:
              transition: 1
              brightness_pct: 50
            target:
              entity_id:
                - light.flur
            action: light.turn_on
          - data:
              transition: 1
              brightness_pct: 5
            target:
              entity_id:
                - light.schuhregal
            action: light.turn_on
        alias: Licht an - Nacht
      - conditions:
          - condition: trigger
            id:
              - Dimmen
          - condition: time
            after: "23:00:00"
            before: "10:00:00"
          - condition: light.is_on
            target:
              entity_id: light.flur
            options:
              for: "00:00:00"
        sequence:
          - data:
              brightness_pct: 10
              transition: 5
            target:
              entity_id:
                - light.flur
            action: light.turn_on
        alias: Licht dimmen - Nacht
      - conditions:
          - condition: trigger
            id:
              - Aus
        sequence:
          - data:
              transition: 5
            target:
              entity_id:
                - light.flur
                - light.schuhregal
            action: light.turn_off
        alias: Licht aus
    default:
      - choose:
          - conditions:
              - condition: trigger
                id:
                  - An
            sequence:
              - data:
                  transition: 1
                  brightness_pct: 5
                target:
                  entity_id:
                    - light.schuhregal
                action: light.turn_on
          - conditions:
              - condition: trigger
                id:
                  - Aus
            sequence:
              - action: light.turn_off
                target:
                  entity_id:
                    - light.schuhregal
                data: {}
        alias: Schuhregal an/aus
mode: single

1 „Gefällt mir“

Danke :smiley:
Im Flurbereich sind ja mglweise nicht so große Unterschiede durch einfallendes, sich häufig ändernder Lichteinfall durch Fenster, wie z.B. bei uns in der Küche mit mehreren Reihen von Strahlern.
Da machen sich schon +/- 20% schon bemerkbar.

Ich nutze dafür Adaptive Lighting, kannst du dir mal anschauen.