Wetterdaten in openHAB integrieren
Für weitere Regeln und Automatisierungen wollte ich die aktuellen Wetterdaten in openHAB integrieren. Im ersten Schritt wollte ich das ohne eigene Wetterstation umsetzen und die externen Daten etwas aggregieren und testen welche Daten ich überhaupt benötige.
Alle Artikel die ich gefunden habe, referenzieren aktuell auf das WeatherUnderground Binding. Leider gibt es dafür keine kostenlosen API-Keys zur privaten Nutzung mehr. Als Alternative habe ich jetzt das Weather1 Binding mit Daten von OpenWetherMap verwendet.
Die Grundlagen für den Artikel habe ich bei Wenzlaff.de gefunden.
Installation
Die Installation wird wie gewohnt in openHAB in der Paper UI durchgeführt:
openHAB – Paper UI – Add-ons – Bindings – Weather Binding – INSTALL
Bitte achtet darauf, dass die Legacy-Bindings für ein Version 1 Binding in den Einstellungen aktiviert sind.
OpenWeatherMap
Für die Verwendung von externen Wetterdaten benötigt man bei OpenWeatherMap einen API-Key. Der Account wird hier erstellt und danach per E-Mail verschickt.
Services
Die Anpassung der Services wird in der Datei services/weather.cfg vorgenommen.
apikey.OpenWeatherMap=xxx
# Location – Altomünster – OpenWeatherMap
weather:location.Altomuenster-OWM.latitude=48.3859
weather:location.Altomuenster-OWM.longitude=11.2535
weather:location.Altomuenster-OWM.provider=OpenWeatherMap
weather:location.Altomuenster-OWM.language=de
weather:location.Altomuenster-OWM.updateInterval=30
Der apiKey muss durch den vorher generierten Schlüssel ersetzt werden. Die location kann an die eigenen Bedürfnisse angepasst werden. Den Aktualisierungsintervall habe ich auf 30 Minuten gesetzt.
Um die GPS-Koordinaten (latitude, longitude) für Altomünster herauszufinden, habe ich den Service von gpskoordniaten.de genutzt.
Items
Als erste Test-Items kann man den Satz an Daten verwenden:
// OpenWeatherMap Daten Number owmHumidity "Feuchte [%d %%]" {weather="locationId=Altomuenster-OWM, type=atmosphere, property=humidity"} Number owmTemperature "Temperatur [%.2f °C]" {weather="locationId=Altomuenster-OWM, type=temperature, property=current"} Number owmPressure "Luftdruck [%.2f hPa]" {weather="locationId=Altomuenster-OWM, type=atmosphere, property=pressure"} String owmPressureTrend "Luftdruck Trend [%s]" {weather="locationId=Altomuenster-OWM, type=atmosphere, property=pressureTrend"} Number owmWindSpeed "Windgeschwindigkeit [%.2f km/h]" {weather="locationId=Altomuenster-OWM, type=wind, property=speed"} String owmWindDirection "Windrichtung [%s]" {weather="locationId=Altomuenster-OWM, type=wind, property=direction"} Number owmWindDegree "Windrichtung in Grad [%.0f °]" {weather="locationId=Altomuenster-OWM, type=wind, property=degree"} Number owmClouds "Bewölkung [%.0f %%]" {weather="locationId=Altomuenster-OWM, type=clouds, property=percent"} Number owmRain "Regen der letzten 3 Stunden [%.2f mm/h]" {weather="locationId=Altomuenster-OWM, type=precipitation, property=rain"} Number owmSnow "Schnee der letzten 3 Stunden [%.2f mm/h]" {weather="locationId=Altomuenster-OWM, type=precipitation, property=snow"} // Forecast +1 ist der nächste Tag // ACHTUNG: Funktioniert aktuell nicht mit OpenWeatherMap, 25.08.2018 Number ownForecastTempMin "Temperatur min. [%.2f °C]" {weather="locationId=Altomuenster-OWM, forecast=1, type=temperature, property=min"} Number ownForecastTempMax "Temperatur max. [%.2f °C]" {weather="locationId=Altomuenster-OWM, forecast=1, type=temperature, property=max"}
Sitemap
Danach habe ich die Sitemap zur Visualisierung an meine Anforderungen angepasst:
Text label="Wetter" icon="temperature" { Frame label="Altomünster (Open Weather Map)" { Frame label="Heutiger Tag" { Text item=owmTemperature icon="selfTemperature" Text item=owmHumidity icon="selfWater" Text item=owmPressure Text item=owmPressureTrend Text item=owmWindSpeed icon="wind" Text item=owmWindDirection icon="wind" Text item=owmWindDegree icon="wind" Text item=owmClouds Text item=owmRain icon="rain" Text item=owmSnow } Frame label="Morgiger Tag" { Text item=ownForecastTempMin Text item=ownForecastTempMax } } }
Fazit
Mit dem Weather1 Binding sind schnell und unkompliziert “grobe” Wetterdaten in openHAB integriert.
Was ich leider erst im Nachgang gesehen habe ist das von OpenWeatherMap mit den kostenlosen Accounts momentan nur aktuelle Tagesdaten und keine Wettervorschau für die nächsten Tage verwendet werden kann (obwohl das in der Dokumentation anders beschrieben steht). Das Problem wird in diesem Ticket im Detail beschrieben.
Wie habt Ihr eure Wetterdaten zur Hausautomatisierung verwendet? Soll ich doch besser gleich auf eine “richtige” Wetterstation für die Daten umsteigen?
Hallo,
läuft das Weather Binding mit Openweathermap Api unter openhab 2.5 auch noch bei Ihnen?
Ich habe Probleme mit der Anzeige den Daten der kommenden Tage.
Hallo,
ja das Binding läuft bei mir aktuell unter openHAB 2.5.5. Es gab die letzte Aktualisierung am “21.07.2020 21:30” und Daten werden mir in der Sitemap angezeigt.
Was ist bei Ihnen das Problem?
Unter “Morgiger Tag” wird bei Temperatur min. und Temperatur max. nichts angezeigt.
Diese Werte sind bei mir gefüllt. Für die Lokation 85250 Altomünster.
Ich bekomme es nicht hin. 🙁
Werde mal alles neu machen und es dann mit dem Openweathermap Binding versuchen.
Danke trotzdem für deine Hilfe.