Seite 1 von 1
Wecker mit Vorlauf
Verfasst: Mo 18. Sep 2023, 13:19
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 (42.17 KiB) 512 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?
Re: Wecker mit Vorlauf
Verfasst: Mo 18. Sep 2023, 14:52
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') }}
liefert den Timestamp in Sekunden.
davon ziehe wir 30 min ab
Das ganze in die Form HH:MM formatiert.
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
Re: Wecker mit Vorlauf
Verfasst: Mo 18. Sep 2023, 20:45
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.
