Tägliche Regenmenge aus DWD-Radolan Daten einlesen

Begonnen von alkazaa, 12 August 2023, 21:12:09

Vorheriges Thema - Nächstes Thema

alkazaa

Zitat von: romakrau am 03 Januar 2024, 06:52:48Es gibt da noch weitere Stellen mit Problemen:

Use of uninitialized value $targettime in concatenation (.) or string at ./FHEM/98_CDCOpenData.pm line 1554.
Use of uninitialized value in concatenation (.) or string at ./FHEM/98_CDCOpenData.pm line 1763.
Use of uninitialized value in concatenation (.) or string at ./FHEM/98_CDCOpenData.pm line 1879.

Gruss Roman
Hallo Roman,
ich konnte das auch mit einem entsprechend Deinem listing nachgestellten device nicht nachvollziehen.
Tauchen die warnings nach dem update auf JoWiemanns aktualisierte Version immer noch auf?

Gruß Franz

romakrau

#181
Hallo Franz,

ich habe das Modul aktualisiert und bekomme folgende Fehlermeldung:

Use of uninitialized value in concatenation (.) or string at ./FHEM/98_CDCOpenData.pm line 1799.
Das Modul nutze ich nur zur Ermittlung der Regenmenge der letzten Tage zwecks Gartenbewässerung.
Gruß
Roman

Edit: Diese Meldung erscheint 60-mal im Log.

alkazaa

Zitat von: romakrau am 08 Januar 2024, 08:04:05Hallo Franz,
ich habe das Modul aktualisiert und bekomme folgende Fehlermeldung:
Use of uninitialized value in concatenation (.) or string at ./FHEM/98_CDCOpenData.pm line 1799.Das Modul nutze ich nur zur Ermittlung der Regenmenge der letzten Tage zwecks Gartenbewässerung.
Gruß
Roman
Edit: Diese Meldung erscheint 60-mal im Log.
Moin Roman,
ich bekomme nach wie vor kein solches warnings. Ich habe zur Sicherheit ein neues CDC-Device 'CDCtest' mit möglichst exakt Deinen Daten angelegt. Dessen listing (mit 'list CDCtest' erzeugt) sieht so aus:
Internals:
   CFGFN     
   DEBUGLOG   OFF
   DWDHOST    opendata.dwd.de
   FUUID      659bd66e-f33f-a50b-5c21-e1c32a26e2abb838
   INTERVAL   300
   LOCATION   Home:51.2047222,6.7422222
   NAME       CDCtest
   NEXT       2024-01-09 02:00:00
   NR         211
   NTFY_ORDER 50-CDCtest
   STATE      Regenmenge: 0 l/m2
   TIMEOUT    55
   TMPDIR     temp_radolan_data_CDCtest
   TYPE       CDCOpenData
   VERSION    01.12c
   eventCount 5
   CONFIG:
     IN_REQUEST 0
   READINGS:
     2024-01-07 23:50:00   Home_day_rain/00 0
     2024-01-06 23:50:00   Home_day_rain/01 0.7
     2024-01-05 23:50:00   Home_day_rain/02 1.2
     2024-01-08 12:06:58   retStat_lastReadout 4 values captured in 0.01 s
     2024-01-08 12:06:58   state           4 values captured in 0.01 s
   fhem:
     UPDATE     0
   helper:
     CronTime   1
     FhemLog3Std 0
     TimerCmd   CDCtest.Cmd
     TimerReadout CDCtest.Readout
     baseTMPDIR temp_radolan_data_CDCtest
     debugLog   CDCtest_debugLog
     logDebug  
     rainLog    CDCtest_rainLog
   hmccu:
Attributes:
   cronTime   * 2 * * *
   enableDWDdata rainByDay
   numberOfDays 3
   stateFormat Regenmenge: {(ReadingsNum("$name","Home_day_rain/00",0))} l/m2
   verbose    0
In Details unterscheidet es sich von Deinem listing, z.B. gibt es diverse Einräge mit 'Debug..', die bei Dir nicht vorkommen. Keine Ahnung, warum das so ist. Ich krieg sie bei mir nicht weg und weiß auch nicht, wo sie herkommen.

Wie auch immer: Ich habe zum 'zu-Fuß' debuggen dann mal nach Zeile 1799 diese Zeile eingefügt:
   main::Debug("\$rLogFile: $rLogFile; \$dirdef: $dirdef; \$hash->{helper}{rainLog}: ".sprintf("'%s'",$hash->{helper}{rainLog}));Nach 'reload 98_CDCOpenData.pm' und 'set CDCtest update' steht dann in der FHEM log-Datei:
2024.01.08 12:33:59.264 1: DEBUG>$rLogFile: ./logCDCtest_rainLog.log; $dirdef: ./log; $hash->{helper}{rainLog}: 'CDCtest_rainLog'Die in Zeile 1799 auftretenden Parameter $dirdef und $hash->{helper}{rainLog} sind also defined und haben sinnvolle Werte, die dann korrekt zu $rLogFile kombiniert werden. Also alles in Ordnung. Vielleicht probierst Du das auch mal aus. Warum bei Dir (bei nur einem Aufruf von 'update') gleich 60 log-Meldungen kommen, ist mir schleierhaft...

Ich würde übrigens das device löschen und komplett neu anlegen, vielleicht ist der Spuk dann schon vorbe.

Gruß
Franz



JoWiemann

#183
Zitat von: alkazaa Dessen listing (mit 'list CDCtest' erzeugt) sieht so aus:
code]Internals:
   CFGFN     
   DEBUGLOG   OFF
   DWDHOST    opendata.dwd.de
   FUUID      659bd66e-f33f-a50b-5c21-e1c32a26e2abb838
   INTERVAL   300
   LOCATION   Home:51.2047222,6.7422222
   NAME       CDCtest
   NEXT       2024-01-09 02:00:00
   NR         211
   NTFY_ORDER 50-CDCtest
   STATE      Regenmenge: 0 l/m2
   TIMEOUT    55
   TMPDIR     temp_radolan_data_CDCtest
   TYPE       CDCOpenData
   VERSION    01.12c
   eventCount 5
   CONFIG:
     IN_REQUEST 0
   READINGS:
     2024-01-07 23:50:00   Home_day_rain/00 0
     2024-01-06 23:50:00   Home_day_rain/01 0.7
     2024-01-05 23:50:00   Home_day_rain/02 1.2
     2024-01-08 12:06:58   retStat_lastReadout 4 values captured in 0.01 s
     2024-01-08 12:06:58   state           4 values captured in 0.01 s
   fhem:
     UPDATE     0
   helper:
     CronTime   1
     FhemLog3Std 0
     TimerCmd   CDCtest.Cmd
     TimerReadout CDCtest.Readout
     baseTMPDIR temp_radolan_data_CDCtest
     debugLog   CDCtest_debugLog
     logDebug   
     rainLog    CDCtest_rainLog
   hmccu:
Attributes:
   cronTime   * 2 * * *
   enableDWDdata rainByDay
   numberOfDays 3
   stateFormat Regenmenge: {(ReadingsNum("$name","Home_day_rain/00",0))} l/m2
   verbose    0[/code]

Gruß
Franz


Hallo Franz,

die Einträge unter helper: sind interne hash Einträge, die der Programmsteuerung dienen. Die kann man nicht ,,weg" bekommen. Wen weg, dann Modul kaputt. Der helper Ast ist vor langer Zeit eingeführt worden, damit nicht innerhalb des Module ,,hunderte" von Variablen an die Modul Sub weiter gereicht werden müssen.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

romakrau

#184
Hab das Device neu angelegt. Hoffe der Fehler ist weg.
Gruss Roman

P.S.: Mir fällt auf das in meinem Listing die Versionsnummer fehlt.

romakrau

Mal wieder ich. Ich erhalte seit Samstag folgende Meldung:

Use of uninitialized value in concatenation (.) or string at ./FHEM/98_CDCOpenData.pm line 1915.
Die Version des Moduls ist 01.12c. Update habe ich gemacht.

Hat jemand eine Lösung?

Gruß
Roman

alkazaa

