Seit ich meine FHEM Module über "Update all" aktualisiert habe, bekomme ich einige Problem mit dem
Modul für Wetterdaten.
Alles andere Scheint ok zu sein !! Ich habe gelesen, dass ich das 99_DWD_OpenData_Weblink
von gibhup ebenfalls erneuern muss - und ich habe es gemacht :
FHEM/99_DWD_OpenData_Weblink
Ich bekomme aber trotzdem Fehler :
2021.02.10 17:29:14 1: --- Start: main::myUtils_Initialize
2021.02.10 17:29:14 1: --- Ende : main::myUtils_Initialize
2021.02.10 17:29:14 1: Including fhem.cfg
2021.02.10 17:29:15 2: eventTypes: loaded 771 lines from /var/log/fhem/eventTypes.txt
2021.02.10 17:29:15 1: Including ./FHEM/rw_tempmessung.cfg
2021.02.10 17:29:15 1: Including ./FHEM/rw_Wetter.cfg
2021.02.10 17:29:15 1: reload: Error:Modul 55_DWD_OpenData deactivated:
Unknown warnings category 'experimental::smartmatch' at /opt/fhem/FHEM/55_DWD_OpenData.pm line 613
BEGIN failed--compilation aborted at /opt/fhem/FHEM/55_DWD_OpenData.pm line 613, <> line 14.
2021.02.10 17:29:15 0: Unknown warnings category 'experimental::smartmatch' at /opt/fhem/FHEM/55_DWD_OpenData.pm line 613
BEGIN failed--compilation aborted at /opt/fhem/FHEM/55_DWD_OpenData.pm line 613, <> line 14.
2021.02.10 17:29:15 1: Including ./FHEM/rw_I2C_AlarmBus.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_alarmview.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_alarmConfig.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_Thermostat.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_I2C_Bus.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_Warmwasser.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_LadenHeizung.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_Sonnen.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_bewegungsmelder.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_SM8_Keller.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_Stromzaehler.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_Watchdog.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_Trace.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_Control.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_VSTAR_CAM.cfg
2021.02.10 17:29:16 1: Including ./FHEM/rw_INIT.cfg
2021.02.10 17:29:16 1: Including /var/log/fhem/fhem.save
2021.02.10 17:29:17 1: Messages collected while initializing FHEM:configfile: Cannot load module DWD_OpenData
SecurityCheck:
telnetPort is not password protected
Protect this FHEM installation by configuring the allowed device allowedApiWEB
You can disable this message with attr global motd none
Autosave deactivated
2021.02.10 17:29:17 1: --- Start: main::rw_myUtils_InitGlobals
2021.02.10 17:29:17 1: ** Batterie Mode : AUTOMATIK
2021.02.10 17:29:17 1: ** Batterie Limit : 30 %
2021.02.10 17:29:17 1: ** NT- Signal : off
2021.02.10 17:29:17 1: ** NT-Signal Dauer : 0 mins
2021.02.10 17:29:17 1: ** Heizung Mode : Automatik_Zeit(NT)
2021.02.10 17:29:18 1: ** Boiler Sig : off
2021.02.10 17:29:18 1: ** Boiler Mode : AUTOMATIK
2021.02.10 17:29:18 1: ** ZWAVE : off
2021.02.10 17:29:18 1: ** AlarmAnl Mode : AUTOMATIK
2021.02.10 17:29:18 1: ** AlarmAnl Status : BEREIT
2021.02.10 17:29:18 1: ** CAM im Gang : AN
2021.02.10 17:29:18 1: --- Ende: main::rw_myUtils_InitGlobals
2021.02.10 17:29:18 1: *** Trace : Gestartet - Level: 2
2021.02.10 17:29:18 0: Featurelevel: 6
2021.02.10 17:29:20 2: AttrTemplates: got 217 entries
was ist das Problem ? vor dem update gab es keine Probleme :
Meine Wetter Config sieht wie folgt aus:
# ————– Wetterdaten vom Deutschen Wetterdienst
# 4933 Stgt -Hohenheim ; 10320 Stgt Vaihingen
# 108416000 Warnungen Kreis Tübingen
define MeinWetter DWD_OpenData
attr MeinWetter alertArea 108416000
attr MeinWetter forecastStation 10320
attr MeinWetter forecastDays 5
attr MeinWetter forecastWW2Text 1
attr MeinWetter event-on-change-reading state,fc_state,a_state,fc_time,fc0_Tn,fc0_Tx,fc1_Tn,fc1_Tx
attr MeinWetter room hidden
# DWD Wetter -Vorhersage
define DWD_Weblink_Generator DWD_OpenData_Weblink
attr DWD_Weblink_Generator IODev MeinWetter
attr DWD_Weblink_Generator forecastDays 4
# refreshRate nur dann setzten, wenn der Browser Java-Script beherrscht:
#attr DWD_Weblink_Generator refreshRate 900
attr DWD_Weblink_Generator room hidden
define DWD_Weblink weblink htmlCode { DWD_OpenData_Weblink::AsHtmlH("DWD_Weblink_Generator") }
define W_Zeit readingsProxy MeinWetter:fc_time
attr W_Zeit group Letzte Aktualisierung
attr W_Zeit alias  
attr W_Zeit sortby 1
define W_0 readingsProxy ASensorTemp:state
attr W_0 alias Aktuelle Temp (gemessen)
attr W_0 stateFormat state °;C
define W_1 readingsProxy MeinWetter:fc0_Tn
attr W_1 alias Temps Heute
attr W_1 stateFormat {sprintf("(%5.1f -- %5.1f ) °;C",ReadingsVal("MeinWetter","fc0_Tn",0),ReadingsVal("MeinWetter","fc0_Tx",0) )}
define W_3 readingsProxy MeinWetter:fc1_Tn
attr W_3 alias Temps Morgen
attr W_3 stateFormat {sprintf("(%5.1f -- %5.1f ) °;C",ReadingsVal($name,"state",0),ReadingsVal("MeinWetter","fc1_Tx",0) )}
define W_Prognose dummy
attr W_Prognose alias Temps Offset Prognose
attr W_Prognose stateFormat state °;C
Keine Ahnung wieso ein neues , freigegebenes Modul nicht funktioniert.
Das Problem könnte mit deiner Perl-Version zusammen hängen. Das Schlüsselwort "smartmatch" wird scheinbar erst ab Perl 5.18 verstanden und du hast möglicherweise noch Version 5.14.
Bitte führe nachfolgende Tests durch. Ersetzte jeweils Zeile 613 durch
no if $] >= 5.017011, warnings => 'experimental::smartmatch';
bzw.
no if $] >= 5.017011, warnings => 'experimental';
Nach der Änderung jeweils FHEM neu starten und im Log prüfen, ob sich der Fehler wiederholt und die Ergebnisse melden, damit ich ggf. ein Update bereit stellen kann. Die Version, die bei dir funktioniert solltest du beibehalten, bis das Update zur Verfügung steht.
Meine PERL Version ist : PERL Version : 5.014002
Die Tests haben gezeigt dass die Abfragen
no if $] >= 5.017011, warnings => 'experimental';
no if $] >= 5.017011, warnings => 'experimental::smartmatch';
funktionieren und keinen Fehler werfen.
Dies war die Perl Version, welche im meiner letzten Modul Version abgefragt wurde.
Weshalb jetzt dies auf die Version : 5.010001 geändert wurde, ist mir nicht klar.
Auf jeden Fall funktioniert es nicht !
Ich habe es manuell auf 5.017011 geändert und alles scheint ok zu sein !
ZitatIch habe es manuell auf 5.017011 geändert und alles scheint ok zu sein !
Prima, dann lass es so. Es wird so im nächsten Update von DWD_OpenData umgesetzt.
ZitatWeshalb jetzt dies auf die Version : 5.010001 geändert wurde, ist mir nicht klar.
Wie das Schlüsselwort "experimental" andeutet wird hier mit Perl experimentiert und mit "no warnings" dafür gesorgt, dass Perl nicht meckert. Das war auch in den Vorgängerversionen des Moduls so. Ziel war es eigentlich klarzustellen, dass "experimental" auch für ältere Perl-Versionen gilt. Allerdings ist die geänderte Versionsnummer 5.010001 im Zusammenhang mit dem Schlüsselwort "smartmatch" schlichtweg die falsche Wahl gewesen. Das fällt leider nicht auf, wenn man mit einer Version ab 5.17.11 oder höher testet.
Der sauberste Weg wäre es, den Perl-Code zu überarbeiten und die experimentellen Anteile zu ersetzen. Anderseits geht es aber konkret "nur" um die "switch"-Anweisung. Dieses Konstrukt ist in vielen Programmiersprachen verfügbar und die bessere Wahl im Vergleich zu if/elseif/elseif/else-Ketten. Leider tut sich Perl damit schwer und unterstützt es nur "experimentell". Und damit man die diversen experimentellen Elemente von Perl getrennt ein- und ausschalten kann, haben sie nun eigene Namen bekommen, wie "smartmatch".
Die neue Version des Moduls 55_DWD_OpenData gibt es ab 22.02.2021 per FHEM Update.
Bitte Info, ob diese Version bei dir einwandfrei funktioniert.
Update eingespielt und es funktioniert ohne Fehlermeldung.
Danke vielmals für die schnelle Reaktion
Vielen Dank für deine Rückmeldung.