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?

5 Kommentare
  1. Volker
    Volker sagte:

    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.

  2. Reinhard
    Reinhard sagte:

    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?

  3. Volker
    Volker sagte:

    Unter “Morgiger Tag” wird bei Temperatur min. und Temperatur max. nichts angezeigt.

  4. Volker
    Volker sagte:

    Ich bekomme es nicht hin. 🙁
    Werde mal alles neu machen und es dann mit dem Openweathermap Binding versuchen.
    Danke trotzdem für deine Hilfe.

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.