Zitat von: romakrau am 25 Februar 2024, 18:03:15Hat jemand eine Lösung?
Ich habe gerade auch mal nachgeschaut und gesehen, dass beim DWD server (https://opendata.dwd.de/climate_environment/CDC/grids_germany/daily/radolan/recent/bin/) als letzte Datei "raa01-sf_10000-2402231450-dwd---bin.gz" auftaucht. Anscheinend haben sich die DWD-Computer dem Streik im öffentlichen Dienst angeschlossen.  ;)

Mir fiel bei der Fehlersuche allerdings auf, dass ich überhaupt keine Fehlermeldung in der log-Datei hatte (trotz verbose 5). In der sub CDCOpenData_Log habe ich dann mal als Zeile 94
main::Debug($text); eingefügt. Damit kamen dann diese Fehlermeldungen:
2024.02.25 19:33:13.407 1: DEBUG>set myCDC update
2024.02.25 19:33:13.409 1: DEBUG>start CDCOpenData_Readout_Start with myCDC, Readout, 5
2024.02.25 19:33:13.410 1: DEBUG>BlockingCall CDCOpenData_Readout_Run_Data with myCDC, 55
2024.02.25 19:33:13.434 1: DEBUG>Fork process CDCOpenData_Readout_Run_Data
2024.02.25 19:33:13.462 1: DEBUG>start CDCOpenData_Readout_Run_getRain with myCDC, 0, 2024-02-24
2024.02.25 19:33:13.463 1: DEBUG>################ get_Regenmenge called ################
2024.02.25 19:33:13.464 1: DEBUG>targettime is 2024-02-24 23:50:00
2024.02.25 19:33:13.465 1: DEBUG>file raa01-sf_10000-2402242250-dwd---bin.gz on CDC ftp-server is nearest to targettime
2024.02.25 19:33:13.465 1: DEBUG>localname raa01-sf_10000-2402242250-dwd---bin
2024.02.25 19:33:13.617 1: DEBUG>ftp temp_radolan_data_myCDC/raa01-sf_10000-2402242250-dwd---bin.gz not found
2024.02.25 19:33:13.618 1: DEBUG>temp_radolan_data_myCDC/raa01-sf_10000-2402242250-dwd---bin.gz not found
2024.02.25 19:33:13.622 1: DEBUG>Back at main process.
2024.02.25 19:33:13.623 1: DEBUG>BulkUpdate lastReadout: 0 values captured in  s
Irgendwas scheint da in der "sub CDCOpenData_Log" (oder anderswo) nicht zu funktionieren

romakrau

Danke für die Antwort. Muss ich mit dem Datenloch leben.

JoWiemann

Zitat von: alkazaa am 25 Februar 2024, 19:47:09Mir fiel bei der Fehlersuche allerdings auf, dass ich überhaupt keine Fehlermeldung in der log-Datei hatte (trotz verbose 5). In der sub CDCOpenData_Log habe ich dann mal als Zeile 94

Hallo,

bei verbose 5 wird eine eigene Log-Datei generiert, damit die vielen Log-Einträge auch einfacher durchforstet bzw gepostet werden können. Hier der Auszug aus der commandRef:

attr <name> verbose <0 .. 5>
Wird verbose auf den Wert 5 gesetzt, so werden alle Log-Daten in eine eigene Log-Datei geschrieben.
Name der Log-Datei:deviceName_debugLog.dlog
Im INTERNAL Reading DEBUGLOG wird ein Link <DEBUG Log kann hier eingesehen werden> zur direkten Ansicht des Logs angezeigt.
Weiterhin wird ein FileLog Device:deviceName_debugLog im selben Raum und der selben Gruppe wie das CDCOpenData Device erzeugt.
Wird verbose auf kleiner 5 gesetzt, so wird das FileLog Device gelöscht, die Log-Datei bleibt erhalten. Wird verbose gelöscht, so werden das FileLog Device und die Log-Datei gelöscht.


Die Fehlermeldung:
Use of uninitialized value in concatenation (.) or string at ./FHEM/98_CDCOpenData.pm line 1915.
entsteht durch einen Zustand, der bisher so im Modul nicht als Fehler "vorgesehen" ist. Warum und wieso wird es etwas dauern herauszufinden.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alkazaa

Zitat von: JoWiemann am 26 Februar 2024, 07:58:37bei verbose 5 wird eine eigene Log-Datei generiert, damit die vielen Log-Einträge auch einfacher durchforstet bzw gepostet werden können.
Hatte ich leider nicht gesehen, sorry (bin typischer manual-Ignorierer). Bei der Auswahl von 'verbose' in der FHEM GUI wird allerdings auch nur der Standard-Hilfetext gezeigt:
 Du darfst diesen Dateianhang nicht ansehen.
Vielleicht kann man das ändern? Da ich die Internals auch ausgeblendet hatte, war ich blind.

Ich hatte dann aber auch noch einen falschen Dateinamen: sie hieß bei mir 'log<mydeviceName>_debugLog.dlog' (und stand in /opt/fhem). Manuelles Ändern des Namens zu '<mydeviceName>_debugLog.dlog' machte sie dann für den Link <DEBUG Log kann hier eingesehen werden> sichtbar.

(Ach ja, noch was: in der FHEM Commandref steht bei mir noch ein toter link: CDCOpenData-thread40. Hab aber auch länger kein FHEM update mehr gemacht)

Grüße
Franz

JoWiemann

Zitat von: alkazaa am 26 Februar 2024, 13:42:54Hatte ich leider nicht gesehen, sorry (bin typischer manual-Ignorierer). Bei der Auswahl von 'verbose' in der FHEM GUI wird allerdings auch nur der Standard-Hilfetext gezeigt:
 Du darfst diesen Dateianhang nicht ansehen.
Vielleicht kann man das ändern? Da ich die Internals auch ausgeblendet hatte, war ich blind.

Da habe ich leider keine Idee. Dass kommt direkt über FhemWeb.

Zitat von: alkazaa am 26 Februar 2024, 13:42:54Ich hatte dann aber auch noch einen falschen Dateinamen: sie hieß bei mir 'log<mydeviceName>_debugLog.dlog' (und stand in /opt/fhem). Manuelles Ändern des Namens zu '<mydeviceName>_debugLog.dlog' machte sie dann für den Link <DEBUG Log kann hier eingesehen werden> sichtbar.

Hm, kommt mir irgendwie unverständlich vor. Kannst Du das reproduzieren?

Zitat von: alkazaa am 26 Februar 2024, 13:42:54(Ach ja, noch was: in der FHEM Commandref steht bei mir noch ein toter link: CDCOpenData-thread40. Hab aber auch länger kein FHEM update mehr gemacht)

Schau ich mir mal an.

Ich glaube ich habe den Fehle gefunden. Bei einer Fehlersituation wurde der Rückgabewert nicht korrekt bereitgestellt. Werde ich nachher einschecken. Ob es das war...

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alkazaa

Zitat von: JoWiemann am 26 Februar 2024, 14:37:37
Zitat von: alkazaa am 26 Februar 2024, 13:42:54Ich hatte dann aber auch noch einen falschen Dateinamen: sie hieß bei mir 'log<mydeviceName>_debugLog.dlog' (und stand in /opt/fhem). Manuelles Ändern des Namens zu '<mydeviceName>_debugLog.dlog' machte sie dann für den Link <DEBUG Log kann hier eingesehen werden> sichtbar.

Hm, kommt mir irgendwie unverständlich vor. Kannst Du das reproduzieren?
Ja, ist reproduzierbar bei beiden CDC devices die ich habe.
Beendet man den Verbose=5 Modus mit FhemLog3Std=1, dann wird die Datei "/opt/fhem/log<name>_debugLog.dlog" auch gelöscht. Der dafür zuständige Teil des Programms kennt also die Datei unter diesem (falschen) Namen.

Riecht ein bisschen danach, dass die Datei eigentlich "/opt/fhem/log/<name>_debugLog.dlog" sein sollte, aber irgendwo ein "/" verloren gegangen ist.

Allerdings funktioniert der Programmteil, der bei <DEBUG Log kann hier eingesehen werden> ausgeführt wird, nur, wenn ich die Datei händisch zu "/opt/fhem/<name>_debugLog.dlog" umbenannt habe.

-Franz

JoWiemann

Zitat von: alkazaa am 26 Februar 2024, 18:12:14Ja, ist reproduzierbar bei beiden CDC devices die ich habe.
Beendet man den Verbose=5 Modus mit FhemLog3Std=1, dann wird die Datei "/opt/fhem/log<name>_debugLog.dlog" auch gelöscht. Der dafür zuständige Teil des Programms kennt also die Datei unter diesem (falschen) Namen.

Riecht ein bisschen danach, dass die Datei eigentlich "/opt/fhem/log/<name>_debugLog.dlog" sein sollte, aber irgendwo ein "/" verloren gegangen ist.

Allerdings funktioniert der Programmteil, der bei <DEBUG Log kann hier eingesehen werden> ausgeführt wird, nur, wenn ich die Datei händisch zu "/opt/fhem/<name>_debugLog.dlog" umbenannt habe.

-Franz

Hallo Franz,

bitte stell doch von einem Device ein list bereit. Danke Dir.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alkazaa

Hallo Jörg,
listing1.txt erstellt mit "Copy for forum.fhem.de"
listing2.txt erstellt mit "list myCDC"
Gruß Franz

JoWiemann

Zitat von: alkazaa am 26 Februar 2024, 19:28:35Hallo Jörg,
listing1.txt erstellt mit "Copy for forum.fhem.de"
listing2.txt erstellt mit "list myCDC"
Gruß Franz

Hallo Franz,

dann mache ich mich mal an die Arbeit.


Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM