Warnungen im log seit FHEMWEB 6001 (gelöst)

Begonnen von C_Herrmann, 03 Juni 2014, 19:46:32

Vorheriges Thema - Nächstes Thema

C_Herrmann

Hallo,

seit der Version 6001 von FHEMWEB habe ich im log diese Warnungen, wenn ich im GUI Everything aufrufe:
Use of uninitialized value in split at ./FHEM/01_FHEMWEB.pm line 1243.
Bei der neusten Version ist es Zeile 1244. Die Warnung kommt zwischen 1 und 4 mal. Einen Zusammenhang für die Häufigkeit konnte ich nicht finden. Eventuell könnte es mit diesen Zeilen
FHEMWEB:127.0.0.1:61618 Connected
zusammenhängen. Die sind bei den neueren Versionen kaum noch zu sehen.

Wenn ich irgendeinen Raum anklicke, gibt es keine Warnung.

Der Fehler tritt sowohl auf der FritzBox 7390 als auch in meinem Testsystem mit ActivePerl auf. Im Testsystem sind die Warnungen auf der Konsole zu sehen, aber nicht im log.

Ich habe es im Testsystem jetzt mal mit einer minimalen Konfiguration getestet. Auch dort kommen die Warnungen.

Gruß,
Christian

FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

betateilchen

Dürfte genau so oft auftreten, wie Du devices hast, bei denen es kein Attribut "group" gibt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

C_Herrmann

Hallo betateilchen,

ZitatDürfte genau so oft auftreten, wie Du devices hast, bei denen es kein Attribut "group" gibt.
Das kann es nicht sein. Auf der Fritzbox habe ich mehr als 20 Devices und keins hat das Attribut "group". Die Warnungen tauchen aber nur 1 bis 4 mal auf. Ein Zusammenhang mit "FHEMWEB:<adresse>:<port> erscheint mir eher möglich zu sein, da diese bislang in ähnlicher Anzahl im GUI zu sehen waren und nun kaum noch auftauchen.

Gruß,
Christian

p.s. Ich werde im Testsystem mal das Attribut setzen und testen, was passiert.
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

rudolfkoenig

Liegt vermutlich an "kaputt" angelegte Geraete ohne TYPE Eintrag.
Hinweise findet man dazu mit
list TYPE=
oder mit
{ join(",", grep { !defined($defs{$_}{TYPE}) } keys %defs) }

betateilchen

Zitat von: C_Herrmann am 03 Juni 2014, 21:03:00
Das kann es nicht sein. Auf der Fritzbox habe ich mehr als 20 Devices und keins hat das Attribut "group".

Ich gebe zu, meine Vermutung vorhin war nicht ganz technisch vollständig formuliert. Aber wenn Du in Deinem Testsystem allen Devices eine group gibst, sollte der Fehler nicht mehr auftreten ;)

Den genauen technischen Hintergrund hat ja Rudi bereits ausgeführt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

C_Herrmann

Hallo Rudi,

Zitat
Liegt vermutlich an "kaputt" angelegte Geraete ohne TYPE Eintrag.
Hinweise findet man dazu mit
list TYPE=
Alle Geräte haben einen gültigen TYPE-Eintrag.

Auf dem Testsystem liefert list:
Type list <name> for detailed info.

Global:
  global               (<no definition>)

CUL:
  CUL1                 (???)

FHEMWEB:
  FHEMWEB:127.0.0.1:62777 (Connected)
  FHEMWEB:127.0.0.1:62826 (Connected)
  FHEMWEB:127.0.0.1:62827 (Connected)
  FHEMWEB:127.0.0.1:62830 (Connected)
  FHEMWEB:127.0.0.1:62831 (Connected)
  WEB                  (Initialized)
  WEBphone             (Initialized)
  WEBtablet            (Initialized)

FS20:
  st3_1                (off)
  st3_2                (off)
  st3_3                (off)

UNIRoll:
  uniroll_ku           (Auf)
  uniroll_sz           (Auf)
  uniroll_test         (Auf)

FileLog:
  FileLog_st3_1        (active)
  FileLog_st3_2        (active)
  FileLog_st3_3        (active)
  FileLog_uniroll_ku   (active)
  FileLog_uniroll_sz   (active)
  FileLog_uniroll_test (active)
  Logfile              (active)

autocreate:
  autocreate           (disabled)

telnet:
  telnetPort           (Initialized)


CUL ist none, daher die Fragezeichen beim STATE

Zitatoder mit
{ join(",", grep { !defined($defs{$_}{TYPE}) } keys %defs) }
Es wird nichts angezeigt.

Mich wundert nur, dass das sonst noch keiner bemerkt hat und bei mir gleich auf beiden Installationen auftritt. Wenn ich eine FHEMWEB vor 6001 installiere, ist der Fehler weg.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

C_Herrmann

Hallo betateilchen,

Zitat
Ich gebe zu, meine Vermutung vorhin war nicht ganz technisch vollständig formuliert. Aber wenn Du in Deinem Testsystem allen Devices eine group gibst, sollte der Fehler nicht mehr auftreten ;)

Das Zufügen des group-Attributs bei allen Devices hat leider keine Änderung gebracht. Wie ich oben schon geschrieben habe, haben alle Devices einen richtigen TYPE-Eintrag.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

LausiD

Guten Abend,
hatte ebenfalls eine grosse Anzahl Meldungen im Log.
Abhilfe: Neustart FritzBox!

C_Herrmann

Hallo Lausi,

Zitat
hatte ebenfalls eine grosse Anzahl Meldungen im Log.
Abhilfe: Neustart FritzBox!
Danke, das hat die Warnungen in der FritzBox-Installation beseitigt.

Aber jetzt wird es kurios. Vorher hatte ich einen Snapshot aus dem SVN heruntergeladen und in ein neues Verzeichnis entpackt. Dort habe ich ohne irgendwelche Änderungen fhem mit der darin enthaltenen fhem.cfg.demo gestartet. Die Warnungen traten auch hier auf. Das Leeren des Browser-Caches und ein Neustart vom Firefox hat daran nichts geändert.

Misteriös!?

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

C_Herrmann

Hallo,

ich hatte jetzt mal Zeit, ein paar Tests zu machen. Dabei hat sich meine Vermutung bestätigt, dass es einen Zusammenhang mit "FHEMWEB:<adresse>:<port>" gibt. Wenn ich diese in der foreach-Schleife (Zeile 1245 ff in 01_FHEMWEB.pm) ausschließe, gibt es keine Warnung mehr. Mein Testsystem ist ActivePerl 32-bit. Dort erscheinen die Warnungen auf der Konsole.

Mit dieser Änderung habe ich das getestet:
my $test1 = substr($dev,0,7);
if($test1 ne "FHEMWEB") {
    foreach my $grp (split(",", AttrVal($dev, "group", $FW_types{$dev}))) {
      next if($FW_hiddengroup{$grp});
      $group{$grp}{$dev} = 1;
    }
}


Das ist natürlich nicht die Lösung, da dann "FHEMWEB:<adresse>:<port>" natürlich nicht mehr unter FHEMWEB im GUI angezeigt wird. Vielleicht hilft es aber, eine Lösung zu finden.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen

rudolfkoenig

Vermutlich ist es eine Konsequenz der selteneren FW_updateHashes Berechnung, und dass damit neue Browser-Verbindungen nicht beruecksichtigt werden. Ich habe es gefixed, und eingecheckt, update ab morgen.

C_Herrmann

Hallo Rudi,

ich habe die Datei aus dem SVN heruntergelden und installiert. Die Warnung ist weg. Danke.

Gruß,
Christian
FHEM auf RPi, CUL868, FHT, UNIRoll, verschiedene FS20 Komponenten, IT, Zigbee zum Testen