ich habe ein kleines Problem und finde momentan noch keine richtige lösung…
Undzwar habe ich mir einen Countdown aus dem Internet gezogen, siehe Code:
- trigger:
- platform: time_pattern
Minute: '/1'
sensor:
- name: Countdown_1
state: >
{% set end = state_attr('timer.timer_1', 'finishes_at') %}
{% if end is not none %}
{{ end | as_datetime - now().replace(microsecond=0) }}
{% else %}
No Timer
{% endif %}
dieser gibt mir jedoch die Zeit in HH:MM:SS aus. Ich würde aber gerne nur die Minuten auslesen. Nach langer Zeit auf der suche nach der richtigen Lösung bin ich leider auf keinen grünen Zweig gekommen. Hat jemand eventuell eine Idee wie ich das hin bekomme?
ansonsten vielleicht mal mit
{{ end | as_datetime | timestamp_custom (“%M”) }}
weiss gar nicht ob man ds as_datetime nochmals braucht ist ja schon in deinem Template.
Ja hatte ich schon gelesen, bin aber daraus nicht schlauer geworden.
Dein vorschlag hat leider auch nicht so ganz geholfen.
Ich will ja eigenltich nur die entität Countdown_1 Auslesen und dabei nur auf die Minuten schauen bzw. die Minuten ausgeben. Gibt es da nicht evtl. einen Befehl?
Mit Zeiten arbeite ich auch immer ungern.
Hab aber einen lustigen Weg gefunden wie man es machen könnte, aber das ist schon sehr böse hingrfrickelt, was aber zeigt, es geht immer alles auch wenn es so nicht sinnvoll ist.
(copy & paste in Entwicklerwerkzeuge>Template)
{% set t = state_attr('timer.timer_1', 'finishes_at') | as_datetime - now().replace(microsecond=0) %}
datetime Wert: {{t}}, da er nicht scriptable ist machen wir einen String draus
{% set s = t | string %}
String : {{ s }} und davon behalten wir die 2 in der Mitte
{% set x = s[-5:-3] %}
Substring : {{ x }}
der nimmt die letzten 5 Stellen vom HH:MM:SS String also MM:SS und dann schnippelt er davon :SS ab, übrig bleiben die Minuten
Wenn du das in Entwicklerwerkzeuge>Template reinkopierst bekommst du ja angezeigt was passiert, und kannst die Zahlen dort ändern, dann siehst du was da passiert.
Wenn du das Ergebnis als Zahl und nicht als String brauchst musst du am Ende halt {% set x = s[-5:-3] | int %}
benutzen, dann bekommst du bei 1-stelligen Minuten halt auch nur 1,2,3, … und nicht 01,02,03, …
Erklärung:
Du nimmst die Differenz vom Timer und now() in Sekunden und weil du Minuten willst halt “// 60” also Ganzzahliges Teilen, und weil er dir dann immer noch die Minuten in xxx.0 anzeigt alles in eine Klammer mit einem " | int" damit es ne Ganzzahl wird.