Fehlermeldung seit 26.02.2019 aus 01_FHEMWEB.pm und fhem.pl

Begonnen von ToKa, 27 Februar 2019, 20:02:07

Vorheriges Thema - Nächstes Thema

ToKa

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
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

rudolfkoenig

Kannst du bitte die Meldungen mit gesetzten "attr global stacktrace" nochmal erzeugen, und den passenden Log-Ausschnitt hier anhaengen?

ToKa

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
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight

rudolfkoenig

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.

justme1968

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.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

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.

justme1968

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 :)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ToKa

Hallo Rudi,

danke für die Änderungen, damit sind die Fehlermeldungen weg.

Beste Grüße
Torsten
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight