Modul für DWD Open Data

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

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Du kannst dir ein Userreading erstellen und den Wert dort entsprechend runden.

Siehe z.b. hier: https://forum.fhem.de/index.php/topic,88519.0.html

DJCrazy

Hallo zusammen,

ich bekomme immer wieder folgende Logeinträge zum DWD Modul

2023.10.06 18:40:23 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_DWD_OpenData_Weblink.pm line 1258.
2023.10.06 18:40:23 3: eval: { DWD_OpenData_Weblink::AsHtmlH("DWD_Weblink_Generator") }
2023.10.06 18:40:23 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/99_Utils.pm line 21.
2023.10.06 18:40:23 3: eval: { DWD_OpenData_Weblink::AsHtmlH("DWD_Weblink_Generator") }

Die neuste Datei von "99_DWD_OpenData_Weblink.pm" habe ich bereits aufgespielt aber ist genau noch das selbe.
Kann mir hier jemand weiterhelfen wie ich die Fehler / Warnungen weg bekomme?

Gruss, Fabian

DJCrazy

Wollte nochmals ungeniert nachfragen ob mir jemand bei der Lösung helfen kann?

matze1999

Hallo,

ich habe diese Warnungen auch:

evtl. hilft das bei der Lösung:

2023.11.22 17:18:59 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/99_DWD_OpenData_Weblink.pm line 1258.
2023.11.22 17:18:59 1: eval: { DWD_OpenData_Weblink::AsHtmlH("DWD_Weblink_GeneratorDD") }
2023.11.22 17:18:59 1: stacktrace:
2023.11.22 17:18:59 1:     main::__ANON__                      called by ./FHEM/99_DWD_OpenData_Weblink.pm (1258)
2023.11.22 17:18:59 1:     DWD_OpenData_Weblink::AsHtmlH       called by (eval 64045) (1)
2023.11.22 17:18:59 1:     (eval)                              called by fhem.pl (1175)
2023.11.22 17:18:59 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (106)
2023.11.22 17:18:59 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (3461)
2023.11.22 17:18:59 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1940)
2023.11.22 17:18:59 1:     main::FW_makeDeviceLine             called by ./FHEM/01_FHEMWEB.pm (2116)
2023.11.22 17:18:59 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1205)
2023.11.22 17:18:59 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (609)
2023.11.22 17:18:59 1:     main::FW_Read                       called by fhem.pl (3982)
2023.11.22 17:18:59 1:     main::CallFn                        called by fhem.pl (784)
2023.11.22 17:18:59 1: PERL WARNING: Use of uninitialized value in subroutine entry at ./FHEM/99_Utils.pm line 21.
2023.11.22 17:18:59 1: eval: { DWD_OpenData_Weblink::AsHtmlH("DWD_Weblink_GeneratorDD") }
2023.11.22 17:18:59 1: stacktrace:
2023.11.22 17:18:59 1:     main::__ANON__                      called by ./FHEM/99_Utils.pm (21)
2023.11.22 17:18:59 1:     main::time_str2num                  called by ./FHEM/99_DWD_OpenData_Weblink.pm (734)
2023.11.22 17:18:59 1:     DWD_OpenData_Weblink::PrepareForecastData called by ./FHEM/99_DWD_OpenData_Weblink.pm (1126)
2023.11.22 17:18:59 1:     DWD_OpenData_Weblink::GetForecastHtmlH called by ./FHEM/99_DWD_OpenData_Weblink.pm (1261)
2023.11.22 17:18:59 1:     DWD_OpenData_Weblink::AsHtmlH       called by (eval 64045) (1)
2023.11.22 17:18:59 1:     (eval)                              called by fhem.pl (1175)
2023.11.22 17:18:59 1:     main::AnalyzePerlCommand            called by ./FHEM/98_weblink.pm (106)
2023.11.22 17:18:59 1:     main::weblink_FwFn                  called by ./FHEM/01_FHEMWEB.pm (3461)
2023.11.22 17:18:59 1:     main::FW_devState                   called by ./FHEM/01_FHEMWEB.pm (1940)
2023.11.22 17:18:59 1:     main::FW_makeDeviceLine             called by ./FHEM/01_FHEMWEB.pm (2116)
2023.11.22 17:18:59 1:     main::FW_showRoom                   called by ./FHEM/01_FHEMWEB.pm (1205)
2023.11.22 17:18:59 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (609)
2023.11.22 17:18:59 1:     main::FW_Read                       called by fhem.pl (3982)
2023.11.22 17:18:59 1:     main::CallFn                        called by fhem.pl (784)

matze1999

Raha66

Hallo Hallo,
Kann man die aktuellen Wetterinformationen wie z.B. die Temperatur mit dem dwd-Modus auslesen?
VG

jensb

#800
@DJCrazy, matze1999

In Zeile 1258 von 99_DWD_OpenData_Weblink.pm steht:

my $theme = ::AttrVal($name, 'theme', undef) eq 'dark'? THEME_DARK : THEME_LIGHT;
Eine schnelle Lösung besteht also darin, das "theme"-Attribut im FHEM Modul anzulegen.

Die richtige Lösung besteht darin, undef mit '' im Modulcode zu ersetzen. Werde das noch updaten.

Grüße,
Jens
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

jensb

@
Zitat von: Raha66 am 24 November 2023, 19:41:45Kann man die aktuellen Wetterinformationen wie z.B. die Temperatur mit dem dwd-Modus auslesen?

Ja, siehe u.a. Screenshot am Ende des FHEM Wiki-Artikels zum DWD-Modul.
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

matze1999

Zitat von: jensb am 25 November 2023, 17:12:53@DJCrazy, matze1999

In Zeile 1258 von 99_DWD_OpenData_Weblink.pm steht:

my $theme = ::AttrVal($name, 'theme', undef) eq 'dark'? THEME_DARK : THEME_LIGHT;
Eine schnelle Lösung besteht also darin, das "theme"-Attribut im FHEM Modul anzulegen.

Grüße,
Jens

Hallo, danke, die o.g. Warnung ist nun weg, aber es gibt eine neue aus 98_HTTPMOD.pm:

2023.11.26 12:04:03 1: PERL WARNING: Use of uninitialized value $val in concatenation (.) or string at ./FHEM/98_HTTPMOD.pm line 1705.
2023.11.26 12:04:03 1: stacktrace:
2023.11.26 12:04:03 1:     main::__ANON__                      called by ./FHEM/98_HTTPMOD.pm (1705)
2023.11.26 12:04:03 1:     HTTPMOD::ExtractReading             called by ./FHEM/98_HTTPMOD.pm (2439)
2023.11.26 12:04:03 1:     HTTPMOD::ReadCallback               called by FHEM/HttpUtils.pm (755)
2023.11.26 12:04:03 1:     main::__ANON__                      called by fhem.pl (781)
2023.11.26 12:04:03 1: PERL WARNING: Use of uninitialized value $val in unpack at ./FHEM/98_HTTPMOD.pm line 1706.
2023.11.26 12:04:03 1: stacktrace:
2023.11.26 12:04:03 1:     main::__ANON__                      called by ./FHEM/98_HTTPMOD.pm (1706)
2023.11.26 12:04:03 1:     HTTPMOD::ExtractReading             called by ./FHEM/98_HTTPMOD.pm (2439)
2023.11.26 12:04:03 1:     HTTPMOD::ReadCallback               called by FHEM/HttpUtils.pm (755)
2023.11.26 12:04:03 1:     main::__ANON__                      called by fhem.pl (781)

matze1999

isy

Hallo zusammen,
ich steige gerade in das DWD Modul ein, nachdem UWZ immer weniger Daten mehr liefert.
Die Suchfunktion hat nichts ergeben.

Daher meine Frage, ob es die Möglichkeit gibt (oder hat das einer von euch umgesetzt), die Warnkarte (als Grafik) eines Bundeslandes anzuzeigen.
Siehe auch https://www.dwd.de/DE/wetter/warnungen_gemeinden/warnkarten/warnWetter_hes_node.html?bundesland=hes

VG Helmut
Ein Weg wird erst zu einem Weg, wenn man ihn geht

juppzupp

Hi,

ich bin auch dabei von UWZ zu DWD zu "migirieren". Mir geht's auch nur um die Warnungen. dabei steh ich aber jetzt irgendwie auf dem Schlauch.
Dachte mit :
attr DWD event-on-change-reading a_0_headline
und einem simplen doif :
defmod Push_Unwetter DOIF ([DWD:a_0_headline]) (set teleBot msg [DWD:a_0_headline] bis [DWD:a_0_expires])
attr Push_Unwetter do always
Wär's getan, aber das löst jetzt wirklich *always* aus.
Was übersehe ich, oder wie habt ihr es gelöst ?
Danke

Felix_86

Hallo,

Zitat von: juppzupp am 09 Dezember 2023, 18:30:38Hi,

ich bin auch dabei von UWZ zu DWD zu "migirieren". Mir geht's auch nur um die Warnungen. dabei steh ich aber jetzt irgendwie auf dem Schlauch.
Dachte mit :
attr DWD event-on-change-reading a_0_headline
und einem simplen doif :
defmod Push_Unwetter DOIF ([DWD:a_0_headline]) (set teleBot msg [DWD:a_0_headline] bis [DWD:a_0_expires])
attr Push_Unwetter do always
Wär's getan, aber das löst jetzt wirklich *always* aus.
Was übersehe ich, oder wie habt ihr es gelöst ?
Danke

Das Problem hatte ich auch. Einige Notify haben ständig (alle 15 Minuten) ausgelöst, obwohl das entsprechende Reading im Attribut "event-on-change-reading" eingetragen war.

Ich weiß es nicht, aber ich habe den Verdacht, dass bei jeder Abfrage / Aktualisierung (also alle 15 Minuten - leider kann man den Intervall nicht definieren oder ich habe den Parameter nicht gefunden) alle Readings mit der Bezeichnung "a_<Zahl>_.*" gelöscht und neu erstellt werden. Damit ergibt sich tatsächlich bei jeder Abfrage / Aktualisierung ein Change und das Notify oder in deinem Fall das DOIF laufen ständig los.

Ich habe mir beholfen, indem ich in meinen Notifies nur noch auf das Reading "a_count" reagiere. Das scheint bei jeder Abfrage / Aktualisierung erhalten zu bleiben. Damit lösen die Notifies nur noch aus, wenn sich "a_count" ändert - was für mich gut funktioniert. Weitere Infos muss ich mir im Notify dann ggf. per ReadingsVal holen und kann sie nicht mehr aus dem Event ziehen.
Grüße von Felix

Pi3, Raspbian 11, FHEM 6.2, ca 320 Device
SIGNALduino (TCM, TX, IT), CUL (EM, FS20, HMS), JeeLink (PCA301), HUEBridge, HUEDevice, mailcheck, echodevice, alexa, TelegramBot, Weather (OWM), DWD_OpenData, FRITZBOX, TabletUI, Calendar, Abfall, Vitoconnect, LGTV_WebOS

juppzupp

Zitat von: Felix_86 am 09 Dezember 2023, 19:28:18Ich habe mir beholfen, indem ich in meinen Notifies nur noch auf das Reading "a_count" reagiere. Das scheint bei jeder Abfrage / Aktualisierung erhalten zu bleiben. Damit lösen die Notifies nur noch aus, wenn sich "a_count" ändert - was für mich gut funktioniert. Weitere Infos muss ich mir im Notify dann ggf. per ReadingsVal holen und kann sie nicht mehr aus dem Event ziehen.

Wenn sich aber jetzt die Headline von "windböen" auf "hochwasser" ändert, der count aber gleich bleibt, gibts auch keine meldung.

frank

schon mal mit einem zusätzlichen userreading probiert?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

juppzupp

Das hab ich gerade Mal probiert, sieht so aus als ob es klappt. Empfinde ich aber als "unsexy workaround"

Felix_86

#809
Zitat von: juppzupp am 09 Dezember 2023, 19:42:41Wenn sich aber jetzt die Headline von "windböen" auf "hochwasser" ändert, der count aber gleich bleibt, gibts auch keine meldung.

Das stimmt wohl, halte ich aber in meinem Fall für vernachlässigbar. Dass eine einzige Warnung in dem Moment kommt / beginn, wo die vorherige einzige Warnung ausläuft / ihr Ende hat halte ich für eher unwahrscheinlich und wenn doch, wird das im Jahr nur eine Hand voll Mal vorkommen.
Aktuell habe ich Unterschiede von +/- 1-2 Warnungen, daher komme ich mit dem Change-Event für das Reading a_count gut hin.

Nachtrag:
Interessanterweise hatte ich heute den Fall, dass trotz unverändertem Wert bei "a_count" (2) und dem gesetzten Attribut event-on-change-reading für das Reading "a_count" ich eine zweite Benachrichtigung über die gleichen 2 Warnungen mit dem gleichen Text und den gleichen Informationen erhalten habe, auch ohne offensichtliche Änderung der Anzahl von "a_count".
Grüße von Felix

Pi3, Raspbian 11, FHEM 6.2, ca 320 Device
SIGNALduino (TCM, TX, IT), CUL (EM, FS20, HMS), JeeLink (PCA301), HUEBridge, HUEDevice, mailcheck, echodevice, alexa, TelegramBot, Weather (OWM), DWD_OpenData, FRITZBOX, TabletUI, Calendar, Abfall, Vitoconnect, LGTV_WebOS