Wecker mit Vorlauf

Rat und Tat rings um Home Assistant Automationen.


Antworten
miami
Beiträge: 6
Registriert: Do 7. Sep 2023, 23:17
Has thanked: 1 time

Wecker mit Vorlauf

Beitrag von miami »

Hallo,

ich habe mir einen einfachen Wecker gebastelt, der aktuell den Rollladen hochfährt:

Code: Alles auswählen

alias: Wecker_Test
description: ""
trigger:
  - platform: time
    at: input_datetime.wecker
condition: []
action:
  - service: cover.open_cover
    data: {}
    target:
      entity_id: cover.40xxxx
mode: single

Die Weckzeit ist in einem Helfer gespeichert, dessen Eigenschaften sind:

Weckzeit.png
Weckzeit.png (42.17 KiB) 155 mal betrachtet

 
Nun will ich noch 30 min vor der Weckzeit die Heizung anschalten. Wie kann ich das realisieren?
 
Gebe ich unter Entwicklerwerkzeuge>Vorlage {{states('input_datetime.wecker') }} ein, wird mir 07:00:00 und Ergebnistyp: string angezeigt.
Habe dort mal {{states('input_datetime.wecker') - 00:30:00 }} und {{states('input_datetime.wecker' - 00:30:00) }} probiert, aber beides liefert nur einen Fehler. Wie errechne die 30min frühere Zeit?

Benutzeravatar
Osorkon
Administrator
Beiträge: 1953
Registriert: Sa 17. Jul 2021, 16:53
2
Wohnort: Langenargen
Has thanked: 61 times
Been thanked: 530 times
Kontaktdaten:

Re: Wecker mit Vorlauf

Beitrag von Osorkon »

Quick and Dirty, als Template Trigger

Code: Alles auswählen

  - platform: template
    value_template: |
      {{ (state_attr('input_datetime.wecker', 'timestamp') - 60*30) |
      timestamp_custom('%H:%M',false) == as_timestamp(now() ) |
      timestamp_custom('%H:%M') }}

Code: Alles auswählen

state_attr('input_datetime.wecker', 'timestamp')

liefert den Timestamp in Sekunden.

Code: Alles auswählen

- 60*30

davon ziehe wir 30 min ab

Code: Alles auswählen

| timestamp_custom('%H:%M',false) 

Das ganze in die Form HH:MM formatiert.

Code: Alles auswählen

== as_timestamp(now() ) | timestamp_custom('%H:%M')

Das ganze wird mit der aktuellen Uhrzeit verglichen.

Wenn Weckzeit -30min enspricht der aktuellen Uhrzeit, liefert das Template true und löst die Automatisierung aus.

Gruß
Osorkon

Einer muss ja für Ordnung sorgen. :D
miami
Beiträge: 6
Registriert: Do 7. Sep 2023, 23:17
Has thanked: 1 time

Re: Wecker mit Vorlauf

Beitrag von miami »

Vielen Dank für den Code!
Der visuelle Editor zerhaute mir zunächst immer die Trigger-Bedingung, nach den Wechsel zu "in YAML bearbeiten" ging es dann.
Ich habe erstmal nur Benachrichtigungen und eine Minute Vorlauf verwendet. So sieht es nun aus:

Code: Alles auswählen

alias: Wecker-Test
description: ""
trigger:
  - platform: template
    value_template: >-
      {{ (state_attr('input_datetime.wecker', 'timestamp') - 60*1) |
      timestamp_custom('%H:%M',false) == as_timestamp(now() ) |
      timestamp_custom('%H:%M') }}
condition: []
action:
  - service: persistent_notification.create
    data:
      message: Trigger hat ausgelöst, Heizung einschalten, Wecken in 1 min
  - delay:
      hours: 0
      minutes: 1
      seconds: 0
      milliseconds: 0
  - service: persistent_notification.create
    data:
      message: Wecker läutet jetzt
mode: single

Nochmal herzlichen Dank für die Hilfe.
:D

Antworten