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 :
erhalte ich folgende Antwort:
Ich suche einen Weg wie ich aus der Antwort den Anteil
herausfiltern kann.
Meine OH Regel sieht zur Zeit so aus
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?
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"
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: