Modul für DWD Open Data

Begonnen von jensb, 21 Januar 2018, 14:38:48

Vorheriges Thema - Nächstes Thema

stefanru

Hi Ingo,

ich habe das ganze gemonitored mit "free -m".
Ich habe den Update manuell am DWD Device angestartet mit "get <DEVICE> forecast"
Danach habe ich "free -m" ständig aufgerufen und beobachtet, besonders die letzte Spalte available ist interessant.
Zuerst sieht man nichts während das ZIP runtergeladen wird.
Bei mir mit meiner lahmen Verbindung dauert das ca. 30 sec.

Danach nimmt der Speicher dann massiv und schnell ab.
Ich habe einen Speicherverbrauch von über 3GB gesehen.
Ist das vorbei wird er auch direkt wieder freigegeben.
Man sieht den effekt also nur kurz (ca. 5 - 10 sek).
Wenn du 4GB available hast sollte der RAM ausreichen.

Gruß,
Stefan

Ingo298

Servus Stefan,

genau so ausgeführt available geht nicht unter 6200 MB, die 2048 MB SWAP wird nicht genutzt
RPi4 8GB: Buster FHEM 6.3, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT

DS_Starter

Dein Device steigt offenbar beim XML Parsen aus.
Gib mir mal bitte deine verwendete Station Id (per PM wenn du es hier nicht schreiben magst).
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Ingo298

es werden ca. 1.3 GB RAM für die Aktion benutz
Meine Stations-ID ist M225 (Unstrut-Hainich Kreis)
RPi4 8GB: Buster FHEM 6.3, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT

DS_Starter

#919
An der Station liegt es nicht. Die läuft bei mir.
Hmmm ...

Die Library XML::LibXML ist bei auch vorhanden nehme ich an. Sonst würde auch low nicht funktionieren und es käme vermutlich ein anderer Fehler.
Stelle doch das Attr downloadTimeout mal auf z.B. 300.

Edit: Hätte mir gleich auffallen sollen. Deine Parsing Time ist sehr lang, da schlägt der Timeout wohl zu:

2024.02.28 09:09:06 5: DWD: ProcessForecast: parsing XML document
2024.02.28 09:11:56 3: DWD: GetForecastAbort ERROR: downloading and processing weather forecast data failed (Process died prematurely)
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

xerion

in meinem contrib liegt eine Version des DWD Moduls bei der das Attr downloadTimeout auch bei deinem Problem helfen sollte. Kannst du z.B. auf 120 stellen.

Hallo Heiko,

ich habe mir die Version aus deinem contrib gezogen und den downloadTimeout auf 120 gestellt. Werde das mal testen Ein gezieltes herunterfahren von fhem habe ich definitiv nicht.
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

Ingo298

Zitat von: DS_Starter am 28 Februar 2024, 12:49:10Die Library XML::LibXML ist bei auch vorhanden nehme ich an. Sonst würde auch low nicht funktionieren und es käme vermutlich ein anderer Fehler.
Stelle doch das Attr downloadTimeout mal auf z.B. 300.

libxml-simple-perl ist schon die neueste Version (2.25-1)

forecastDataPrecision low
2024.02.28 13:36:25 5: DWD: GetForecastStart START (PID 3720): https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_L/single_stations/M225/kml/MOSMIX_L_LATEST_M225.kmz
2024.02.28 13:36:26 5: DWD: ProcessForecast START
2024.02.28 13:36:26 5: DWD: ProcessForecast: data received, decoding ...
2024.02.28 13:36:26 5: DWD: ProcessForecast: parsing XML document
2024.02.28 13:36:26 5: DWD: ProcessForecast: extracting data
2024.02.28 13:36:26 5: DWD: ProcessForecast temp file /tmp/htGKkrvc35 forecast 3 size 17565
2024.02.28 13:36:26 5: DWD: ProcessForecast END
2024.02.28 13:36:26 5: DWD: GetForecastStart END

forecastDataPrecision high
2024.02.28 13:36:46 5: DWD: GetForecast START (PID 2783)
2024.02.28 13:36:47 5: DWD: GetForecast END
2024.02.28 13:36:47 5: DWD: GetForecastStart START (PID 3721): https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_S/all_stations/kml/MOSMIX_S_LATEST_240.kmz
2024.02.28 13:36:51 5: DWD: ProcessForecast START
2024.02.28 13:36:51 5: DWD: ProcessForecast: data received, decoding ...
2024.02.28 13:36:56 5: DWD: ProcessForecast: parsing XML document
2024.02.28 13:41:47 3: DWD: GetForecastAbort ERROR: downloading and processing weather forecast data failed (Process died prematurely)
2024.02.28 13:41:47 5: DWD: RotateForecast: START 0 day(s) exist
2024.02.28 13:41:47 3: DWD: RotateForecast: station has changed, deleting exisiting readings
2024.02.28 13:41:47 5: DWD: RotateForecast: END 0 day(s) remain
RPi4 8GB: Buster FHEM 6.3, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT

DS_Starter

Ich denke es liegt an der Zeit:

2024.02.28 13:36:56 5: DWD: ProcessForecast: parsing XML document
2024.02.28 13:41:47 3: DWD: GetForecastAbort ERROR: downloading and processing weather forecast data failed (Process died prematurely)

Das sind zwischen Start und Abbruch 291s. Wenn downloadTimeout auf 300 steht, dann bestätigt es meine Einschätzung.
Erhöhe downloadTimeout drastisch auf z.B. 1800 und dann schauen wir wieder was passiert.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Ingo298

#923
bei einen TimeOut von 1800, bei top Prozessorlast liegt bei 0.5% RAM Free ca. 7500 MB,
die SDCard ist aus meinen alten PI2 das OS ist Buster mit 32bit und allen dazugehörigen Updates

2024.02.28 14:51:53 5: DWD: GetForecast START (PID 2783)
2024.02.28 14:51:53 3: DWD: GetForecastAbort ERROR: downloading and processing weather forecast data failed (Process died prematurely)
2024.02.28 14:51:53 5: DWD: RotateForecast: START 0 day(s) exist
2024.02.28 14:51:53 3: DWD: RotateForecast: station has changed, deleting exisiting readings
2024.02.28 14:51:53 5: DWD: RotateForecast: END 0 day(s) remain
2024.02.28 14:51:53 5: DWD: GetForecast END
2024.02.28 14:51:53 5: DWD: GetForecastStart START (PID 18963): https://opendata.dwd.de/weather/local_forecasts/mos/MOSMIX_S/all_stations/kml/MOSMIX_S_LATEST_240.kmz
2024.02.28 14:51:57 5: DWD: ProcessForecast START
2024.02.28 14:51:57 5: DWD: ProcessForecast: data received, decoding ...
2024.02.28 14:52:02 5: DWD: ProcessForecast: parsing XML document
2024.02.28 15:03:49 5: DWD: Timer START
2024.02.28 15:03:49 5: DWD: Timer END
2024.02.28 15:10:38 5: DWD: Timer START
2024.02.28 15:10:38 5: DWD: Timer END
2024.02.28 15:18:55 5: DWD: Timer START
2024.02.28 15:18:55 5: DWD: Timer END
2024.02.28 15:21:53 3: DWD: GetForecastAbort ERROR: downloading and processing weather forecast data failed (Process died prematurely)
2024.02.28 15:21:53 5: DWD: RotateForecast: START 0 day(s) exist
2024.02.28 15:21:53 3: DWD: RotateForecast: station has changed, deleting exisiting readings
2024.02.28 15:21:53 5: DWD: RotateForecast: END 0 day(s) remain
RPi4 8GB: Buster FHEM 6.3, FTUI-3, AMAD,10.1" Tablet; MiLight;IT;HM;Dect200;VZLogger;MQTT

DS_Starter

Zitatbei einen TimeOut von 1800, bei top Prozessorlast liegt bei 0.5% RAM Free ca. 7500 MB
What??

Auch hier ist der zeitliche Zusammenhang deutlich:

2024.02.28 14:52:02 5: DWD: ProcessForecast: parsing XML document
...
2024.02.28 15:21:53 3: DWD: GetForecastAbort ERROR: downloading and processing weather forecast data failed (Process died prematurely)

Ziemlich nahe an den 1800s.
Ist deine CPU Leistung derart schwach dass das System mit dem Parsen nicht durchkommt?
Für mich sieht es jedenfalls so aus...
Vllt. hat noch jemand eine andere Idee.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Jetzt gehen wir aufs Ganze und setzen downloadTimeout auf 3600. :)
Wenn das nach 1 Stunde immer noch nicht funktioniert musst du wahrscheinlich erstmal abwarten bis Jens eine schnellere Parsingmöglichkeit gefunden und eingebaut hat.
Der ganzeVorteil der zeitnahen Aktualisierung geht ja bei derart lang laufenden Prozessen verloren.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Prof. Dr. Peter Henning

Wir nähern uns in großen Schritten einer Grenze, die ich bisher nur aus der Quantenmechanik kenne: Wenn die für eine genau lokale Vorhersage benötigte Rechenleistung soviel Abwärme verursacht, dass sie das Wetter beeinflusst  8)

LG

pah

DS_Starter

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mumpitzstuff

Der XML Parser spuckt mit Sicherheit einen Fehler aus. Als ich z.B. euer unzip in einem separaten Perl Script verwendet habe, hat mir libXML immer Fehler ausgespuckt. Dann habe ich das zip File manuell entpackt und in eine Variable eingelesen und das hat libXML gefressen. Eventuell liegt es hier auch daran, das unzip etwas falsch macht und sich der Parser dann aufhängt.

DS_Starter

#929
Durchaus möglich. Allerdings macht mich stutzig, dass das System immer die gesamte Zeit bis zum gesetzten Timeout ausnutzt. Naja vllt. bleibt der Prozess einfach nur stehen und tut nichts mehr bis zum Zwangskill.

Wenn Jens die nächste Version zum Test des optimierten Downloads freigegeben hat, schaut er sich bestimmt die besseren Parsingmöglichkeiten ohne DOM an. Bin gespannt.

Abgesehen davon läuft das contrib Modul bei mir sehr gut und aktualisiert beständig.
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter