Liebe SmartHome for Dummies Gemeinde.

Die phpBB Forum Software gehört nicht wirklich zu den modernsten seiner Art.
Ich habe mich an einer Migration zu Discourse versucht und bin leider kläglich gescheitert.

Möchte aber trotzdem einen Neuanfang auf einer modernen Plattform starten.
Gerne möchte ich Euch animieren das neue Discourse Forum zu benutzen.
Bestehenden Usern bleibt es leider nicht erspart, sich auf der neuen Platform neu anzumelden.

Das Forum hier, bleibt selbstverständlich Online. Ich würde versuchen einiges händisch zu migrieren.
Da fallen mir die Rubriken "Template Sammlungen" oder "Best Practice Automatisierungen" ein.

SmartHome for Dummies Discourse Platform.

Wecker mit Vorlauf

Rat und Tat rings um Home Assistant Automationen.


Antworten
miami
Beiträge: 14
Registriert: Do 7. Sep 2023, 23:17
1
Has thanked: 1 time
Been 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) 475 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: 2105
Registriert: Sa 17. Jul 2021, 16:53
3
Wohnort: Langenargen
Has thanked: 63 times
Been thanked: 580 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: 14
Registriert: Do 7. Sep 2023, 23:17
1
Has thanked: 1 time
Been 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