Ich bin noch ein Frischling in HomeAssistant, das vorab
Gerne möchte ich in dem Zeitraum von 18:00h bis 22:00h eine Automatisierung zufällig ausführen und das nicht nur einmal, sondern immer wieder zu unterschiedlichen Zeiten.
Ziel war es so eine Lichtautomatisierung zu Halloween auszuführen. Brauche kein fertiges Beispiel, sondern hätte gerne Inputs wie ihr das angehen würdet. Vor allem das mit der Random Zeit.
Ich würde auch wie @sirector mit random arbeiten aber als Template trigger
{{ range(0, 10) | random == 5 }}
da Template Trigger nur 1x pro Minute gecheckt werden hast du jede Minute die Chance von 1/10 das getriggert wird. (kann ja auch angepasst werden)
Und als Bedingung würde ich die Zeit nach 18:00 und vor 22:00 Stellen.
aber woher kommt der Auslöser? im range von 0-10 wird ausgeführt, wenn der range = 5 ist. richtig verstanden? muss ich den modus der automatisierung dann auf “neu starten” stellen?
Hmm irgendwie Funktioniert das bei mir selber grad nicht, kann man die random Funktion nicht im Template Trigger nutzen? oO
In den Entwicklerwerkzeugen funktioniert es… da zeig er false und true an… währe wohl zu schön gewesen.
Edit:
ich habe das gefunden:
bei Delay scheint random zu funktionieren.
also könnte man mit einem Timepattern von 1min Arbeiten und dan ein random Delay einbauen
alias: Test Random Trigger
description: ""
trigger:
- platform: time_pattern
minutes: /1
condition:
- condition: time
after: "18:00:00"
before: "22:00:00"
enabled: true
action:
- delay: 00:{{ (range(1, 30)|random|int) }}:00
hier ist die zeit grad zwischen 1-30min.
So funktioniert es auch bei mir extra nochmal getestet.
I think, its very kompliziert. Der Teil mit dem Delay geht nicht in meinen Kopf.
Es wird jede Minute geprüft, ob es zwischen 18-22Uhr ist, dann eine random Delay zwischen 1 und 30 minuten generiert. Wird dann (z.B. wenn delay 4 min ist) die 4 “gespeichert” und dann nach 4 minuten ausgeführt? was passiert wenn nach der 1 Minuten Prüfung der Wert 2 ist?
Wenn deine Automation in mode: single Arbeitet kann sie nur einmal laufen.
Heißt wenn der Delay läuft, wird solange nicht neu ausgelöst.
Edit:
bedeutet aber auch das die Automation rein theoretisch nach 22Uhr ausgeführt werden kann.
Startet um 21:59 kommt damit noch zwischen den Uhrzeiten durch und danach starte erst der delay.
Kann man noch fixen dafür bin ich aber grad zu müde.
Auf die Schnelle …
Eine zweite Automation, die die erste Automation erst um 18 Uhr startet und um 22 Uhr wieder beendet (Dienst ausführen: automation.turn_off/turn_on). Damit sind auch die Delay beendet.
Könnte klappen. Der Vorteil einer zweiten Automation wäre, dass das time_pattern nicht den ganzen Tag getriggert wird. Ansonsten klappt auch das, habe es getestet