72_FRITZBOX.pm ab Version 08.20.00

Begonnen von elektron-bbs, 04 September 2025, 17:08:39

Vorheriges Thema - Nächstes Thema

JoWiemann

Zitat von: erwin am 05 Januar 2026, 11:30:20EDIT: sorry, es liegt offensichtlich an der verwendeten perl version (bzw. den libs) mit perl 5.20 kommt 'true' im reading, mit aktuellen versionen 'on'.

Hallo Erwin,

vielen dank für die Info. Dein Patch schadet ja grundsätzlich nicht. Von daher habe ich ihn schon mal übernommen. Im Moment bin ich aber noch am "ring" dran. Von daher wird eine neue Version noch etwas dauern.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Prof. Dr. Peter Henning

Zitat von: JoWiemann am 05 Januar 2026, 12:27:39Welche FritzBox ist bei Dir im Betrieb?
7590AX

Ich melde mich, wenn ich das im Log sehen kann.

LG

pah

JoWiemann

Hallo,

anbei eine neue "08.20.09e Beta" verbunden mit der Bitte zu testen.

Neu:
<code>set <name> dectRing <id:DECT_ID> [dur:dauer] [tone:ringtone_id|?]</code>

erweitert:
<code>get <name> luaFunction [get|post] <funktion></code>

Bitte auch die commandRef beachten.
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

olwaldi

Hallo!

Sorry, wenn ich hier so reinplatze, aber nach einem fhem-update vor ein paar Tagen funktioniert die Funktion XMLin im Modul 70_DENON_AVR.pm scheinbar "anders". Ursache ist wohl, daß 72_FRITZBOX.pm eine "andere" XMLin als die aus XML::Simple bereitstellt. Das Denon-Modul nutzt schon länger
use XML::Simple qw(:strict);
...
my $ref = XMLin(...);
Um das "alte" Verhalten zu bekommen, hilft nur der explizite Aufruf von XML::Simple::XMLin(..).
Praktischerweise gibt's im Logfile einen guten Hinweis (den ich aber erst im Nachhinein gelesen habe):
2026.01.22 10:52:09 1: PERL WARNING: Subroutine XMLin redefined at ./FHEM/72_FRITZBOX.pm line 17429, <$fh> line 241.Das "andere" XMLin packt die übliche processing intruction <?version...encoding?> in zwei XML-Knoten, wodurch sich der gesamte XML-Baum um ein Level verschiebt - XML::Simple::XMLin hingegen "übersieht" die processing instruction und entfernt folgerichtig das Wurzel-XML-Element.

Was ist die "richtige" Lösung, so daß beide Module die jeweils "gewünschte" XMLin-Version bekommen?

Grüßle, Michael

Prof. Dr. Peter Henning

Zitat von: olwaldi am 22 Januar 2026, 14:29:14Was ist die "richtige" Lösung, so daß beide Module die jeweils "gewünschte" XMLin-Version bekommen?
Die richtige Lösung ist, dass nicht in irgendeinem FHEM-Modul außerhalb eines privaten Package die Namen von externen Perl-Modulen überschrieben werden. Denn das hat unvorhersehbare Konsequenzen.

Die sub XMLin in dem 72_FRITZBOX.pm muss also entweder in ein eigenes Package, oder umbenannt werden.

Ich fürchte, da muss Jörg mal ran.

LG

pah

JoWiemann

Hallo,

XMLin schaue ich mir nächste Woche an.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM