klasse, du kommst vorwärts! 
das ist allerdings nicht mein Beispiel, sondern ein Auszug aus der Doku 
da ich das selbst auch noch nicht implementiert habe, habe ich mal die KI gefragt:
Prompt
die typischen weather integrationen stellen einen stündlichen und täglichen forecast zur Verfügung. Ich möchte nun für die nächsten 5 Tage template sensoren erstellen, die die min und max Temperaturen je Tag bereitstellen. Wie sehen die templates aus?
Antwort
Sehr gute Frage
– genau das lässt sich mit den neuen Template-Sensoren in Home Assistant elegant lösen.
Ich zeige dir ein konkretes Beispiel, wie du aus einem beliebigen weather-Entity (z. B. weather.home) die minimale und maximale Temperatur für die nächsten 5 Tage als eigene Sensoren extrahierst.
1. Voraussetzungen
- Du hast eine Wetterintegration, die
forecast bereitstellt (hourly oder daily).
- Beispiel:
weather.home
Die Datenstruktur sieht typischerweise so aus (gekürzt):
state: "sunny"
attributes:
temperature: 23
forecast:
- datetime: "2025-09-28T00:00:00+00:00"
condition: "rainy"
temperature: 21
templow: 12
- datetime: "2025-09-29T00:00:00+00:00"
condition: "cloudy"
temperature: 19
templow: 10
...
temperature = Maximaltemperatur,
templow = Minimaltemperatur.
- Templates für die nächsten 5 Tage
In deiner configuration.yaml (oder templates.yaml wenn ausgelagert):
template:
- sensor:
- name: "Forecast Day 1 Min Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[0].templow }}
- name: "Forecast Day 1 Max Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[0].temperature }}
- name: "Forecast Day 2 Min Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[1].templow }}
- name: "Forecast Day 2 Max Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[1].temperature }}
- name: "Forecast Day 3 Min Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[2].templow }}
- name: "Forecast Day 3 Max Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[2].temperature }}
- name: "Forecast Day 4 Min Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[3].templow }}
- name: "Forecast Day 4 Max Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[3].temperature }}
- name: "Forecast Day 5 Min Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[4].templow }}
- name: "Forecast Day 5 Max Temp"
unit_of_measurement: "°C"
state: >
{{ state_attr('weather.home', 'forecast')[4].temperature }}
3. Hinweise
forecast[0] = heute
forecast[1] = morgen
- usw.
- Manche Integrationen liefern nicht
templow, sondern nur temperature (dann musst du Minimum selbst aus den hourly Forecasts berechnen).
- Die Einheit
"°C" kannst du natürlich anpassen.
2. Prompt
Manche Integrationen liefern nicht templow, sondern nur temperature (dann musst du Minimum selbst aus den hourly Forecasts berechnen). Gib mir mal den Code für die Berechnung der Minima und Maxima
Antwort
Wenn deine Wetter-Integration nur einen stündlichen Forecast (forecast mit 24–120 Stunden in temperature) liefert, musst du die Minima und Maxima pro Tag gruppieren und berechnen.
Beispiel: Min/Max aus stündlichem Forecast
Nehmen wir an, dein Entity ist weather.home, und die Struktur sieht so aus:
attributes:
forecast:
- datetime: "2025-09-28T01:00:00+00:00"
temperature: 16
- datetime: "2025-09-28T02:00:00+00:00"
temperature: 15
- datetime: "2025-09-28T03:00:00+00:00"
temperature: 14
- datetime: "2025-09-29T01:00:00+00:00"
temperature: 12
...
Dann berechnest du so:
- Template-Sensoren für heute
template:
- sensor:
- name: "Today's Min Temp"
unit_of_measurement: "°C"
state: >
{% set today = now().date() %}
{% set temps = state_attr('weather.home', 'forecast')
| selectattr('datetime', 'defined')
| selectattr('temperature', 'defined')
| selectattr('datetime', 'search', today.isoformat())
| map(attribute='temperature')
| list %}
{{ temps | min if temps | count > 0 else 'unknown' }}
- name: "Today's Max Temp"
unit_of_measurement: "°C"
state: >
{% set today = now().date() %}
{% set temps = state_attr('weather.home', 'forecast')
| selectattr('datetime', 'defined')
| selectattr('temperature', 'defined')
| selectattr('datetime', 'search', today.isoformat())
| map(attribute='temperature')
| list %}
{{ temps | max if temps | count > 0 else 'unknown' }}
2. Für die nächsten Tage
Hier änderst du nur den Vergleichstag (today + timedelta(days=1) usw.):
- name: "Tomorrow Min Temp"
unit_of_measurement: "°C"
state: >
{% set day = (now().date() + timedelta(days=1)) %}
{% set temps = state_attr('weather.home', 'forecast')
| selectattr('datetime', 'defined')
| selectattr('temperature', 'defined')
| selectattr('datetime', 'search', day.isoformat())
| map(attribute='temperature')
| list %}
{{ temps | min if temps | count > 0 else 'unknown' }}
- name: "Tomorrow Max Temp"
unit_of_measurement: "°C"
state: >
{% set day = (now().date() + timedelta(days=1)) %}
{% set temps = state_attr('weather.home', 'forecast')
| selectattr('datetime', 'defined')
| selectattr('temperature', 'defined')
| selectattr('datetime', 'search', day.isoformat())
| map(attribute='temperature')
| list %}
{{ temps | max if temps | count > 0 else 'unknown' }}
3. Wiederholen bis +5 Tage
- Ersetze
timedelta(days=1) durch timedelta(days=2), days=3 usw.
- So bekommst du Min/Max für 5 Tage.
habe ich alles nicht getestet oder gar selber in Benutzung. Vielleicht hilft’s dir.