FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Darkman am 08 Februar 2016, 09:19:05

Titel: 2 Meldungen von FHEM: "Error: has no TYPE" / Use of uninitialized value
Beitrag von: Darkman am 08 Februar 2016, 09:19:05
Moin,

in meinem FHEM Log tauchen seit en paar Tagen die folgenden beiden Meldungen vermehrt auf:

Nummer 1:
Error:  has no TYPE
(die vorallem wenn man die UI nutzt)

Nummer 2:
PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4402.
(die hab ich inzwischen zumindest soweit verfolgt, dass ich weiss was sie ausloest, siehe unten).


Bei Nummer 1 bin ich mir nicht sicher, wann/wieso die ausgeloest wird. Theoretisch von den logs immer in Verbindung mit der Nutzung von FHEMWEB, aber scheinbar nicht wirklich spezifisch zu einem Room oder einem Modul. Der Code der da angesprochen wird, ist in fhem.pl Line 1101:

        my $hash = $defs{$d};
        if(!$hash->{TYPE}) {
          Log 1, "Error: $d has no TYPE";
          next;
        }

Was man an der Fehlermeldung erkennen kann: $d scheint entweder keinen darstellbaren Wert zu haben oder nur ein "Leerzeichen" zu sein. Der Codeblock handelt, sofern ich den Code richtig interpretiere, wohl von den device defines, also allen generellen definierten Geraeten. Das Problem tritt bei mir seit dem 4. morgens auf, da kann ich aber zumindest im Log keine Aenderungen sehen die mir verraten wo ich gucken soll. Die groessten Aenderungen am FHEM waren Tags davor ein fhem2fhem definiert zu haben. Die Definition sieht so aus:

define KELLERFHEM_CUL_SRF FHEM2FHEM 192.168.56.11:7072 RAW:CUL_SRF
attr KELLERFHEM_CUL_SRF room Config

Das dazugehoerige CUL_SRF:

define CUL_SRF CUL none 1323
attr CUL_SRF dummy 1
attr CUL_SRF model CUL
attr CUL_SRF rfmode SlowRF
attr CUL_SRF room Config


Bei der 2. Meldung, der Perl Warning, konnte ich mit verbose Logging zumindest nachvollziehen, das es wohl durch alle "BlockingCall" childs ausgeloest wird:

2016.02.08 08:55:52 5: PRESENCE (WZ.TV) - starting blocking call for mode lan-ping
2016.02.08 08:55:52 4: BlockingCall created child (4834), uses telnetForBlockingFn to connect back
2016.02.08 08:55:52 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4402.
2016.02.08 08:55:52 5: PRESENCE (WZ.TV) - starting ping scan: WZ.TV|192.168.2.104|0|2

2016.02.08 08:55:45 5: PRESENCE (Sven_Handy_WLAN) - starting blocking call for mode shellscript
2016.02.08 08:55:45 4: BlockingCall created child (4830), uses telnetForBlockingFn to connect back
2016.02.08 08:55:45 1: PERL WARNING: Use of uninitialized value in string eq at fhem.pl line 4402.
2016.02.08 08:55:45 5: PRESENCE (Sven_Handy_WLAN) - execute local shell script: Sven_Handy_WLAN|/opt/fhem/macfinder.sh cc:fa:00:xx:xx:xx|0


Der Code der da angesprochen wird, ist die Funktion "fhemFork", genauer dieser Part hier:

  # Child here
  # Close all kind of FD. Reasons:
  # - cannot restart FHEM if child keeps TCP Serverports open
  # ...?
  foreach my $d (sort keys %defs) {
    my $h = $defs{$d};
    $h->{DBH}->{InactiveDestroy} = 1 if($h->{TYPE} eq 'DbLog'); ## Line 4402 ##
    TcpServer_Close($h) if($h->{SERVERSOCKET});
    if($h->{DeviceName}) {
      require "$attr{global}{modpath}/FHEM/DevIo.pm";
      DevIo_CloseDev($h,1);
    }
  }

Was mir da auffaellt, sieht aus als wuerde es wieder mit irgendeiner device definition zusammenhaengen, dh. beide Probleme koennten den selben Ursprung haben.

Das ganze tritt unter fhem.pl 9893 2015-11-15 08:43:05Z auf, also dem Release 5.7. Keine weiteren Updates. Einzig das UWZ Modul ist noch zusaetzlich eingebunden.

Kann jemand Licht ins Dunkel bringen?

Danke & Gruss,
Sven
Titel: Antw:2 Meldungen von FHEM: "Error: has no TYPE" / Use of uninitialized value
Beitrag von: krikan am 09 Februar 2016, 11:40:38
"no TYPE"-Devices kannst Du wie bspw. im Wiki beschrieben http://www.fhemwiki.de/wiki/Cmdalias#shownotypedevices herausfinden.

Gruß, Christian
Titel: Antw:2 Meldungen von FHEM: "Error: has no TYPE" / Use of uninitialized value
Beitrag von: Darkman am 10 Februar 2016, 08:06:21
Servus Christian,

danke fuer den Tipp. Hab mir den Alias mal angelegt, aktuell tritt das Problem ja nicht auf, ergo kommt auch nix raus :/
Was genau muesste denn passieren das ein device ohne Type angelegt wird? Bisher kann ich nur raten wann/wie das auftritt, mein Eindruck war evtl. im Zusammenhang mit SVGs, konnte ich aber bisher final nicht verifizieren (seit ich die erstmal geloescht habe, ist das Problem allerdings auch nicht mehr aufgetreten).

Gruss,
Sven
Titel: Antw:2 Meldungen von FHEM: "Error: has no TYPE" / Use of uninitialized value
Beitrag von: krikan am 10 Februar 2016, 08:14:27
Hallo Sven,
typischerweise entsteht das durch Benutzerfehler oder (unwahrscheinlicher) Modulfehler.
Rudi hat dazu ein paar Mal etwas geschrieben. Auf die Schnelle gefunden:
http://forum.fhem.de/index.php/topic,29963.msg356041.html#msg356041
http://forum.fhem.de/index.php/topic,27546.msg204498.html#msg204498
Gruß, Christian
Titel: Antw:2 Meldungen von FHEM: "Error: has no TYPE" / Use of uninitialized value
Beitrag von: Darkman am 10 Februar 2016, 10:25:42
Moin,

ah-ha. Was mir als "wichtigster" Unterschied bisher aufgefallen ist: bei mir haben die Dinger keinen Namen. Das wuerde die Sache ja vereinfachen ;)
Aber rename koennte im Spiel gewesen sein. Ich hatte in den letzten Tagen ab und an mal was umgenannt, u.a. einen CUL. Dann weiss ich zumindest wo ich nochmal suchen bzw. experimentieren kann.

Hast Du bzgl. des anderen Fehlers beim nonblocking Connect auch noch ein Tipp zur Hand der mir die Spurensuche erleichtern koennte? ;)

Gruss + vielen Dank,
Sven