[infobox]Vor ein paar Tagen habe ich das Dark Sky Binding in openHAB 2.5 installiert und konfiguriert. Hauptsächlich zur Eigendokumentation habe ich jetzt einen kleinen Blog-Beitrag zum Einstieg erstellt. Den ersten Entwurf möchte ich gerne hier mit euch teilen. Über Verbesserungen und Ergänzungen würde ich mich freuen. Natürlich sind auch Fragen willkommen.[/infobox]
Die Seite Dark Sky bietet akkurate Wetterinformationen an. Außerdem stellt sie eine Schnittstelle zur Verfügung, über die aktuell 1000 Abfragen pro Tag kostenlos gemacht werden können. Das reicht für den persönlichen Gebrauch vollkommen aus. Diese Schnittstelle kann mit dem openHAB Binding, das es seit Version 2.5 gibt, genutzt werden, um Wetterdaten in openHAB zu übertragen und nutzbar zu machen.
Binding und Things
In der openHAB PAPER UI wird das Dark Sky Binding unter Add-ons installiert, hier ist keine weitere Konfiguration notwendig. Danach stehen unter Configuration zwei neue Things zur Verfügung. Als erstes muss hier das Dark Sky Konto angelegt werden. Dafür ist ein Account bei Dark Sky notwendig. Dort wird ein persönlicher API-Schlüssel generiert, der im Thing hinterlegt werden muss. Außerdem muss die gewünschte Sprache eingestellt werden. Zusätzlich kann im Thing noch das Abfrageintervall in Minuten konfiguriert werden. Es muss ein Wert von 2 oder größer gesetzt werden, um das kostenlose Kontingent von 1000 Abfragen pro Tag nicht zu überschreiten. Für mich ist ein Intervall von 30 Minuten völlig ausreichend. Das zweite Thing Wetterinformationen ist für die Konfiguration der Standort-Koordinaten. Außerdem können hier noch Konfigurationen für Wettervorhersage und -warnungen vorgenommen werden. Es können beliebig viele Things angelegt werden, um mehrere Standorte abzufragen.
Channels und Items
Anschließend können über die Items-Datei die benötigten Channels aktiviert werden. Ich habe mich hier auf folgende Channels beschränkt:
- time-stamp (Erfassungszeit)
- sunrise (Sonnenaufgang)
- sunset (Sonnenuntergang)
- temperature (Temperatur)
- rain (Regenmenge)
- snow (Schneemenge)
- humidity (Luftfeuchtigkeit
DateTime localLastMeasurement "Letzte Erfassung [%1$tH:%1$tM]" <time> { channel="darksky:weather-and-forecast:xxx:current#time-stamp" }
DateTime localSunrise "Sonnenaufgang [%1$tH:%1$tM]" <sunrise> { channel="darksky:weather-and-forecast:xxx:current#sunrise" }
DateTime localSunset "Sonnenuntergang [%1$tH:%1$tM]" <sunset> { channel="darksky:weather-and-forecast:xxx:current#sunset" }
Number:Temperature localCurrentTemperature "Temperatur [%.1f %unit%]" <temperature> { channel="darksky:weather-and-forecast:xxx:current#temperature" }
Number:Speed localCurrentRainIntensity "Regen [%.2f mm/h]" <rain> { channel="darksky:weather-and-forecast:xxx:current#rain" }
Number:Speed localCurrentSnowIntensity "Schnee [%.2f mm/h]" <snow> { channel="darksky:weather-and-forecast:xxx:current#snow" }
Number:Dimensionless localCurrentHumidity "Luftfeuchtigkeit [%d %unit%]" <humidity> { channel="darksky:weather-and-forecast:xxx:current#humidity" }
Alle verfügbaren Channels sind in der Dokumentation zu finden.
Sitemap
Über die Konfiguration in der Sitemap-Datei können die Wetterinformationen nun visualisiert werden:
Frame label="Wetter" {
Text item=localLastMeasurement
Text item=localSunrise
Text item=localSunset
Text item=localCurrentTemperature
Text item=localCurrentRainIntensity visibility=[localCurrentRainIntensity>0.01]
Text item=localCurrentSnowIntensity visibility=[localCurrentSnowIntensity>0]
Text item=localCurrentHumidity
}
Für die Felder Regen und Schnee habe ich hier zusätzlich den Parameter visibility konfiguriert, sodass diese nur angezeigt werden wenn es auch regnet bzw. schneit. Bei richtiger Konfiguration sieht es in der BASIC UI nun wie folgt aus: