Hallo,
stehe etwas auf dem Schlauch. Habe seit kurzem ein Aquarium, welches gegen 20 Uhr das Licht ausschalten soll. Wie bekomme ich es hin das auch das Licht aus geht wenn HA mal einen Neustart gemacht hat? Die Automation bricht doch dann ab und es würde die ganze Nacht beleuchtet bleiben.
Das wäre ja ein Zufall, wenn genau um 20 Uhr HA neu startet. Dann mach doch 2 Trigger
20:00
20:05
Das kommt drauf an wie Du Deine Automatisierung aufbaust.
Wenn diese lautet, um 8 Uhr einschalten 12 warten und dann ausschalten. Dann ist die Wahrscheinlichkeit sehr groß, dass nach 20 Uhr das Licht anbleibt.
Entweder mit eindeutigen Auslösern arbeiten.
8 Uhr → einschalten
20 Uhr → ausschalten
Oder mit einem Timer arbeiten
Wenn 8 Uhr → Licht einschalten und Timer mit 12 Stunden starten
Wenn Timer abgelaufen → Licht ausschalten.
Ein Timer läuft nach Home Assistant Neustart weiter. Und selbst wenn Home Assistant genau zu dem Zeitpunkt neu startet wenn der Timer abläuft, wir bei einem Neustart von Home Assistant die Automatisierung zum ausschalten trotzdem ausgeführt, dann eben mit einer kleinen Verzögerung.
Gruß
Osorkon
Ahhhh jetzt! Okay wenn ich einen Helfer als Timer erstelle und diesen als Auslöser verwende wird nach dem Neustart alles weiter ausgeführt?
Wenn die Automatisierung lautet:
8 Uhr → einschalten
20 Uhr → ausschalten
Dann kann Home Assistant hundert mal zwischen 8:01 und 19:59 neu starten.
Die Automatisierung wird ja um 8 und 20 Uhr ausgeführt. Du darfst nur keine Stunden langen Verzögerung in der Automatisierung einbauen. In dem Fall wird die Automatisierung bei einem Home Assistant Neustart abgebrochen.
Ein Timer wäre nur notwendig, um einen Neustart genau kurz vor 20 Uhr abzufangen.
Den den Auslöser, Timer wechselt in den Zustand idle, würde die Automatisierung auslösen, wenn Home Assistant wieder hochgefahren ist. Wenn der Neustart erfolgte bevor der Timer abgelaufen ist.
Gruß
Osorkon
Man kann auch mittels
trigger: homeassistant
event: start
eine Automation starten, wenn HA neugestartet wurde. Kann man ja als zusätzlichen Trigger einbauen. In den Action zum Ausschalten dann eine zusätzliche Bedingung mit der Zeit:
if:
- condition: time
after: "20:00:00"
then:
- action: light.turn_off
metadata: {}
data: {}
target:
entity_id: ENTITÄTSNAME
Dann wird nach einem Neustart die Automation gestartet und sollte es nach 20 Uhr sein, die Lampe ausgeschaltet. Viele verschiedene Wege führen nach Rom
Werde berichten ob es geklappt hat, danke für die schnelle Hilfe
Stimmt so leider nicht. Das ist der einzige Fall, der den Timer außer Kraft setzt. Das haben sie bis heute nicht gelöst.
Da sagt die Doku aber was anders.
Fired when a timer has completed and includes finished_at
date/time in event data. finished_at
should usually be now, or within the last several seconds, but if the restore
property is true, finished_at
may be further in the past since this event will fire on startup for any timers that would have ended while Home Assistant was stopped.
Wobei Du recht hast, nicht der Zustand, sondern das Event timer.finished
muss verwendet werden.
Gruß
Osorkon
Stimmt, in dem Textabschnitt sieht es tatsächlich danach aus. Aber oben auf der Seite steht nach wie vor:
Timers will be restored to their correct state and time on Home Assistant startup and restarts when configured with the restore
option. However, automations using the timer.finished
event will not trigger if the timer expires when Home Assistant is not running
Ich hab es auch ausprobiert, es funktioniert nicht.