seit HM Update: PERL WARNING: Use of uninitialized value $d in hash element ...

Begonnen von TeleDet, 04 August 2019, 18:01:55

Vorheriges Thema - Nächstes Thema

TeleDet

Hallo,

ich habe seit einem Update von 10_CUL_HM.pm am 24.07.2019 bei jedem Neustart folgende Fehlermeldung im Log:

PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4524, <$fh> line 22.


STACKTRACE gibt dazu folgende Info:

2019.08.04 17:48:10 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4524, <$fh> line 22.
2019.08.04 17:48:10 1: stacktrace:
2019.08.04 17:48:10 1:     main::__ANON__                      called by fhem.pl (4524)
2019.08.04 17:48:10 1:     main::AttrVal                       called by ./FHEM/10_CUL_HM.pm (9328)
2019.08.04 17:48:10 1:     main::CUL_HM_ActCheck               called by ./FHEM/10_CUL_HM.pm (9211)
2019.08.04 17:48:10 1:     main::CUL_HM_ActAdd                 called by ./FHEM/10_CUL_HM.pm (716)
2019.08.04 17:48:10 1:     main::CUL_HM_Attr                   called by fhem.pl (3753)
2019.08.04 17:48:10 1:     main::CallFn                        called by fhem.pl (2995)
2019.08.04 17:48:10 1:     main::CommandAttr                   called by fhem.pl (1236)
2019.08.04 17:48:10 1:     main::AnalyzeCommand                called by fhem.pl (1089)
2019.08.04 17:48:10 1:     main::AnalyzeCommandChain           called by fhem.pl (1377)
2019.08.04 17:48:10 1:     main::CommandInclude                called by fhem.pl (1236)
2019.08.04 17:48:10 1:     main::AnalyzeCommand                called by fhem.pl (1089)
2019.08.04 17:48:10 1:     main::AnalyzeCommandChain           called by fhem.pl (1377)
2019.08.04 17:48:10 1:     main::CommandInclude                called by fhem.pl (1236)
2019.08.04 17:48:10 1:     main::AnalyzeCommand                called by fhem.pl (1089)
2019.08.04 17:48:10 1:     main::AnalyzeCommandChain           called by fhem.pl (1377)
2019.08.04 17:48:10 1:     main::CommandInclude                called by fhem.pl (1487)
2019.08.04 17:48:10 1:     main::CommandRereadCfg              called by fhem.pl (1236)
2019.08.04 17:48:10 1:     main::AnalyzeCommand                called by fhem.pl (1089)
2019.08.04 17:48:10 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2678)
2019.08.04 17:48:10 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (2463)
2019.08.04 17:48:10 1:     main::FW_style                      called by ./FHEM/01_FHEMWEB.pm (1126)
2019.08.04 17:48:10 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (578)
2019.08.04 17:48:10 1:     main::FW_Read                       called by fhem.pl (3753)
2019.08.04 17:48:10 1:     main::CallFn                        called by fhem.pl (748)


Kann mir jemand sagen was ich dagegen tun kann bzw. hat noch jemand diesen Fehler?

Gruß TeleDet

amenomade

Zitat von: TeleDet am 04 August 2019, 18:01:55

ich habe seit einem Update von 10_CUL_HM.pm am 24.07.2019
Hast Du ein Update nur von 10_CUL_HM gemacht, oder ganz normal ein allgemeines Update?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TeleDet


Mihca

Bei mir kommt fast derselbe Fehler seit diesem Update vom 24.07.:

PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4524, <$fh> line 404

Fhem läuft bei mur auf Ubuntu unter  PERL 5, version 26, subversion 1 (v5.26.1)

Vielen Dank vorab für Hilfe!
Achim
Viele Grüße
Achim
__________
Kein Fehler ist so dumm, dass man ihn nicht machen könnte.
Raspi Ubuntu 24.04 Perl 5.38.2, Rollo-, Sonnen-, Licht-, Heizungs-, Poolsteuerung, Energiebilanzen -- HomeMatic, FS20, ESP/Tasmota/ESPEasy, CUL868v3 USB, MAX! Cube LAN mit CUL-Firmware HomeMatic

TeleDet

Hallo Achim,

hast du mal mit STACKTRACE auflisten lassen durch welches Modul bei dir der Fehler erzeugt wird?

in die fhem.cfg :

attr global stacktrace 1

hinzufügen oder das Attribut in den Eigenschaften von "global" setzen und fhem neustarten.

Ich denke nicht das es etwas mit Perl direkt zu tun hat. Eher mit den Änderungen durch das Update.

Gruß TeleDet

TeleDet

 ::) ::)
Keiner eine Idee???

Scheint ja wohl an einer Änderung  von10_CUL_HM.pm zu liegen !? Da Hätte ich zumindest gehoft,
das der Modul-Betreuer sich erinnern kann was er in dem betreffenden Update geändert hat und was
eventuell mein Problem hervorruft !?

Gruß TeleDet

amenomade

Zitat von: TeleDet am 10 August 2019, 18:03:03
Da Hätte ich zumindest gehoft,
das der Modul-Betreuer sich erinnern kann was er in dem betreffenden Update geändert hat

Das kann jeder selbst sehen:
https://svn.fhem.de/trac/log/trunk/fhem/FHEM/10_CUL_HM.pm?rev=19980

Hier die Änderung vom 23 Juli 2019 05:59:50 https://svn.fhem.de/trac/changeset/19889/trunk/fhem/FHEM/10_CUL_HM.pm

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

Und zur Info: dein Problem scheint hier zu liegen:

9328   $actHash->{helper}{actCycle} = AttrVal($actName,"actCycle",600);

Diese Zeile wurde seit mindestens einem Jahr nicht geändert und die dazugehörige Funktion CUL_HM_ActCheck seit dem 5. Januar 2019.

Ein Fehler im Modul ist natürlich immer möglich, aber ich tippe eher auf ein Problem in deiner Konfiguration...

Mach mal ein "list ActionDetector"
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TeleDet

@amenomade danke für die Info  ;)

ZitatHier die Änderung vom 23 Juli 2019 05:59:50 https://svn.fhem.de/trac/changeset/19889/trunk/fhem/FHEM/10_CUL_HM.pm

wenn ich mir das so anschaue, dann wurde nur diese Zeile geändert:

Alt:
9166   if (!$modules{CUL_HM}{defptr}{"000000"}){

Neu:
9165   if (!$modules{CUL_HM}{defptr}{"000000"} && $init_done){


mache ich diese Änderung rückgängig verschwindet die Fehlermeldung im Log (s.o.)
und ich bekomme einen Hinweis auf der FhemWeb Startseite:

ZitatMessages collected while initializing FHEM:
configfile: ActionDetector already defined, delete it first

Autosave deactivated

::) :o

scheinbar würde doch mehr verändert !!!???  ::)

Ich muss wohl erst mal Tippel Tappel eine Version nach der anderen
Rückwärts gehen und schauen wann es ohne Fehler Funktioniert.  :-\

Fraglich bleibt dabei natürlich aus welchem Anlass die Änderung gemacht
wurden??? Fehlerbeseitigung im Modul, neues Feature oder Anpassung an
geänderte Funktionalitäten im Fhem-Grundmodul ???

Gruß TeleDet

TeleDet

list ActionDetector:

Internals:
   CFGFN      /opt/fhem/FHEM/0033_heizung_HM.cfg
   CHANGED   
   DEF        000000
   FUUID      5c44c548-f33f-8794-475a-c97530f4f99249f7
   NAME       ActionDetector
   NOTIFYDEV  global
   NR         763
   NTFY_ORDER 50-ActionDetector
   STATE      alive:1 dead:0 unkn:0 off:0
   TYPE       CUL_HM
   chanNo     01
   READINGS:
     2019-08-10 19:13:35   state           alive:1 dead:0 unkn:0 off:0
     2019-08-10 19:13:35   status_WT_BAD   alive
   helper:
     HM_CMDNR   16
     actCycle   600
     mId        no
     peers      4E7E09
     4E7E09:
       start      2019-08-10 19:03:35
     io:
       prefIO     
       vccu       
     mRssi:
       mNo       
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       vrt        1
Attributes:
   alias      Schaltaktor_BAD_ActionDetector
   event-on-change-reading .*
   group      Bad
   model      ACTIONDETECTOR
   room       Heizung
   subType    virtual

TeleDet

meine Konfiguration hat sich seit einem halben Jahr (installation des HM Wandthermostat) auch nicht geändert  ::) :-[

amenomade

ZitatCFGFN      /opt/fhem/FHEM/0033_heizung_HM.cfg
Fängt schlecht an... Hast Du mehrere .cfg Dateien? Wie machst Du die Verteilung zwischen Dateien?
ZitatMessages collected while initializing FHEM:
configfile: ActionDetector already defined, delete it first
Anscheinend ist ActionDetector 2x definiert

ZitatREADINGS:
     2019-08-10 19:13:35   state           alive:1 dead:0 unkn:0 off:0
     2019-08-10 19:13:35   status_WT_BAD   alive

Ist wirklich WT_BAD dein einziger HM Sensor? Bei mir sieht es so aus:
   READINGS:
     2019-08-10 19:15:26   state           alive:12 dead:5 unkn:0 off:0
     2019-08-10 19:15:26   status_Heizkoerper_Wohnzimmer alive
     2019-08-10 19:15:26   status_Heizkoerper_WzOben alive
     2019-08-10 19:15:26   status_Heizung_Flur alive
     2019-08-10 19:15:26   status_Stromsensor alive
     2019-08-10 19:15:26   status_Trockner alive
     2019-08-10 19:15:26   status_Waschmaschine alive
     2019-08-10 19:15:26   status_ba_Fenster dead
     2019-08-10 19:15:26   status_ba_TempHum alive
     2019-08-10 19:15:26   status_ez_Fenster alive
     2019-08-10 19:15:26   status_fl_Tuer  alive
     2019-08-10 19:15:26   status_ga_Tor   alive
     2019-08-10 19:15:26   status_ku_Fenstertuer dead
     2019-08-10 19:15:26   status_ku_Melder dead
     2019-08-10 19:15:26   status_wz1_Fenster dead
     2019-08-10 19:15:26   status_wz1_Thermostat alive
     2019-08-10 19:15:26   status_wz_Fenster dead
     2019-08-10 19:15:26   status_wz_Thermostat alive


und das ist der Sinn des ActionDetectors, alle Status zusammenzufassen. D.h. hat folgendes wenig Sinn:
ZitatAttributes:
   alias      Schaltaktor_BAD_ActionDetector


Zitat von: TeleDet am 10 August 2019, 19:22:42
meine Konfiguration hat sich seit einem halben Jahr (installation des HM Wandthermostat) auch nicht geändert  ::) :-[
Heisst aber nicht, dass die korrekt war




Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

TeleDet

ZitatZitat

    CFGFN      /opt/fhem/FHEM/0033_heizung_HM.cfg

Fängt schlecht an... Hast Du mehrere .cfg Dateien? Wie machst Du die Verteilung zwischen Dateien?

Ja habe ich, ich leiste mir den Luxus und kann damit sehr gut umgehen!  ;)
Das ist aber nicht das Problem!  :D

ZitatZitat

    Messages collected while initializing FHEM:
    configfile: ActionDetector already defined, delete it first

Anscheinend ist ActionDetector 2x definiert

Kann eigentlich nicht sein  ::) werde es aber noch mal prüfen

ZitatZitat

    READINGS:
         2019-08-10 19:13:35   state           alive:1 dead:0 unkn:0 off:0
         2019-08-10 19:13:35   status_WT_BAD   alive


Ist wirklich WT_BAD dein einziger HM Sensor?

Ja, der einzige den ich derzeit einsetze. Ich schalte damit Temperaturabhängig meine Fussbodenheizung im Bad.

Zitatund das ist der Sinn des ActionDetectors, alle Status zusammenzufassen. D.h. hat folgendes wenig Sinn:
Zitat

    Attributes:
       alias      Schaltaktor_BAD_ActionDetector

ein alias hat meines wissens doch nur eine Funktion: einen verständlichen Namen für den User
festzulegen. Ansonsten ist er für die fhem-Internas ohne jede Bedeutung !?  ::)

ZitatZitat von: TeleDet am Heute um 19:22:42

    meine Konfiguration hat sich seit einem halben Jahr (installation des HM Wandthermostat) auch nicht geändert  ::) :-[

Heisst aber nicht, dass die korrekt war

Das kann natürlich sein !  ???

TeleDet

Habe es gerade mal geprüft, die Definition des ActionDetector gibt es bei mir definitiv nur ein einziges mal !

hier mal der Auszug der Definitionen zu dem HM Wandthermostat:

####################################
#       Bad Fussbodenheizung       #
####################################

##### Bad HomeMatic Wandthermostat #####

define WT_BAD CUL_HM 4E7E09
setuuid WT_BAD 5c44c548-f33f-8794-8cb4-8a1ad40105967ffb
attr WT_BAD .mId 00AD
attr WT_BAD IODev WIFI_CUL_05
attr WT_BAD actCycle 000:10
attr WT_BAD actStatus alive
attr WT_BAD autoReadReg 4_reqStatus
attr WT_BAD expert 2_raw
attr WT_BAD firmware 1.3
attr WT_BAD group Bad
attr WT_BAD model HM-TC-IT-WM-W-EU
attr WT_BAD msgRepeat 1
attr WT_BAD room Heizung
attr WT_BAD serialNr NEQ0938927
attr WT_BAD subType thermostat
attr WT_BAD webCmd getConfig:clear msgEvents

define WT_BAD_Weather CUL_HM 4E7E0901
setuuid WT_BAD_Weather 5c44c548-f33f-8794-c9a9-f1510a69f603aaea
attr WT_BAD_Weather event-min-interval temperature:900,humidity:900
attr WT_BAD_Weather event-on-change-reading temperature,humidity
attr WT_BAD_Weather model HM-TC-IT-WM-W-EU
attr WT_BAD_Weather peerIDs

define WT_BAD_Climate CUL_HM 4E7E0902
setuuid WT_BAD_Climate 5c44c548-f33f-8794-70de-685fbdf10000db45
attr WT_BAD_Climate event-min-interval measured-temp:900,humidity:900
attr WT_BAD_Climate event-on-change-reading measured-temp,humidity
attr WT_BAD_Climate model HM-TC-IT-WM-W-EU

define WT_BAD_WindowRec CUL_HM 4E7E0903
setuuid WT_BAD_WindowRec 5c44c548-f33f-8794-155f-430994335d7a55f4
attr WT_BAD_WindowRec DbLogExclude .*
attr WT_BAD_WindowRec model HM-TC-IT-WM-W-EU
attr WT_BAD_WindowRec stateFormat last:trigLast

define WT_BAD_remote CUL_HM 4E7E0906
setuuid WT_BAD_remote 5c44c548-f33f-8794-71fb-0bcd0acb40ae184f
attr WT_BAD_remote DbLogExclude .*
attr WT_BAD_remote model HM-TC-IT-WM-W-EU

define WT_BAD_SwitchTr CUL_HM 4E7E0907
setuuid WT_BAD_SwitchTr 5c44c548-f33f-8794-5ac7-5f3ce61d5feb96cd
attr WT_BAD_SwitchTr DbLogExclude .*
attr WT_BAD_SwitchTr model HM-TC-IT-WM-W-EU

define ActionDetector CUL_HM 000000
setuuid ActionDetector 5c44c548-f33f-8794-475a-c97530f4f99249f7
attr ActionDetector .mId no
attr ActionDetector alias Schaltaktor_BAD_ActionDetector
attr ActionDetector event-on-change-reading .*
attr ActionDetector group Bad
attr ActionDetector model ACTIONDETECTOR
attr ActionDetector room Heizung
attr ActionDetector subType virtual

define DBSVG_BAD SVG myDbLog:HM_WTdb:HISTORY
setuuid DBSVG_BAD 5c44c548-f33f-8794-5f92-9f231fc07c1e7426
attr DBSVG_BAD group Bad
attr DBSVG_BAD label "Bad Min $data{min1}, Max $data{max1}, Last $data{currval1}"
attr DBSVG_BAD plotfunction WT_BAD_Weather
attr DBSVG_BAD room Heizung

##### Bad HomeMatic Schaltaktor 2-fach UP #####

define Schaltaktor_BAD CUL_HM 65A769
setuuid Schaltaktor_BAD 5c44c548-f33f-8794-9cfb-7ed8cd77c6c40996
attr Schaltaktor_BAD .mId 0009
attr Schaltaktor_BAD IODev WIFI_CUL_05
attr Schaltaktor_BAD autoReadReg 4_reqStatus
attr Schaltaktor_BAD expert 2_raw
attr Schaltaktor_BAD firmware 2.8
attr Schaltaktor_BAD group Bad
attr Schaltaktor_BAD model HM-LC-SW2-FM
attr Schaltaktor_BAD room Heizung
attr Schaltaktor_BAD serialNr OEQ1997847
attr Schaltaktor_BAD subType switch
attr Schaltaktor_BAD webCmd getConfig:clear msgEvents

define Schaltaktor_BAD_SW_01 CUL_HM 65A76901
setuuid Schaltaktor_BAD_SW_01 5c44c548-f33f-8794-9e0b-9078ad0cc7e38cf9
attr Schaltaktor_BAD_SW_01 group Bad
attr Schaltaktor_BAD_SW_01 model HM-LC-SW2-FM
attr Schaltaktor_BAD_SW_01 peerIDs
attr Schaltaktor_BAD_SW_01 room Heizung
attr Schaltaktor_BAD_SW_01 webCmd statusRequest:toggle:on:off

define Schaltaktor_BAD_SW_02 CUL_HM 65A76902
setuuid Schaltaktor_BAD_SW_02 5c44c548-f33f-8794-d5ca-e777b779e7feb42f
attr Schaltaktor_BAD_SW_02 group Bad
attr Schaltaktor_BAD_SW_02 model HM-LC-SW2-FM
attr Schaltaktor_BAD_SW_02 room Heizung
attr Schaltaktor_BAD_SW_02 webCmd statusRequest:toggle:on:off

define HomematicInfo HMinfo
setuuid HomematicInfo 5c44c548-f33f-8794-4027-f76cbb6c650bb413
attr HomematicInfo group Bad
attr HomematicInfo room Heizung
attr HomematicInfo sumERROR battery:ok,sabotageError:off,powerError:ok,overload:off,overheat:off,reduced:off,motorErr:ok,error:none,uncertain:[no|yes],smoke_detect:none,cover:closed
attr HomematicInfo sumStatus battery,sabotageError,powerError,motor
attr HomematicInfo webCmd update:protoEvents short:rssi:peerXref:configCheck:models


Hatte erst gedacht das mir Autocreate eventuell einen Streich gespielt hat  ::) dem war aber nicht so  ;)

amenomade

ZitatJa habe ich, ich leiste mir den Luxus und kann damit sehr gut umgehen!  ;)
Anscheinend nicht so gut... Ich kann nur davon abraten, das macht nur Problemen
Und dein Problem hat definitiv mit dem Init Vorgang zu tun

ActionDetector wird von CUL_HM kreiert, wenn er gebraucht wird und noch nicht existiert. Mein Vorschlag wäre dann, FHem zu stoppen, den aus der Konfigurationsdatei zu löschen, und fhem zu starten (mit der letzte Version des Moduls, d.h. mit dem $init_done Test)

Dann gucken, wo er in der Konfig landet, und ob damit das Problem immer noch besteht. Erst dann die Definition in eine andere cfg Datei verschieben, und gucken ob das Problem wieder kommt.
(ohne Garantie - mach zuerst ein Backup...)

EDIT:
Zitatein alias hat meines wissens doch nur eine Funktion: einen verständlichen Namen für den User
Es hat keinen Sinn, in dem Alias des ActionDetector, ein bestimmtes Device zu nennen (es sei denn, Du wirst nie andere HM-Sensoren integrieren), weil es nur einen ActionDetector für alle HM-Sensoren gibt. Das meinte ich.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus