Hallo zusammen,
auch wenn ich mich daran gewöhnt habe das beim Start meines Fhem Systems im Logfile Dinge stehen die ich nicht verstehe, Fhem aber glücklicher weise gut läuft, möchte ich die Zeit die mir der Winter gibt dazu nutzen den Sachen auf den Grund zu gehen.
Nun habe ich mir diesen Block mal vorgenommen:
PERL WARNING: Use of uninitialized value $tailBlock in pattern match (m//) at ./FHEM/98_DOIF.pm line 2053.
2022.12.10 10:24:13 1: PERL WARNING: Use of uninitialized value $tailBlock in string ne at ./FHEM/98_DOIF.pm line 2053.
2022.12.10 10:24:14 1: PERL WARNING: Prototype mismatch: sub main::encode_json ($;$) vs ($) at /usr/share/perl/5.28/Exporter.pm line 66, <$fh> line 4786.
2022.12.10 10:24:14 1: PERL WARNING: Prototype mismatch: sub main::decode_json ($;$$) vs ($) at /usr/share/perl/5.28/Exporter.pm line 66, <$fh> line 4786.
2022.12.10 10:24:14 1: PERL WARNING: Prototype mismatch: sub main::encode_json ($) vs ($;$) at ./FHEM/00_SIGNALduino.pm line 28.
2022.12.10 10:24:14 1: PERL WARNING: Prototype mismatch: sub main::decode_json ($) vs ($;$$) at ./FHEM/00_SIGNALduino.pm line 28.
2022.12.10 10:24:14 1: SIGNALduino: DoInit, /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AL00N6AD-if00-port0@57600
2022.12.10 10:24:15 1: PERL WARNING: Prototype mismatch: sub main::encode_json ($;$) vs ($) at /usr/share/perl/5.28/Exporter.pm line 66, <$fh> line 4978.
2022.12.10 10:24:15 1: PERL WARNING: Prototype mismatch: sub main::decode_json ($;$$) vs ($) at /usr/share/perl/5.28/Exporter.pm line 66, <$fh> line 4978.
2022.12.10 10:24:15 1: PERL WARNING: Prototype mismatch: sub main::encode_json ($) vs ($;$) at (eval 457) line 1.
2022.12.10 10:24:15 1: PERL WARNING: Prototype mismatch: sub main::decode_json ($) vs ($;$$) at (eval 457) line 1.
Leider haben meine Recherchen nicht wirklich einen Anhaltspunkt ergeben wo ich diesen Probleme finden und beheben kann. Ich brauche mal von euch eine kleine Starthilfe.
Da mein Setup mit den Jahren wirklich riesig angewachsen ist, stehe ich ein wenig hilflos davor. Mittlerweile bricht hier im Haushalt alles zusammen wenn Fhem mal zickt. Deshalb möchte ich es möglichst "sauber" haben
Es wäre toll wenn mal jemand drüber schauen könnte und mir einen Einstieg zur Behebung der Problem gibt.
Gruß Skusi
Wenn mir die Ursche fuer ein WARNING unklar ist, dann setze ich "attr global stacktrace 1".
Das hilft zwar nicht immer, zeigt aber den Verursacher etwas genauer.
Ok, hab ich mal eingeschaltet.
Spontan taucht da nun folgendes auf:
PERL WARNING: Use of uninitialized value $value in string eq at fhem.pl line 5010.
2022.12.10 13:03:55 1: stacktrace:
2022.12.10 13:03:55 1: main::__ANON__ called by fhem.pl (5010)
2022.12.10 13:03:55 1: main::readingsBulkUpdateIfChanged called by ./FHEM/36_Shelly.pm (1236)
2022.12.10 13:03:55 1: main::Shelly_proc1G called by ./FHEM/36_Shelly.pm (1058)
2022.12.10 13:03:55 1: main::Shelly_status called by ./FHEM/36_Shelly.pm (1045)
2022.12.10 13:03:55 1: main::__ANON__ called by FHEM/HttpUtils.pm (729)
2022.12.10 13:03:55 1: main::__ANON__ called by fhem.pl (781)
Hängt also irgendwie mit meinem ein zigsten Shelly Dimmer zusammen ???
Internals:
DEF 192.168.12.130
DURATION 0
FUUID 5e1f6a03-f33f-98db-bf13-d5e2d634bca1a9f6
INTERVAL 60
NAME Licht_Flur
NR 583
SHELLYID shellydimmer-F3C712
STATE off
TCPIP 192.168.12.130
TYPE Shelly
eventCount 4
READINGS:
2020-01-15 20:37:40 cloud disabled
2022-12-10 11:41:18 energy 829.8
2022-11-11 22:50:23 firmware v1.12.1
2022-12-10 11:13:23 network <html>connected to <a href="http://192.168.12.130">192.168.12.130</a></html>
2022-12-10 10:11:03 pct 30
2022-12-10 11:41:18 power 0
2022-12-10 11:41:18 state off
Attributes:
alexaName Flur
alexaRoom Flur
comment energie Reset am 15.01.22 9:50
696.8 am Sonntag 04.12.22 10:16
devStateIcon on:black_FS20.on off:black_FS20.off
event-on-change-reading state,pct
group Beleuchtung
model shellydimmer
room 1.0_Beleuchtung
verbose 1
webCmd :
Hmm...
Laut Code liefert dein Shellydimmer kein overpower, was auch immer das ist.
Eine Katastrophe ist das nicht, es gibt nur eine Meldung pro FHEM-Start wenn attr global stacktrace abgeschaltet ist.
Womoeglich hilft es, wenn Du auf MQTT umsteigst :)
Ok, vielen Dank für den Tipp.
Nun geht es aber ja leider noch viel weiter.
Ich habe nun mal neu gestartet und nun ist der Log natürlich um die Stacktrace Meldungen reicher. Aber ich kann ums verrecken keine hilfreichen Informationen daraus lesen.
Ich will nun auch nicht meine ganzen Fehler hier posten und Euch die Arbeit machen lassen. Aber wie kann ich denn lernen zu verstehe was da steht.
Beispiel:
PERL WARNING: Use of uninitialized value $pin in hash element at /usr/local/share/perl/5.28.1/Device/Firmata/Platform.pm line 1210.
2022.12.10 13:10:37 1: stacktrace:
2022.12.10 13:10:37 1: main::__ANON__ called by /usr/local/share/perl/5.28.1/Device/Firmata/Platform.pm (1210)
2022.12.10 13:10:37 1: Device::Firmata::Platform::is_configured_mode called by /usr/local/share/perl/5.28.1/Device/Firmata/Platform.pm (586)
2022.12.10 13:10:37 1: Device::Firmata::Platform::digital_write called by ./FHEM/20_FRM_OUT.pm (165)
2022.12.10 13:10:37 1: (eval) called by ./FHEM/20_FRM_OUT.pm (164)
2022.12.10 13:10:37 1: main::FRM_OUT_Set called by fhem.pl (3971)
2022.12.10 13:10:37 1: main::CallFn called by fhem.pl (1964)
2022.12.10 13:10:37 1: main::DoSet called by fhem.pl (1996)
2022.12.10 13:10:37 1: main::CommandSet called by fhem.pl (1276)
2022.12.10 13:10:37 1: main::AnalyzeCommand called by fhem.pl (1127)
2022.12.10 13:10:37 1: main::AnalyzeCommandChain called by fhem.pl (4016)
2022.12.10 13:10:37 1: main::fhem called by ./FHEM/93_PWMR.pm (956)
2022.12.10 13:10:37 1: main::PWMR_SetRoom called by ./FHEM/94_PWM.pm (603)
2022.12.10 13:10:37 1: main::PWM_Calculate called by fhem.pl (3501)
2022.12.10 13:10:37 1: main::HandleTimeout called by fhem.pl (705)
oder auch:
PERL WARNING: Use of uninitialized value $tailBlock in pattern match (m//) at ./FHEM/98_DOIF.pm line 2053.
2022.12.10 13:09:54 1: stacktrace:
2022.12.10 13:09:54 1: main::__ANON__ called by ./FHEM/98_DOIF.pm (2053)
2022.12.10 13:09:54 1: main::ParseCommandsDoIf called by ./FHEM/98_DOIF.pm (3652)
2022.12.10 13:09:54 1: main::CmdDoIf called by ./FHEM/98_DOIF.pm (3733)
2022.12.10 13:09:54 1: main::DOIF_Define called by fhem.pl (3976)
2022.12.10 13:09:54 1: main::CallFn called by fhem.pl (2155)
2022.12.10 13:09:54 1: main::CommandDefine called by fhem.pl (1276)
2022.12.10 13:09:54 1: main::AnalyzeCommand called by fhem.pl (1127)
2022.12.10 13:09:54 1: main::AnalyzeCommandChain called by fhem.pl (1415)
2022.12.10 13:09:54 1: main::CommandInclude called by fhem.pl (628)
Ok, ich denke diese Meldungen sind nicht unbedingt schwerwiegend, aber ich habs schon gerne "sauber" und wenn ich da Fhem helfen kann, dann will ich das wohl tun.
ZitatOk, ich denke diese Meldungen sind nicht unbedingt schwerwiegend, aber ich habs schon gerne "sauber" und wenn ich da Fhem helfen kann, dann will ich das wohl tun.
Das ist sehr loeblich, ist leider Arbeit, und man muss dranbleiben.
Shelly: entweder die Zeile selbst patchen:
readingsBulkUpdateIfChanged($hash,"overpower".$subs,$overpower) if(defined($oeverpower));
und das Modul vom FHEM-Update ausschliessen, oder im Forumsbereich "Sonstige Systeme" ein Thema oeffnen und den Maintainer "nerven".
Oder auf MQTT2 umsteigen.
Firmata aehnlich: entweder dem Maintainer ueber Forums-Thema Bescheid geben, oder selbst fixen.
Hier ist laut https://github.com/ntruchsess/perl-firmata/blob/master/lib/Device/Firmata/Platform.pm#L1210 (usw.) $hash->{PIN} nicht definiert, was in FRM_Init_Pin_Client() passieren sollte. Stecke leider nicht so tief in der Materie drin, dass ich den Grund nennen kann.
Wenn man selbst Hardware hat, dann kann man durch eingefuegte Debug-Zeilen die Ursache nach eine Weile rausfinden.
Beim DOIF wuerde ich nicht anfangen selbst zu suchen: der Maintainer ist reaktionsschneller, als bei den anderen Modulen :) , d.h. direkt ein Thema im Forumsbereich Automatisierung/DOIF oeffnen.
Und so weiter mit jeder Meldung...
Ok, das heißt das ich selber eigentlich keinen Fehler gemacht habe, sondern das es ein Fall für den Maintainer ist.
Gut dann werde ich mal Kontakt aufnehmen.
Im Falle shelly hab ich eben auf MQTT umgestellt. Das ging recht schnell und mir schien das der einfachere Weg zu sein. Ich hatte verdrängt das die Shelly Firmware ja auch eine MQTT Funktionalität bietet.
So konnte ich das Shelly Modul löschen.
Eine Meldung weniger !
Vielen Dank für die Starthilfe, mal sehen wie weit ich komme...