Hallo zusammen,
seit dem Update am 26.02.2019 finden sich in meinem Log nach jedem Neustart von fhem die nachfolgenden Meldungen:
2019.02.27 19:53:12 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4471, <FH> line 10310.
2019.02.27 19:53:12 1: PERL WARNING: Use of uninitialized value $FW_ME in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 3237, <FH> line 10310.
2019.02.27 19:53:12 1: PERL WARNING: Use of uninitialized value $FW_subdir in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 3237, <FH> line 10310.
2019.02.27 19:53:12 1: PERL WARNING: Use of uninitialized value $FW_CSRF in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 3237, <FH> line 10310.
Habe ich da etwas verpasst und ich muss bei mir was an den Einstellungen ändern? Oder ist das ein Bug?
Beste Grüße
Torsten
Kannst du bitte die Meldungen mit gesetzten "attr global stacktrace" nochmal erzeugen, und den passenden Log-Ausschnitt hier anhaengen?
Hallo Rudi,
hier der gewünschte stacktrace:
2019.02.28 20:24:29 1: PERL WARNING: Use of uninitialized value $d in hash element at fhem.pl line 4471, <FH> line 10310.
2019.02.28 20:24:29 1: stacktrace:
2019.02.28 20:24:29 1: main::__ANON__ called by fhem.pl (4471)
2019.02.28 20:24:29 1: main::AttrVal called by ./FHEM/01_FHEMWEB.pm (3424)
2019.02.28 20:24:29 1: main::FW_widgetOverride called by ./FHEM/01_FHEMWEB.pm (3156)
2019.02.28 20:24:29 1: main::FW_devState called by ./FHEM/31_LightScene.pm (287)
2019.02.28 20:24:29 1: main::LightScene_Notify called by fhem.pl (3693)
2019.02.28 20:24:29 1: main::CallFn called by fhem.pl (3613)
2019.02.28 20:24:29 1: main::DoTrigger called by fhem.pl (3979)
2019.02.28 20:24:29 1: main::Dispatch called by ./FHEM/00_ZWDongle.pm (977)
2019.02.28 20:24:29 1: main::ZWDongle_Parse called by ./FHEM/00_ZWDongle.pm (874)
2019.02.28 20:24:29 1: main::ZWDongle_Read called by fhem.pl (3693)
2019.02.28 20:24:29 1: main::CallFn called by fhem.pl (742)
2019.02.28 20:24:29 1: PERL WARNING: Use of uninitialized value $FW_ME in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 3237, <FH> line 10310.
2019.02.28 20:24:29 1: stacktrace:
2019.02.28 20:24:29 1: main::__ANON__ called by ./FHEM/01_FHEMWEB.pm (3237)
2019.02.28 20:24:29 1: main::FW_devState called by ./FHEM/31_LightScene.pm (287)
2019.02.28 20:24:29 1: main::LightScene_Notify called by fhem.pl (3693)
2019.02.28 20:24:29 1: main::CallFn called by fhem.pl (3613)
2019.02.28 20:24:29 1: main::DoTrigger called by fhem.pl (3979)
2019.02.28 20:24:29 1: main::Dispatch called by ./FHEM/00_ZWDongle.pm (977)
2019.02.28 20:24:29 1: main::ZWDongle_Parse called by ./FHEM/00_ZWDongle.pm (874)
2019.02.28 20:24:29 1: main::ZWDongle_Read called by fhem.pl (3693)
2019.02.28 20:24:29 1: main::CallFn called by fhem.pl (742)
2019.02.28 20:24:29 1: PERL WARNING: Use of uninitialized value $FW_subdir in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 3237, <FH> line 10310.
2019.02.28 20:24:29 1: stacktrace:
2019.02.28 20:24:29 1: main::__ANON__ called by ./FHEM/01_FHEMWEB.pm (3237)
2019.02.28 20:24:29 1: main::FW_devState called by ./FHEM/31_LightScene.pm (287)
2019.02.28 20:24:29 1: main::LightScene_Notify called by fhem.pl (3693)
2019.02.28 20:24:29 1: main::CallFn called by fhem.pl (3613)
2019.02.28 20:24:29 1: main::DoTrigger called by fhem.pl (3979)
2019.02.28 20:24:29 1: main::Dispatch called by ./FHEM/00_ZWDongle.pm (977)
2019.02.28 20:24:29 1: main::ZWDongle_Parse called by ./FHEM/00_ZWDongle.pm (874)
2019.02.28 20:24:29 1: main::ZWDongle_Read called by fhem.pl (3693)
2019.02.28 20:24:29 1: main::CallFn called by fhem.pl (742)
2019.02.28 20:24:29 1: PERL WARNING: Use of uninitialized value $FW_CSRF in concatenation (.) or string at ./FHEM/01_FHEMWEB.pm line 3237, <FH> line 10310.
2019.02.28 20:24:29 1: stacktrace:
2019.02.28 20:24:29 1: main::__ANON__ called by ./FHEM/01_FHEMWEB.pm (3237)
2019.02.28 20:24:29 1: main::FW_devState called by ./FHEM/31_LightScene.pm (287)
2019.02.28 20:24:29 1: main::LightScene_Notify called by fhem.pl (3693)
2019.02.28 20:24:29 1: main::CallFn called by fhem.pl (3613)
2019.02.28 20:24:29 1: main::DoTrigger called by fhem.pl (3979)
2019.02.28 20:24:29 1: main::Dispatch called by ./FHEM/00_ZWDongle.pm (977)
2019.02.28 20:24:29 1: main::ZWDongle_Parse called by ./FHEM/00_ZWDongle.pm (874)
2019.02.28 20:24:29 1: main::ZWDongle_Read called by fhem.pl (3693)
2019.02.28 20:24:29 1: main::CallFn called by fhem.pl (742)
Beste Grüße
Torsten
Ich fuehle mich nicht wohl damit, dass Lightscene diese Funktion in FHEMWEB direkt aufruft, das ist aus Architektur-Sicht falsch.
Habe aber keine gute und einfache Loesung, habs also direkt in FHEMWEB abgefangen.
Wenn nach dem update morgen das Problem wieder besteht, bitte melden.
leider gibt es keinen dokumentierten weg an die nötigen daten (hier das icon) zu kommen. alles doppelt implemtieren und immer wieder nachziehen ist glaube ich nicht besser.
ansonsten glaube ich das dieses spezielle problem auch gelöst ist wenn LightScene alle events ignoriert bis $init_done gesetzt ist. das habe ich gerade mal eingebaut. wobei ich aber nicht verstehe warum das problem plötzlich auftritt und nur hier.
Auf $init_done zu warten hilft nicht: $FW_me, etc sind globale Variablen, die den letzten FHEMWEB-Aufruf "dokumentieren". Wenn man FHEM neu startet, ohne FHEMWEB aufzurufen, dann sind diese Variablen alle nicht initialisiert. In diesem Fall kam ein Event ueber ZWave, was LightScene grafisch darstellen wollte, FHEMWEB wusste aber nicht wo, weil noch kein Browseraufruf stattfand.
Strenggenommen ist der FW_devState Aufruf unzulaessig, wenn es nicht (wenigstens indirekt, ueber $hash-{CL}) von FHEMWEB initiiert wurde, weil bei mehreren unterschiedlich konfigurierten FHEMWEBs evtl. die falschen Icons verwendet werden.
Bitte nicht falsch verstehen: ich wollte jetzt keinen Umbau anstossen, sondern nur auf das Problem hinweisen, damit die Verflechtung nicht zu- sondern mit der Zeit eher abnimmt.
du hast zum teil recht. ich habe die meldung nicht genau genug gelesen und dachte an ein reihenfolgen problem
aber: LightScene stellt nichts dar ohne das vorher eine fhemweb seite angezeigt wurde. d.h. ich verstehe noch nicht was hier genau passiert. bzw. warum LightScene versucht etwas anzuzeigen ohne das vorher fhemweb vollständig initialisiert ist. daher ist es leider nicht ganz so einfach :)
ja. das problem die falsche fhemweb instanz zu erwischen ist bekannt. leider habe ich absolut keine idee wie man das vermeiden kann ohne alles komplett umzubauen. ich denke das wäre mindestens so viel arbeit wie die js/longpoll umstellung vor ein paar jahren. zum glück ist das problem aber scheinbar eher theoretisch da ich noch keine einzige rückmeldung zu einem echten auftreten bekommen habe.
das problem des direkten aufrufs von fhemweb routinen gibt es noch an diversen anderen stellen. vor allem mit der perl version von devStateIcon. vor der letzten ergänzung für mehrere icons in fhemweb war es nötig dafür die perl version zu verwenden und die internen routinen aufzurufen. das wird scheinbar vor allem von mqtt nutzern auf fleissig verwendet. mit fallen noch ein paar andere stellen ein. nicht zuletzt readingsGroup :)
Hallo Rudi,
danke für die Änderungen, damit sind die Fehlermeldungen weg.
Beste Grüße
Torsten