Ich habe über Homeassistant eine Automation durch die KI machen lassen (ChatGPT), die um 5 Uhr die stündlichen Wetter-Prognosen abruft, und um 05:01 Uhr aus diesen Daten bestimmt, um welche volle Stunde (13 = zwischen 13 und 14 Uhr) die wärmsten Temperaturen zu erwarten sind. Daraus wird 1h abgezogen, damit z.B. eine Wärmepumpe eine Stunde vor erreichen der Tages-Höchsttemperatur beginnt, den Speicher aufzuladen. Dies aus dem Grund, weil die Wärmepumpe dann am effizientesten arbeitet, wenn die Tageshöchsttemperatur ist.
Achtung: Nicht alle Wärmepumpen haben einen Speicher. Alternativ könnte man z.B. während der kältesten Stunden die WP sperren für eine bestimmte Zeit. Dafür müsste dann die Formel in der configuration.yaml geändert werden, welche die Temperaturdaten auswertet. Anstatt wärmste Stunde müsste man dann die kälteste Stunde suchen.
Was ich ebenfalls in Betrieb habe, ist eine Automation, die schaut, ob es am Tag Bewölkung hat, und je nach Ergebnis lasse ich die Batterie (EcoFlow) in der Nacht entladen oder eben nicht. Damit spare ich Zyklen, denn wenn am Tag keine Sonne ist, dann ist der Ladestand halt einfach einen Tag länger minim, was ich nicht möchte. Der Beitrag ist hier:
EcoFlow Delta 3 Plus als Batterie in HA
Die Wetterdaten kommen von diesem Dienst:
Meteorologisk institutt (Met.no) Sie wird verwendet von Homeassistant.
Wichtig: Home muss in HA definiert sein.
(Einstellungen/System/Allgemein
Nicht vergessen: Die Zone “Home” platzieren:
Einstellungen/Bereiche, Labels & Zonen, dann oben auf Zonen klicken, + Zone erstellen klicken (unten rechts)
Hier ist ein einzelner der 24 Wetter-Blocks der abgerufenen Daten (Sie bfeinden sich im Sensor Stündliche Wettervorhersage Rohdaten und ann muss man auf attribute klicken. Alle diese Zeilen/Wetterphänomene können verwendet werden, um zu steuern:
> forecasts:
>
> condition: snowy
> datetime: “2026-01-02T21:00:00+00:00”
> wind_bearing: 266.1
> cloud_coverage: 100
> uv_index: 0temperature: 0
> wind_speed: 21.2
> precipitation: 0.9
> humidity: 88
Somit kann man diese folgenden Themen als Trigger benutzen, wenn der Sensor in der configuration.yaml entsprechend programmiert wird: (KI müsste mir hier wiederum helfen)
- Wetter-Art
- Windrichtung
- Wolkendichte
- UV-Index
- Temperatur
- Windgeschwindigkeit
- Niederschlag
- Luftfeuchtigkeit
Mir ist klar, dass die Wetterdaten nicht unbedingt sehr genau sind von diesem Wetterdienst. Aber einen lokalen konnte ich nicht einbinden. Das geht schon, aber wenn man dann auf Stündlich klickt, dann sind dann die Wetterdaten wiederum aus Norwegen und nicht mehr lokaler Wetterdienst.
Eine lokale Wetterstation wäre für einige dieser Wetterthemen deutlich geeigneter. Nur kann sie halt nicht in die Zukunft schauen.
Im Beispiel unten in der Automation wird als Aktion die Steckdose im Elternzimmer eingeschaltet. (Wir haben keine Wärmepumpe, aber der Gedanke war mir wichtig, weil es irgendwann eine geben wird.)
Ich rechne einmal, dass eine WP nach 3h den Speicher fertig aufgeheizt hat. So ist bei der Automation beispielhaft eine Verzögerung von 3h gewählt, dann schaltet die Steckdose aus.
Das ganze hat ChatGPT programmiert aufgrund meiner Bedürfnisse. (Das macht aber kein Spass, da die KI ziemlich vergesslich ist was Vorgaben und bestehende Automationen, welche sie bereits geschrieben hat, angeht. Sie bringt es auch fertig, bestehende Entitäten umzubenennen, sodass am Schluss die Formel nicht mehr geht.)
Es hat einen ganzen Tag gedauert, bis das dann lief… Jemand, der programmieren kann, der hätte das ein vielfaches schneller fertig gehabt. Aber ohne KI hätte ich halt gar nichts auf die Reihe gekriegt.
Die gesamte Automation wird an zwei Orten gemacht:
1: configuration.yaml (Wetter abrufen und Sensor mit dem Wert der wärmsten Stunde)
2: Automationen (Was dann mit diesem Wert im Sensor geschehen soll)
1: Folgendes musste ich in der configuration.yaml eintragen:
template:
# =========================================================
# Stündliche Wettervorhersage – Rohdaten speichern
# =========================================================
- trigger:
- platform: time
at: "03:00:00"
- platform: time
at: "04:00:00"
- platform: time
at: "08:30:00"
- platform: time
at: "12:45:00"
- platform: homeassistant
event: start
action:
- service: weather.get_forecasts
target:
entity_id: weather.forecast_home
data:
type: hourly
response_variable: stundenvorhersage
sensor:
# -----------------------------------------------------
# Rohdaten-Sensor
# -----------------------------------------------------
- name: Stündliche Wettervorhersage Rohdaten
unique_id: hourly_forecast_raw
state: "{{ now().isoformat() }}"
attributes:
forecasts: "{{ stundenvorhersage['weather.forecast_home'].forecast }}"
# =========================================================
# Wärmste Stunde des Tages berechnen
# =========================================================
- trigger:
- platform: time
at: "03:01:00"
- platform: time
at: "04:01:00"
- platform: time
at: "08:31:00"
- platform: time
at: "12:46:00"
- platform: homeassistant
event: start
sensor:
- name: Wärmste Stunde heute
unique_id: warmest_hour_today
state: >
{% set forecasts = state_attr('sensor.stundliche_vorhersage_rohdaten', 'forecasts') %}
{% if forecasts is not iterable %}
unknown
{% else %}
{% set today = now().strftime('%Y-%m-%d') %}
{% set today_fc = forecasts | selectattr('datetime','match','^' ~ today) | list %}
{% if today_fc | count > 0 %}
{% set warmest = today_fc | sort(attribute='temperature') | last %}
{{ warmest.datetime[11:13] }}
{% else %}
unknown
{% endif %}
{% endif %}
icon: mdi:thermometer
unit_of_measurement: "h"
2: Hier ist die zugehörige Automation, welche die KI gemacht hat. Ich habe eine neue Automation erstellt, dann oben rechts im Menü auf “In YAML bearbeiten” geklickt und dann die Formel der KI hineinkopiert und dann gespeichert:
alias: Betrieb zu wärmster Zeit
description: Schaltet einen Switch 1h vor der wärmsten Stunde des Tages für 3h lang ein
triggers:
- at: "03:02:00"
trigger: time
- trigger: homeassistant
event: start
conditions:
- condition: state
entity_id: input_boolean.betrieb_zu_warmster_zeit
state: "on"
actions:
- variables:
warm_hour: "{{ states('sensor.warmste_stunde_heute') | int }}"
now_hour: "{{ now().hour }}"
delay_hours: >-
{% set h = warm_hour - 1 - now_hour %} {% if h < 0 %}0{% else %}{{ h
}}{% endif %}
- delay:
hours: "{{ delay_hours }}"
minutes: 0
- target:
entity_id: switch.03_tretakt_eltern
action: switch.turn_on
- delay:
hours: 3
minutes: 0
seconds: 0
milliseconds: 0
- action: switch.turn_off
target:
entity_id: switch.03_tretakt_eltern
data: {}
mode: single