Vielleicht könnt Ihr mir helfen, ich kriege es einfach nicht hin:
Ich möchte die Zeitdauer zwischen zwei Events berechnen und anzeigen.
Beide Events liefern die Zeit als
time_fired: “2025-01-22T13:47:02.447185+00:00”
Es soll nun Event-Zeit 2 (später) - Event-Zeit 1 (früher) ausgerechnet und als Stunden Minuten ausgegeben werden.
Ich habe es schon mit einem Sensor in der configuration.yaml probiert, aber entweder zeig der Sensor “Nicht verfügbar” oder “Unbekannt” an. Beide Events lösen aus, das habe ich probiert…
{# Wandelt 2 Zeiten Strings in Sekunden, ermittelt die Differenz und wandelt zurück in Zeit String#}
{% set mytime_str1 = '2025-01-22T13:47:02.447185+00:00' %}
{% set mytime_str2 = '2025-01-22T14:57:02.447185+00:00' %}
{% set mytime_diff_sec = as_timestamp(mytime_str2) - as_timestamp(mytime_str1) %}
{{ mytime_diff_sec | timestamp_custom('%H h %M min %S sec', false) }}
Ja, das funktioniert. Allerdings erst, nachdem ich sie Zeit des ersten und des zweiten Events, jeweils beim Feuern, in Variablen gespeichert habe. Die werden dann so berechnet:
- id: berechne_flugzeit
alias: Flightradar -Berechne Flugzeit
description: berechnet die tatsächliche Flugzeit aus den beiden Events für Start
und Landung
trigger:
- platform: event
event_type: flightradar24_tracked_landed
condition:
- condition: template
value_template: '{{ states(''var.start_zeit'') is defined and states(''var.lande_zeit'')
is defined }}'
action:
- service: input_text.set_value
data:
entity_id: input_text.flugzeit
value: '{% set start = as_timestamp(states(''var.start_zeit'')) %} {% set end
= as_timestamp(states(''var.lande_zeit'')) %} {{ (as_timestamp(states(''var.lande_zeit''))
- as_timestamp(states(''var.start_zeit''))) | timestamp_custom(''%H Stunden
und %M Minuten'') }}
'
mode: single