FritzSmart ab Modul-Version 26.05.07

Begonnen von JoWiemann, 07 Mai 2026, 19:21:30

Vorheriges Thema - Nächstes Thema

JoWiemann

Hallo,

ich habe jetzt einiges bereinigt und einiges angepasst:

- die Attribute werden jetzt auf den Fritz-Modeltyp angepasst
- Ungereimtheiten bei der Definition eines Moduls bereinigt
- Mesh Informationen 'get <name> meshInfo hinzugefügt
- neues Attribut enableMeshMonitor - siehe commandRef
- Hashes nach $hash->{helper} verschoben
- set <name> call erweitert - siehe commandRef

Ich würde mich über Tests freuen.

Danke und 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

JoWiemann

Hallo,

anbei eine überarbeitete Version 26.05.08:

- Fehler Attribut enableMeshMonitor korrigiert
- neues Attribut enablePowerLine - siehe commandRef

Danke fürs Testen und 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

fz55

#2
Hallo Jörg,

mit der Version von heute ist der get-Button verschwunden. Bin wieder auf meine vorhergehende Version gegangen.

Das war eine Falschmeldung. Ich habe es nochmal probiert und plötzlich war "get" wieder da. Sorry

JoWiemann

Hallo,

ich habe mit meinen PowerLine Adaptern etwas rumgespielt. Dabei gab es "komische" Netzzustände, die allerdings noch Schwächen in der Fehlerbehandlung aufgedeckt haben. Anbei eine neue Version 26.05.08a wieder verbunden mit der Bitte um Tests. Danke Euch.

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

elektron-bbs

Hallo Jörg,
ich habe heute deine letzte Version 26.05.08a installiert. Dabei fiel mir auf, das die commandref nicht mehr funktioniert. Beim Aufruf des Links "Help for FritzSmart" kommt nur:
Module: 72_FritzSmart.pm Maintainer: JoWiemann Forum: FRITZ!Box (link als PM an JoWiemann) No help found for module: fritzsmart
Ich habe dann mal im Modul nach eventuellen Fehlern gesucht. In den Zeilen 19888 bis 19895 und 21218 bis 21225 fehlt jeweils ein abschließendes "</li>". Das hat den Fehler allerdings noch nicht behoben. Erst als ich die Zeilenenden von Windows (CR+LF) auf Unix (LF) umgestellt hatte, funktionierte die Hilfe wieder. Kann es sein, das FHEM in der commandref kein CRLF mag? Das Modul funktionierte ansonsten problemlos.

Wäre es möglich, bei einigen Logausgaben, den Verbose-Level zu erhöhen? Bei den Befehlen "set FritzBox_7590 smarthome" kommen immer noch 3 zusätzliche Logausgaben mit "Get_SmartHome_Devices_List":
2026.05.09 14:57:45 3: [FritzBox_7590 | 7590 | 154.08.25 | Set_Modul.2406] - BASIC:set FritzBox_7590 smarthome - 18 tempOffset:-1
2026.05.09 14:57:45 3: [FritzBox_7590 | 7590 | 154.08.25 | Get_SmartHome_Devices_List.13878] - BASIC:Fritz_SmartHome_Device_List (Fritz!OS: 08.25)
2026.05.09 14:57:46 3: [FritzBox_7590 | 7590 | 154.08.25 | Get_SmartHome_Devices_List.13895] - BASIC:Processing SmartHome_Device_List: read|save|test
2026.05.09 14:57:46 3: [FritzBox_7590 | 7590 | 154.08.25 | Get_SmartHome_Devices_List.13917] - BASIC:Processing SmartHome_Device_List: 18

2026.05.09 16:32:47 3: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Set_Modul.2505] - BASIC:set FritzBox_7590 smartHome - 17 switch:1
2026.05.09 16:32:47 3: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Get_SmartHome_Devices_List.14200] - BASIC:Fritz_SmartHome_Device_List (Fritz!OS: 08.25)
2026.05.09 16:32:48 3: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Get_SmartHome_Devices_List.14217] - BASIC:Processing SmartHome_Device_List: read|save|test
2026.05.09 16:32:48 3: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Get_SmartHome_Devices_List.14239] - BASIC:Processing SmartHome_Device_List: 17
Oder sind diese wichtig?
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + 1 x rf_Gateway + 1 x SIGNAL-STM

JoWiemann

Hallo elektron-bbs,

vielen Dank für die Rückmeldung.

Die commandRef habe ich korrigiert. Die Log-Einträge waren noch vom Testen.

Anbei noch eine neue Version "26.05.09". Ich habe noch einige Härtungen in der Fehlerbehandlung vorgenommen.

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

elektron-bbs

Hallo Jörg,
soweit ich das jetzt testen konnte, funktioniert bei mir alles. Danke.
Bei der commandref hast du dich allerdings vertan. Da muss statt einem "</i>" jeweils ein "</li>" hin.
In Zeile 19564 fehlt noch ein abschließendes </b>, sonst ist der Rest der commandref ab dieser Zeile fett. Selbiges dann nochmal in Zeile 20889.
Das wäre dir sicher auch noch aufgefallen, da du die Sachen mit PLC ja erst kürzlich integriert hast.
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + 1 x rf_Gateway + 1 x SIGNAL-STM

elektron-bbs

#7
Mir ist jetzt doch noch etwas aufgefallen: Bei einer FRITZ!Box 7590 und einer FRITZ!Box Fon WLAN 7390 werden die Readings "box_ppp_.*" nicht mehr aktualisiert.

Wenn ich das Attribut "setSubVerbose4 Fritz_Readout_Run_Web_TR064" setze, erhalte ich folgendes im Log:
2026.05.11 12:11:51 3: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Attr_Modul.2227] - BASIC:Attr set setSubVerbose4 -> Neustart internal Timer - APICHECKED = 1
2026.05.11 12:12:00 3: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Readout_API_Check.11081] - BASIC:Response -> luaQuery:200 luaData:200
2026.05.11 12:12:11 2: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Readout_Run_Web_TR064.9022] - SIGNIFICANT:2FA Info/State - start getting TR064 data
2026.05.11 12:12:12 2: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Readout_Run_Web_TR064.9031] - SIGNIFICANT:X_AVM-DE_Auth GetInfo ->
tiny log level for Dumper: 5
2026.05.11 12:12:12 2: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Readout_Run_Web_TR064.9043] - SIGNIFICANT:X_AVM-DE_Auth GetState ->
tiny log level for Dumper: 5
2026.05.11 12:12:12 2: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Readout_Run_Web_TR064.9048] - SIGNIFICANT:2FA Info/State - end getting TR064 data
2026.05.11 12:12:12 2: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Readout_Run_Web_TR064.9196] - SIGNIFICANT:wrong Fritz!OS: 08.25 for usb mobile via TR064 or not a Fritz!Box
2026.05.11 12:12:12 2: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Readout_Run_Web_TR064.9295] - SIGNIFICANT:wan(ip|ppp)connection - start getting TR064 data
2026.05.11 12:12:12 2: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Readout_Run_Web_TR064.9385] - SIGNIFICANT:AccessType - end getting TR064 data
2026.05.11 12:14:24 3: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Attr_Modul.2227] - BASIC:Attr del setSubVerbose4 -> Neustart internal Timer - APICHECKED = 1

Im hash steht "active     -1":
#   helper:
#     TR064control:
#       WANIPConnection:
#         action     GetStatusInfo
#         active     -1
#         control    wanipconnection1
#         igd        0
#         service    WANIPConnection:1
#       WANPPPConnection:
#         action     GetStatusInfo
#         active     -1
#         control    wanpppconn1
#         igd        0
#         service    WANPPPConnection:1
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + 1 x rf_Gateway + 1 x SIGNAL-STM

JoWiemann

Zitat von: elektron-bbs am 11 Mai 2026, 14:32:06Mir ist jetzt doch noch etwas aufgefallen: Bei einer FRITZ!Box 7590 und einer FRITZ!Box Fon WLAN 7390 werden die Readings "box_ppp_.*" nicht mehr aktualisiert.

Hallo elektron-bbs,

hm, kann ich so erst einmal nicht bestätigen.

Was zeigt denn die Tabelle 'get <name> callApifromList tr064'? Ist da wanip... bzw wanppp... grün?

Anbei noch eine neue Version. Ich habe zu viel Zeit und finde mehr als mir lieb ist.

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

elektron-bbs

Hallo Jörg,

ich kann da Entwarnung geben. Das Problem wurde schon ab Version 26.05.11a behoben.
Du entwickelst schneller, als ich Probleme melde :-)

Kann es sein, das du manchmal hier im Forum Module mit Windows-Zeilenenden (CRLF) hochlädst?
Bei der Version 26.05.11c von gestern Abend musste ich auch erst wieder die Zeilenenden nach Unix (LF) wandeln. Mit CRLF funktioniert bei mir die Hilfe dann nicht. Da kommt nur:
Module: 72_FritzSmart.pm Maintainer: JoWiemann Forum: FRITZ!Box (link als PM an JoWiemann) No help found for module: fritzsmart
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + 1 x rf_Gateway + 1 x SIGNAL-STM

JoWiemann

Zitat von: elektron-bbs am 12 Mai 2026, 16:16:39Kann es sein, das du manchmal hier im Forum Module mit Windows-Zeilenenden (CRLF) hochlädst?
Bei der Version 26.05.11c von gestern Abend musste ich auch erst wieder die Zeilenenden nach Unix (LF) wandeln. Mit CRLF funktioniert bei mir die Hilfe dann nicht. Da kommt nur:
Module: 72_FritzSmart.pm Maintainer: JoWiemann Forum: FRITZ!Box (link als PM an JoWiemann) No help found for module: fritzsmart
Hallo elektron-bbs, keine Ahnung. Ich nutze immer den selben Linux Editor. Der kann eigentlich keine crlf. Ich mache mich mal auf die Suche.

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

Jamo

Zitat von: JoWiemann am 11 Mai 2026, 18:46:09...
Hallo elektron-bbs,
...
Anbei noch eine neue Version. Ich habe zu viel Zeit und finde mehr als mir lieb ist.

Grüße Jörg

Hallo Jörg,
aktuell im SVN ist die Version 26.05.11b, aber in diesem Post sagtest Du, das Du noch viel gefunden hast, und dort is die Version 26.05.11c verlinkt. Müsste dann im SVN nicht die 26.05.11c mit allen Fehlerbehebungen sein?
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee2MQTT, Conbee III, FB7690, Signal, Alexa (fhem-lazy), Geotracking, LaCrosse JeeLink, LoRaWan (TTN / Chirpstack), Sonos, ESPresence, HomeAssistant via MQTT, Meshtastic

neobiker

#12
Hallo,
bei mir kommen keine Docsis Infos mehr.

Ich sehe auch nicht ein Attribute EnableDocsisInfo wie es in der Doku steht.
Aber noch ein Disable DocsisInfo das auf 0 steht.

FritzSmart 26.05.11b
Cable6660

Edit:
Jetzt konnte ich EnableDocsisInfo einschalten.

Gruss Neobiker

JoWiemann

Zitat von: Jamo am 15 Mai 2026, 11:04:00Hallo Jörg,
aktuell im SVN ist die Version 26.05.11b, aber in diesem Post sagtest Du, das Du noch viel gefunden hast, und dort is die Version 26.05.11c verlinkt. Müsste dann im SVN nicht die 26.05.11c mit allen Fehlerbehebungen sein?

Ist mir zu spät aufgefallen, dass die Testversionen schon weiter gezählt waren. 26.05.11b ist somit korrekt und die aktuelle Code Basis.

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

neobiker

Hallo,
ich hab wohl zu schnell Entwarnung gegeben.

Zitat von: neobiker am 15 Mai 2026, 13:06:14Hallo,
bei mir kommen keine Docsis Infos mehr.

Ich sehe auch nicht ein Attribute EnableDocsisInfo wie es in der Doku steht.
Aber noch ein Disable DocsisInfo das auf 0 steht.

FritzSmart 26.05.11b
Cable6660

Edit:
Jetzt konnte ich EnableDocsisInfo einschalten.

Gruss Neobiker

Nach jedem Neustart fehlt das enableDocsisInfo Attribut wieder ... ich kann es wieder einschalten, aber nicht dauerhaft.
Es steht aber in der fhem.cfg definitiv drinnen, wird scheinbar beim Modulstart erst ignoriert ... sehr seltsam.

JoWiemann

Zitat von: neobiker am 17 Mai 2026, 16:12:47Nach jedem Neustart fehlt das enableDocsisInfo Attribut wieder ... ich kann es wieder einschalten, aber nicht dauerhaft.
Es steht aber in der fhem.cfg definitiv drinnen, wird scheinbar beim Modulstart erst ignoriert ... sehr seltsam.

Hallo Neobiker,

ich habe eine Ahnung. Schaue ich mir morgen an.

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

Otto123

Hallo Jörg,

mich hat es jetzt ermittelt, in zahlreichen FHEM Instanzen läuft das alte FRITZBOX Modul nicht mehr. Der Umstieg auf FritzSmart lief etwas holprig.
Gleich auf der Ersten fehlte XML::Simple, die Installation von libxml-simple-perl brachte erst nach einem Restart von FHEM einen Erfolg. Muss man eben dran denken ;)
Ich habe dann den Rest erstmal gecheckt, in der commandref steht:
ZitatThe modul uses the Perl moduls
MIME::Base
IO::Socket
Net::Ping
JSON
LWP::UserAgent
URI::Escape
use XML::Simple
use Data::Dumper
Ich meine es benutzt MIME::Base64:
Zitat104    ###############################################################################
105    # perl includes
106    eval "use MIME::Base64;1"  or $missingModul .= "MIME::Base64 ";
107    eval "use IO::Socket;1"    or $missingModul .= "IO::Socket ";
108    eval "use Net::Ping;1"      or $missingModul .= "Net::Ping ";
109   
110    eval "use JSON;1"          or $missingModul .= "JSON ";            # sudo apt-get install libjson-perl
111    eval "use LWP::UserAgent;1" or $missingModul .= "LWP::UserAgent ";
112   
113    eval "use URI::Escape;1"    or $missingModul .= "URI::Escape ";
114    eval "use XML::Simple;1"    or $missingModul .= "XML::Simple ";
115   
116    eval "use Data::Dumper;1"  or $missingModul .= "Data::Dumper ";
und ich meine das use gehört in den letzten beiden Zeilen in dem Ausschnitt der commandref da nicht hin.
Vielleicht kannst Du das bei Gelegenheit mal korrigieren.
BTW: Ich habe keine Vorstellung wie Perl auf das "richtige" JSON Modul trifft, bei mir haben 5 Debian Pakete JSON installiert, fhem ist der erste ;)

Will man die Voraussetzungen vorher testen, kann man unter debian dieses kleine Script nehmen:
m='MIME::Base64 IO::Socket Net::Ping JSON LWP::UserAgent URI::Escape XML::Simple Data::Dumper'
for s in $m; do
  echo -n "Modul $s"
  perl -M$s -e '' 2>/dev/null &&echo " ist vorhanden"
done


Vielen Dank fürs entwickeln!

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle

aktives Mitglied des FHEM e.V. (Technik)

JoWiemann

#17
Hallo Otto,

vielen Dank für die Hinweise. Das use in der commandRef ist ein copy/paste Fehler. MIME werde ich auch korrigieren.

Soweit ich weiß ist xml::Simple seid einiger Zeit im deb Paket von Fhem mit dabei.

Ich vermute Dein Script ist ein allgemeiner Hinweis.

Grüße Jörg

Eigentlich sollte bei dem fehlenden xml::Simple ein INTERNAL HINT_PERL das angezeigt haben.
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

Otto123

Zitat von: JoWiemann am 31 Mai 2026, 21:08:21Eigentlich sollte bei dem fehlenden xml::Simple ein INTERNAL HINT_PERL das angezeigt haben.
Hat er gemacht :)

Ja das mit dem Script war nur mal so ...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle

aktives Mitglied des FHEM e.V. (Technik)

Sidey

Moin,

Ich klinke mich hier mal zu XML::Simple ein. Der Grund: XML::Simple verwendet XML::SAX.

XML::SAX braucht parser.  Damit es diese findet müssen sie in einer Datei registriert werden, ansonsten kommt ein Warning:

could not find ParserDetails.ini

Und genau das wird meiner Meinung nach weder von FritzSmart oder XML::Simple derzeit sichergestellt.

Den Fehler kann man sich sehr leicht bei Verwendung des folgenden Docker Images ansehen. XML::Simple wird gemäß Anforderungen von CPAN installiert.

docker pull ghcr.io/fhem/fhem-minimal-docker:5.3.0-beta2-bookworm

Meiner ersten Recherche nach fehlt etwas wie:

XML::SAX->add_parser(q(XML::SAX::PurePerl))->save_parsers()

Alternativ ein anderes robusteres XML Package.
Ich habe  Hinweise gefunden, dass die Nutzung von XML::Simple vermieden werden sollte.


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

#20
Hallo Sidey,

warum per CPAN, wenn es ein Debian deb gibt? Mal abgesehen davon, das xml::Simple im Fhem deb dabei ist.

Und, es gibt Alternativen, aber bisher habe ich mit xml::Simple keine Probleme.

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

Zitat von: JoWiemann am 09 Juni 2026, 12:39:57warum per CPAN, wenn es ein Debian deb gibt? Mal abgesehen davon, das xml::Simple im Fhem deb dabei ist.

Dazu gibt es mehrere Gründe.

1. Ich nutze ein Perl Basis Image. Das für FHEM verwendete Perl wird nicht über Debian Pakete installiert.
Daher scheidet auch das Debian Packet aus.

2. Debian Paketen sind für das vom OS verwendetr Perl. Damit wird keine andere Perl Distribution verwaltet. Ist aber aufgrund Punkt #1 relevant.

3.Manche Modulauthoren geben in einem META.json die benötigten Abhängigkeiten an, bei 98% stehen dort die Packagenamen wie sie von CPAN installiert werden können.

4. Etliche Module haben keine META.json. Dort kann ich Abhängigkeiten auch nur über die Packagenamen im Modulcode herstellen.

5. Manche Perl Packages gibt es nicht als debian Package.

Letztlich bleibt halt das Problem, dass XML:SAX initialisiert werden muss. Man könnte natürlich auch einen schnelleren c Parser installieren, aber auch der muss registriert werden.

Du könntest zum Beispiel diese Idee umsetzen:
# Source - https://stackoverflow.com/a/26737317
# Posted by Borodin, modified by community. See post 'Timeline' for change history
# Retrieved 2026-06-09, License - CC BY-SA 3.0

$XML::Simple::PREFERRED_PARSER = 'XML::Parser';

Dann würde man SAX XML nicht verwenden.

Das Peoblem bei SAX XML ist, dass es bei der Installation fragt ob die parser Datei angelegt werden soll. Das kann aber niemand beantworten, da es in einer Pipeline läuft.

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,

vielen Dank für die Erklärung. Das mit META.json muss ich mir ansehen und auch erst einmal verstehen. Interessant ist, dass keins der Fhem Modul das XML::Simple benutzt ein META.json hat. Und das sind ungefähr 20 Module.

Deine Idee mit $XML::Simple::PREFERRED_PARSER = 'XML::Parser'; nehme ich mal auf.

Für mich stellen sich hier allerdings einigen Wissensfragen. Da muss ich mich dann mal schlau machen. Bisher habe ich Perl-Packete einfach "nur" genutzt und mich nicht tiefer mit ihrer Architektur befasst. Aber, man lernt ja nie aus.

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

kabanett

Hallo zusammen,
ich bin aus dem Urlaub zurück gekommen und musste feststellen, dass das alte FritzBox Modul eine Menge Fehler ausgibt.
So habe ich, wie dort beschrieben, umgestellt auf FritzSmart. Das hat soweit auch funktioniert.

Leider ist die Device Ansicht sehr groß. Ich kann gar nicht so klein zoomen um das Ganze zu sehen.
Ich Vermute es liegt an den Internals und dort der Eintrag ".AttrList".
Wie kann ich die Ansicht wieder lesbar bekommen?

Gruß
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

Didi

Hallo Jörg,
ich bekomme seit kurzem, kann nicht genau sagen seit wann eine Fehlermeldung beim Versuch eine Rufnummer per call anzurufen.

ERROR: Parameter '' not a valid dect ID.

hat sich bei der Syntax was verändert?
Gruß

JoWiemann

Hallo Didi,

hast Du das Attribut disableDectInfo gesetzt. Das würde die Rückmeldung erklären. Ansonsten ist die commandRef aktuell gehalten.

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

Didi

Hallo Jörg,
nein das Attribut disableDectInfo habe ich nicht gesetzt. Aber auch wenn ich es setze bekomme ich die gleiche Fehlermeldung und der Ruf kommt nicht an.
Gruß
Didi

JoWiemann

Zitat von: Didi am 22 Juni 2026, 12:41:19Hallo Jörg,
nein das Attribut disableDectInfo habe ich nicht gesetzt. Aber auch wenn ich es setze bekomme ich die gleiche Fehlermeldung und der Ruf kommt nicht an.
Gruß
Didi

Hallo Dieter,

bitte ein List vom Device und den Aufruf posten. So muss ich raten, macht keinen Spaß.

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

Didi

Hallo Jörg,

der Aufruf lautet "set Fritzbox call xxxxxxxxxxx xx" dabei ist es egal ob interne oder externe Rufnummer angegeben werden und ob die Dauer angegeben wird oder nicht es kommt immer

ERROR: Parameter '' not a valid dect ID.

und hier ist der gewünschte List
Internals:
   AGENTTMOUT 50
   APICHECKED 1
   APICHECK_RET_CODES Ok
   CKECKAPI_MAX_TMOUT 200
   CKECKAPI_TMOUT 55
   DEBUGLOG   OFF
   DEF        Fritz.box
   DEVICE_USER dslf-config
   DNSoTLS    off
   FUUID      69c4f575-f33f-e11d-c19e-7c669e3d8c50646b
   HINT_PROCESS normal
   HOST       192.168.xxx.1
   INTERVAL   300
   IPv6       0
   LUADATA    1
   LUAQUERY   1
   MODEL      FRITZ!Box 5590 Fiber
   NAME       FritzBox
   NR         640
   NTFY_ORDER 50-FritzBox
   SECPORT    49443
   SID_RENEW_CNT 6
   SID_RENEW_ERR_CNT 0
   STATE      WLAN: on gWLAN: on
   STATUS     active
   TIMEOUT    55
   TR064      1
   TYPE       FritzSmart
   UPNP       1
   VERSION    26.05.27
   WAN_ACCESS_TYPE X_AVM-DE_Fiber
   WEBCONNECT 1
   eventCount 8112
   OLDREADINGS:
   READINGS:
     2026-06-22 13:22:48   box_2FAState    stopped
     2026-06-22 13:22:48   box_IPv6        off
     2026-06-22 13:22:48   box_dect        on
     2026-06-22 13:22:48   box_dns_over_tls off
     2026-06-22 13:22:48   box_dsl_downStream 200.000
     2026-06-22 13:22:48   box_dsl_upStream 200.000
     2026-06-22 13:22:48   box_fwVersion   272.08.20
     2026-06-22 13:22:48   box_guestWlan   on
     2026-06-22 13:22:48   box_guestWlanCount 3
     2026-06-22 13:22:48   box_guestWlanRemain -1
     2026-06-22 13:22:48   box_ip_IPv4_Extern xxx.xxx.xxx.xxx
     2026-06-22 13:22:48   box_ip_connect  Connected
     2026-06-22 13:22:48   box_ip_connection_Trigger AlwaysOn
     2026-06-22 13:22:48   box_ip_connection_Type IP_Routed
     2026-06-22 13:22:48   box_ip_last_connect_err ERROR_NONE
     2026-06-22 13:22:48   box_ip_mac_Address xx:xx:xx:xx:xx:xx
     2026-06-22 13:22:48   box_ip_name     internet
     2026-06-22 13:22:48   box_ip_uptimeConnect 539065 sec = 6T 05:44:25
     2026-06-22 13:22:48   box_macFilter_active off
     2026-06-22 13:22:48   box_meshRole    master
     2026-06-22 12:50:23   box_model       FRITZ!Box 5590 Fiber [5590 - avme]
     2026-06-22 13:22:48   box_moh         customer
     2026-06-22 12:50:23   box_oem         5590 - avme
     2026-06-22 13:22:48   box_rateDown    309.591
     2026-06-22 13:22:48   box_rateUp      6.077
     2026-06-22 13:22:48   box_stdDialPort fon1
     2026-06-22 13:22:48   box_tr064       on
     2026-06-22 13:22:48   box_tr069       off
     2026-06-22 13:22:48   box_upnp        on
     2026-06-22 13:22:48   box_upnp_control_activated on
     2026-06-22 13:22:48   box_uptime      539160 sec = 6T 05:46:00
     2026-06-22 13:22:48   box_wlanBand_2.4GHz_active on
     2026-06-22 13:22:48   box_wlanBand_2.4GHz_useable yes
     2026-06-22 13:22:48   box_wlanBand_5GHz_active on
     2026-06-22 13:22:48   box_wlanBand_5GHz_useable yes
     2026-06-22 13:22:48   box_wlanBand_cnt 2
     2026-06-22 13:22:48   box_wlan_Count  12
     2026-06-22 13:22:48   dect1           Büro
     2026-06-22 13:22:48   dect1_NoRingTime not defined
     2026-06-22 13:22:48   dect1_NoRingTimeFlags off
     2026-06-22 13:22:48   dect1_NoRingWithNightSetting on
     2026-06-22 13:22:48   dect1_device    61
     2026-06-22 13:22:48   dect1_fwVersion 0.00
     2026-06-22 13:22:48   dect1_intRingTone HandsetInternalTone
     2026-06-22 13:22:48   dect1_intern    611
     2026-06-22 13:22:48   dect1_manufacturer 0x8a01
     2026-06-22 13:22:48   dect1_radio     Eins Live Diggi
     2026-06-22 13:22:48   dect2           Flur
     2026-06-22 13:22:48   dect2_NoRingTime not defined
     2026-06-22 13:22:48   dect2_NoRingTimeFlags off
     2026-06-22 13:22:48   dect2_NoRingWithNightSetting on
     2026-06-22 13:22:48   dect2_device    62
     2026-06-22 13:22:48   dect2_fwVersion 5.12
     2026-06-22 13:22:48   dect2_intRingTone 35
     2026-06-22 13:22:48   dect2_intern    612
     2026-06-22 13:22:48   dect2_manufacturer AVM
     2026-06-22 13:22:48   dect2_model     FRITZ!Fon C6
     2026-06-22 13:22:48   dect2_radio     Eins Live Diggi
     2026-06-22 13:22:48   dect3           Schlafzimmer
     2026-06-22 13:22:48   dect3_NoRingTime not defined
     2026-06-22 13:22:48   dect3_NoRingTimeFlags off
     2026-06-22 13:22:48   dect3_NoRingWithNightSetting on
     2026-06-22 13:22:48   dect3_custRingTone file:///var/InternerSpeicher/FRITZ/fonring/5/Dreamy.g722
     2026-06-22 13:22:48   dect3_custRingToneName Dreamy
     2026-06-22 13:22:48   dect3_device    64
     2026-06-22 13:22:48   dect3_fwVersion 5.11
     2026-06-22 13:22:48   dect3_imagePath /var/InternerSpeicher/FRITZ/fonpix/1671631528-1.jpg
     2026-06-22 13:22:48   dect3_intRingTone 35
     2026-06-22 13:22:48   dect3_intern    614
     2026-06-22 13:22:48   dect3_manufacturer AVM
     2026-06-22 13:22:48   dect3_model     FRITZ!Fon C5
     2026-06-22 13:22:48   dect3_radio     Eins Live Diggi
     2026-06-22 13:22:48   fon1            Flur
     2026-06-22 13:22:48   fon1_device     1
     2026-06-08 12:45:54   fon61           Büro
     2026-06-08 12:45:54   fon61_device    61
     2026-06-08 12:45:54   fon62           Flur
     2026-06-08 12:45:54   fon62_device    62
     2026-06-08 12:45:54   fon64           Schlafzimmer
     2026-06-08 12:45:54   fon64_device    64
     2026-06-22 13:22:48   fon70           Dieter PC
     2026-06-22 13:22:48   fon70_device    70
     2026-06-22 13:22:48   fon71           FRITZ!⁠App Fon (2102J20SG)
     2026-06-22 13:22:48   fon71_device    71
     2026-06-22 13:22:48   fon72           FHEM Alarm
     2026-06-22 13:22:48   fon72_device    72
     2026-06-22 13:22:48   fon73           FRITZ!⁠App Fon (059)
     2026-06-22 13:22:48   fon73_device    73
     2026-06-22 13:22:48   fon9            alle Telefone
     2026-06-22 13:22:48   fon9_device     9
     2026-06-22 13:22:48   radio00         Eins Live Diggi
     2026-06-22 13:22:48   radio01         Deutschlandfunk
     2026-06-22 13:22:48   radio02         WDR
     2026-06-08 22:34:03   retStat_SetGet_nonBlocking set wlan5: on
     2026-06-22 13:22:48   retStat_lastReadout 445 values captured in 1.49 s
     2026-06-16 07:37:56   retStat_lastReadoutError network error 500 in Readout_Run_Web_LuaData:6955
     2026-06-22 13:22:48   retStat_processReadout 0.36 s
     2026-06-22 12:54:55   retStat_ring    ring done: **611 duration: 10
     2026-06-22 13:22:48   state           WLAN: on gWLAN: on
     2026-06-22 13:22:48   tam0            Anrufbeantworter
     2026-06-22 13:22:48   tam0_newMsg     0
     2026-06-22 13:22:48   tam0_oldMsg     0
     2026-06-22 13:22:48   tam0_state      on
     box_DNS_over_TLS:
     box_wan_AccessType:
   fhem:
     definedHost 192.168.xxx.xxx
     fd_1       Flur
     fd_61      Büro
     fd_62      Flur
     fd_64      Schlafzimmer
     fd_70      Dieter PC
     fd_71      FRITZ!⁠App Fon (M2102J20SG)
     fd_72      FHEM Alarm
     fd_73      FRITZ!⁠App Fon (059)
     fd_9       alle Telefone
     fdn_Büro  61
     fdn_Dieter PC 70
     fdn_FHEM Alarm 72
     fdn_FRITZ!⁠App Fon (A059) 73
     fdn_FRITZ!⁠App Fon (M2102J20SG) 71
     fdn_Flur   1
     fdn_Flur   62
     fdn_Schlafzimmer 64
     fdn_alle Telefone 9
     fwVersion  820
     fwVersionStr 08.20
     intBoxUsers xxxxx
     radioCount 40
     readOutState 0
     sid        edb9773fed7098de
     sidErrCount 0
     sidNewCount 0
     sidTime    1782127367.9953
     611:
       brand      0x8a01
       id         2
       model      MT-D
       userId     1
     612:
       brand      AVM
       id         3
       model      C4
       userId     2
     614:
       brand      AVM
       id         5
       model      C4
       userId     3
     multiple_wlan:
       cnt        2
       names      wlan2.4 wlan5
     radio:
       0          Eins Live Diggi
       1          Deutschlandfunk
       2          WDR
   helper:
     FhemLog3Std 0
     TimerCmd   FritzBox.Cmd
     TimerReadout FritzBox.Readout
     TimerSHInfoExt FritzBox.SHExt
     debugLog   FritzBox_debugLog
     logDebug   
     runFN      Fritz::Fritz_Readout_Run_Web
     timerInActive 0
     IGDcontrol:
       WANCommonInterfaceConfig1:
         action     GetCommonLinkProperties
         active     1
         control    WANCommonIFC1
         igd        1
         service    WANCommonInterfaceConfig:1
       WANCommonInterfaceConfig2:
         action     GetAddonInfos
         active     1
         control    WANCommonIFC1
         igd        1
         service    WANCommonInterfaceConfig:1
       WANIPConnection:
         action     GetStatusInfo
         active     1
         control    WANIPConn1
         igd        1
         service    WANIPConnection:1
       WANIPConnectionIPv4:
         action     GetExternalIPAddress
         active     1
         control    WANIPConn1
         igd        1
         service    WANIPConnection:1
       WANIPConnectionIPv4DNS:
         action     X_AVM_DE_GetDNSServer
         active     1
         control    WANIPConn1
         igd        1
         service    WANIPConnection:1
       WANIPConnectionIPv6:
         action     X_AVM_DE_GetExternalIPv6Address
         active     1
         control    WANIPConn1
         igd        1
         service    WANIPConnection:1
       WANIPConnectionIPv6DNS:
         action     X_AVM_DE_GetIPv6DNSServer
         active     1
         control    WANIPConn1
         igd        1
         service    WANIPConnection:1
       WANIPConnectionIPv6Pre:
         action     X_AVM_DE_GetIPv6Prefix
         active     1
         control    WANIPConn1
         igd        1
         service    WANIPConnection:1
       WANIPv6FirewallControl:
         action     GetFirewallStatus
         active     0
         control    WANIPv6Firewall1
         igd        1
         service    WANIPv6FirewallControl:1
     LuaQueryCmd:
       GSM_AcT:
         AttrVal    1
         active     0
         cmd        gsm:settings/AcT
       GSM_NetworkState:
         AttrVal    1
         active     0
         cmd        gsm:settings/NetworkState
       GSM_RSSI:
         AttrVal    1
         active     0
         cmd        gsm:settings/RSSI
       TodayBytesReceivedHigh:
         AttrVal    1
         active     1
         cmd        inetstat:status/Today/BytesReceivedHigh
       TodayBytesReceivedLow:
         AttrVal    1
         active     1
         cmd        inetstat:status/Today/BytesReceivedLow
       TodayBytesSentHigh:
         AttrVal    1
         active     1
         cmd        inetstat:status/Today/BytesSentHigh
       TodayBytesSentLow:
         AttrVal    1
         active     1
         cmd        inetstat:status/Today/BytesSentLow
       UMTS_enabled:
         AttrVal    1
         active     1
         cmd        umts:settings/enabled
       alarmClock:
         AttrVal    0
         active     1
         cmd        telcfg:settings/AlarmClock/list(Name,Active,Time,Number,Weekdays)
       box_DNS_over_TLS:
         AttrVal    1
         active     1
         cmd        dnscfg:settings/dns_over_tls_enabled
       box_cpuTemp:
         AttrVal    0
         active     0
         cmd        power:status/act_temperature
       box_dect:
         AttrVal    1
         active     1
         cmd        dect:settings/enabled
       box_fwUpdate:
         AttrVal    1
         active     1
         cmd        updatecheck:status/update_available_hint
       box_fwVersion:
         AttrVal    1
         active     0
         cmd        logic:status/nspver
       box_fwVersion_neu:
         AttrVal    1
         active     1
         cmd        uimodlogic:status/nspver
       box_guestWlan:
         AttrVal    1
         active     1
         cmd        wlan:settings/guest_ap_enabled
       box_guestWlanRemain:
         AttrVal    1
         active     1
         cmd        wlan:settings/guest_time_remain
       box_ipv4_DHCP_LAN_DNS:
         AttrVal    1
         active     1
         cmd        dnscfg:settings/ipv4_dhcpserver_lan_dns
       box_ipv6_1st_DNS:
         AttrVal    1
         active     0
         cmd        ipv6:settings/first_dns
       box_ipv6_2nd_DNS:
         AttrVal    1
         active     0
         cmd        ipv6:settings/second_dns
       box_ipv6_Enabled:
         AttrVal    1
         active     1
         cmd        ipv6:settings/enabled
       box_ipv6_Extern:
         AttrVal    1
         active     0
         cmd        ipv6:settings/ip
       box_ipv6_Prefix:
         AttrVal    1
         active     0
         cmd        ipv6:settings/ip_prefix
       box_ipv6_Uptime:
         AttrVal    1
         active     1
         cmd        ipv6:settings/uptime
       box_ipv6_Valid:
         AttrVal    1
         active     1
         cmd        ipv6:settings/ip_valid
       box_is_double_wlan:
         AttrVal    1
         active     1
         cmd        wlan:settings/feature_flags/DBDC
       box_macFilter_active:
         AttrVal    1
         active     1
         cmd        wlan:settings/is_macfilter_active
       box_moh:
         AttrVal    1
         active     1
         cmd        telcfg:settings/MOHType
       box_powerRate:
         AttrVal    1
         active     1
         cmd        power:status/rate_sumact
       box_stdDialPort:
         AttrVal    1
         active     1
         cmd        telcfg:settings/DialPort
       box_tr064:
         AttrVal    1
         active     1
         cmd        tr064:settings/enabled
       box_tr069:
         AttrVal    1
         active     1
         cmd        tr069:settings/enabled
       box_upnp:
         AttrVal    1
         active     1
         cmd        box:settings/upnp_activated
       box_upnpCtrl:
         AttrVal    1
         active     1
         cmd        box:settings/upnp_control_activated
       box_uptimeHours:
         AttrVal    1
         active     1
         cmd        uimodlogic:status/uptime_hours
       box_uptimeMinutes:
         AttrVal    1
         active     1
         cmd        uimodlogic:status/uptime_minutes
       box_users:
         AttrVal    1
         active     1
         cmd        boxusers:settings/user/list(name,box_admin_rights,enabled,email,myFritz_boxuser_uid,homeauto_rights,dial_rights,nas_rights,vpn_access)
       box_wlan_24GHz:
         AttrVal    1
         active     1
         cmd        wlan:settings/ap_enabled
       box_wlan_5GHz:
         AttrVal    1
         active     1
         cmd        wlan:settings/ap_enabled_scnd
       dectUser:
         AttrVal    1
         active     1
         cmd        telcfg:settings/Foncontrol/User/list(Id,Name,Intern,IntRingTone,AlarmRingTone0,RadioRingID,ImagePath,G722RingTone,G722RingToneName,NoRingTime,RingAllowed,NoRingTimeFlags,NoRingWithNightSetting)
       diversity:
         AttrVal    1
         active     1
         cmd        telcfg:settings/Diversity/list(MSN,Active,Destination)
       dslStatGlobalIn:
         AttrVal    1
         active     1
         cmd        dslstatglobal:status/in
       dslStatGlobalOut:
         AttrVal    1
         active     1
         cmd        dslstatglobal:status/out
       fonPort:
         AttrVal    0
         active     1
         cmd        telcfg:settings/MSN/Port/list(Name,MSN)
       handset:
         AttrVal    1
         active     1
         cmd        dect:settings/Handset/list(User,Manufacturer,Model,FWVersion,Productname)
       handsetCount:
         AttrVal    1
         active     1
         cmd        dect:settings/Handset/count
       init:
         AttrVal    1
         active     0
         cmd        telcfg:settings/Foncontrol
       lanDevice:
         AttrVal    1
         active     1
         cmd        landevice:settings/landevice/list(mac,ip,ethernet,ethernet_port,ethernetport,guest,name,active,online,wlan,speed,UID,static_dhcp)
       lanDeviceNew:
         AttrVal    1
         active     1
         cmd        landevice:settings/landevice/list(mac,ip,ethernet,guest,name,active,online,wlan,speed,UID)
       radio:
         AttrVal    1
         active     1
         cmd        configd:settings/WEBRADIO/list(Name)
       ringGender:
         AttrVal    1
         active     0
         cmd        telcfg:settings/VoiceRingtoneGender
       sip_info:
         AttrVal    1
         active     1
         cmd        sip:settings/sip/list(activated,displayname,connect)
       tam:
         AttrVal    1
         active     1
         cmd        tam:settings/TAM/list(Name,Display,Active,NumNewMessages,NumOldMessages)
       userProfil:
         AttrVal    0
         active     1
         cmd        user:settings/user/list(name,filter_profile_UID,this_month_time,today_time,type)
       userProfilNew:
         AttrVal    0
         active     1
         cmd        user:settings/user/list(name,type)
       userTicket:
         AttrVal    0
         active     1
         cmd        userticket:settings/ticket/list(id)
       vpn_info:
         AttrVal    0
         active     1
         cmd        vpn:settings/connection/list(remote_ip,activated,name,state,access_type,connected_since)
       wlanList:
         AttrVal    1
         active     1
         cmd        wlan:settings/wlanlist/list(mac,speed,speed_rx,rssi,is_guest,is_remote,is_repeater,is_ap)
       wlanListNew:
         AttrVal    1
         active     1
         cmd        wlan:settings/wlanlist/list(mac,speed,rssi)
     TR064control:
       DeviceInfo:
         action     GetInfo
         active     1
         control    deviceinfo
         igd        0
         service    DeviceInfo:1
       DialHangup:
         action     X_AVM-DE_DialHangup
         active     1
         control    x_voip
         igd        0
         service    X_VoIP:1
       GetSecurityPort:
         action     GetSecurityPort
         active     1
         control    deviceinfo
         igd        0
         service    DeviceInfo:1
       Hosts:
         action     X_AVM-DE_GetInfo
         active     1
         control    hosts
         igd        0
         service    Hosts:1
       LANConfigSecurity:
         action     GetInfo
         active     1
         control    lanconfigsecurity
         igd        0
         service    LANConfigSecurity:1
       LANEthernetInterfaceConfig:
         action     GetInfo
         active     1
         control    lanethernetifcfg
         igd        0
         service    LANEthernetInterfaceConfig:1
       LANEthernetInterfaceStatistic:
         action     GetStatistics
         active     1
         control    lanethernetifcfg
         igd        0
         service    LANEthernetInterfaceConfig:1
       LANHostConfigManagement:
         action     GetInfo
         active     1
         control    lanhostconfigmgm
         igd        0
         service    LANHostConfigManagement:1
       Layer3Forwarding:
         action     GetDefaultConnectionService
         active     1
         control    layer3forwarding
         igd        0
         service    Layer3Forwarding:1
       ManagementServer:
         action     GetInfo
         active     1
         control    mgmsrv
         igd        0
         service    ManagementServer:1
       MyFritz:
         action     GetInfo
         active     1
         control    x_myfritz
         igd        0
         service    X_AVM-DE_MyFritz:1
       OnTelGetDECTHandsetList:
         action     GetDECTHandsetList
         active     1
         control    x_contact
         igd        0
         service    X_AVM-DE_OnTel:1
       OnTelGetGetDeflections:
         action     GetDeflections
         active     1
         control    x_contact
         igd        0
         service    X_AVM-DE_OnTel:1
       OnTelGetGetNumDeflections:
         action     GetNumberOfDeflections
         active     1
         control    x_contact
         igd        0
         service    X_AVM-DE_OnTel:1
       OnTelGetInfo:
         action     GetInfo
         active     1
         control    x_contact
         igd        0
         service    X_AVM-DE_OnTel:1
       OnTelGetPhonebook:
         action     GetPhonebook NewPhonebookID 0
         active     1
         control    x_contact
         igd        0
         service    X_AVM-DE_OnTel:1
       OnTelGetPhonebookList:
         action     GetPhonebookList
         active     1
         control    x_contact
         igd        0
         service    X_AVM-DE_OnTel:1
       Reboot:
         action     Reboot
         active     1
         control    deviceconfig
         igd       
         service    DeviceConfig:1
       RemoteAccess:
         action     GetInfo
         active     1
         control    x_remote
         igd        0
         service    X_AVM-DE_RemoteAccess:1
       Speedtest:
         action     GetInfo
         active     1
         control    x_speedtest
         igd        0
         service    X_AVM-DE_Speedtest:1
       Storage:
         action     GetInfo
         active     1
         control    x_storage
         igd        0
         service    X_AVM-DE_Storage:1
       TAM:
         action     GetList
         active     1
         control    x_tam
         igd        0
         service    X_AVM-DE_TAM:1
       Time:
         action     GetInfo
         active     1
         control    time
         igd        0
         service    Time:1
       TwoFAInformation:
         action     GetInfo
         active     1
         control    x_auth
         igd        0
         service    X_AVM-DE_Auth:1
       TwoFAState:
         action     GetState
         active     1
         control    x_auth
         igd        0
         service    X_AVM-DE_Auth:1
       UPnP:
         action     GetInfo
         active     1
         control    x_upnp
         igd        0
         service    X_AVM-DE_UPnP:1
       UserInterface:
         action     GetInfo
         active     1
         control    userif
         igd        0
         service    UserInterface:1
       VoIP:
         action     GetInfoEx
         active     1
         control    x_voip
         igd        0
         service    X_VoIP:1
       WANCommonInterface:
         action     GetCommonLinkProperties
         active     1
         control    wancommonifconfig1
         igd        0
         service    WANCommonInterfaceConfig:1
       WANDSLInterfaceConfig:
         action     GetInfo
         active     -1
         control    wandslifconfig1
         igd        0
         service    WANDSLInterfaceConfig:1
       WANDSLLinkConfig:
         action     GetInfo
         active     -1
         control    wandsllinkconfig1
         igd        0
         service    WANDSLLinkConfig:1
       WANIPConnection:
         action     GetStatusInfo
         active     1
         control    wanipconnection1
         igd        0
         service    WANIPConnection:1
       WANPPPConnection:
         action     GetStatusInfo
         active     0
         control    wanpppconn1
         igd        0
         service    WANPPPConnection:1
       WLANConfiguration1:
         action     GetInfo
         active     1
         control    wlanconfig1
         igd        0
         service    WLANConfiguration:1
       WLANConfiguration2:
         action     GetInfo
         active     1
         control    wlanconfig2
         igd        0
         service    WLANConfiguration:2
       WLANConfiguration3:
         action     GetInfo
         active     1
         control    wlanconfig3
         igd        0
         service    WLANConfiguration:3
       WLANConfiguration4:
         action     GetInfo
         active     -1
         control    wlanconfig4
         igd        0
         service    WLANConfiguration:4
       WMCGetAccessTech:
         action     GetAccessTechnology
         active     1
         control    x_wanmobileconn
         igd        0
         service    X_AVM-DE_WANMobileConnection:1
       WMCGetBandCapabilities:
         action     GetBandCapabilities
         active     1
         control    x_wanmobileconn
         igd        0
         service    X_AVM-DE_WANMobileConnection:1
       WMCGetInfo:
         action     GetInfo
         active     1
         control    x_wanmobileconn
         igd        0
         service    X_AVM-DE_WANMobileConnection:1
       WMCGetInfoEx:
         action     GetInfoEx
         active     1
         control    x_wanmobileconn
         igd        0
         service    X_AVM-DE_WANMobileConnection:1
       WebDAVClient:
         action     GetInfo
         active     1
         control    x_webdav
         igd        0
         service    X_AVM-DE_WebDAVClient:1
     dectFonID:
       Büro      1
       Flur       2
       Schlafzimmer 3
Attributes:
   DbLogExclude .*
   INTERVAL   300
   boxUser    xxxxxx
   icon       it_router
   room       Technik->FBDECT
   verbose    1
   webCmd     wlan

JoWiemann

Hallo Dieter,

danke für die Info. Habe ich Korrigiert und ist morgen im Update verfügbar.

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

JoWiemann

Zitat von: Sidey am 09 Juni 2026, 07:57:25Alternativ ein anderes robusteres XML Package.
Ich habe  Hinweise gefunden, dass die Nutzung von XML::Simple vermieden werden sollte.
Grüße Sidey

Hallo Sidey,

ich habe jetzt mal zusätzlich XML::Hash::XS eingebaut. Sofern vorhanden kann er über das neue Attribut xmlParser ausgewählt werden. Ist nur einer von beiden (XML::Hash::XS, XML::Simple) installiert, dann existiert das Attribut nicht und der Installierte wird zum Default.

Anbei eine Beta zum Testen, wenn Du möchtest.

Danke und 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

JoWiemann

#31
Hallo,

ich habe jetzt mal eine Meta.json im Modul angefügt. Vielleicht kann ja mal jemand prüfen, ob ich das soweit richtig verstanden habe. Danke Euch.

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

elektron-bbs

Zu den Meta-Daten kann ich nichts sagen, aber mir ist etwas anderes aufgefallen:

Der Befehl "set Fritzbox call xxx" funktioniert prinzipiell jetzt, erzeugt aber folgende Warnungen im Log:
2026.06.23 14:49:17 3: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Set_Modul.2607] - BASIC:set FritzBox_7590 call - 1234567
2026.06.23 14:49:17 1: PERL WARNING: Argument "" isn't numeric in numeric ge (>=) at ./FHEM/72_FritzSmart.pm line 3297.
2026.06.23 14:49:17 1: PERL WARNING: Use of uninitialized value $val[2] in join or string at ./FHEM/72_FritzSmart.pm line 3315.
2026.06.23 14:49:18 3: [FritzBox_7590|FRITZ!Box 7590|154.08.25|Set_call_Phone.13097] - BASIC:Call 1234567 for 60 seconds - 49443

In der deutschen commandref ist in Zeile 21386 "etwas verloren gegangen:
      <li><a name="wlanNeighborsPrefix"></a>
         <dt><code>attr &lt;name&gt; wlanNeighborsPrefix &lt;prefix&gt;</code></dt>
         <br>
         Sofern beide Parser ().
      </li><br>
Da stand vorher:
      <li><a name="wlanNeighborsPrefix"></a>
         <dt><code>attr &lt;name&gt; wlanNeighborsPrefix &lt;prefix&gt;</code></dt>
         <br>
         Definiert einen Präfix für den Reading Namen der WLAN Nachbarschaftsgeräte, der aus der MAC Adresse gebildet wird. Der default Präfix ist nbh_.
      </li><br>
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + 1 x rf_Gateway + 1 x SIGNAL-STM

Didi

Super jetzt funktioniert es wieder.
Herzlichen Dank für die schnelle Hilfe.
Gruß
Dieter

JoWiemann

Hallo elektron-bbs,

vielen Dank für die Rückmeldung. Anbei eine neue Version zum Testen. Über einen Test bzgl. XML Parser würde ich mich auch noch freuen.

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

#35
Zitat von: JoWiemann am 22 Juni 2026, 20:41:54ich habe jetzt mal eine Meta.json im Modul angefügt. Vielleicht kann ja mal jemand prüfen, ob ich das soweit richtig verstanden habe. Danke Euch.


Hallo Jörg,

Prima.

ich habe den =for :application/json;q=META.json-Block in 72_FritzSmart.pm geprüft.

  Kurzfazit:

  - Der JSON-Block ist syntaktisch korrekt und lässt sich ohne Fehler parsen.
  - Das =for/=end-Paar ist ebenfalls sauber geschlossen.

Zur inhaltlichen Einordnung:

  - XML::Hash::XS in suggests passt aus meiner Sicht. Im Code werden XML::Simple und XML::Hash::XS als alternative Parser behandelt, und das Modul kann auch mit nur einem von beiden starten.
  - In recommends stehen aber einige Einträge, die im aktuellen Code eher wie Pflichtabhängigkeiten wirken oder zumindest veraltet sind.
  - FHEM::Meta wird direkt per use geladen und auch direkt verwendet, daher wäre das eher ein Kandidat für requires als für recommends.
  - DateTime, DateTime::Format::Strptime und FHEM::Utility::CTZ habe ich im Code nicht als echte Nutzung gefunden. Die wirken eher wie Altlasten im META-Block.
  - Die Module MIME::Base64, JSON, LWP::UserAgent, URI::Escape, XML::Simple und Data::Dumper werden im Code direkt genutzt.

Mein Eindruck ist daher:

  - Syntax: okay
  - Inhaltliche Klassifizierung: teilweise überarbeitungsbedürftig


Nebenbei habe ich noch eine weitere Sache aufgefallen, die ich mit dir teilen möchte:

1)
In "Fritz_Attr_Modul"  gibt es viele if Bedingungen die auf aName prüfen. Bei machen wird mit return die sub beendet.
Immer dann, wenn es kein return gibt müssen alle if Bedingungen geprüft werde, auch wenn schon einer zutreffend war und soweit ich das überblicke, kann immer nur eine der Bedingungen zutreffen.

Effizienter ist es mit if und elsif zu arbeiten. Sobald eine Bedingung zutrifft, wird die gesamte Prüfung weiterer Bedingungen beendet. Bei der aktuellen Implementierung ist das nicht der Fall.


---

Das FritzSmart.pm funktioniert nicht, wenn XML::Hash::XS nicht installiert ist.
Damit das entweder/oder wie geplant funktioniert ist eine Anpassung notwendig:

 
  diff --git a/72_FritzSmart.pm b/72_FritzSmart.pm
  --- a/72_FritzSmart.pm
  +++ b/72_FritzSmart.pm
  @@ -1571,16 +1571,16 @@ sub Fritz_Define_Modul($$)
  -   $hash->{helper}{XML_Simple}  = 1;
  -   $hash->{helper}{XML_Hash_XS} = 1;
  -
  -   # Check if perl modules for remote APIs exists
  -   if ($missingModul =~ /XML::Simple/ && $missingModul =~ /XML::Hash::XS/) {
  -     $hash->{helper}{XML_Simple}  = 0;
  -     $hash->{helper}{XML_Hash_XS} = 0;
  -   } elsif ($missingModul =~ /XML::Simple/ && $missingModul !~ /XML::Hash::XS/) {
  -     $missingModul =~ s/XML::Simple //;
  -     $hash->{helper}{XML_Simple} = 0;
  -   } elsif ($missingModul !~ /XML::Simple/ && $missingModul =~ /XML::Hash::XS/) {
  -     $missingModul =~ s/XML::Hash::XS //;
  -     $hash->{helper}{XML_Hash_XS} = 0;
  +   $hash->{helper}{XML_Simple}  = ($missingModul !~ /XML::Simple/);
  +   $hash->{helper}{XML_Hash_XS} = ($missingModul !~ /XML::Hash::XS/);
  +
  +   # XML::Simple and XML::Hash::XS are optional, but at least one parser must be available.
  +   # Remove missing parser modules from the fatal dependency list; keep all other missing
  +   # modules fatal so the module still fails fast on real runtime dependencies.
  +   $missingModul =~ s/XML::Simple //g;
  +   $missingModul =~ s/XML::Hash::XS //g;
  +
  +   if (!$hash->{helper}{XML_Simple} && !$hash->{helper}{XML_Hash_XS}) {
  +     $missingModul .= "XML::Simple XML::Hash::XS ";
      }

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,

vielen Dank für die ausführliche Begutachtung und die Änderungsvorschläge. Werde ich die Tage umsetzen.

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

Zitat von: JoWiemann am 27 Juni 2026, 08:23:18vielen Dank für die ausführliche Begutachtung und die Änderungsvorschläge. Werde ich die Tage umsetzen.


Ich habe noch ein wenig getestet und dabei ist mir aufgefallen, dass es weitgehend redundanten code gibt, der nicht identisch implementiert wurde.

Vorschlag daher:

eine sub Fritz_XML_Parse. In der wird die Auswahl des Parsers realisiert.
Aufgerufen wird dann immer Fritz_XML_Parse. Dadurch wird der code konsistenter und alle Aufrufe des XML Parsers verhalten sich identisch.


• --- 72_FritzSmart.pm.orig     2026-06-27 20:45:43.165512151 +0200
  +++ 72_FritzSmart.pm  2026-06-27 17:59:30.226623945 +0200
  @@ -1276,7 +1276,7 @@
   #    $hash->{AttrRenameMap} = { "enableMobileModem" => "enableMobileInfo"
   #                             };

  -    return FHEM::Meta::InitMod( __FILE__, $hash );
  +  return FHEM::Meta::InitMod( __FILE__, $hash );

   } # end Fritz_Initialize

  @@ -1568,19 +1568,17 @@

      my $msg;

  -   $hash->{helper}{XML_Simple}  = 1;
  -   $hash->{helper}{XML_Hash_XS} = 1;
  +   $hash->{helper}{XML_Simple}  = ($missingModul !~ /XML::Simple/);
  +   $hash->{helper}{XML_Hash_XS} = ($missingModul !~ /XML::Hash::XS/);

  -   # Check if perl modules for remote APIs exists
  -   if ($missingModul =~ /XML::Simple/ && $missingModul =~ /XML::Hash::XS/) {
  -     $hash->{helper}{XML_Simple}  = 0;
  -     $hash->{helper}{XML_Hash_XS} = 0;
  -   } elsif ($missingModul =~ /XML::Simple/ && $missingModul !~ /XML::Hash::XS/) {
  -     $missingModul =~ s/XML::Simple //;
  -     $hash->{helper}{XML_Simple} = 0;
  -   } elsif ($missingModul !~ /XML::Simple/ && $missingModul =~ /XML::Hash::XS/) {
  -     $missingModul =~ s/XML::Hash::XS //;
  -     $hash->{helper}{XML_Hash_XS} = 0;
  +   # XML::Simple and XML::Hash::XS are optional, but at least one parser must be available.
  +   # Remove missing parser modules from the fatal dependency list; keep all other missing
  +   # modules fatal so the module still fails fast on real runtime dependencies.
  +   $missingModul =~ s/XML::Simple //g;
  +   $missingModul =~ s/XML::Hash::XS //g;
  +
  +   if (!$hash->{helper}{XML_Simple} && !$hash->{helper}{XML_Hash_XS}) {
  +     $missingModul .= "XML::Simple XML::Hash::XS ";
      }

      $hash->{helper}{XML_Default} = ($hash->{helper}{XML_Simple} ? "XML_Simple" : "XML_Hash_XS");
  @@ -4875,17 +4873,9 @@

          my $outhash;

  -       if (main::AttrVal($name, "xmlParser", $hash->{helper}{XML_Default}) eq "XML_Simple") {
  -#         Fritz_Log $hash, 3, "XML_Parser" . main::AttrVal($name, "xmlParser", $hash->{helper}{XML_Default});
  -         eval {
  -           $outhash = XMLin($tmp, StrictMode => 0, KeyAttr => []);
  -         };
  -       } else {
  -#         Fritz_Log $hash, 3, "XML_Parser" . main::AttrVal($name, "xmlParser", $hash->{helper}{XML_Default});
  -         eval {
  -           $outhash = xml2hash($tmp);
  -         };
  -       }
  +       eval {
  +         $outhash = Fritz_XML_Parse($hash, $tmp, StrictMode => 0, KeyAttr => []);
  +       };

          if ($@) {
            return "ERROR: SmartHome - getting XML data: $val[0]";
  @@ -8095,17 +8085,9 @@
              Fritz_Log $hash, 4, "SmartHome - start getting XML data: $SmartHome";
              my $outhash;

  -           if (main::AttrVal($name, "xmlParser", "XML_Simple") eq $hash->{helper}{XML_Default}) {
  -#             Fritz_Log $hash, 3, "XML_Parser" . main::AttrVal($name, "xmlParser", $hash->{helper}{XML_Default});
  -             eval {
  -               $outhash = XMLin($XMLtmp, StrictMode => 0, KeyAttr => []);
  -             };
  -           } else {
  -#             Fritz_Log $hash, 3, "XML_Parser" . main::AttrVal($name, "xmlParser", $hash->{helper}{XML_Default});
  -             eval {
  -               $outhash = xml2hash($XMLtmp);
  -             };
  -           }
  +           eval {
  +             $outhash = Fritz_XML_Parse($hash, $XMLtmp, StrictMode => 0, KeyAttr => []);
  +           };

              if ($@) {
                Fritz_Log $hash, 3, "ERROR: SmartHome - getting XML data: $SmartHome";
  @@ -15974,6 +15956,39 @@

   } # end Fritz_Get_Lan_Devices_List

  +# Parse XML responses with the currently selected parser.
  +sub Fritz_XML_Parse
  +{
  +   my ($hash, $xml_value, @xml_params) = @_;
  +
  +   die "Fritz_XML_Parse: first parameter must be a hash reference" if ref($hash) ne "HASH";
  +   die "Fritz_XML_Parse: second parameter must be defined"         if !defined $xml_value;
  +
  +   my $name = $hash->{NAME};
  +   my $parser = main::AttrVal($name, "xmlParser", $hash->{helper}{XML_Default});
  +   my $xsubroutine = ( caller(1) )[3];
  +   my $sub = ( split( ':', $xsubroutine ) )[2];
  +   $sub =~ s/Fritz_// if defined $sub;
  +   $sub ||= 'no-subroutine-specified';
  +
  +   Fritz_Log $hash, 3, "XML parser dispatch: parser=$parser caller=$sub";
  +
  +   if ($parser eq "XML_Simple") {
  +      my $outHash;
  +
  +      eval {
  +         $outHash = XMLin($xml_value, @xml_params);
  +         1;
  +      } or do {
  +         die $@ || "unknown XML::Simple error";
  +      };
  +
  +      return $outHash;
  +   }
  +
  +   return xml2hash($xml_value);
  +}
  +
   # get list of User informations
   ############################################
   sub Fritz_Get_User_Info_List($) {
  @@ -16611,8 +16626,6 @@
      my %params;
      my $encodingStyle;

  -   my $xmlSimple = main::AttrVal($name, "xmlParser", $hash->{helper}{XML_Default}) eq "XML_Simple";
  -
      foreach( @{$cmdArray} ) {
        next unless int @{$_} >=3 && int( @{$_} ) % 2 == 1;
        ( $service, $control, $service_command, %params) = @{$_};
  @@ -16748,17 +16761,9 @@

              my $outHash;

  -           if ($xmlSimple) {
  -#             Fritz_Log $hash, 3, "XML_Parser" . main::AttrVal($name, "xmlParser", $hash->{helper}{XML_Default});
  -             eval {
  -               $outHash = XMLin($decContent, StrictMode => 0, KeyAttr => [], SuppressEmpty => undef);
  -             };
  -           } else {
  -#             Fritz_Log $hash, 3, "XML_Parser" . main::AttrVal($name, "xmlParser", $hash->{helper}{XML_Default});
  -             eval {
  -               $outHash = xml2hash($decContent);
  -             };
  -           }
  +           eval {
  +             $outHash = Fritz_XML_Parse($hash, $decContent, StrictMode => 0, KeyAttr => [], SuppressEmpty => undef);
  +           };

              if ($@) {
                $retHash{Error}{$service}{$service_command} = $outHash->{'s:Body'}->{'s:XML-Fault:$@'};


Letztenlich kommt der Fehler mit der parserDetails.ini weiterhin wenn XML::Simple installiert ist.
Dabei ist es unerheblich ob weitere XML Parser installiert sind oder nicht.
Das Umstellen per Attribut scheint mir fürs Testen geeignet, aber für einen Anwender wird das doch kaum nachvollziehbar sein, wieso er ein Attribut ändern muss, damit es zu keinem Fehler kommt.

Sinnvoll sehe ich keine Möglichkeit auf das Warning im Modul dynamisch zu reagieren. Die effizienteste Variante wäre, den Standard nicht auf XML::Simple sondern auf XML::Hash::XS zu setzen. Wer es hat, erfreut sich dann an der besseren Performance und wird nicht mit Warnungen irritiert.

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

elektron-bbs

Mit dem XML::Hash::XS hat das aber einen Haken:
Ein Debian Package ist erst ab Debian 11 bullseye verfügbar. Bei mir scheiterte auf einem noch älteren System auch eine Installation mittel cpan:
Running Mkbootstrap for XML::Hash::XS ()
chmod 644 "XS.bs"
"/usr/bin/perl" "/usr/share/perl/5.24/ExtUtils/xsubpp"  -typemap "/usr/share/perl/5.24/ExtUtils/typemap" -typemap "typemap"  src/XS.xs > src/XS.xsc && mv src/XS.xsc src/XS.c
Can't find typemap in /root/.cpan/build/XML-Hash-XS-0.64-bc_1Aw/src
Makefile:423: die Regel für Ziel ,,src/XS.c" scheiterte
make: *** [src/XS.c] Fehler 2

Jetzt kommen sicher wieder Einwände, das diese Linux-Versionen total veraltet sind. Es gibt aber bei mir gute Gründe dafür, diese beizubehalten.
Bitte also XML::Simple als Option beibehalten.
Intel(R) Atom(TM) CPU N270 mit 2 SIGNALduino nanoCC1101 + ESPEasy 2x serial server SIGNALduino nanoCC1101, Raspberry Pi 2 mit 2 CUL Stackable CC1101, Raspberry Pi 3 mit SIGNALduino radino + nano328 + 2 x SIGNAL-ESP CC1101 + 1 x rf_Gateway + 1 x SIGNAL-STM

JoWiemann

Zitat von: elektron-bbs am 28 Juni 2026, 17:12:27Bitte also XML::Simple als Option beibehalten.

Hallo elektron-bbs,

bleibt auf jeden Fall erhalten. XML::Hash::XS ist halt jetzt eine Alternative.

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

JoWiemann

Hallo Sidey,

Deine Hinweis zum default XML Parser habe ich aufgegriffen. Ist XML::Hash::XS verfügbar, dann wird er als Default-Parser genommen.

Bezüglich Deiner Anmerkung für eine eigene Sub Fritz_XML_Parse habe ich mich im Moment dagegen entschieden. Vielen Dank aber für Deinen Vorschlag.

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

JoWiemann

Hallo,

ich habe eine neue Version von 72_FritzSmart 26.06.29 eingecheckt. Neben Fehlerkorrekturen ist die größte Neuerung die Nutzung eines alternativen XML Parsers für die TR064 Antworten der Fritz Geräte. Sofern der neue Parser XML::Hash::XS beim Initialisieren des Moduls gefunden wird, wird dieser zum gefault Parser. Gleichzeitig steht das neue Attribut:
attr <name> xmlParser <XML_Simple|XML_Hash_XS>- sofern beide Parser XML_Simple und XML_Hash_XS vorhanden sind - zur Verfügung. Ist nur ein Parser vorhanden, ist das Attribut nicht vorhanden.

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

kabanett

Hallo,
mit diesem Problem bin ich wohl allein betroffen... https://forum.fhem.de/index.php?topic=144630.msg1364969#msg1364969

Mir gehts aber momentan um meine FhemLogdatei, die jetzt viele Einträge von diesem Modul bekommt. Ein Update und neustarten der Box hat keine Verbesserung gebracht. BoxUser und Passwort sind natürlich gesetzt und Readings werden auch erneuert.
Hier mal die letzte halbe Stunde:

2026.06.29 18:32:32 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9775] - BASIC: boxUser (bei Repeatern oder Fritz!OS < 7.25 nicht unbedingt notwendig) nicht definiert. Bitte auch das Passwort mit <set FritzSmart password> setzen.
2026.06.29 18:32:32 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:32:32 2: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9781] - SIGNIFICANT:No password set. Please define it (once) with 'set FritzSmart password YourPassword'
2026.06.29 18:32:38 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.10238] - BASIC:Response -> luaQuery:200 luaData:200 TR064:200
2026.06.29 18:32:38 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:32:38 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaQuery(5338)
2026.06.29 18:32:38 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:32:38 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaData(6289)
2026.06.29 18:32:38 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:32:40 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:37:38 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9775] - BASIC: boxUser (bei Repeatern oder Fritz!OS < 7.25 nicht unbedingt notwendig) nicht definiert. Bitte auch das Passwort mit <set FritzSmart password> setzen.
2026.06.29 18:37:38 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:37:38 2: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9781] - SIGNIFICANT:No password set. Please define it (once) with 'set FritzSmart password YourPassword'
2026.06.29 18:38:05 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.10238] - BASIC:Response -> luaQuery:200 luaData:500 TR064:200
2026.06.29 18:38:05 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9775] - BASIC: boxUser (bei Repeatern oder Fritz!OS < 7.25 nicht unbedingt notwendig) nicht definiert. Bitte auch das Passwort mit <set FritzSmart password> setzen.
2026.06.29 18:38:05 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:38:05 2: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9781] - SIGNIFICANT:No password set. Please define it (once) with 'set FritzSmart password YourPassword'
2026.06.29 18:38:21 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.10238] - BASIC:Response -> luaQuery:200 luaData:200 TR064:200
2026.06.29 18:38:21 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:38:21 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaQuery(5338)
2026.06.29 18:38:21 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:38:21 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaData(6289)
2026.06.29 18:38:21 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:38:22 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:43:21 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9775] - BASIC: boxUser (bei Repeatern oder Fritz!OS < 7.25 nicht unbedingt notwendig) nicht definiert. Bitte auch das Passwort mit <set FritzSmart password> setzen.
2026.06.29 18:43:21 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:43:21 2: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9781] - SIGNIFICANT:No password set. Please define it (once) with 'set FritzSmart password YourPassword'
2026.06.29 18:43:25 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.10238] - BASIC:Response -> luaQuery:200 luaData:200 TR064:200
2026.06.29 18:43:26 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:43:26 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaQuery(5338)
2026.06.29 18:43:26 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:43:26 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaData(6289)
2026.06.29 18:43:26 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:43:27 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:48:26 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9775] - BASIC: boxUser (bei Repeatern oder Fritz!OS < 7.25 nicht unbedingt notwendig) nicht definiert. Bitte auch das Passwort mit <set FritzSmart password> setzen.
2026.06.29 18:48:26 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:48:26 2: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9781] - SIGNIFICANT:No password set. Please define it (once) with 'set FritzSmart password YourPassword'
2026.06.29 18:48:32 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.10238] - BASIC:Response -> luaQuery:200 luaData:200 TR064:200
2026.06.29 18:48:32 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:48:32 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaQuery(5338)
2026.06.29 18:48:32 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:48:32 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaData(6289)
2026.06.29 18:48:32 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:48:33 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:53:32 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9775] - BASIC: boxUser (bei Repeatern oder Fritz!OS < 7.25 nicht unbedingt notwendig) nicht definiert. Bitte auch das Passwort mit <set FritzSmart password> setzen.
2026.06.29 18:53:32 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:53:32 2: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9781] - SIGNIFICANT:No password set. Please define it (once) with 'set FritzSmart password YourPassword'
2026.06.29 18:53:38 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.10238] - BASIC:Response -> luaQuery:200 luaData:200 TR064:200
2026.06.29 18:53:38 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:53:38 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaQuery(5338)
2026.06.29 18:53:38 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:53:38 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaData(6289)
2026.06.29 18:53:38 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:53:40 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:58:38 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9775] - BASIC: boxUser (bei Repeatern oder Fritz!OS < 7.25 nicht unbedingt notwendig) nicht definiert. Bitte auch das Passwort mit <set FritzSmart password> setzen.
2026.06.29 18:58:38 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:58:38 2: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9781] - SIGNIFICANT:No password set. Please define it (once) with 'set FritzSmart password YourPassword'
2026.06.29 18:58:59 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.10238] - BASIC:Response -> luaQuery:200 luaData:500 TR064:200
2026.06.29 18:58:59 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9775] - BASIC: boxUser (bei Repeatern oder Fritz!OS < 7.25 nicht unbedingt notwendig) nicht definiert. Bitte auch das Passwort mit <set FritzSmart password> setzen.
2026.06.29 18:58:59 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:58:59 2: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.9781] - SIGNIFICANT:No password set. Please define it (once) with 'set FritzSmart password YourPassword'
2026.06.29 18:59:13 3: [FritzSmart | 7490 | 113.07.62 | Readout_API_Check.10238] - BASIC:Response -> luaQuery:200 luaData:200 TR064:200
2026.06.29 18:59:13 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:59:13 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaQuery(5338)
2026.06.29 18:59:13 2: [FritzSmart | 7490 | 113.07.62 | open_Web_Connection.15824] - SIGNIFICANT:No boxUser set. Please define it (once) with 'attr FritzSmart boxUser YourBoxUser'
2026.06.29 18:59:13 2: [FritzSmart | 7490 | 113.07.62 | Readout_Response.8882] - SIGNIFICANT:No attr boxUser set - Readout_Run_Web_LuaData(6289)
2026.06.29 18:59:13 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file
2026.06.29 18:59:16 2: [FritzSmart | 7490 | 113.07.62 | Helper_read_Password.17513] - SIGNIFICANT:No password in file

Gruß
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

JoWiemann

#43
Hallo kabanett,

zunächst, bei der 7490 keinen boxUser setzen. Dann,
Welche Version nutzt du? Ich habe jetzt ins SVN die Version 260629a eingecheckt, da in der 260929 noch ein kleiner Fehler war, der aber wohl nicht Dein Problem betreffen sollte. Ich selber habe eine 7490 zum Testen und kann Dein Problem nicht nachstellen.

Vielleicht einmal das Device löschen und von vorne beginnen. Was auffällt ist, dass das Modul kein Passwort findet 'SIGNIFICANT:No password in file'. Hier würden ein paar Infos zu Deiner Umgebung helfen. Ggf. besteht ja kein Schreibrecht. Bei Fhem Standard Installationen wird das Passwort in der Datei uniqueID im Pfad: /opt/fhem/FHEM/FhemUtils gespeichert.

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

kabanett

Hallo Jörg,
ich nutze die Version 26.06.22

Die Dateirechte sehen für mich gut aus. Fhem darf lesen und schreiben...
ls -la /opt/fhem/FHEM/FhemUtils/uniqueID
-rw-r--r-- 1 fhem dialout 457 13. Jun 12:37 /opt/fhem/FHEM/FhemUtils/uniqueID

Dann werde ich einmal updaten und das Device löschen und neu anlegen.

Gruß
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

JoWiemann

Zitat von: kabanett am 30 Juni 2026, 19:15:10Dann werde ich einmal updaten und das Device löschen und neu anlegen.

Gruß

Hallo,

bitte mit dem Update noch warten. Die aktuelle Version hat wohl noch einen Fehler, den ich bisher bei mir noch nicht nachstellen konnte.

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

kabanett

Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

JoWiemann

Hallo,

Erkenntnis des Tages: manipuliere nie eine our Variable, wenn Du nicht weißt, was Du tust.

Ich habe eine neue Version ins SVN eingecheckt. Damit sollte wieder alles ok sein.

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

Zitat von: JoWiemann am 30 Juni 2026, 22:41:51Erkenntnis des Tages: manipuliere nie eine our Variable, wenn Du nicht weißt, was Du tust.

Ich vermute mal Du meinst diese hier?
$ModulVersion
Globale Variablen zu verändern ist ohnehin so eine Sache.
Da könnte jedes andere Modul auch einen Wert rein schreiben.

Wieso legst Du die nicht in das Packge oder in den Modul Hash?
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,

ich meine: our $missingModul = ""; und die Variable liegt innerhalb des Package. Durch das Verändern in der abgebildeten Logik für die xmlParser wird diese Variable verändert. Die erste Instanz, die geladen wird, löscht den fehlende Parser "XML::Hash::XS " aus der Variable, was bei allen weiteren Instanzen dazu führt, dass die Information nicht mehr vorhanden ist und der Source so arbeitet, als wenn "XML::Hash::XS" als Perl Modul vorhanden ist.

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

kabanett

Hallo Jörg,
gleich vorweg, es gab leider keine Besserung bei mir.
Vieleicht mache ich ja irgendetwas falsch.

Folgenden Ablauf habe ich durchgeführt:

1. RAW Definition ohne setstate kopiert/gespeichert.
defmod FritzBox FritzSmart 192.168.xxx.xxx
attr FritzBox INTERVAL 60
attr FritzBox boxUser MeinBenutzer
attr FritzBox event-on-change-reading .*
attr FritzBox icon it_router
attr FritzBox room System->Hardware_Geräte
2. Device gelöscht.
3. Fhem inklusive FritzSmart update
4. shutdown restart
5. Mit + defmode RAW Definion eingefügt. Meldung "no errors found"
6. Vorsichtshalber Benutzer neu gesetzt.
7. Passwort gesetzt.
8. Fritzbox neu gestartet.

Gruß
Hardware: Fhem auf Raspi3 / selbtsbau CUL 433 und 868 MHz / MAX Thermostate / IT-Dosen nur noch Weihnachten / diverse ESP Aktoren/Sensoren / X10 Fernbedienung / Shelly 1, 1L, 2, 2.5, Dimmer, RGB2 / LaCrosseGateway / Zigbee2531 / diverse Zigbee Aktoren/Sensoren

JoWiemann

Zitat von: kabanett am 02 Juli 2026, 20:08:32Hallo Jörg,
gleich vorweg, es gab leider keine Besserung bei mir.
Vieleicht mache ich ja irgendetwas falsch.

Hallo kabanett,

ich gehe davon aus, dass Du die aktuelle Version des Moduls nutzt. Dann heißt "keine Besserung", dass Du weiterhin im Log "SIGNIFICANT:No password in file" angezeigt bekommst?
Was Du mal machen kannst ist mir, als PN, Deine "/opt/fhem/FHEM/FhemUtils/uniqueID" zur Verfügung zu stellen. Bitte auch noch einmal prüfen, ob die uniqueID als Rechte:
user -> fhem, gruppe -> dialout hat.

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