Ich habe jetzt Stundenlang Videos angesehen die immer nur
das selbe zeigen: Zeitschleifen oder Ein/Aus Themen.
Das hilft mir aber kein Stück weiter.
Bei mir läuft in der HomeMatic ein selbst erstelltes Zeitmodul
das ich gerne in HA übernehmen möchte.
Dort kann ich aus einer ganzen Liste, eine bestimmt Stunde
Auswählen und ist die Zeit da,
werde ich über meinen MP3 Player daran erinnert.
Die Auslösung im Progamm erfolgt über Webhook,
dann soll aber ERST zum Zeitpunkt z.b. 9:00,
der DANN Befehl erfolgen.
Klappt nicht, nach Auslösung läuft das ganze durch, egal wie spät es ist.
Ich habe schon etliches Ausprobiert auch Helfer, das letzte hier
hat auch keine Lust bis 9:00 zu warten.
alias: Timer um 09:00 Uhr Täglich
description: ""
triggers:
- trigger: webhook
allowed_methods:
- GET
local_only: true
webhook_id: "-BfYvsP-3dnpjNGVPmyHMZxpM"
conditions:
- condition: time
after: "08:59:00"
before: "09:00:00"
actions:
- action: rest_command.mp3_timer_ist_abgelaufen
data: {}
mode: single
Hallo und willkommen
Ich habe deine frage 1 zu 1 beim Gemini gestellt und das ist di Antwort
Das ist ein klassisches Szenario beim Umstieg von HomeMatic zu Home Assistant (HA). Während HomeMatic oft mit festen Zeitmodulen in Programmen arbeitet, nutzt Home Assistant dafür meist „Helper“ (Helfer) in Kombination mit einer Automatisierung.
Hier ist ein flexibler Weg, wie du das in Home Assistant nachbauen kannst, inklusive der Auswahlmöglichkeit für die Stunde.
1. Den „Helfer“ erstellen (Die Auswahl-Liste)
Zuerst erstellen wir eine Liste, in der du die Stunde auswählen kannst.
Gehe zu Einstellungen > Geräte & Dienste > Helfer.
Klicke auf Helfer erstellen > Dropdown.
Name: z. B. Erinnerung Stunde.
Optionen: Füge die Stunden hinzu (z. B. 08, 09, 10 … bis 22).
Speichere den Helfer. Er hat nun die Entität-ID input_select.erinnerung_stunde.
2. Die Automatisierung erstellen
Diese Automatisierung prüft jede volle Stunde, ob die aktuelle Zeit mit deiner Auswahl übereinstimmt.
service: media_player.play_media
target:
entity_id: media_player.dein_mp3_player # Hier deinen Player wählen
data:
media_content_id: „https://deine-ha-url.com/local/audio/erinnerung.mp3“
media_content_type: „music“
mode: single`
3. Alternative: Ein konkreter Zeit-Helfer (Eleganter)
Statt nur einer Liste für die Stunde könntest du auch einen Helfer vom Typ „Datum und/oder Uhrzeit“ anlegen.
Vorteil: Du kannst im Dashboard eine exakte Uhrzeit (z. B. 14:30) per Picker einstellen.
Trigger: In der Automatisierung wählst du dann einfach „Zeit“ und nutzt die Entität des Helfers als Auslöser. Das spart die Prüfung im Hintergrund.
4. Integration im Dashboard
Damit du die Zeit bequem umstellen kannst, fügst du den Helfer einfach zu deinem Dashboard hinzu:
Klicke auf Dashboard bearbeiten.
Füge eine Entitäten-Karte hinzu.
Wähle input_select.erinnerung_stunde.
Ein Tipp zu npm (da dies in deinen Notizen steht)
Da du erwähnt hast, dass du npm aktuell halten möchtest: Wenn du Home Assistant OS nutzt, werden Add-ons automatisch verwaltet. Solltest du HA in einem Docker-Container oder als Core-Installation nutzen, empfiehlt es sich, regelmäßige Updates via npm update in deiner Umgebung zu planen, wobei HA selbst meist unabhängig von globalen npm-Paketen läuft.
Soll ich dir zeigen, wie du die MP3-Datei korrekt in den „Media“-Ordner von Home Assistant hochlädst, damit der Player darauf zugreifen kann?
alias: "MP3 Erinnerung zur gewählten Stunde"
description: "Spielt eine Ansage, wenn die gewählte Stunde erreicht ist"
trigger:
- platform: time_pattern
minutes: "00" # Triggert immer zur vollen Stunde
condition:
- condition: template
value_template: "{{ now().strftime('%H') == states('input_select.erinnerung_stunde') }}"
action:
- service: media_player.play_media
target:
entity_id: media_player.dein_mp3_player # Hier deinen Player wählen
data:
media_content_id: "https://deine-ha-url.com/local/audio/erinnerung.mp3"
media_content_type: "music"
mode: single
Kannst du dein Problem vielleicht noch etwas genauer erklären?
Ich bin mir nicht sicher, was du erreichen möchtest.
Ein Webhook löst eine Automation aus und die wartet bis zu einer bestimmten Zeit (aus einem Input Helfer?) und löst dann aus? Oder kommt der Webhook zu der Zeit und die Automation soll nur checken, ob in diesem Moment die richtige Zeit ist?
Ich muss von ausserhalb HA auslösen, das mache ich schon lange bei allen ZigBee schaltern über Webhook.
Wenn dieser sagen wir um 10:00 Uhr ausgelöst wird dann soll er warten bis z.b. 12:00 Uhr und dann weiter laufen und den MP3 starten.
Ich habe das jetzt so in etwa hin bekommen für den 12 Uhr Stunden Auslöser.
.
alias: Timer um 12:00 Uhr Täglich
description: ""
triggers:
- trigger: webhook
allowed_methods:
- GET
local_only: true
webhook_id: "-Pr14-iXjWX7driyqw375PQ5x"
- trigger: time_pattern
minutes: "1"
enabled: true
conditions:
- condition: state
entity_id: input_select.auswahl_stunden
state:
- >-
15
- condition: time
after: "15:00:00"
actions:
- action: rest_command.mp3_timer_ist_abgelaufen
data: {}
mode: single
Deine Automation sieht ja momentan im Prinzip so aus: Wenn der Webhook empfangen wird, wird die Automation ausgelöst UND jede Minute auch.
Danach prüft sie, ob es 15 Uhr ist und führt dann ggf. die Automation durch.
Ich denke, du solltest an die Sache etwas anders rangehen:
Automation 1:
Wenn Webhook empfangen wird, dann einen Boolean-Helfer einschalten.
Automation 2:
Wenn aktuelle Uhrzeit ist die Uhrzeit auf die gewartet wird, dann in den Conditions prüfen, ob der Helfer angeschaltet ist (also ob auf den Timer gewartet wird) und dann den rest_command losschicken. Danach kannst du den Helfer wieder auf off schalten, damit er fürs nächste Mal bereit steht.
Der Trigger für Automation 2 wäre dann soetwas in der Art:
trigger: time
at: "{{states(select.Stunde)}}:00:00"
Ich habe gerade keine Zeit, dir ganze Automationen mit meinen oben genannten Denkanstößen zu geben, daher habe ich ChatGPT mit meinen oberen Gedanken gefüttert:
Automation 1:
Ich habe mit yaml erst dieses Jahr angefangen und ich bin auch kein Programmierer.
Die „Leichten“ Programme gingen ja über den normalen Editor.
Aber ich lerne gern dazu, falls ich nicht weiter komme, melde ich mich.
Ja, das mache ich schon.
Seit diese Hoch/Runter Verschiebe Pfeile nicht mehr im Rechten Menü des Editors sind, mit denen man einen Nachträglich Eingetragenen Befehl z.b. weiter nach oben schieben konnte.
Oder ich übersehe das Erfolgreich… grins
und die Automation löst bei erreichen der Zeit in dem Helfer aus:
triggers:
- trigger: time
at: input_datetime.startzeit_test
conditions: []
actions: []
ich denke, mit diesem Ansatz wird es leichter/schlanker und die meisten nötigen Dinge erledigt HA.
Und er ist flexibel, die Startzeit ist nicht auf volle Stunden begrenzt.
Falls es tatsächlich nur um Stunden geht, ließe sich der input_datetime Helfer über den input_select füllen.
Danke, das werde ich auch ablegen und mir ansehen!
Das sieht schon etwas leichter aus.
Das Script von MarzyHA hat mich doch etwas nervös gemacht.
Mal so als Info:
Das Timermodul läuft bei mir in der Homematic seit über 10 Jahren und war in einer Stunde fertig, mit Dashboard.
Variable als Werteliste und im Programm die Zeiten abgefangen und den Timer gesetzt, dann ausgelöst.
Irgendwo habe ich letztens geschrieben, HA wäre in der Ausführung der Programme viel Vielseitiger…
Ich muss mit mir nochmal ein Ernstes Wörtchen reden.