service
in action
ändert. Das Listing wurde entsprechend angepasst.Weiter wurde der Auslöser von minütlicher Ausführung auf Änderung des Entitäts-Status umgestellt, sowie zusätzlich eine stündliche Ausführung als Fallback, da die OpenWeatherMap-Integration bislang keine Statusänderungen bei Updates garantiert.
Mit Veröffentlichung von HomeAssistant 2024.7 gab es Änderungen an der Weather-Plattform. In den Release Notes wird erwähnt, dass der zuvor abgekündigte Dienst weather.get_forecast
durch weather.get_forecasts
ersetzt wurde, jedoch sind im selben Rahmen auch die sensor.openweathermap_forecast_*
-Entitäten der Wetteranbieter-Integration OpenWeatherMap mit den Vorhersage-Werten für den aktuellen Tag entfallen.
Diese lassen sich jedoch problemlos durch Template-Sensoren ersetzen, welche die Daten in regelmäßigen Intervallen über den Dienst weather.get_forecasts
beziehen.
Und unter der Annahme, dass die OpenWeatherMap-Hauptentität weather.home
heißt, emuliert das nachfolgende Template-Sensor-Snippet alle weggefallenen Vorhersage-Entitäten. Der Auslöser aktualisiert die Werte der Sensor-Entitäten minütlich aus dem Cache der Integration, da sich auch die Vorhersage für den aktuellen Tag mehrfach ändern kann.
template:
- trigger:
- platform: state
entity_id: weather.home
- platform: time_pattern
hours: /1
action:
- action: weather.get_forecasts
data:
type: daily
target:
entity_id: weather.home
response_variable: daily
sensor:
- name: OpenWeatherMap Forecast Cloud coverage
unique_id: openweathermap_forecast_cloud_coverage
state: "{{ daily['weather.home'].forecast[0].cloud_coverage }}"
unit_of_measurement: '%'
- name: OpenWeatherMap Forecast Condition
unique_id: openweathermap_forecast_condition
state: "{{ daily['weather.home'].forecast[0].condition }}"
- name: OpenWeatherMap Forecast Precipitation
unique_id: openweathermap_forecast_precipitation
state: "{{ daily['weather.home'].forecast[0].precipitation }}"
unit_of_measurement: mm
device_class: precipitation
- name: OpenWeatherMap Forecast Precipitation probability
unique_id: openweathermap_forecast_precipitation_probability
state: "{{ daily['weather.home'].forecast[0].precipitation_probability }}"
unit_of_measurement: '%'
- name: OpenWeatherMap Forecast Pressure
unique_id: openweathermap_forecast_pressure
state: "{{ daily['weather.home'].forecast[0].pressure }}"
unit_of_measurement: hPa
device_class: pressure
- name: OpenWeatherMap Forecast Temperature
unique_id: openweathermap_forecast_temperature
state: "{{ daily['weather.home'].forecast[0].temperature }}"
unit_of_measurement: °C
device_class: temperature
- name: OpenWeatherMap Forecast Temperature Low
unique_id: openweathermap_forecast_temperature_low
state: "{{ daily['weather.home'].forecast[0].templow }}"
unit_of_measurement: °C
device_class: temperature
- name: OpenWeatherMap Forecast Time
unique_id: openweathermap_forecast_time
state: "{{ daily['weather.home'].forecast[0].datetime }}"
device_class: timestamp
- name: OpenWeatherMap Forecast Wind bearing
unique_id: openweathermap_forecast_wind_bearing
state: "{{ daily['weather.home'].forecast[0].wind_bearing }}"
unit_of_measurement: °
- name: OpenWeatherMap Forecast Wind speed
unique_id: openweathermap_forecast_wind_speed
state: "{{ daily['weather.home'].forecast[0].wind_speed }}"
unit_of_measurement: m/s
device_class: wind_speed
YAML-Snippet der Template-Sensoren, die OpenWeatherMaps frühere Vorhersage-Sensoren emulieren
Das Vorgehen zur Aktivierung des Snippets ist:
- Das o.s. Snippet ggf. an die lokalen Gegebenheiten anpassen, insbes. die ID der
weather
-Entität muss stimmen, und falls die Namen oder Entity-IDs der Integration umbenannt wurden, sind auch diename:
- undunique_id:
-Eigenschaften der neuen Sensoren anzupassen. - Im HomeAssistant das angepasste Snippet der Datei
/homeassistant/configuration.yaml
bzw. einer inkludierten Split-Konfiguration hinzufügen. Sollte bereits einetemplate:
-Sektion vorhanden sein, die Templates dieser bestehenden Sektion hinzufügen. - Die nicht mehr verfügbaren Entitäten löschen oder ihre Entitäts-IDs umbenennen via Einstellungen ➔ Geräte & Dienste ➔ Entitäten.
- Über Entwicklerwerkzeuge ➔ YAML zunächst die Konfiguration auf Korrektheit prüfen lassen, und wenn alles passt, darunter die Template-Entitäten neu laden lassen oder HomeAssistant neustarten.
Nun sollten die Vorhersage-Entitäten wie gewohnt wieder verfügbar sein, und dabei lediglich als von der Template-Integration bereitgestellt aufgelistet werden. Nach der Auslösung durch die erste Statusänderung, spätestens aber zur nächsten vollen Stunde, sollten die Sensoren auch wieder die gewohnten Daten bereitstellen.
