Der erhältst in Home Assistant die Reparatur-Meldung „Verwendung des veralteten Dienstes „weather.get_forecast““ und deine Automationen mit Bezug zu Wettervorhersagen funktionieren nicht mehr richtig? Seit Home Assistant 2024.3 gibt es eine wesentliche Änderung, wie man echte Wettervorhersagen erhält und ich zeige dir in diesem Beitrag, wie auch du in wenigen Schritten wieder Wettervorhersagen „wie früher“ nutzen kannst.
Ja, diesen Beitrag hätte ich vermutlich schon im Februar 2024 schreiben können, da hier bereits bekannt war, dass der Dienst weather.get_forecast ab Home Assistant 2024.3 wesentliche Änderungen erfahren wird. Um ehrlich zu sein, habe ich diese Info schlichtweg übersehen und dann war auch irgendwann schon das Update da.
In Abhängigkeit von dem von dir genutzten Wetterdienst (bspw. DWD über HACS oder Met.no, den ich nutze) wurden dir vor der Version 2024.3 in den Attributen des Sensors nützliche Informationen zur Wettervorhersage bereitgestellt. Diese wurden dafür im Hintergrund mittels weather.get_forecast automatisch ermittelt (also ohne, dass du etwas tun musstest) und standen dir somit zur Verfügung.
Hier ein Screenshot aus Mai 2023, wie das aussehen konnte:
Die Vorhersagen der kommenden Tage wurden innerhalb des Attributs des Wetter-Sensors automatisch mitgeliefert und konnten ausgelesen und für Automationen beispielsweise genutzt werden.
Du magst Home Assistant? Dann abonniere kostenlos meine Beiträge mit Tipps, Tricks und Anleitungen rund um Home Assistant:
Follow Home Assistant
Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders überlegen!
Seit 2024.3 kann es aber sein, dass du in Home Assistant folgende Fehlermeldung erhältst:
Verwendung des veralteten Dienstes „weather.get_forecast“ erkannt
Verwende stattdessen „weather.get_forecasts“, das mehrere Entitäten unterstützt.
Bitte ersetze diesen Dienst, passe deine Automationen und Skripte an und wähle Senden, um dieses Problem zu schließen.
Home Assistant
Oder hier nochmal die Warnmeldung als Screenshot:
Fehlermeldung „Verwendung des veralteten Dienstes „weather.get_forecast“ erkannt“ beheben
Damit du auch weiterhin auf Daten der Wettervorhersage über das Sensor-Attribut zugreifen kannst, musst du in deiner configuration.yaml mittels eines Templates und des neuen Dienstes weather.get_forecasts (wichtig: mit einem „s“ am Ende!) dafür sorgen, dass die gewünschten Daten weiterhin ermittelt und bereitgestellt werden.
Wie das geht, erkläre ich dir nun Schritt für Schritt!
Um mit unserem Template-Dienst nicht unnötig Last zu generieren, ermitteln wir mit folgendem Code 1x pro Stunde die gewünschte Wettervorhersage:
- trigger: - platform: time_pattern hours: "/1"
Da sich das Wetter nicht grundlegend so oft ändert, wird hier keine höhere Frequenz benötigt. Theoretisch kannst du diese aber natürlich beliebig anpassen. In der offiziellen Doku findest du bei Bedarf weitere Beispiele, wie du time_pattern nutzen kannst.
Übernimmst du den Code, wird 1x pro Stunde die action ausgeführt. Die Ausführung findet dann jeweils zur vollen Stunde statt.
Die eigentliche action ist der Aufruf des (neuen) Dienstes weather.get_forecasts für deinen Wetter-Sensor. Die hierbei ermittelten Daten merken wir uns in einer temporären Variable response_variable um diese dann wiederum einem neuen Sensor Wettervorhersage als Attribut zuzuweisen:
action: - action: weather.get_forecasts target: entity_id: - weather.forecast_home data: type: daily response_variable: vorhersage sensor: - name: Wettervorhersage unique_id: weather_entity_forecast state: "{{ now().isoformat() }}" icon: mdi:calendar-range attributes: forecast: "{{ vorhersage['weather.forecast_home'].forecast }}"
Als Ergebnis erhalten wir (nach der ersten vollen Stunde!) in dem neuen Sensor sensor.wettervorhersage in den Attributen die gewohnten Daten der Wettervorhersage.
Wenn du einen anderen Namen für den neuen Sensor wünschst, kannst du diesen in der Zeile „- name: Wettervorhersage“ ändern.
Der komplette Code zum Einfügen in die configuration.yaml sieht dann wie folgt aus:
template: - trigger: - platform: time_pattern hours: "/1" action: - action: weather.get_forecasts target: entity_id: - weather.forecast_home data: type: daily response_variable: vorhersage sensor: - name: Wettervorhersage unique_id: weather_entity_forecast state: "{{ now().isoformat() }}" icon: mdi:calendar-range attributes: forecast: "{{ vorhersage['weather.forecast_home'].forecast }}"
Wenn du den Code in deiner configuraton.yaml ergänzt hast, navigierst du erneut zu den Entwicklerwerkzeugen und führst hier im Reiter/Tab YAML das Neuladen für ALLE YAML-KONFIGURATIONEN aus:
Und nun heißt es warten, bis die nächste volle Stunde erreicht ist (sofern du den Code mit 1x/Stunde übernimmst),
Sobald der neue Sensor unter Attribute die gewünschte Wettervorhersage bereitstellt, kannst du diese Daten für deine Automationen etc. nutzen. Der Zugriff hierauf erfolgt dann wie gewohnt.
Hier ein Beispiel, wie du prüfen kannst, ob es am aktuellen Tag wärmer als 23 Grad wird:
{{ states.sensor.wettervorhersage.attributes.forecast[0].temperature > 23 }}
Dein neuer Sensor Wettervorhersage liefert dir nun in den Attributen die gewünschten und gewohnten Informationen. In deinen Automationen und Skripten musst du natürlich noch den alten Sensor gegen den neuen austauschen.
Hast du dies gemacht, sollte alles wieder (wie früher) funktionieren und du kannst die Korrektur/Reparatur der ursprünglichen Warnmeldung „Verwendung des veralteten Dienstes „weather.get_forecast““ in Home Assistant quittieren:
Drüben auf simon42.com hat Simon noch weitere Code-Beispiele, wie man den Dienst weather.get_forecasts nutzen kann.
Genutzten Wetter-Sensor ermitteln
Wenn dir nicht bekannt ist, wie dein aktueller Wetter-Sensor heißt, zeige ich dir hier noch kurz, wie du den Namen herausfinden kannst.
Am einfachsten gehst du wie folgt vor: Rufe die Entwicklerwerkzeuge auf und wechsle hier auf den Reiter/Tab Zustände.
Im Suchfeld der Tabellenüberschrift (neben der Lupe) gibst du als Suchbegriff weather. ein.
In der Ergebnisliste sollten dir nun alle aktiven Wetter-Sensoren aufgelistet werden:
Produktempfehlungen
Sehr schöner Beitrag,
der jedoch, mit dem Unwissenden am anderen Ende der Tastatur schnell scheitert.
Was muss ich eintragen, wenn ich das Ganze mit Openweathermap mache?
Die entity_id: _Home hab ich zum Beispiel gar nicht.
Kannst du mir helfen?
Vielen Dank für dein Feedback!
Wie hier im Beitrag unter „Genutzten Wetter-Sensor ermitteln“ beschrieben, müsstest du in den Entwicklerwerkzeugen unter Zustände nach „weather.“ suchen, um die für dich relevante Entität angezeigt zu bekommen. Hast du das probiert?
Hi Olli,
danke für deine Antwort.
Ja, hab ich. Sieht bei mir so aus.
Gruß Sven
weather.openweathermap:
forecast:
– datetime: „2024-08-27T11:00:00+00:00“
condition: partlycloudy
temperature: 24.1
templow: 9.8
pressure: 1021
cloud_coverage: 44
wind_speed: 12.6
wind_bearing: 116
uv_index: 5.14
precipitation_probability: 0
precipitation: 0
dew_point: 9.6
wind_gust_speed: 17.39
humidity: 43
– datetime: „2024-08-28T11:00:00+00:00“
Sorry, war da nicht unter Dienste nachzuschauen? Du schreibst jetzt, dass ichunter Zustände hätte nachschauen müssen. In Zuständen sind die forcasts-Sensoren ja noch nicht drin. Oder sehe ich das falsch?
Was ich meinte:
Unter Entwicklerwerzeuge -> Zustände kannst du herausfinden, wie deine Wetter-Entität (also „weather.irgendwas“) heißt, da diese bei dir ja nicht wie in meinem Code-Beispiel weather.forecast_home heißt.
Gem. deines vorletzten Kommentares, lautet die Entität aber „weather.openweathermap“, so dass der vollständige Code für dich wie folgt aussehen müsste:
@olli Vielen lieben Dank Olli,
leider nur, finde ich die Angaben nicht im Bereich „Zustände“, sondern in „Dienste“
Im Bereich Zustände sind die forecast-Entitäten nicht aufgeführt.
Gehe in den Bereich Dienste auf forecast un d die Entität Openweathermap sehe ich die Vorhersage.
Weiß nur nicht, welche Syntax ich eingeben soll.
{{ states.weather.openweathermap.forecast[1].temperature }} funktioniert nicht
[attach]11[/attach]
Wo ist der Fehler?
LG Sven
@sven Hast du denn in der configuration.yaml den benötigten Code aus dem Beitrag bzw. meinem letzten Beitrag ergänzt? Weil der macht ja aus der Entität weather.openweathermap erst den neuen Sensor sensor.wettervorhersage
Nach der Änderung an der configuration.yaml, musst du die YAML-Datei(en) einmal neuladen und bis zur nächsten vollen Stunde warten (da sensor.wettervorhersage gem. meines Codes nur 1x/Stunde gefüllt wird).
In den Entwicklerwerkzeugen unter Zuständen solltest du dann den Sensor sensor.wettervorhersage finden.
Hilfst das weiter?
@olli Vielen lieben Dank,
es hat funktioniert. Echt geil.
LG Sven
@sven Sehr cool! 👍