Automatisierung x-Minuten vor Wecker starten

Hallo zusammen. Ich probiere schon seid Tagen eine Automation zu erstelle, die x-Minuten vor einem definierten Wecker starten soll, bekomme es aber nicht hin. Vielleicht hab ihr ja eine Idee?

Was habe ich vor?

Ich übermittle mittels “Kurzbefehle” einen eingestellten Wecker (die Zeiten variieren täglich) von meinem iPhone zu HA. Hierzu erhält ein Helfer per “Input.datetime” die eingestellte Zeit. Soweit so gut…

Jetzt möchte ich aber, dass eine Automation z.B. 10 Minuten vor diesem Wecker startet. Ich kann zwar Automationen per “Time Trigger” oder “Zustandsänderung” auslösen, aber mir fehlt die Option den Auslöser zeitlich vor der eingestellten Zeit zu setzten.

Vielen Dank für eure Hilfe!

Herzlich Willkommen hier im Forum.

Versuch mal als Auslöser Template mit folgendem Wert

{{(((state_attr('input_datetime.xyz' , 'timestamp')) - 600) | timestamp_custom('%H:%M', true))}}

Die 600 sind Sekunden, also umgerechnet 10 Minuten.
input_datetime.xyz musst du natürlich noch umbenennen.

statt “Input_datetime.xyz” wird doch die Entität-ID meines Helfers angegeben, oder?

Ich habe es jetzt folgendermaßen getestet:

  1. Auslöser “Template” wie von dir angegeben
  2. Auslöser “Zeitraster” (alle 10 Sek.) mit der Bedingung wie von dir angegeben

Bei beiden Versionen wird leider nichts ausgelöst…

Auslöser und Bedingung? Ich bin durcheinander. Als Bedingung eignet sich der Code nicht. Bin jetzt unterwegs, schaue aber später noch mal.

Klasse, besten Dank!

Weiter oben habe ich nur beschrieben, dass ich zwei verschiedene Versionen probiert habe.
Einmal als Auslöser, und einmal als Bedingung. Ich weiß nur nicht, wieso nicht ausgelöst worden ist… Wenn du noch Infos von mir benötigst, einfach bescheid geben!

Geh mal unter Entwicklerwerkzeuge - Vorlage und füge folgendes ein

{{ now().timestamp() | timestamp_custom('%H:%M:%S')}}
{{ state_attr('input_datetime.xyz', 'timestamp') | timestamp_custom('%H:%M:%S') }}

Poste dann mal die Ausgabe hier.

Edit:
wenn beide Zeiten stimmen, könntest du als Auslöser folgendes versuchen

{{ now().timestamp() | timestamp_custom('%H:%M:%S') == ((state_attr('input_datetime.xyz', 'timestamp')) - 600) | timestamp_custom('%H:%M:%S') }}

Ich hatte mir vor ein paar Monaten auch mal so einen Auslöser gebastelt:

{% set alarm_time = as_timestamp(states('sensor.sm_g780g_next_alarm')) %}
{% set time_now = as_timestamp(now()) %}
{{ time_now >= alarm_time - 600 }}

Ich habe die beiden Zeilen im Template Editor eingetragen. Die erste angegebene Zeit (18:13) passt, die zweite Zeit (10:00) passt nicht. Mein Timer ist im Helfer auf 9:00 eingestellt.

Versuch mal das

{{ now().timestamp() | timestamp_custom('%H:%M:%S')}}
{{ state_attr('input_datetime.xyz', 'timestamp') | timestamp_custom('%H:%M:%S', false) }}

Ja, jetzt passen die Zeiten!

wenn das passt dann
{{ now().timestamp() | timestamp_custom('%H:%M:%S') == ((state_attr('input_datetime.xyz', 'timestamp')) - 600) | timestamp_custom('%H:%M:%S', false) }}
als Auslöser

Ich glaube es funktioniert! :grinning: :clap:
Vielen lieben Dank für deine Hilfe! So macht das Spaß :smile:

Jetzt kann ich die nächsten Schritte der Automatisierung angehen :+1:

