Meta.pm - generiert Meldungen weil es mit Modulname nicht klarkommt

Begonnen von HomeAuto_User, 03 Januar 2024, 19:47:34

Vorheriges Thema - Nächstes Thema

HomeAuto_User

Hallo,
wir haben das Modul 88_SIGNALduino_TOOL.pm 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
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

CoolTux

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.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

HomeAuto_User

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)
"Developer" heißt nicht, das man alles wissen kann!
- FHEM v5.9 | Rasberry PI 3
- radino CC1101 433Mhz (SIGNALduino)| - radino CC1101 868Mhz (CUL) | nano 433Mhz (SIGNALduino) - Sensoren: purer Dschungel querbeet

betateilchen

#3
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
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!