FHEM Forum

FHEM - Hausautomations-Systeme => Unterstützende Dienste => Wettermodule => Thema gestartet von: nobody am 30 Dezember 2021, 15:32:28

Titel: [patch] Tägliche Daten für OpenWeatherMap
Beitrag von: nobody am 30 Dezember 2021, 15:32:28
Hi.

Im angehängten Patch wird die Abfrage auf OpenWeatherMap.org von "forecast" auf "onecall" umgestellt. Dies hat den Vorteil dass auch Daten für eine tägliche Wettervorhersage mitgeliefert werden. Diese können nun einfach mittels WeatherAsHtmlX(<name>,"d",<count>) im Webinterface eingebunden werden (bisher wurde hier nur das derzeitige Wetter geliefert).

Bei meiner Implementierung habe ich die Abfrage mittels "forecast" (Wetterdaten alle 3 Stunden für 4 Tage) entfernt. Mir ist bewusst, dass dies ein gewisses Konfliktpotential bietet. Falls es dem User möglich sein soll die Art der Abfrage steuern zu können bin ich natürlich gerne bereit meinen Patch entsprechend anzupassen. Allerdings bräuchte ich dafür 1-2 Tips wie das am Sinnvollsten implementiert werden kann (z.B, über ein Attribut?)

Da die Abfrage über die API "onecall" nicht alle Daten liefert (z.B. Ort Name und Land) muss auch weiterhin ein call auf die API "weather" erfolgen. Damit ich garantieren kann, dass immer beide calls ausgeführt werden, musste ich den Ablauf etwas ändern. Im Detail werden beide request in non-blocking Art und Weise abgesetzt und die internen Strukturen beim Empfang von jedem der beiden aktualisiert. Funktioniert bei mir recht gut.

Übrigens: Ich habe auch einen Fix für die Probleme mit Warnings im Modul OpenWeatherMap (siehe [1] und [2]) einfließen lassen. Im Detail werden die Warnigns mittels no warnings 'uninitialized'; lokal deaktiviert.

[1] https://forum.fhem.de/index.php/topic,95730.msg1196525.html#msg1196525 (https://forum.fhem.de/index.php/topic,95730.msg1196525.html#msg1196525)
[2] https://forum.fhem.de/index.php/topic,95823.msg1191054.html#msg1191054 (https://forum.fhem.de/index.php/topic,95823.msg1191054.html#msg1191054)
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 30 Dezember 2021, 17:17:43
Schaue ich mir gerne an. Wird aber etwas dauern. Kann Dir aber jetzt schon sagen das
no warnings 'uninitialized';
nur eine Verschleierung ist und die eigentliche Ursache nicht behebt.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: nobody am 30 Dezember 2021, 18:07:31
Das auf jeden Fall. Die saubere Variante wäre vor jeder Berechnung abzuprüfen ob der Wert im Hash definiert ist oder nicht. Das würde allerding den Code extrem aufblähen.

Hm, jetzt wo ich so drüber nachdenke könnte man das vielleicht mit einem Makro sauber lösen. Das könnte man dann auch gleich aufs Modul 59_Weather.pm auch anwenden, denn dort treten solche Warnings bei mir auch auf.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 30 Dezember 2021, 18:17:26
Eigentlich sollten im Modul keine Warnings auftreten. Und auch bei Elektrolurch ist was nicht ganz korrekt. Eine Multiplikation gibt es an der Stelle wo das Warning kommt gar nicht.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 12 Februar 2022, 09:25:48
Wäre echt toll wenn bei OpenWeatherMap.org das neu "onecall" API unterstützt würde.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 12 Februar 2022, 12:57:36
Könnt Ihr bitte einmal diese Version testen

Readonly ist nun Voraussetzung
apt install libreadonly-perl


https://git.cooltux.net/FHEM/mod-Weather/raw/branch/patch-addOnecallMode/OpenWeatherMapAPI.pm

Aber mit Vorsicht. Und wenn es Probleme gibt brauche ich immer die entsprechende FHEM Logausgabe.


Grüße
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 12 Februar 2022, 14:25:17
Ich probiere das gerne mal aus.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 12 Februar 2022, 14:29:17
Es wird forecast und onecall unterstützt
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 13 Februar 2022, 11:14:13
Habe die verlinkte Datei ersetzt

-rw-r--r-- 1 fhem dialout  35043 Feb 13 10:52 OpenWeatherMapAPI.pm
-rw-r--r-- 1 root root     23294 Feb 13 10:45 OpenWeatherMapAPI.pm.old

und meine Installation neu gestartet

2022.02.13 11:03:10 0: Server shutdown
2022.02.13 11:03:11 1: Including fhem.cfg
2022.02.13 11:03:11 3: WEB: port 8083 opened
2022.02.13 11:03:11 2: eventTypes: loaded 874 lines from ./log/eventTypes.txt
2022.02.13 11:03:11 3: FHZ opening FHZ device /dev/serial/by-id/usb-ELV_AG_ELV_FHZ_1300_PC_EL65DJ1H-if00-port0
2022.02.13 11:03:11 3: FHZ opened FHZ device /dev/serial/by-id/usb-ELV_AG_ELV_FHZ_1300_PC_EL65DJ1H-if00-port0
2022.02.13 11:03:14 1: define OpenWeather Weather API=OpenWeatherMapAPI,cachemaxage:600 apikey=xxx interval=3600 lang=en: OpenWeather: cannot load API OpenWeatherMapAPI: Can't locate Readonly.pm in @INC (you may need to install the Readonly module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/arm-linux-gnueabihf/perl5/5.32 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl-base /usr/lib/arm-linux-gnueabihf/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl ./FHEM/lib) at FHEM/OpenWeatherMapAPI.pm line 115.
BEGIN failed--compilation aborted at FHEM/OpenWeatherMapAPI.pm line 115.
Compilation failed in require at ./FHEM/59_Weather.pm line 677.

2022.02.13 11:03:14 1: Including ./log/fhem.save
2022.02.13 11:03:14 1: Messages collected while initializing FHEM:configfile: OpenWeather: cannot load API OpenWeatherMapAPI: Can't locate Readonly.pm in @INC (you may need to install the Readonly module) (@INC contains: ./lib ./FHEM . /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.32.1 /usr/local/share/perl/5.32.1 /usr/lib/arm-linux-gnueabihf/perl5/5.32 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl-base /usr/lib/arm-linux-gnueabihf/perl/5.32 /usr/share/perl/5.32 /usr/local/lib/site_perl ./FHEM/lib) at FHEM/OpenWeatherMapAPI.pm line 115.
BEGIN failed--compilation aborted at FHEM/OpenWeatherMapAPI.pm line 115.
Compilation failed in require at ./FHEM/59_Weather.pm line 677.

setuuid: Please define OpenWeather first
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 13 Februar 2022, 11:28:56
apt install libreadonly-perl
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Frank_Huber am 13 Februar 2022, 11:47:30
Zitat von: Hinata am 13 Februar 2022, 11:14:13
Habe die verlinkte Datei ersetzt
Lösche doch bitte mal noch deinen API key aus dem Post..
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 13 Februar 2022, 16:47:30

Bei der Tagesansicht finde ich die Uhrzeit irritierend.
{ WeatherAsHtmlV("OpenWeather","d", 3) }

clear sky
12°C 45%
Wind: S 19 km/h

Sun, 11:00: few clouds
min 1°C max 12°C
Wind: S 11 km/h

Mon, 11:00: few clouds
min 2°C max 10°C
Wind: S 11 km/h


Stündlicher Forecast, Abstand 3h (anstatt 1h).
{ WeatherAsHtmlV("OpenWeather","h", 3) }

12°C 45%
Wind: S 19 km/h

Sun, 18:00: clear sky
min 5°C max 9°C
-

Sun, 21:00: few clouds
min 3°C max 6°C
-

Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 13 Februar 2022, 17:07:27
Die Daten kommen genau so 1 z 1 über die API rein. Kann nur das nehmen was ich da angeboten bekomme.