Noch ein Nachtrag für alle iPhone User die Ihren Wecker ebenfalls an HA übertragen möchten:

Ich habe mich an dieser Anleitung orientiert. Klappt wunderbar mit iOS17.

Hallo zusammen,
ich benötige zu diesem Thema nochmal euer Wissen :slight_smile:

Die Programmierung “Auslösen 10 Minuten vor einem definierten Wecker” funktioniert sehr gut.

Leider habe ich nun das Problem, dass wenn ich auf meinem Telefon keinen Wecker stelle, die in HA übermittelte Zeit einfach unverändert bleibt. Im schlimmsten Fall also jeden Tag ausgelöst wird.

Ich habe jedoch die Möglichkeit nicht nur die Zeit des Weckers an HA zu übermitteln, sondern auch das Datum für wann der Wecker gestellt worden ist.

Habt ihr eine Idee, wie ich jetzt (beim Auslöser) abfragen kann ob das HA System-Datum identisch mit dem gestellten Weckerdatum ist? (wenn beide Daten nicht gleich sind, soll auch nicht ausgelöst werden).

Oder ist es vielleicht sinnvoller, die Datumsabfrage als nicht als Auslöser sondern als Bedingung abzufragen?

Besten Dank

Woher kommt denn jetzt die Uhrzeit in HA für deinen Wecker? Ist das noch der selbst angelegte Helper? Wenn ja, wie oft bzw. wann wird diese Zeit aktualisiert? Kannst du in den Helfer über den Kurzbefehl nicht auch das Datum hinterlegen?

Wenn du Datum und Zeit hast, könntest du dir die Lösung von @maxe mal ansehen

{{ as_timestamp(now()) >= as_timestamp(states('input_datetime.xyz')) - 600 }}
1 „Gefällt mir“

Die Uhrzeit für den Wecker wird an einen Helfer übertragen. Vorhandene Informationen sind nun Datum (an welchem Datum der Wecker starten soll) und die Uhrzeit.

Als Auslöser habe ich aktuell folgendes angegeben:

Wenn ich jetzt stattdessen “{{ as_timestamp(now()) >= as_timestamp(states(‘input_datetime.xyz’)) - 600 }}” verwende, dann wird nicht nur die Uhrzeit sondern auch das Ist- mit dem Soll-Datum aus dem Helfer verglichen? Verstehe ich das richtig?

Es wird verglichen ob JETZT >= Datum und Uhrzeit des Helfers minus 10 Min.
Und da es ein Auslöser werden soll, löst der nur das erste Mal aus, wenn dieser Zustand eintrifft.

Also wenn ich diesen Ausdruck ({{ as_timestamp(now()) >= as_timestamp(states(‘input_datetime.xyz’)) - 600 }}) als Auslöser verwende, ist das Ergebnis “True”, obwohl das gestrige Datum angegeben ist.

Daraufhin habe ich verschiedene Szenarien getestet:

  1. Datum gestern / Uhrzeit ok → Ergebnis “True”

  2. Datum gestern / Uhrzeit nicht ok → Ergebnis “True”

  3. Datum heute / Uhrzeit ok → Ergebnis “True”

  4. Datum heute / Uhrzeit nicht ok → Ergebnis “False”

  5. Datum morgen / Uhrzeit ok → Ergebnis “False”

  6. Datum morgen / Uhrzeit nicht ok → Ergebnis “False”

Für meine Anwendung müssen o.g. 1. & 2. aber als Ergebnis auch “False” ausgeben, da ansonsten die Wecker aus der Vergangenheit verwendet werden. :thinking:

True stimmt, wenn du es als Bedingung nehmen würdest. Wenn dich das aber stört, versuche == anstatt >=.

Geht das dann nicht direkt von der ursprünglichen Quelle, anstatt es über den Umweg “Helper” zu machen?

Wenn ich == versuche, dann ist das Ergebnis komischer Weise immer “False”

Den Helper benötige ich um den Wecker vom iPhone zu HA zu übertragen. Eine andere Lösung habe ich noch nicht gefunden. Und dann soll das Ereignis (am Weckerdatum) 10 Minuten früher beginnen :slight_smile: