Hintergrund:
Ich setze in einer Automatisierung einen Helfer zu Anfang auf Now()+2Std 45Min. Im weiteren Verlauf soll die Differenz zwischen dem dann gültigen now() und dem Helfer ausgegeben werden.
So habe ich das im Template-Editor getestet:
Template-Editor
{% set b = now() + timedelta(hours=2, minutes=45) %}
b = {{ b }}
{% set a = (now() ) %}
a = {{ a }}
( Template Helfer „sm_gestartet“ ( = now() ) )
{% set f = states(‘sensor.sm_gestartet’) %}
f = {{ f }}
{% set c = b - a %}
c = {{ c }}
{{ c.total_seconds() % 86400 // 3600 }} Stunden
{{ c.total_seconds() % 3600 // 60 }} Minuten,
Ausgabe:
b = 2024-11-03 18:23:00.447487+01:00
a = 2024-11-03 15:38:00.447629+01:00
f = 2024-11-03 15:38:00.443675+01:00
c = 2:44:59.999698
2.0 Stunden
44.0 Minuten,
Problem:
Wenn ich nun in der obigen Subtraktion das „a“ durch „f“ ersetze, erhalte ich folgenden Fehler:
TypeError: unsupported operand type(s) for -: ‘datetime.datetime’ and ‘str’
Ich hatte den Helfer auch schon als „input-datetime“ definiert, aber das hat nichts gebracht.
Was muss ich tun, damit das funktioniert?