Ansonsten funktioniert es aber bei Dir?
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: xenos1984 am 13 Februar 2022, 19:04:09
Zitat von: Hinata am 13 Februar 2022, 16:47:30
OpenWeather bietet auch Historical und Minute, was bei Forecast nicht ausgewählt werden kann.

So weit ich das sehe, geht eine Stunde Abstand nur ab Developer, Free hat nur drei Stunden:

http://openweathermap.org/api
http://openweathermap.org/api/hourly-forecast
http://openweathermap.org/forecast5

OpenWeatherMapAPI benutzt endpoint="forecast" (drei Stunden). Stündlich wäre endpoint="forecast/hourly".
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 13 Februar 2022, 19:26:27
So richtig werde ich aus der Beschreibung auch nicht schlau, unter ,,Hourly forecast for 48 hours" verstehe ich aber stündlich?

Hourly Forecast 4 days
API doc Subscribe
Hourly forecast is available for 4 days
Forecast weather data for 96 timestamps
JSON and XML formats
Included in the Developer, Professional and Enterprise subscription plans

One Call API
API doc Subscribe
Make one API call and get current, forecast and historical weather data
Minute forecast for 1 hour
Hourly forecast for 48 hours
Daily forecast for 7 days
Historical data for 5 previous days
National weather alerts
JSON format
Included in both free and paid subscriptions

Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 13 Februar 2022, 19:45:06
Wenn ich das API aufrufe bekomme ich stündliche Daten:

https://api.openweathermap.org/data/2.5/onecall?lat=48.74&lon=9.33&appid=xyz


