[Modul] OpenWeatherMap

siehe mal in …/docs/oneCallConditionIcon.php

Sorry, war im falschen Film :grinning: Wollte das eigentlich im DarkSky Thread posten bzw. fragen.

In deinem Modul läuft das natürlich mit den Skripten

Frage:
Nutzt Ihr die Stündliche Vorhersage WINDBÖEN für eine Logik zum Hochfahren der Raffstore/Jalousie?
Wenn Ja, wie macht ihr das?

Schönes Weekend lg
Christian

Ich nutze den OneCall-Datenabruf um damit mit der WindböenvorhersageH2 bei Bedarf meine Jalousien hoch zu fahren. Funktioniert prima.
Allerdings habe ich den Eindruck, dass die Einheit bei der Windgeschwindigkeit mit km/h falsch ist. Heute stürmt es wie irre und ich bekomme eine Windgeschwindigkeit von 13 und eine Windböengeschwindigkeit von 25 geliefert. Daher glaube ich, dass die Werte, die die API liefert in m/s angegeben sind. Dies bestätigt auch ein Blick auf openweathermap.com, wo für meine Standort dies angegeben ist: 13.3m/s SW - d.h. die 13 sehe ich hier auch. Aber eben als m/s statt km/h
Kann das jemand bestätigen?

Mir gehts hier nicht um die Anzeige, sondern um das Setzen des richtigen Wertes, ab dem ich die Jalousien hochfahren muss. Habe diese in Windstärke bzw m/s vom Hersteller bekommen und in km/h umgerechnet - um auf der sicheren Seite zu sein, wären das Windstärke 7 bzw. 17m/s. Die habe ich in km/h umgerechnet und als Grenzwert im meinem Skript verwendet. Wenn nun aber die Einheit der vorhergesagten Windböenwindstärke nicht km/h sondern m/s ist, dann muss ich meine Grenze entsprechend anpassen.

Ich habe jetzt meine Max-Windstärke auf m/s eingestellt, um auf der sicheren Seite zu sein.
Und im Profilemanager den Suffix für WindSpeed auf m/s umgestellt.

Das kann ich bei mir nicht auf die Schnell bestätugen.

Ich habe 2 lokale Wetterstationen und die Werte sind nicht so unterschiedlich

8 km/h - Openweather-OneCall
7 km/h - Netatmo
5 km/h - Weatherman

Das wird kaum identisch sein, weil die Daten vom Weatherman bekomme ich unverzüglich, Netatmo alle 10 Minuten und wie aktuell Openweather ist? schwer zu sagen.

Das war jetzt nur auf die Schnelle, ein systematischen Vergleich habe ich nicht gemacht.

Ich muss allerdings sagen, das ich für so kurzfristige Ereignisse nicht auf einen solchen Dienst setzen würde, so gut und so spontan reagieren die nicht.

Ich habe sogar zwischen keinen beiden lokalen Wetterstationen durchaus erheblich Unterschiede, obwohl die Stationen fast an der gleichen Stelle angebracht sind.
Ich muss allerdings auch sagen, das wir persönlich gemerkt haben, das die subjektive Einschätzung von Windgeschwindigkeiten sehr schwierig ist. Wir hatten mal die Möglichkeit in einem Windkanal für ein paar Windgeschwindigkeiten gefühlte und gemessene Geschwindigkeiten gegenüber zu stellen. Krasses Erlebnis.

könntest Du jetzt noch bitte auf openweathermap.org nachschauen, welcher Wert dort angegeben wird. Dort wird als Einheit m/s aufgeführt. Und die dort aufgeführten 9,6m/s entsprechen genau meinem Wert im API Call (für Windstärke - ich verwende für meine Überwachung die Windböen).

dazu gabs im KNX Forum eine interessante Diskussion. Und zwar hatten sich dort einige beim letzten Sturm vor ein paar Wochen auf ihre Wetterstation verlassen. Diese hat auch den Wind der Böe richtig gemessen. Aber dann war es schon zu spät, da die Jalousie ja noch eine Minute braucht, bis sie hoch fährt. Daher scheint mir das Maximum aus dem Wert der Wetterstation und der Vorhersage für die nächste Stunde und zwar der Windböen die sichere Seite zu sein

ist natürlich schwer zu vergleichen, weil es bei OpenWeather keine fein granulierte Auflösung gibt, d.h. da wo vermutlich die Wetterstation steht, ist immer ein deutlich anderer Wind.

Aber was klar ist, nachdem ich nochmal in die API-Beschreibung geschaut habe ist, das es in m/s geschickt wird und ich das nicht mehr umrechne.
Muss ich morgen mal durchgehen.
Interessant, das das bisher keinem aufgefallen ist, ich nutzte das ja wie gesagt gar nicht, weil besonders die Werte bei Wind so stark von meinen lokalen Ereignissen abweichen, das es mir nicht helfen würde. Gerade in bebauten Gebieten gibt es ja ganz viele Faktoren, die das schwächen oder verstärken.
Bei der Markise habe ich einen Windsensor dran, der ein Einfahren auslösen würde, wenn die Schwingungen zu stark sind.

Seinerzeit bei Sturm „Ela“ (9.6.2014) hätte uns das vermutlich nicht geholfen, das ging zu schnell, aber die Wettervorhersagen auch nicht, die haben (meiner Erinnerung nach) auch gar nicht gepasst.

Aber da muss jeder seinen Weg finden.

Nachtrag
@IPS-Anfaenger: ich habe die Änderungen angebracht und im Modulstore/beta eingereicht.
DIe 3 Modules wurden intern auch auf den neusten Stand gebracht, bitte aufmerksam testen

Hi,
bekomme seit dem Update eine Fehler Meldung:

08.04.2022, 13:01:13 | PHP                  | Error: Error: Uncaught TypeError: Argument 1 passed to OpenWeatherOneCall::GetArrayElem() must be of the type array, string given, called in /var/lib/symcon/modules/.store/demel42.openweathermap/OpenWeatherOneCall/module.php on line 690 and defined in /var/lib/symcon/modules/.store/demel42.openweathermap/libs/CommonStubs/common.php:307
Stack trace:
#0 /var/lib/symcon/modules/.store/demel42.openweathermap/OpenWeatherOneCall/module.php(690): OpenWeatherOneCall->GetArrayElem('', 'dt', 0)
#1 /var/lib/symcon/scripts/__generated.inc.php(4867): OpenWeatherOneCall->UpdateData()
#2 /-(60): OpenWeatherOneCall_UpdateData(18406)
#3 {main}
  thrown
   Error in Script /var/lib/symcon/modules/.store/demel42.openweathermap/libs/CommonStubs/common.php on Line 307
  137 in IPSLibrary/app/core/IPSLogger/IPSLogger.inc.php (call IPSLogger_Out)
   33 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  121 in IPSLibrary/app/core/IPSLogger/IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_PhpErrorHandler)
      in IPSLogger_PhpFatalErrorHandler

Ich habe mal die Spracheinstellung von de zu dt geändert.

Hi,

das „dt“ hat nix mit der Sprache zu tun, er will ein Feld mit dem ident“dt“ aus den Daten holen (das ist in der API ein datetime also Zeitpunkt).

Das scheint bei der Abfrage der minütlichen Vorhersage ein Problem in den Daten zu geben, das ich nich genügend abfagne.
Kannst du bitte im Instanz-debug ein dump erzeugen und mir zumailen (bitte „Limitierung“ der Anzahl der Debugzeilen genug erhöhen)

danke

Im Debug von der Instanz kommt nicht viel an. Das sind gerade mal 6 Zeilen ist das korrekt?

Hallo Demel,

vielen Dank für Dein Modul. Ich habe es installiert, mich bei OWM registriert und den Key eingetragen. Es kommen auch Daten an, aber bei „aktualisiere Wetterdaten“ und im „Experten-Bereich“ werden Fehler geworfen:

Es ist die neueste Version. Kannst Du bitte weiterhelfen? Brauchst Du noch weitere Infos?

Viele Grüße aus dem zu heißen Unterallgäu
Harry

Das ist bei mir auch so, haben heute mal ein Update gemacht.
Nutze aber glaube ich noch die alte API.

VG,
Doc

Ok, das mit dem Experten-Bereich habe ich gerade gefixed (Modulstore/Beta), aber das mit dem Datenabruf kann ich nicht reproduzieren.

Bitte aktualisieren und nochmal probieren, ggfs vorher den Debug öffnen (bin aber pessimistisch, ob da dann was erscheint)

PS: meine Korrektur beziehet sich nur auf die alte API (OpenWeatherData), mit der neuen (OpenWeatherOneCell) konnte ich nichts nachstellen

Danke für die schnelle Antwort, ich werde am Wochenende die Beta installieren und testen.

Viele Grüße aus dem Unterallgäu
Harry

Hallo Demel,

in der Beta-Version sind beide Fehlermeldungen weg.
In der Stable reproduzierbar beide vorhanden.
Danke fürs Reparieren. :+1:

Im Debug steht bei Stable nichts drin, bei der Beta sehr wohl.
Leider kann man den Dump übers iPad (wie einige andere Funktionen auch) nicht runterladen, da verliert die Console die Connection.

Da es aber funktioniert, ist der Debug-Dump nicht so wichtig, denke ich.

Viele Grüße aus dem Unterallgäu
Harry

PS
Da ist der Dump:
dump.txt (10,8 KB)

Prima, wenn es weg ist, brauche ich keinen Dump mehr.
Sollte aber der Fehler bei Datenabruf nochmal auftreten, dann doch :slight_smile:

Prima Modul, ich hätte da aber einen Feature Request:

da die Vorhersage schnell einige Hundert Variablen erzeugt: Könnte man alternativ vielleicht die RAW Daten in einer Variablen anbieten ? Also einfach eine String Var, die dann die Forecast-Daten als json array enthält oder so. Das wären dann z.B. für Temperatur statt 48+60+7 noch 3 Strings, aus denen man relativ leicht die Daten rausfummeln kann, wenn man die braucht.

Ist aber nur ne idee.

Oder kommt man jetzt schon irgendwie sogar an die RAW Daten ran ?

Danke für das schöne Modul !
Tom

das gibt es im Prinzip schon, jedoch nicht über eine ariable sonder über eine Funktion namens OpenWeather*_GetRawData() (siehe README.md).
Hiermit hast Du Zugriff auf alle Daten des Abrufs (OpenWeatherOneCall) bzw der beiden Abrufe (OpenWaetherData).
Bei OpenWeatherData ist es etwas tricky, weil der 2. APi-Call (zum Abruf der Vorhersage) nur gemacht wird, wenn min 1 Wert (Stunde) der Vorhersage konfiguriert ist.
Den Aufbau der Daten kannst du der Original OpenWeather-API-Doku entnehmen.

Ja, super, dann konfiguriert man eben einen Vorhersagewert - das ist ja kein Problem.

Leider verstehe ich nicht, wie ich die Funktion aufrufe:
in der READ.ME zum Modul steht, dass es keine Parameter braucht. In der READ:ME zum OC steht, dass es die id vom Modul brauccht. Rufe ich die Funktion auf, scheinen aber 2 vars nötig zu sein, eine id und eine String - dsachte erst, da kommen die Daten rein, aber sie muss gesetzt sein. Setze ich sie, dann kriege ich:

Fatal error: Uncaught Exception: Instance does not implement this function in /var/lib/symcon/scripts/__generated.inc.php:9918

ich mache bestimmt irgendeinen Fehler. Ich bin aktuell auf dem beta-Kanal.

[EDIT] Ach nee, das ist wohl OpenWeatherMap_GetRawData() - laut README zum Modul. Aber die Funktion kennt er nicht.

[EDIT2]
OpenWeatherOneCall_GetRawData() geht, liefert bei mir aber:
Notice: Undefined variable: name in /var/lib/symcon/modules/.store/demel42.openweathermap/OpenWeatherOneCall/module.php on line 1158

Danke, klappt !