Openweather / Alternative

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Thomasv
Beiträge: 2
Registriert: 13. Jan 2024 13:22
Answers: 0

Openweather / Alternative

Beitrag von Thomasv »

Hallo alle miteinander,

ich möchte eine Regel erstellen, die Morgens nach dem Aufstehen die Tageshöchsstemperatur checkt (Also die Vorhergesagte) und ab einem bestimmten Wert die Rolläden morgens in eine Sonnenschutzstellung fährt.
Bei Openweather habe ich eine API erstellt, da scheint aber "Tageshöchstwert" nur im Bezahl Plan zu finden zu sein, und dafür finde ich dann 35,- ein wenig happig :-)
Underground Weather funktioniert nur mit einer eigenen Station - hat jemand eine Idee, wo ich den Wert herbekommen kann?

Danke,

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openweather / Alternative

Beitrag von peter-pan »

Ich habe das Binding zwar nicht mehr im Einsatz, aber eigentlich hat das mal funktioniert und zwar über das One-Call-Thing innerhalb der Bridge
.things

Code: Alles auswählen

       Thing onecall              local "OWM WetterInfo OneCall"   [location="12.34,5.678,1502", forecastHours=24, numberOfAlerts=3, forecastMinutes=60]
Die Items dazu:
.items

Code: Alles auswählen

Number:Temperature      OneCall_ForecastToday_Mintemperature        "Minimum Temperature"          <Temperature>   (gOCact)         ["Point"]          {channel="openweathermap:onecall:bridge:local:forecastToday#min-temperature" }        
Number:Temperature      OneCall_ForecastToday_Maxtemperature        "Maximum Temperature"          <Temperature>   (gOCact)         ["Point"]          {channel="openweathermap:onecall:bridge:local:forecastToday#max-temperature" }        
Die URL dazu sieht ungefähr so aus:

Code: Alles auswählen

https://api.openweathermap.org/data/2.5/onecall?lat=12.34&lon=5.678&exclude=minutely,hourly&appid=verrat_ich_nicht&lang=de&units=metric
Allerdings basiert mein Key auf der Version 2.5. Ich weiss nicht, ob es die noch gibt. Bei mir funktioniert sie noch.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Openweather / Alternative

Beitrag von udo1toni »

Sieht bei mir folgendermaßen aus:
Thing:

Code: Alles auswählen

Bridge openweathermap:weather-api:bridge "openweatherMap Api"  [ apikey="0123456789abcdef0123456789abcdef", refreshInterval=10, language="de" ] {
    Thing weather-and-forecast local "Wetter lokal" [ forecastDays=0, forecastHours=24, step=3, location="49.9,8.6" ]
}
Itemliste:

Code: Alles auswählen

Group gOWM "OpenWeatherMap" (gWeather) ["WeatherService"]
Switch Schatten "Beschattung aktivieren [%s]" (gWeather)
Number:Temperature Wetter_Fc03Temperature "Temperatur + 3h" (gOWM) {channel="openweathermap:weather-and-forecast:bridge:local:forecastHours03#temperature", unit="℃"}
Number:Temperature Wetter_Fc06Temperature "Temperatur + 6h" (gOWM) {channel="openweathermap:weather-and-forecast:bridge:local:forecastHours06#temperature", unit="℃"}
Number:Temperature Wetter_Fc09Temperature "Temperatur + 9h" (gOWM) {channel="openweathermap:weather-and-forecast:bridge:local:forecastHours09#temperature", unit="℃"}
Number:Temperature Wetter_Fc12Temperature "Temperatur +12h" (gOWM) {channel="openweathermap:weather-and-forecast:bridge:local:forecastHours12#temperature", unit="℃"}
Number:Temperature Wetter_Fc15Temperature "Temperatur +15h" (gOWM) {channel="openweathermap:weather-and-forecast:bridge:local:forecastHours15#temperature", unit="℃"}
Number:Temperature Wetter_Fc18Temperature "Temperatur +18h" (gOWM) {channel="openweathermap:weather-and-forecast:bridge:local:forecastHours18#temperature", unit="℃"}
Number:Temperature Wetter_Fc21Temperature "Temperatur +21h" (gOWM) {channel="openweathermap:weather-and-forecast:bridge:local:forecastHours21#temperature", unit="℃"}
Number:Temperature Wetter_Fc24Temperature "Temperatur +24h" (gOWM) {channel="openweathermap:weather-and-forecast:bridge:local:forecastHours24#temperature", unit="℃"}
Das Item Schatten gibt an, ob die Beschattung an diesem Tag aktiviert werden soll.
Die Rule:

Code: Alles auswählen

var maxTemp = 0.0

rule "update Schatten"
 when
    Time cron "0 55 6 * * ?"
 then
    maxTemp = 0
    gOWM.members.filter[ i |
        i.name.contains("Temperature") && i.name.contains("Fc") && (i.state instanceof Number)].forEach[ j |
            if((j.state as Number).floatValue > maxTemp)
                maxTemp = (j.state as Number).floatValue
            logInfo("schatten", "{} ist {}, Maximum ist {}",j.name,j.state,maxTemp)
        ]
    if (maxTemp > 23)
        Schatten.postUpdate(ON)
    else
        Schatten.postUpdate(OFF)
end
Die Rule setzt zunächst den aktuellen Maximalwert auf 0 (wenn man unter allen Umständen die echte Maximaltemperatur haben möchte, könnte man hier auch -273.15 eintragen, um sicherzugehen, auch wirklich jeden Temperaturwert zu berücksichtigen ;) aber mich interessiert nur die Überschreitung meiner Schwelltemperatur von 23 °C...
Dann filtert sie die Gruppe aller Wetteritems (da sind noch diverse andere Items mit dabei...) auf diejenigen, welche im Namen Temperature haben und die Kennung Fc (was bei mir für Forecast steht). Außerdem werden nur die Items berücksichtigt, deren Status eine gültige Zahl enthält.
Die gefilterte Liste wird nun durchlaufen und der Status als Zahl mit maxTemp verglichen. Ist der Wert höher als maxTemp, so wird maxTemp aktualisiert.
Nachdem die Liste durchlaufen wurde, steht die Maximaltemperatur fest und kann ausgewertet werden.
Eine zweite Rule fährt die Läden auf Beschattungsposition, eine dritte Rule fährt sie wieder hoch, falls die Beschattung aktiv war, beides geschieht zu bestimmten Uhrzeiten bzw. wenn die Sonne eine bestimmte Position erreicht hat.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openweather / Alternative

Beitrag von peter-pan »

..sorry. Ich hab einfach das one-call-Thing genommen, da gibt es die Werte, soweit ich mich noch erinnern kann, direkt.

Das ganze Thing sieht eigentlich so aus:
.things

Code: Alles auswählen

Bridge openweathermap:weather-api:bridge "OWM Account"              [apikey="hierkommtdein apikeyrein", refreshInterval=30, language="de"] {
        Thing weather-and-forecast local "OWM WetterInfo lokal"     [location="12.3456,1.23456,999", forecastHours=120, forecastDays=0]
        Thing uvindex              local "OWM UV Index"             [location="12.3456,1.23456,999", forecastDays=7]
        Thing onecall              local "OWM WetterInfo OneCall"   [location="12.3456,1.23456,999", forecastHours=24, numberOfAlerts=3, forecastMinutes=60]
        Thing air-pollution        local "OWM Luftverschmutzung"    [location="12.3456,1.23456,999"]
}
Ich hatte ursprünglich auch mal mit der Version(und der Rule) von Udo gearbeitet, bin dann aber als die "onecall"-Version herauskam, auf diese Version(Thing) gewechselt, da hier die Min-/Max-Werte direkt aufgelöst werden.

Im Browser kann man sich die JSON-Werte über die folgenden Adressen anschauen

Code: Alles auswählen

//  https://api.openweathermap.org/data/2.5/forecast?lat=44.34&lon=10.99&appid={API key}&lang=de&units=metric  // forecast
//  https://api.openweathermap.org/data/2.5/weather?lat=44.34&lon=10.99&appid={API key}&lang=de&units=metric   // current

//  https://api.openweathermap.org/data/2.5/onecall?lat={lat}&lon={lon}&exclude={part}&appid={API key}&lang=de&units=metric  // onecall
Im Moment benutze ich das Binding aber gar nicht mehr.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: Openweather / Alternative

Beitrag von udo1toni »

Ja, onecall wollte ich auch mal konfigurieren... man kommt halt zu nix vor lauter lauter...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openweather / Alternative

Beitrag von peter-pan »

udo1toni hat geschrieben: 30. Jan 2024 18:20 Ja, onecall wollte ich auch mal konfigurieren... man kommt halt zu nix vor lauter lauter...
ja genau, wenn man immer den andern helfen muss, kommt man selber zu nichts mehr ;) .
Aber, warum auch ändern; es heisst nicht umsonst: Never change a running system :)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten