72_FRITZBOX.pm wird zu 72_FritzSmart.pm

Begonnen von JoWiemann, 02 März 2026, 16:29:49

Vorheriges Thema - Nächstes Thema

passibe

Also es sind beide installiert.

"perldoc -l XML::Hash::XS" in der FHEM-Befehlszeile gibt /usr/src/app/core/lib/perl5/x86_64-linux-gnu/XML/Hash/XS.pm zurück und
"perldoc -l XML::Simple" gibt /usr/src/app/core/lib/perl5/XML/Simple.pm zurück.

Mir scheint es ja so: Der per default eingestellte Parser, XML::Hash::XS funktioniert, wieso auch immer, bei mir bzw. bei meiner Box einfach nicht und XML::Simple eben schon.

Nachtrag: Vielleicht ist es auch ein Docker-Problem: https://forum.fhem.de/index.php?topic=144604.msg1366321#msg1366321

JoWiemann

Hallo passibe,

ich habe jetzt noch einen Test eingebaut, ob der Parser funktioniert. Entsprechend wird dann der Default-Parser gesetzt. Würdest Du das bitte einmal testen.

Grüße Jörg
Jörg Wiemann

RPi 4 B mit 4 GByte bookworm, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM; zigbee2mqtt

ioBroker als Datenlieferant für z.B. Anker, Samsung

Sidey

#272
Zitat von: JoWiemann am 05 Juli 2026, 21:51:15hast Du XML_Hash_XS installiert. Jedenfalls sieht das Ergebnis der Prüfung so aus. Dadurch wird XML_Hash_XS zum XML Parser. Wenn er jetzt doch nicht vorhanden ist, dann kommt es zu dem Fehler. Mir ist allerdings schleierhaft wieso die Prüfung dann ein anderes Ergebnis zeigt.

XML_HASH_XS ist in den Container Images jetzt vorinstalliert, da es ja vom Modul angefordert wird :)

Ich bin dem Fehler bereits auf der Spur. Es liegt daran, Patchvorschlag kommt gleich.

Edit:
Es liegt daran, dass XML::Simple im Standard den root Node entfernt, und XML:Hash dies nicht per standard macht.
Dabei ist mir auch aufgefallen, dass suppress_empty nicht gesetzt ist. Für diesen Fall scheint das irrelevant, aber es ist eine weitere Abweichung:

Index: 72_FritzSmart.pm
===================================================================
--- 72_FritzSmart.pm    (revision 31443)
+++ 72_FritzSmart.pm    (working copy)
@@ -16901,7 +16901,7 @@
              };
            } else {
              eval {
-               $outHash = xml2hash($decContent);
+               $outHash = xml2hash($decContent, keep_root => 0, suppress_empty => undef);
              };
            }

An dieser Stelle noch der Hinweis, dass die weiteren Aufrufe von xml2hash vermutlich ebenfalls betroffen sind.
Ich empfehle noch mal einen Blick in den Patch. Dort hatte ich eine "sub Fritz_XML_Parse" empfohlen um alle XML Verarbeitungen konsistent und wiederholungsfreier zu gestalten.



Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker, WebAuth, fhem-mcp

passibe

Servus, sorry, ich kam erst jetzt zum testen. Der Test, ob der Parser funktioniert, scheint leider nicht zu funktionieren; ich habe xmlParser mal gelöscht und FHEM dann neu gestartet, da kommt nach wie vor die sich wiederholende "TR-064-SecurePort does not exist"-Fehlermeldung:

2026.07.12 16:18:06 2: [sys_fritzbox|Initial|0.0.0.0|Define_Modul.1701] - SIGNIFICANT:misPerlModul:
2026.07.12 16:18:06 2: [sys_fritzbox|Initial|0.0.0.0|Define_Modul.1704] - SIGNIFICANT:misPerlModul:
2026.07.12 16:18:10 2: [sys_fritzbox||252.08.25|Notify_Modul.1568] - SIGNIFICANT:start of Device readout parameters
2026.07.12 16:18:10 2: [sys_fritzbox||252.08.25|Notify_Modul.1569] - SIGNIFICANT:XML_Simple: 1 - XML_Hash_XS: 1
2026.07.12 16:18:11 3: [sys_fritzbox||252.08.25|Readout_API_Check.10649] - BASIC:boxUser for checkAPIs: admin
2026.07.12 16:18:11 3: [sys_fritzbox|FRITZ!Box 6660 Cable|252.08.25|Readout_API_Check.10753] - BASIC:Read 'jason_boxinfo.xml' from 10.133.79.1
2026.07.12 16:18:12 3: [sys_fritzbox|FRITZ!Box 6660 Cable|252.08.25|Readout_API_Check.10970] - BASIC:boxUser is set to: admin
2026.07.12 16:18:12 3: [sys_fritzbox|FRITZ!Box 6660 Cable|252.08.25|Readout_API_Check.11209] - BASIC:TR-064-SecurePort does not exist
2026.07.12 16:18:12 3: [sys_fritzbox|FRITZ!Box 6660 Cable|252.08.25|Readout_API_Check.11280] - BASIC:open Web_Connection succeeded
2026.07.12 16:18:17 3: [sys_fritzbox|FRITZ!Box 6660 Cable|252.08.25|Readout_Process.10126] - BASIC:TR-064 is switched -> start a new API check
2026.07.12 16:18:17 3: [sys_fritzbox|FRITZ!Box 6660 Cable|252.08.25|Readout_API_Check.10649] - BASIC:boxUser for checkAPIs: admin
2026.07.12 16:18:17 3: [sys_fritzbox|FRITZ!Box 6660 Cable|252.08.25|Readout_API_Check.10753] - BASIC:Read 'jason_boxinfo.xml' from 10.133.79.1
2026.07.12 16:18:17 3: [sys_fritzbox|FRITZ!Box 6660 Cable|252.08.25|Readout_API_Check.10970] - BASIC:boxUser is set to: admin
2026.07.12 16:18:17 3: [sys_fritzbox|FRITZ!Box 6660 Cable|252.08.25|Readout_API_Check.11209] - BASIC:TR-064-SecurePort does not exist
Nach "nur" klick auf DEF das gleiche Bild ...

Mit xmlParser auf XML_SIMPLE passt wieder alles.

JoWiemann

Hallo passibe,

wenn Du im Fhem Docker bist, dann musst Du Dich mit Sidey unterhalten. Laut einem Post vor Deinem ist xml:Hash im Container enthalten, funktioniert aber nicht richtig. Das kann ich dann mit dem Modul nicht abfangen.

Grüße Jörg

PS: welche Version vom Modul läuft bei Dir?
Jörg Wiemann

RPi 4 B mit 4 GByte bookworm, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM; zigbee2mqtt

ioBroker als Datenlieferant für z.B. Anker, Samsung

Sidey

@JoWiemann

Hast Du den Patch vom 06 Juli denn implementiert? Ich habe da nichts im Changelog auf die Schnelle gefunden.


Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem,zigbee2mqtt

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker, WebAuth, fhem-mcp

JoWiemann

Hallo Sidey,

steht immer noch nur hier #272. Bisher habe ich auf Rückmeldung gewartet.

Grüße Jörg
Jörg Wiemann

RPi 4 B mit 4 GByte bookworm, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM; zigbee2mqtt

ioBroker als Datenlieferant für z.B. Anker, Samsung