FritzSmart ab Modul-Version 26.05.07

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

Vorheriges Thema - Nächstes Thema

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