ich brauche mal eure Hilfe. Ich habe trotz umfangreicher Forum sowie Youtube Recherche mein Problem leider nicht lösen können:
Ich möchte mir über eine Template Karte eine entsprechende Uhrzeit anzeigen lassen. Hierbei soll geprüft werden, ob ein Schalter aktiv ist und dann soll er mir je nach Uhrzeit, die Zeit anzeigen, welche als nächstes kommt.
Zeit 1: Sonnenaufgang + 30 Minuten
Zeit 2: 08:00 Uhr
Warum immer alle mit solch gewaltigen endloszeilen arbeiten wollen bei denen man nicht mal einfach lesen kann was welchen Wert hat und was ich am Ende mit was vergleiche.
Der Fehler liegt darin das du versuchst einen timestamp wert mit einem custom wert mittels > oder < zu vergleichen was ja nun nicht funktionieren kann
Kopier die Zeile in Entwicklerwerkzeuge>Template
und ersetz in dem “IF” Konstrukt mal t2 durch t3
{% set t1 = as_timestamp(state_attr("sun.sun","next_rising")) + 1800 %}{{ t1 }}
{% set t2 = (as_timestamp("2025-02-15T07:00:00+00:00")) | timestamp_custom("%H:%M") %}{{ t2 }}
{% set t3 = as_timestamp("2025-02-15T07:00:00+00:00") %}{{ t3 }}
{% if (t1 < t2) %}
{{ t1 | timestamp_custom("%H:%M") }}
{% else %}
{{ t2 | timestamp_custom("%H:%M") }}
{% endif %}
Du meinst den absichtlich eingebauten damit der Kollege selbst sehen kann warum es nicht geht. Ja der ist da drin.
Es ist auch absichtlich keine fertige Lösung sondern als Lernhilfe/Hinweis gedacht, warum es so nicht ging und wo der Fehler lag.
deshalb ja auch t2 und t3
1x das was @DeToX probiert hat
1x das was richtig wäre
Und ja ich muss mich mittlerweile auch immer selbst kneifen das ich meinem Vorsatz für 2025 treu bleibe nie wieder komplett fertige Lösungen zu posten, weil das Niveau hier deutlich sinkt und die Menge an “hoffentlich schreibt mir einer ne fertige Lösung” zunimmt. Aber der Punkt gehört definitiv eher in die Rubrik “was nervt” oder wie der Thread hiess.
PS: wenn ich nicht letztens über einen Post eines @RobertoCravallo 's gestolpert wäre in der er genau das selbst beklagt, das Leute irgendwie nicht mehr gewillt sind selbst zu denken oder die KI bemühen, müsste ich jetzt nicht mal schmunzeln.
Wo du Recht hast hast du Recht, unglücklich formuliert so zwischen mal schnell was getippt auf dem Weg zum Essen.
Ich hätte schreiben müssen das man Strings nicht mit < oder > vergleichen kann.
als Ergebnis liefert ist halt das Hauptproblem mal abgesehen von den syntaxfehlern die sich in der Regel daraus ergeben das Leute 200 Zeichen lange Spaghetticodes basteln.
Aber du hast ja die Lösung gepostet ich hoffe nur für @DeTox das er es nicht nur kopiert sondern versucht zu verstehen warum es nicht ging.
Und klar kann man damit rechnen wenn man die }} {{ entfernt aber es ist trotzdem nicht sonderlich clever.
Und @DeTox, sowas ist mir früher auch genau so passiert, denn es ist ja logisch das 7:30 halt kleiner als 8:00 ist …das kann man ohne groß drüber nachzudenken im Kopf. Denkt man. Es ist aber gar nicht kleiner es ist nur früher.
vielen Dank für das ganze Feedback. Natürlich möchte ich auch die Lösung verstehen und künftig ohne Hilfe umsetzen. Mir hat das Thema aber nochmal deutlich gezeigt, dass ich noch am Anfang stehe und noch einiges lernen muss.
Die beiden Lösungen funktionieren grundsätzlich. Ich habe aber auch festgestellt, dass er nicht nur die Uhrzeit vergleicht, sondern auch das dahinterstehende Datum. Dementsprechend vergleicht er in meinem Beispiel immer den 15.02.2025. Ich habe das Problem aber mit einem Zeitpunkt Helfer gelöst. Die Kombination mit den Formeln sowie meinen Anpassungen funktionieren auf jeden Fall.
Danke nochmal für die Unterstützung.
PS: Ich persönlich finde die Lösung mit „set“ eleganter und werde meine künftigen Codes entsprechend aufbauen. Ich hoffe, dass sie dadurch kleiner und nachvollziehbarer werden
Wenn du das Datum nicht fest verdrahten möchtest, sondern immer den Timestamp “heute” 8:00 Uhr für den Vergleich nutzen möchtest, dann sollte dieses so möglich sein. (die Wandlung in den Uhrzeitstring benötigst du eigentlich nicht, da du die Timestamps direkt vergleichen könntest)
Die Idee (wie dein Vorschlag) hatte ich auch erst, jedoch ist hier das Problem, dass sich das Datum automatisch anpassen muss. Das habe ich mit einer Automation gemacht, welche das Datum automatisch bei Änderung von “sun.sun’, 'next_rising” ändert.
Wenn ich um 6 Uhr teste, vergleiche ich
22.02.2025 07:45 mit 22.02.2025 08:00 Uhr ← passt
Wenn ich um 9 Uhr teste, vergleiche ich
23.02.2025 07:45 (da nächster Sonnenaufgang) mit 22.02.2025 08:00 Uhr ← falsch
Meine grundsätzliche Automation ist, dass die Rollläden zum Sonnenaufgang aufgehen, jedoch frühstens 08:00 Uhr morgens.
Über das Template wollte ich mir eigentlich nur die entsprechende Zeit anzeigen lassen, wann die Automation startet.
Dementsprechend soll er auch den nächsten Sonnenaufgang (23.02.2025 / 07:45) mit der Zeit 8 Uhr vergleichen. Der 8 Uhr Zeitpunkt muss sich entsprechend am nächsten Sonnenaufgang anpassen.