Hilfe bei Automation – Unterschrankbeleuchtung mit Handy-Wecker steuern

Hallo zusammen,

ich bin noch relativ neu in der Home Assistant-Welt, aber langsam komme ich rein – dank der Community! :slight_smile:

Mein Ziel:
Wenn ich zu Hause bin und mein Handy-Wecker auf 4:10 Uhr gestellt ist, soll automatisch um 4:15 Uhr die Unterschrankbeleuchtung in der Küche eingeschaltet werden.

Ich nutze ein Android-Gerät mit der Companion App. Dadurch steht mir der Sensor sensor.sm_s928b_next_alarm zur Verfügung.
Folgende Automation habe ich dafür erstellt – sie funktioniert leider nicht, und ich komme nicht weiter:

alias: Küche - Unterschrank
description: ""
trigger:
  - at: "04:09:00"
    platform: time
condition:
  - condition: time
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
      - sat
  - condition: zone
    entity_id: person.dennis_XXXXX
    zone: zone.home
  - condition: template
    value_template: >
      {% set t = states('sensor.sm_s928b_next_alarm')[11:16] %}
      {{ t >= '04:09' and t <= '04:11' }}
action:
  - delay: "00:05:00"
  - service: switch.turn_on
    target:
      entity_id: switch.plus1_kuche
mode: single

Was ich erreichen möchte:
Um 4:09 Uhr prüfen:

  • Bin ich zu Hause?
  • ist der Handy-Wecker auf 4:10 Uhr gestellt?

Wenn ja → 5 Minuten warten → dann Licht einschalten.

Hat jemand eine Idee, wo der Fehler steckt? Oder wie ich das ggf. besser lösen kann?

Vielen Dank schon mal und viele Grüße
Dennis

Was wird angezeigt, wenn du den folgenden Code unter „Entwicklerwerkzeuge” > „Template” eingibst? 04:10?

{{ states('sensor.sm_s928b_next_alarm')[11:16] }}

Sonst probiere es mit dem Code.

{{ (states('sensor.sm_s928b_next_alarm') | today_at ).strftime('%H:%M') }}

Anderer Ansatz:


triggers:
  - trigger: time
    at: sensor.sm_s928b_next_alarm
conditions:
  - condition: state
    state: home
    entity_id: person.dennis_XXXX
  - condition: usw.
actions:
  - delay: 300 # reine Faulheit meinerseits
  - action: switch.turn_on
    usw.

EDIT:

Eventuell funktioniert auch:

triggers:
  - trigger: time
    at:
      entity_id: sensor.sm_s928b_next_alarm
      offset: 300

und dann delay weglassen.

Es kommt folgende Ausgabe


da der nächste Wecker auf 20 Uhr steht, passt es.

Werde es später mit {{ (states('sensor.sm_s928b_next_alarm') | today_at ).strftime('%H:%M') }} versuchen.

werde ich ausprobieren

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Das brauchst du nicht, dein String kommt, wie er sein muss.
Den Vergleich vielleicht so ausprobieren.

{{ ‘04:09’ <= t <= ‘04:11’ }}

Oder den Vorschlag von Kitty testen.

Hallo und sorry für die späte Antwort von mir.

Nach einigem Testen habe ich die Steuerung nun am laufen. Ursache war der “next_alarm”.

alias: Küche - Unterschrankbeleuchtung nach Handywecker
description: >
  Schaltet das Licht 5 Minuten nach dem Handywecker ein, wenn ich zu Hause bin
  und der Wecker auf 04:10 Uhr gestellt wurde (Mo–Sa).
triggers:
  - trigger: time
    at: "04:09:00"
conditions:
  - condition: template
    alias: Wecker ist gesetzt auf 04:10 lokaler Zeit
    value_template: >
      {% set alarm = states('sensor.sm_s928b_next_alarm') %} {% if alarm not in
      ['unknown', '', None] %}
        {{ as_timestamp(alarm) | timestamp_custom('%H:%M') == '04:10' }}
      {% else %}
        false
      {% endif %}
  - condition: time
    alias: Nur Montag bis Samstag
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
      - sat
  - condition: zone
    alias: Ich bin zuhause
    entity_id: person.dennis_XXX
    zone: zone.home
actions:
  - delay:
      minutes: 5
  - target:
      entity_id: switch.plus1_kuche
    action: switch.turn_on
    data: {}
mode: single