Openhab 2.5.3 & DarkSky API | Abruf Wetter-Icon

meph!sto

Vice Admiral
Registriert
Nov. 2003
Beiträge
6.415
Guten Morgen,
vorab: ich kenne mich in Sachen Java(script) quasi 0 aus. Bin generell was Programmieren angeht nicht sonderlich gut bewandert, daher bitte ich um Nachsicht.
Mein "Problem": ich benutze Openhab 2.5.3 (OH) um ein paar Dinge zu Hause zu steuern (Lichter & Thermostate). Mit dem DarkSky Binding in OH greife ich mir die aktuellen Wetterdaten für meinen Standort (klappt auch wunderbar).
Jetzt haben wir die Situation, dass unser Wohnzimmer quasi durchgängig von der Sonne bescheint wird, was zur Folge hat dass es im Wohnzimmer immer muckelig warm ist (im Sommer = sau warm).
Die Thermostate schalte ich nach der ermittelten Temperatur, die mir das DarkSky Binding liefert (klappt auch).
Nun: bei dem (zur Zeit) vorherrschenden Sonnenschein heizt unser Wohnzimmer ziemlich auf, die Heizkörper springen aber natürlich auch an (da die ermittelte Außentemperatur recht niedrig ist) (natürlich könnte ich auch einen Temperaturfühler im Wohnzimmer platzieren, das möchte ich aber erstmal nicht).
Daher möchte ich in OH noch eine Abfrage machen wie das Wetter draußen ist. Die Heizkörper sollen im Wohnzimmer nur angehen wenn die Sonne nicht scheint.

Jetzt kommt aber der Knackpunkt:
lt. der DarkSky API solle man hierfür das Objekt (?) "icon" nutzen, da dies lt. API Dokumentation das einzig verlässliche ist.
Das OH Binding ruft auch dieses Icon ab und erzeugt direkt ein *.PNG (was mir nichts bringt, denn ich benötige den Wert des Objekts "icon" als STRING.
Mit folgendem API Call :
Code:
https://api.darksky.net/forecast/<APIKEY>/<LAT>,<LON>?exclude=minutely,hourly,daily,alerts,flags

erhalte ich folgende Antwort:
Code:
{"latitude":<LAT>,"longitude":<LON>,"timezone":"Europe/Berlin","currently":{"time":1585116011,"summary":"Clear","icon":"clear-day","precipIntensity":0,"precipProbability":0,"temperature":30.27,"apparentTemperature":23.37,"dewPoint":17.54,"humidity":0.59,"pressure":1029.1,"windSpeed":7.07,"windGust":17.84,"windBearing":65,"cloudCover":0,"uvIndex":0,"visibility":10,"ozone":370.6},"offset":1}

Ich suche einen Weg wie ich aus der Antwort den Anteil
Code:
"icon":"clear-day"
herausfiltern kann.

Meine OH Regel sieht zur Zeit so aus
Code:
rule "Download Weather Icon"
when
        System started or
        Item localCurrentTemperature changed
then
        val httpRequest = "https://api.darksky.net/forecast/<APIKEY>/<LAT>,<LON>?exclude=minutely,hourly,daily,alerts,flags"
        val String DarkSkyWeatherJSON = sendHttpGetRequest(httpRequest)
        val String localCurrentWeatherIcon = DarkSkyWeatherJSON.currently.icon
        localCurrentConditionIcon.sendCommand(localCurrentWeatherIcon)
end

Das funktioniert natürlich nicht. Einen Umweg über die Bewölkung kann ich auch gehen (funktioniert auch), aber meinen ursprünglichen Plan würde ich dennoch gerne irgendwie testen.
Habt ihr eine Idee wie ich das innerhalb einer OH Regel alles erreichen kann?
 
Zuletzt bearbeitet:
Danke für den Hinweis, Home Assistant hatte ich zu erst tatsächlich ausprobiert kam aber irgendwie mit OpenHab besser zurecht (weiß' der Geier wieso) und alles nun auf Home Assistant zu mergen wäre mir zuviel Aufwand.

Als temporären Workaround nutze ich nun die Bewölkung als Vergleichswert.
 
Können denn die Temperaturen des Thermostats nicht ausgelesen werden bzw. die Solltemperatur nach Bedarf eingestellt werden? Was sind das überhaupt für Thermostate?
 
Zuletzt bearbeitet:
Es handelt sich um DECT Thermostate und ja, da kann ich die Temperaturen auslesen. Das wäre eine Möglichkeit, wobei ich den Messwerten der Thermostate irgendwie nicht traue :heilig:
 
Zurück
Oben