...
hourly":[
{"dt":1644775200,"temp":278.53,"feels_like":276.6,"pressure":1014,"humidity":64,"dew_point":272.38,"uvi":0,"clouds":1,"visibility":10000,"wind_speed":2.38,"wind_deg":163,"wind_gust":5.45,"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"pop":0},
{"dt":1644778800,"temp":278.67,"feels_like":276.91,"pressure":1014,"humidity":64,"dew_point":272.5,"uvi":0,"clouds":0,"visibility":10000,"wind_speed":2.22,"wind_deg":158,"wind_gust":4.26,"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"pop":0},
{"dt":1644782400,"temp":278.29,"feels_like":276.52,"pressure":1014,"humidity":64,"dew_point":272.18,"uvi":0,"clouds":1,"visibility":10000,"wind_speed":2.16,"wind_deg":157,"wind_gust":3.67,"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"pop":0},
{"dt":1644786000,"temp":277.78,"feels_like":275.92,"pressure":1014,"humidity":62,"dew_point":271.37,"uvi":0,"clouds":2,"visibility":10000,"wind_speed":2.17,"wind_deg":161,"wind_gust":3.77,"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"pop":0},
...
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 13 Februar 2022, 19:46:21
ZitatAnsonsten funktioniert es aber bei Dir?
Sonst habe ich bisher keine Probleme festgestellt.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 13 Februar 2022, 20:47:26
Zitat von: Hinata am 13 Februar 2022, 19:45:06
Wenn ich das API aufrufe bekomme ich stündliche Daten:

https://api.openweathermap.org/data/2.5/onecall?lat=48.74&lon=9.33&appid=xyz


...
hourly":[
{"dt":1644775200,"temp":278.53,"feels_like":276.6,"pressure":1014,"humidity":64,"dew_point":272.38,"uvi":0,"clouds":1,"visibility":10000,"wind_speed":2.38,"wind_deg":163,"wind_gust":5.45,"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"pop":0},
{"dt":1644778800,"temp":278.67,"feels_like":276.91,"pressure":1014,"humidity":64,"dew_point":272.5,"uvi":0,"clouds":0,"visibility":10000,"wind_speed":2.22,"wind_deg":158,"wind_gust":4.26,"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"pop":0},
{"dt":1644782400,"temp":278.29,"feels_like":276.52,"pressure":1014,"humidity":64,"dew_point":272.18,"uvi":0,"clouds":1,"visibility":10000,"wind_speed":2.16,"wind_deg":157,"wind_gust":3.67,"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"pop":0},
{"dt":1644786000,"temp":277.78,"feels_like":275.92,"pressure":1014,"humidity":62,"dew_point":271.37,"uvi":0,"clouds":2,"visibility":10000,"wind_speed":2.17,"wind_deg":161,"wind_gust":3.77,"weather":[{"id":800,"main":"Clear","description":"clear sky","icon":"01n"}],"pop":0},
...


Bei onecall nehme ich nur die Tagesvorhersage. Die 3 Stundendaten kommen aus forecast
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 13 Februar 2022, 22:23:22
ZitatBei onecall nehme ich nur die Tagesvorhersage. Die 3 Stundendaten kommen aus forecast
Warum nicht für beides? https://openweathermap.org/api/one-call-api scheint doch das neuere API mit mehr Möglichkeiten zu sein?
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 14 Februar 2022, 15:39:29
Die Umstellung würde mehr Zeit in Anspruch nehmen welche ich aktuell nicht habe.

Es geht vor allem darum sich den Response an zu schauen und ab zu schätzen ob aktuell vorhandene Daten für User verloren gehen.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 14 Februar 2022, 20:09:05
Ich bin neuer FHEM User und kann nur schlecht beurteilen ob etwas fehlt.
Meine Use Cases funktionieren fehlerfrei.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 22 Februar 2022, 20:44:18
Nach einem Neustart habe ich folgende Meldung erhalten:

PERL WARNING: Use of uninitialized value in multiplication (*) at FHEM/OpenWeatherMapAPI.pm line 452.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 22 Februar 2022, 20:58:58
Ich schau mal ob ich etwas finde.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 23 Februar 2022, 18:33:16
Es ist mir auch noch eine andere Sache aufgefallen. Die APIs liefern unterschiedliche Werte für ,,current" bzw. aktuelle Stunde, je nachdem ob man bei Current, Hourly Forecast oder One Call API reinschaut.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 23 Februar 2022, 19:07:14
Gibt eigentlich nur eine API. Aber die Endpunkte sind unterschiedlich und daher ist die Antwort auch unterschiedlich welche dann kommt. Aber das liegt einzig an der API. Es werden nur die Daten geschrieben welche empfangen wurden.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 26 Februar 2022, 11:03:10
Ich habe einen weiteren Test gemacht:

WLAN Router 10 min ausgeschaltet und dann wieder ein. Mit aktiviertem OpenWeather Device startet mein Raspi nach einigen Minuten nach dem einschalten des WLAN neu (Reboot). Ohne OpenWeather passiert das nicht.

Ich habe in meinem RaspiOS einen Watchdog aktiviert, der prüft ob regelmäßig in eine Datei geschrieben wird. Über einen FHEM-Timer schreibe ich alle 10 min in die Datei.

Irgendein Aufruf von OpenWeather scheint blockierend zu sein und ganz FHEM anzuhalten?
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 26 Februar 2022, 11:11:30
Zitat von: Hinata am 26 Februar 2022, 11:03:10
Ich habe einen weiteren Test gemacht:

WLAN Router 10 min ausgeschaltet und dann wieder ein. Mit aktiviertem OpenWeather Device startet mein Raspi nach einigen Minuten nach dem einschalten des WLAN neu (Reboot). Ohne OpenWeather passiert das nicht.

Ich habe in meinem RaspiOS einen Watchdog aktiviert, der prüft ob regelmäßig in eine Datei geschrieben wird. Über einen FHEM-Timer schreibe ich alle 10 min in die Datei.

Irgendein Aufruf von OpenWeather scheint blockierend zu sein und ganz FHEM anzuhalten?

Logausgabe bitte
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: Hinata am 27 Februar 2022, 09:19:49
Eine LOG-Datei mit sinnvollem Inhalt habe ich bisher nicht hinbekommen, da ich ein RAM-Disk für die LOG-Dateien verwende und zusätzlich FHEM von außen über einen Watchdog überwache. In den Systemlogs sieht man, das FHEM aufhört die KeepAlive-Datei zu schreiben und der Watchdog dadurch auslöst. Wie gesagt, kann ich das Problem recht einfach beseitigen, in dem ich OpenWeather disable 1 setzte.

Ich kenne mich in Perl zu wenig aus, die Frage die aber doch einfach zu klären sein sollte ist, ob der Abruf der JSON-Daten über das Web-API blockierend ist?
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 27 Februar 2022, 12:32:10
Zitat von: Hinata am 27 Februar 2022, 09:19:49
Ich kenne mich in Perl zu wenig aus, die Frage die aber doch einfach zu klären sein sollte ist, ob der Abruf der JSON-Daten über das Web-API blockierend ist?

Das ist leicht. Nein ist sie nicht.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: romakrau am 16 März 2022, 21:10:12
Die Zeiten für Sonnenaufgang usw. sind um eine Stunde verschoben. Im Modul finde ich bei Zeitumrechnungen immer -3600 ist das correct?

Edit: Anscheined nur für forecast
Edit2: Wenn ich mir was wünschen darf, wäre das der Wert hourly.uvi.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: romakrau am 17 März 2022, 19:53:55
Sodele, ich habe mich mal selbst versucht an dem Code und folgendes geändert:

Block:
push(
                       @{ $self->{cached}->{forecast}->{hourly} },

eingefügt:
'uvi' => sprintf("%.1f", (
$data->{list}->[$i]->{main}->{uvi}
)
),

im Block:
push(
                    @{ $self->{cached}->{forecast}->{daily} },


die Substraktion der Zeiten um -3600 Sekunden beseitigt.

Das Ergebnis stimmt mit einem direkten Vergleich der API Abfrage überein.
Keine Ahnung wie ich das Updatefest bekomme.

Gruß Roman
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 17 März 2022, 20:34:35
Ich schaue es mir die Tage mal an. Denke aber immer Sommer wird es dann wieder falsch sein.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: romakrau am 17 März 2022, 20:35:12
Sorry für die vielen Postings, aber so langsam fummele ich mich da ein. Die listing für hfc. sind auch nicht richtig:
Beispiel:

hfc3_cloudCover 6 2022-03-17 20:17:12
hfc3_code 32 2022-03-17 20:17:12
hfc3_condition Klarer Himmel 2022-03-17 20:17:12
hfc3_day_of_week Fr, 03:00 2022-03-17 20:17:12
hfc3_high_c 5 2022-03-17 20:17:12
hfc3_humidity 62 2022-03-17 20:17:12
hfc3_icon sunny 2022-03-17 20:17:12
hfc3_iconAPI 01n 2022-03-17 20:17:12
hfc3_low_c 5 2022-03-17 20:17:12
hfc3_pressure 1039 2022-03-17 20:17:12
hfc3_pubDate Fr, 18 Mär 2022 03:00 2022-03-17 20:17:12
hfc3_tempHigh 5 2022-03-17 20:17:12
hfc3_tempLow 5 2022-03-17 20:17:12
hfc3_temp_c 5 2022-03-17 20:17:12
hfc3_temperature 5 2022-03-17 20:17:12
hfc3_uvi 0.0 2022-03-17 20:17:12
hfc3_wind 6 2022-03-17 20:17:12
hfc3_wind_gust 12 2022-03-17 20:17:12
hfc3_wind_speed 6


Meiner Meinung nach sind das die Daten aus dem Block 8:= Fr.,18 Mär 2022 04:00

8 :
dt                    1647572400
temp            4.83
feels_like            3.69
pressure            1039
humidity            62
dew_point   -1.95
uvi                   0
clouds          6
visibility         10000
wind_speed 1.55
wind_deg 30
wind_gust 3.3
weather 0
id 800
main "Clear"
description "Klarer Himmel"
icon "01n"
pop 0


Ich habe allerdings noch nicht verstanden wie die 3H Blöcke gebildet werden , da alle 48 Stunden in dem JSON Datensatz verhanden sind. Die Subtraktion von -3600 Sekunden bei den HFC Daten wäre also auch falsch. Vielleicht kann mir mal jemand erklären wie die Datenabfrage auf den 3 Stunden Rhythmus denn programmiert ist.

Gruß
Roman
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: romakrau am 17 März 2022, 20:37:05
@Cooltux: Die Umrechnung erfolgt doch per localtime und sollte also korrekt sein, wenn die Zeitzone stimmt.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: CoolTux am 17 März 2022, 21:00:08
Es muss ja Mal einen Grund gegeben haben das ich es so gemacht hatte

OpenWeatherMap hat doch ne API Beschreibung. Ich suche morgen mal.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: romakrau am 18 März 2022, 05:28:39
Bevor du anfängst hier noch ein paar Gedanken dazu.
Der vermeintliche Fehler mit der Sommerzeit ist schlicht ein Denkfehler.
UTC 1100 = MEZ 1200 = MESZ 1300. Somit wäre die fc. Zeit im Sommer mit 13:00 korrekt.
Ich würde vielleicht nur noch onecall abfragen und mit dem Parameter excl. arbeiten , vielleicht noch zsätzlich als Attribut die units aufnehmen.
Attr. units = default,  metric, imperial
Attr. forecast = every, daily, hourly = exclude mit dem entsprechendem  Werten versehen.
Den hourly forcast könnte man mit einem mod(3) = 0 auf den localtime(Stundenwert) begrenzen. Das verringert das Datenvolumen. Wären bei 48 Stunden halt nur 15 Werte hfc. möglich.

Sind nur ein paar Gedanken.
Gruss Roman
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: romakrau am 18 März 2022, 06:13:51
Sorry, hinsichtlich Stundendaten bezog ich mich auf die onecall API. Mein Fehlet.
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: nobody am 02 April 2022, 19:49:04
Vielleicht ist des Rätsels Lösung, dass für die hourly Daten die "forecast" API genutzt wird und für daily die "onecall". Ich würde es persönlich besser finden für beides die "onecall" zu benutzen, da eine stündliche Auflösung möglich ist, aber das hat natürlich auch Nachteile (z.B. Datenverbrauch).

Persönlich hat es mir beim Benutzen von onecall auch nicht so gut gefallen, dass im Web Interface die Daten dann nur mehr stündlich angezeigt werden können. Meine Lösung: Ich hab die Funktionen WeaterAsHtmlX(.) um einen Parameter skip erweitert sodass nur jeder n-te genutzt wird, also z.B.


sub WeatherAsHtmlV($;$$$) {
    my ( $d, $op1, $op2, $skip ) = @_;

    ....

    # if skip is undef it accounts as 0 in addition
    my $inc = 1 + $skip;
    $items *= $inc;
   
    for ( my $i = 1 ; $i < $items ; $i+= $inc ) {
    .....
    }
}
Titel: Antw:[patch] Tägliche Daten für OpenWeatherMap
Beitrag von: nobody am 02 April 2022, 19:53:17
Zitat von: Hinata am 27 Februar 2022, 09:19:49
Eine LOG-Datei mit sinnvollem Inhalt habe ich bisher nicht hinbekommen, da ich ein RAM-Disk für die LOG-Dateien verwende und zusätzlich FHEM von außen über einen Watchdog überwache. In den Systemlogs sieht man, das FHEM aufhört die KeepAlive-Datei zu schreiben und der Watchdog dadurch auslöst. Wie gesagt, kann ich das Problem recht einfach beseitigen, in dem ich OpenWeather disable 1 setzte.

Ich kenne mich in Perl zu wenig aus, die Frage die aber doch einfach zu klären sein sollte ist, ob der Abruf der JSON-Daten über das Web-API blockierend ist?

Sehr interessant. Bei schmiert FHEM auch regelmäßig ab, vielleicht liegt es ja wirklich am OpenWeather Modul. Ich werde das mal überprüfen.