[Gelöst]fhem.pl Warnung im Log

Begonnen von Tommy82, 04 Dezember 2014, 17:53:36

Vorheriges Thema - Nächstes Thema

Tommy82

Hi,
hab heute morgen plötzlich diese Warnung im Log
2015.08.19 06:59:10.169 1: PERL WARNING: Use of uninitialized value $dev in hash element at fhem.pl line 3379.

Hab fhem gestern aktualisiert
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

rudolfkoenig

Da wird ReplaceEventMap ohne device aufgerufen.
Liegt nicht an dieser Funktion selbst, diese Zeilen sind seit Jahren unveraendert.
Ich kann das bei mir auch nicht ohne weiteres reproduzieren.

Tommy82

Hallo,
ok, dann werde ich mal versuchen nachzuvollziehen wieso das bei mir plötzlich auftritt.

Danke für den Hinweis
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Tommy82

Hi,
find meinen Fehler nicht....
Hab mal stacktrace aktiviert, dann bekomme ich im Log diese Meldung:
2015.08.19 20:46:08.679 1: PERL WARNING: Use of uninitialized value $dev in hash element at fhem.pl line 3379.
2015.08.19 20:46:08.679 3: stacktrace:
2015.08.19 20:46:08.680 3:     main::__ANON__                      called by fhem.pl (3379)
2015.08.19 20:46:08.680 3:     main::ReplaceEventMap               called by fhem.pl (3723)
2015.08.19 20:46:08.680 3:     main::evalStateFormat               called by fhem.pl (3798)
2015.08.19 20:46:08.681 3:     main::readingsEndUpdate             called by ./FHEM/10_CUL_HM.pm (7534)
2015.08.19 20:46:08.681 3:     main::CUL_HM_UpdtReadBulk           called by ./FHEM/10_CUL_HM.pm (3266)
2015.08.19 20:46:08.681 3:     main::CUL_HM_pushEvnts              called by ./FHEM/10_CUL_HM.pm (1308)
2015.08.19 20:46:08.682 3:     main::CUL_HM_Parse                  called by fhem.pl (3184)
2015.08.19 20:46:08.682 3:     main::Dispatch                      called by ./FHEM/00_HMLAN.pm (737)
2015.08.19 20:46:08.682 3:     main::HMLAN_Parse                   called by ./FHEM/00_HMLAN.pm (561)
2015.08.19 20:46:08.682 3:     main::HMLAN_Read                    called by fhem.pl (3046)
2015.08.19 20:46:08.683 3:     main::CallFn                        called by fhem.pl (649)
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

rudolfkoenig

fhem.pl ist nicht aktuell (sieht man aus der gemeldeten Zeilennumer).
Es handelt sich wohl um ein HomeMatic Geraet. Entweder wird in einem der userReading-Funktionen das CUL_HM Geraet geloescht, oder das HomeMatic Modul generiert Readings/Events fuer ein undefiniertes Geraet. Evtl. hilft "attr global verbose 5" um ein bisschen mehr Info zu sammeln, muss aber nicht sein.

Tommy82

Hi, ich hab im Log plötzlich mal wieder ein paar Warnungen:
2015.11.07 12:12:52.948 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4401.
2015.11.07 12:13:08.164 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4401
2015.11.07 12:15:29.051 1: PERL WARNING: Use of uninitialized value in numeric comparison (<=>) at fhem.pl line 1250.


bei aktiviertem stacktrace kommt:
2015.11.07 12:19:04.641 3:     main::FW_Read                       called by fhem.pl (3088)
2015.11.07 12:19:04.641 3:     main::CallFn                        called by fhem.pl (652)
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

rudolfkoenig

Das ist der uebliche Leier: irgendein Geraet ($defs{XX}) wurde ohne TYPE angelegt, vermutlich durch Benutzerfehler. Der fhem-log sollte mit "Error: XX has no TYPE" Meldungen voll sein, man kann das aber auch direkt rauskriegen mit
{ join(",", grep { !$defs{$_}{TYPE} } keys %defs) }
in der FHEM-Kommandozeile

Tommy82

Also
{ join(",", grep { !$defs{$_}{TYPE} } keys %defs) }
liefert keine Ausgabe, aber hast recht, ich hatte heute ein paar Log einträge in :
2015.11.07 12:10:17.701 1: Error: HM_237437 has no TYPE
dabei handelt es sich dann wohl hierrum:
Internals:
   DEF        237437
   HmLanAdapter_MSGCNT 94
   HmLanAdapter_RAWMSG RE30012C3,0001,09A1FD32,FF,FFAE,098002237437000041010100005B
   HmLanAdapter_RSSI -82
   HmLanAdapter_TIME 2015-11-07 18:30:44
   IODev      HmLanAdapter
   LASTInputDev HmLanAdapter
   MSGCNT     94
   NAME       Funkschalter_Keller_Licht
   NR         294
   STATE      off
   TYPE       CUL_HM
   lastMsg    No:09 - t:02 s:237437 d:000041 010100005B
   protCmdDel 21
   protLastRcv 2015-11-07 18:30:44
   protResnd  44 last_at:2015-11-07 18:13:15
   protResndFail 14 last_at:2015-11-07 18:11:23
   protSnd    108 last_at:2015-11-07 18:30:43
   protState  CMDs_done
   rssi_HmLanAdapter lst:-91 max:-82 avg:-90.88 min:-98 cnt:45
   rssi_at_HmLanAdapter lst:-82 cnt:94 avg:-85.73 max:-80 min:-94
   CHANGETIME:
   Helper:
     Dblog:
       Devicemsg:
         Mydblog:
           TIME       1446917444.14714
           VALUE      off (to vccu)
       Level:
         Mydblog:
           TIME       1446917444.14714
           VALUE      0
       Levelmissed:
         Mydblog:
           TIME       1446916396.89391
           VALUE      desired:0
       Pct:
         Mydblog:
           TIME       1446917444.14714
           VALUE      0
       Poweron:
         Mydblog:
           TIME       1446917328.74705
           VALUE      2015-11-07 18:28:48
       State:
         Mydblog:
           TIME       1446917444.14714
           VALUE      off
       Timedon:
         Mydblog:
           TIME       1446917444.14714
           VALUE      off
   Readings:
     2015-11-07 18:30:44   CommandAccepted yes
     2015-11-07 11:16:01   D-firmware      1.12
     2015-11-07 11:16:01   D-serialNr      KEQ0631830
     2015-11-07 18:28:50   PairedTo        0x000041
     2015-11-07 11:16:05   R-pairCentral   0x000041
     2015-11-07 11:16:06   R-sign          off
     2015-11-07 18:28:50   RegL_00:         02:01 03:00 04:00 05:00 06:00 07:00 08:00 09:00 0A:00 0B:00 0C:41 00:00
     2015-11-07 18:28:50   RegL_01:         08:00 00:00
     2015-11-07 18:30:44   deviceMsg       off (to vccu)
     2015-11-07 18:30:44   level           0
     2015-11-07 18:13:16   levelMissed     desired:0
     2015-11-07 18:30:44   pct             0
     2015-11-07 18:28:48   powerOn         2015-11-07 18:28:48
     2015-11-07 18:30:44   recentStateType ack
     2015-11-07 18:30:44   state           off
     2015-11-07 18:30:44   timedOn         off
   Helper:
     HM_CMDNR   9
     PONtest    0
     cSnd       110000412374370201C80000,110000412374370201000000
     dlvlCmd    ++A0110000412374370201000000
     mId        0004
     peerIDsRaw ,00000000
     rxType     1
     Expert:
       def        1
       det        0
       raw        1
       tpl        0
     Io:
       newChn     +237437,00,00,00
       nextSend   1446917444.21546
       rxt        0
       vccu       vccu
       p:
         237437
         00
         00
         00
       prefIO:
         HmLanAdapter
     Mrssi:
       mNo        09
       Io:
         HmLanAdapter -80
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf
       qReqStat
     Role:
       chn        1
       dev        1
       prs        1
     Rssi:
       Hmlanadapter:
         avg        -90.8888888888889
         cnt        45
         lst        -91
         max        -82
         min        -98
       At_hmlanadapter:
         avg        -85.7340425531915
         cnt        94
         lst        -82
         max        -80
         min        -94
     Shadowreg:
Attributes:
   IODev      HmLanAdapter
   IOgrp      vccu:HmLanAdapter
   autoReadReg 4_reqStatus
   expert     2_full
   firmware   1.12
   model      HM-LC-SW1-FM
   peerIDs    00000000,
   room       Kellerflur
   serialNr   KEQ0631830
   subType    switch
   webCmd     statusRequest:toggle:on:off

Den HM-LC-SW1-FM  hab ich über ein set HmLanAdapter hmPairSerial KEQ0631830 angelernt
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

rudolfkoenig

Dann frag mal Martin, ob das Geraet sein TYPE ausleihen kann. Waer mir aber neu.
Wenn du den Raetsel aufloesen kannst, dann bitte berichten.

ph1959de

#39
Gab es derartige Probleme nicht in der Vergangenheit immer mal wieder, wenn HomeMatic-Geräte zu schnell nach dem Anlegen umbenannt wurden (siehe auch hier)?

@Tommy82: hast Du den HM-LC-SW1-FM direkt oder kurz nach dem hmPairSerial umbenannt?

Peter
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

Tommy82

Hallo Peter,
kurz danach, würde sagen so ca. 10-15 Min danach

@Rudi werd das mal in HM Posten, mal sehn was Martin meint
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Tommy82

Hi,
Martin hat da was gefixt, dadurch sollte das nicht mehr vorkommen
http://forum.fhem.de/index.php/topic,43428.0.html
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

Tommy82

Hi,
hab heute noch mal eine Warnung zu fhem.pl im Log:
016.12.04 21:25:57.099 1: PERL WARNING: substr outside of string at fhem.pl line 717.
2016.12.04 21:25:57.100 1: stacktrace:
2016.12.04 21:25:57.100 1:     main::__ANON__                      called by fhem.pl (717)
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI

rudolfkoenig

@Tommy82: hat mit den anderen Meldungen nichts zu tun. syswrite(FD, $wb) liefert ein nicht null/undef Wert zurueck, was auch nicht der Laenge des Puffers entspricht, und substr trotzdem nicht gefaellt. Laut Doku liefert syswrite keine negativen Werte zurueck, ich weiss also nicht, wann das vorkommen kann. Da es Performance-kritisch ist, bitte zunaechst selbst testen mit Folgendem, vor substr/Zeile 717 eingefuegt:
Log 1, "ERROR: $ret out of bounds / ".length($wb)" if($ret < 0 || $ret >= length($wb));

Tommy82

Hi,
717 hab ich jetzt so abgeändert:
  $hash->{$wbName} = Log 1, "ERROR: $ret out of bounds / ".length($wb)" if($ret < 0 || $ret >= length($wb)); substr($wb, $ret);
mal gucken was passiert.

Allerdings hatte ich vor der änderung noch neue Meldungen im Log:
2016.12.06 06:34:58.876 1: PERL WARNING: Use of uninitialized value $v in sprintf at fhem.pl line 2152.
2016.12.06 06:34:58.877 1: stacktrace:
2016.12.06 06:34:58.877 1:     main::__ANON__                      called by fhem.pl (2152)
2016.12.06 06:34:58.878 1:     main::PrintHash                     called by fhem.pl (2147)
2016.12.06 06:34:58.878 1:     main::PrintHash                     called by fhem.pl (2147)
2016.12.06 06:34:58.878 1:     main::PrintHash                     called by fhem.pl (2256)
2016.12.06 06:34:58.879 1:     main::CommandList                   called by fhem.pl (1085)
2016.12.06 06:34:58.879 1:     main::AnalyzeCommand                called by fhem.pl (955)
2016.12.06 06:34:58.879 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2274)
2016.12.06 06:34:58.880 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (765)
2016.12.06 06:34:58.880 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (456)
2016.12.06 06:34:58.880 1:     main::FW_Read                       called by fhem.pl (3264)
2016.12.06 06:34:58.881 1:     main::CallFn                        called by fhem.pl (672)
Fhem Cubitruck  Armbian Buster with Linux 5.3.9-sunxi
HM-CC_RT-DN, HM-Sec-RHS,HM-Sec-SD, HM-Sec-SCo,IT1500,1xIT GRR-3500 Fritz!Dect200,Powerline546E,Enigma2 Modul mit 3 Vu+,Wol Modul für WinServer2016 und WinServer 2019,FB6590
Allnetl Wandtablett mit FTUI