Home Assistant Beleuchtung mit Timer richtig smart machen

Ich nutze in meinem Smarthome einige ZigBee-Lampen, die ich je nach Situation ein- und ausschalte. In der Regel wird von einem Bewegungsmelder eine Bewegung erkannt und sofern gewisse Bedingungen erfรผllt sind, geht eine Lampe fรผr ein paar Minuten an. Mit einem Timer kann man dies jedoch deutlich smarter und somit anwenderfreundlicher umsetzen! Wie das konkret geht, beschreibe ich im Folgenden!

Ich beschreibe einen sinnvollen Nutzen des Timers an dem konkreten Beispiel einer ZigBee-Lampe und eines ZigBee-Bewegungsmelders. Das Ausgangsszenario ist hierbei folgendes: Sobald der Bewegungsmelder eine Bewegung registriert und die Sonne nicht „am Himmel ist“, soll die ZigBee-Lampe angehen, damit man sich das Betรคtigen eines Lichtschalters spart.

Man lรคuft durch einen Raum oder holt etwas in einem Raum und hierfรผr soll das Licht automatisch an- und ausgehen.

Aqara Bewegungsmelder, Benรถtigt Hub, Zigbee-Verbindung,...
Aqara Bewegungsmelder, Benรถtigt Hub, Zigbee-Verbindung,...*
Sprachsteuerung: Kompatibel mit Apple HomeKit und Alexa fรผr freies Sprechen; Breiterer Erkennungsbereich: Bis zu 22 6 m bei 170ยฐ Betrachtungswinkel

Bislang hatte ich dies รผber eine simple Automation umgsetzt:

- alias: 'Wohnzimmer-Licht'
  trigger:
  - platform: state
    entity_id: binary_sensor.bewegungsmelder_wohnzimmer_z2m_occupancy
    from: 'off'
    to: 'on'
  condition:
  - condition: template
    value_template: "{{ states.sun.sun.attributes.elevation | int < 1 }}"
  - condition: state
    entity_id: light.kamin_z2m
    state: 'off'
  action:
  - service: light.turn_on
    data:
      entity_id: light.kamin_z2m
  - delay:
      minutes: 3
  - service: light.turn_off
    data:
      entity_id: light.kamin_z2m

Als Trigger dient der Bewegungsmelder, der von „off“ zu „on“ wechselt und als Bedingungen habe ich zum einen den Zustand der Sonne (Elevation <1) und, dass die ZigBee-Lampe aktuell ausgeschaltet ist.

Du magst Home Assistant? Dann abonniere kostenlos meine Beitrรคge mit Tipps, Tricks und Anleitungen rund um Home Assistant:

Follow Home Assistant
( 424 Followers )
X

Follow Home Assistant

E-mail : *
* Ich stimme der Datenschutzerklรคrung zu!

Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders รผberlegen!

Also Action folgt dann das Einschalten der ZigBee-Lampe, eine Verzรถgerung (Delay) von 3 Minuten und dann erneut das Ausschalten der ZigBee-Lampe.

Einfach und wenig komplex, aber eben auch anfรคllig fรผr folgendes Szenario: Die Automation wird ausgelรถst und die Lampe geht an. Ich halte mich aber lรคnger als 3 Minuten in dem Raum auf. Dann wird es dunkel und erst nach einer erneut erkannten Bewegung durch den ZigBee-Bewegungsmelder, geht die ZigBee-Lampe wieder fรผr 3 Minuten an.

Dieses Problem lรถse ich nun durch einen Timer von Home Assistant und gehe hierbei wie folgt vor:

Automation 1:

  1. Trigger: Der Bewegungsmelder erkennt eine Bewegung
  2. Kondition: Sofern die Lampe nicht eingeschaltet ist und die Sonne untergegangen ist
  3. Action: wird die Lampe eingeschaltet und
  4. Action: der Timer gestartet

Automation 2:

  1. Trigger: Der Bewegungsmelder erkennt eine Bewegung
  2. Kondition: der Timer lรคuft, ist also >0
  3. Action: der Timer wieder neu gestartet

Automation 3:

  1. Trigger: Der Timer erhรคlt den Wert „inaktiv“
  2. Action: die Lampe wird ausgeschaltet

Mit allen 3 Automatisierungen aufgesetzt, sollte die ZigBee-Lampe nun nur eingeschaltet werden, wenn sie nicht zuvor (manuell) eingeschaltet wurde und die Sonne unter dem Horizont ist und der Bewegungsmelder entsprechende Aktivitรคten erkannt hat. Fรผr 3 Minuten (Timer) bleibt die Lampe dann eingeschaltet. Erkennt der Bewegungsmelder eine weitere Bewegung und der Timer ist noch aktiv, wird der Timer erneut gestartet, also um 3 Minuten verlรคngert. Erreicht der Timer irgendwann den Wert „inaktiv“, wird die Lampe ausgeschaltet.

Aqara Bewegungsmelder, Benรถtigt Hub, Zigbee-Verbindung,...*
  • Hinweise: Aqara Hub ist erforderlich und separat erhรคltlich....
  • Erkennung von unbefugtem Eintreten: Wenn unerwartete Bewegungen...

Soviel zur Theorie und hier noch der dazugehรถrige Code:

Code fรผr den eigentlichen Timer (bspw. in der configuration.yaml):

timer:
  livingrom_light_off:
    duration: '00:03:00'

Automation 1: Erkennt eine Bewegung und sofern die Lampe nicht bereits eingeschaltet ist und die Sonne unter dem Horizont ist, wird die Lampe eingeschaltet, sowohl der Timer gestartet:

- alias: 'Wohnzimmer-Licht'
  trigger:
  - platform: state
    entity_id: binary_sensor.bewegungsmelder_wohnzimmer_z2m_occupancy
    from: 'off'
    to: 'on'
  condition:
  - condition: template
    value_template: "{{ states.sun.sun.attributes.elevation | int < 1 }}"
  - condition: state
    entity_id: light.kamin_z2m
    state: 'off'
  action:
  - service: light.turn_on
    data:
      entity_id: light.kamin_z2m
  - service: timer.start
    entity_id: timer.livingrom_light_off

Automation 2: Erkennt eine Bewegung und sofern der Timer aktiv ist wird der Timer erneut gestartet (also um 3 Minuten verlรคngert):

- alias: 'Wohnzimmer-Licht Timer'
  trigger:
  - platform: state
    entity_id: binary_sensor.bewegungsmelder_wohnzimmer_z2m_occupancy
    from: 'off'
    to: 'on'
  condition:
  - condition: state
    entity_id: timer.livingrom_light_off
    state: 'active'
  action:
  - service: timer.start
    entity_id: timer.livingrom_light_off 

Automation 3: Schaltet die Lampe aus, sofern der Timer abgelaufen ist:

- alias: 'Wohnzimmer-Licht Timer aus'
  trigger:
  - platform: state
    entity_id: timer.livingrom_light_off 
    to: idle
  action:
  - service: light.turn_off
    data:
      entity_id: light.kamin_z2m

Zugegeben: Vorher hatte ich eine Automation, die die ZigBee-Lampe ein- und ausgeschaltet hat. Aber die Lampe wurde stupide nach 3 Minuten ausgeschaltet – egal, ob es lรคnger sinnvoll gewesen wรคre.

Dieser Beitrag ist Teil einer kleinen Beitrags-Serie rund um den hass.io Home Assistant.

6 Gedanken zu „Home Assistant Beleuchtung mit Timer richtig smart machen“

  1. Hm,
    nehmen wir mal an ich Bewege mich 3 Minuten in meiner Kรผche. Mein Hue Motion Sensor steht dann durchgรคngig auf Bewegung, sprich der Timer wird nur einmal am Anfang ausgelรถst, lรคuft nach 3 Minuten ab und das Licht geht aus, obwohl ich mich die ganze Zeit bewegeโ€ฆ

    Antworten
    • In einem solchen Szenario wรผrde ich die Automatisierung komplett anders aufbauen! Das Ziel ist ja dann eher: Schalte das Licht aus, wenn es fรผr X Minuten keine Bewegung gegeben hat. Also wรผrde ich als Trigger nehmen, dass der Bewegungsmelder fรผr diese X Minuten inaktiv gewesen sein muss und dann das Licht ausschalten.

      Antworten
  2. Kleiner Tipp: Du musst deiner ursprรผnglichen Automation lediglich ein mode: restart hinzufรผgen, damit sparst du dir die zwei zusรคtzlichen Automationen. mode: restart sorgt dafรผr, dass die Automation bei erneuter Bewegung wieder neu startet, der delay also wieder bei 3 Minuten anfรคngt. (https://www.home-assistant.io/docs/automation/modes/)

    – alias: ‚Wohnzimmer-Licht‘
    mode: restart
    trigger:
    – platform: state
    entity_id: binary_sensor.bewegungsmelder_wohnzimmer_z2m_occupancy
    to: ‚on‘
    condition:
    – condition: template
    value_template: „{{ states.sun.sun.attributes.elevation | int < 1 }}"
    – condition: state
    entity_id: light.kamin_z2m
    state: 'off'
    action:
    – service: light.turn_on
    data:
    entity_id: light.kamin_z2m
    – delay:
    minutes: 3
    – service: light.turn_off
    data:
    entity_id: light.kamin_z2m

    Antworten
    • Jein, da meine Automation ja eben nur greifen soll, wenn die Lampe zuvor nicht manuell eingeschaltet wurde. Somit dรผrfte ich hier mit einem Restart der Automation nicht den gewรผnschten Effekt erzielen, oder?

      Antworten
  3. Hi,

    ich bin mittlerweile wieder von Timern, die lรคnger als 10 Sekunden laufen, abgekommen.
    Irgendwie kam es regelmรครŸig zu Problemen, weil wรคhrend des Timers irgendwas mit HA „passiert“ ist und deshalb der Timer abgebrochen wurde.
    Ich lรถse alles mit Hilfsvariablen, die vom Bewegungsmelder immer wieder auf 1 oder 0 gesetzt werden.
    Jedes Mal, wenn der Bewegungsmelder Bewegung erkennt, dann Variable auf 1, wenn nicht mehr (fรผr bestimmte Zeit), dann auf 0 gesetzt.
    Wenn Variable auf 0 (fรผr bestimmte Zeit), dann Licht aus…..
    Das lรคuft bei mir sauberer.

    Antworten
    • Auch ein interessanter Ansatz! Letztlich benรถtigt man den runterzรคhlenden Timer in den meisten Fรคllen gar nicht, sondern es geht nur um den Zustand des Timers >0.

      Was mich auf die Idee bringt, es komplett ohne Hilfsvariablen und Timer zu machen: wenn es fรผr X Minuten keine Bewegung gegeben hat, schalte das Licht aus. Jede Bewegung innerhalb der x Minuten verlรคngert die Zeit ja somit auch wieder. Das werde ich auch einmal ausprobieren! ๐Ÿ™‚

      Antworten

Schreibe einen Kommentar