Hallo,
wir haben das Modul 88_SIGNALduino_TOOL.pm (https://github.com/RFD-FHEM/SIGNALduino_TOOL) in der Betreuung.
Als wir das Meta Modul einbinden wollten, so erhalten wir immer die Meldungen.
2024.01.03 19:27:00.050 1: PERL WARNING: Use of uninitialized value in string ne at FHEM/Meta.pm line 1883.
2024.01.03 19:27:00.051 1: stacktrace:
2024.01.03 19:27:00.051 1: main::__ANON__ called by FHEM/Meta.pm (1883)
2024.01.03 19:27:00.051 1: FHEM::Meta::__GetMetadata called by FHEM/Meta.pm (1117)
2024.01.03 19:27:00.051 1: FHEM::Meta::__PutMetadata called by FHEM/Meta.pm (673)
2024.01.03 19:27:00.051 1: FHEM::Meta::InitMod called by ./FHEM/88_SIGNALduino_TOOL.pm (97)
2024.01.03 19:27:00.052 1: main::SIGNALduino_TOOL_Initialize called by fhem.pl (2784)
2024.01.03 19:27:00.052 1: (eval) called by fhem.pl (2767)
2024.01.03 19:27:00.052 1: main::CommandReload called by fhem.pl (2069)
2024.01.03 19:27:00.052 1: main::LoadModule called by fhem.pl (2134)
2024.01.03 19:27:00.052 1: main::CommandDefine called by fhem.pl (1282)
2024.01.03 19:27:00.052 1: main::AnalyzeCommand called by fhem.pl (1133)
2024.01.03 19:27:00.053 1: main::AnalyzeCommandChain called by fhem.pl (1421)
2024.01.03 19:27:00.053 1: main::CommandInclude called by fhem.pl (630)
2024.01.03 19:27:00.053 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Meta.pm line 2123.
2024.01.03 19:27:00.053 1: stacktrace:
2024.01.03 19:27:00.054 1: main::__ANON__ called by FHEM/Meta.pm (2123)
2024.01.03 19:27:00.054 1: FHEM::Meta::__GetMetadata called by FHEM/Meta.pm (1117)
2024.01.03 19:27:00.054 1: FHEM::Meta::__PutMetadata called by FHEM/Meta.pm (673)
2024.01.03 19:27:00.054 1: FHEM::Meta::InitMod called by ./FHEM/88_SIGNALduino_TOOL.pm (97)
2024.01.03 19:27:00.054 1: main::SIGNALduino_TOOL_Initialize called by fhem.pl (2784)
2024.01.03 19:27:00.054 1: (eval) called by fhem.pl (2767)
2024.01.03 19:27:00.054 1: main::CommandReload called by fhem.pl (2069)
2024.01.03 19:27:00.055 1: main::LoadModule called by fhem.pl (2134)
2024.01.03 19:27:00.055 1: main::CommandDefine called by fhem.pl (1282)
2024.01.03 19:27:00.055 1: main::AnalyzeCommand called by fhem.pl (1133)
2024.01.03 19:27:00.055 1: main::AnalyzeCommandChain called by fhem.pl (1421)
2024.01.03 19:27:00.055 1: main::CommandInclude called by fhem.pl (630)
2024.01.03 19:27:00.056 1: PERL WARNING: Use of uninitialized value in string eq at FHEM/Meta.pm line 2401.
2024.01.03 19:27:00.056 1: stacktrace:
2024.01.03 19:27:00.056 1: main::__ANON__ called by FHEM/Meta.pm (2401)
2024.01.03 19:27:00.056 1: FHEM::Meta::__GetMetadata called by FHEM/Meta.pm (1117)
2024.01.03 19:27:00.056 1: FHEM::Meta::__PutMetadata called by FHEM/Meta.pm (673)
2024.01.03 19:27:00.056 1: FHEM::Meta::InitMod called by ./FHEM/88_SIGNALduino_TOOL.pm (97)
2024.01.03 19:27:00.057 1: main::SIGNALduino_TOOL_Initialize called by fhem.pl (2784)
2024.01.03 19:27:00.057 1: (eval) called by fhem.pl (2767)
2024.01.03 19:27:00.057 1: main::CommandReload called by fhem.pl (2069)
2024.01.03 19:27:00.057 1: main::LoadModule called by fhem.pl (2134)
2024.01.03 19:27:00.057 1: main::CommandDefine called by fhem.pl (1282)
2024.01.03 19:27:00.057 1: main::AnalyzeCommand called by fhem.pl (1133)
2024.01.03 19:27:00.058 1: main::AnalyzeCommandChain called by fhem.pl (1421)
2024.01.03 19:27:00.058 1: main::CommandInclude called by fhem.pl (630)
2024.01.03 19:27:00.058 1: PERL WARNING: Use of uninitialized value in string ne at FHEM/Meta.pm line 2404.
2024.01.03 19:27:00.058 1: stacktrace:
2024.01.03 19:27:00.058 1: main::__ANON__ called by FHEM/Meta.pm (2401)
2024.01.03 19:27:00.058 1: FHEM::Meta::__GetMetadata called by FHEM/Meta.pm (1117)
2024.01.03 19:27:00.059 1: FHEM::Meta::__PutMetadata called by FHEM/Meta.pm (673)
2024.01.03 19:27:00.059 1: FHEM::Meta::InitMod called by ./FHEM/88_SIGNALduino_TOOL.pm (97)
2024.01.03 19:27:00.059 1: main::SIGNALduino_TOOL_Initialize called by fhem.pl (2784)
2024.01.03 19:27:00.059 1: (eval) called by fhem.pl (2767)
2024.01.03 19:27:00.059 1: main::CommandReload called by fhem.pl (2069)
2024.01.03 19:27:00.059 1: main::LoadModule called by fhem.pl (2134)
2024.01.03 19:27:00.060 1: main::CommandDefine called by fhem.pl (1282)
2024.01.03 19:27:00.060 1: main::AnalyzeCommand called by fhem.pl (1133)
2024.01.03 19:27:00.060 1: main::AnalyzeCommandChain called by fhem.pl (1421)
2024.01.03 19:27:00.060 1: main::CommandInclude called by fhem.pl (630)
Nachdem ich schonmal auf Fehlersuche ging, entfiehlen die Meldungen wenn mal das Modul komplett umbenennt inklusive seinen Subs.
Hier ist eine Nachbesserung notwending, das wir das Modul, welches schon seit 01/2021 existiert mit kompatibel ist.
Kurzum, das Modul ist nicht mit allen Modulnamen kompatibel.
Wir bitten @loredo dort das Ganze zu beleuchten und anzupassen.
Mfg und ein erfolgreiches Jahr 2024
Loredo ist leider nicht mehr aktiv. Konntest Du einen Grund evaluieren wieso es am Modul und/oder Sub Namen liegen sollte?
Eventuell wäre es hilfreich das Modul auf packages um zu schreiben was auch eine Empfehlung für "gute" Modulentwicklung ist.
Hallo
Zitat von: CoolTux am 03 Januar 2024, 20:21:45Loredo ist leider nicht mehr aktiv. Konntest Du einen Grund evaluieren wieso es am Modul und/oder Sub Namen liegen sollte?
:P :'( ...
Ich konnte es soweit schon eingrenzen, das innerhalb der Modules es nicht klar kommt, sobald das Modul welches es integriert inklusive seinen Subs die Namenskonstellation mit einem "_" enthält. Sobald ich diesen aus dem Namen kürze, geht die Integrierung.
Bsp:- SIGNALduino_TOOL geht nicht
- SIGNALduinoTOOL geht
Es ist nur schwierig vorerst in einem fremden Modul durchzusehen. 8)
Das beschriebene Verhalten kann ich bestätigen.
Genauer gesagt geht es darum, dass der Dateiname mehr als einen Unterstrich enthält.
Normalerweise trennt der Unterstrich im Dateinamen den tatsächlichen Namen von der Ordnungsnummer des Moduls (88). Ein zweiter Unterstrich ist in Meta.pm bei der Verarbeitung des filepath nicht vorgesehen.
Es wäre m.E. eine erheblich einfachere Lösung, den Dateinamen entsprechend anzupassen, als zu versuchen, ein nicht mehr wirklich gepflegtes Modul (Meta.pm) anpassen zu wollen, nur weil jetzt zum ersten Mal dieses Problem mit einem eher unüblichen Modulnamen auftritt.
Vielleicht sollte man per pre-commit-hook die Verwendung solcher Namen mit mehreren Unterstrichen einfach unterbinden