72_FRITZBOX.pm wird zu 72_Fritz.pm

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

Vorheriges Thema - Nächstes Thema

elektron-bbs

#15
Mir sind zwei Sachen aufgefallen:
08.20.20 Beta
Undefined subroutine &main::localtime called at ./FHEM/72_Fritz.pm line 15983.
2026.03.03 15:57:41 2: [FritzBox_7590_Test | 7590 | 154.08.21 | Readout_Aborted.9472] - SIGNIFICANT:Error: [144 | BlockingStart]
Ich habe "main::localtime" durch "localtime" ersetzt. Das kommt im Code 4 mal vor. Ob es an allen Stellen so ersetzt werden kann, weiß ich nicht.

08.20.10 Beta
2026.03.03 12:57:29 3: [FritzBox_7590_Test | 7590 | 154.08.21 | Attr_Modul.2086] - BASIC:Attr set disableFonInfo -> Neustart internal Timer - APICHECKED = 1
Can't use string ("</UPnPError>") as an ARRAY ref while "strict refs" in use at ./FHEM/72_Fritz.pm line 10218.
2026.03.03 12:57:43 2: [FritzBox_7590_Test | 7590 | 154.08.21 | Readout_Aborted.9421] - SIGNIFICANT:Error: [144 | BlockingStart] Timeout during API check.
Die Zeile hatte ich auskommentiert, da ich nicht nachvollziehen konnte, wodurch es hervorgerufen wird.

EDIT:
Ich vermute mal, das "main::time" auch falsch ist:
            my $RebootTime = main::strftime("%H:%M",main::localtime(main::time() + ($val[0] * 60)));
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

#16
Hallo elektron-bbs,

vielen dank für die Hinweise.

anbei eine neue "08.20.20b Beta".

Ich bin nochmal alle main:: Referenzen durchgegangen. Ich hatte wirklich fast alle Zeit/Datum Funktionen auf main:: referenziert.

08.20.10 Beta
2026.03.03 12:57:29 3: [FritzBox_7590_Test | 7590 | 154.08.21 | Attr_Modul.2086] - BASIC:Attr set disableFonInfo -> Neustart internal Timer - APICHECKED = 1
Can't use string ("</UPnPError>") as an ARRAY ref while "strict refs" in use at ./FHEM/72_Fritz.pm line 10218.
2026.03.03 12:57:43 2: [FritzBox_7590_Test | 7590 | 154.08.21 | Readout_Aborted.9421] - SIGNIFICANT:Error: [144 | BlockingStart] Timeout during API check.

war noch eine falsche Array Referenz.

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

betateilchen

Zitat von: rabehd am 03 März 2026, 15:08:58
Zitat von: JoWiemann am 03 März 2026, 14:52:22aber man beachte Groß/Klein-Schreibung: 72_Fritz.pm

Cannot load module Fritz

Es kommt darauf an, was Du HIER schreibst:

defmod FritzBox_n FRITZ 192.168.xx.xx
An der Stelle kommt es auf Groß-/Kleinschreibung an.

defmod FritzBox_n Fritz 192.168.xx.xx
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

elektron-bbs

Jetzt hast du aber zu viel geändert:
           Fritz_Readout_Add_Reading $hash, $roReadings, $rName . "_last_negotiation", (strftime "%d-%m-%Y %H:%M:%S", localtime($_->{connected_since}));
sollte schon so bleiben:
           Fritz_Readout_Add_Reading $hash, $roReadings, $rName . "_last_negotiation", (main::strftime "%d-%m-%Y %H:%M:%S", localtime($_->{connected_since}));
Das dürfte auch wieder alle "strftime" betreffen.
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

Zitat von: betateilchen am 03 März 2026, 17:30:42An der Stelle kommt es auf Groß-/Kleinschreibung an.

Vielleicht hängt der Fehler ja auch damit zusammmen, das im Modul überall noch "FRITZBOX" steht:
     return "FRITZBOX-define: define <name> FRITZBOX <IP address | DNS name>" if(@args != 3);
     $hash->{INFO_DEFINE} = "Please redefine Device: defmod <name> FRITZBOX <IP address | DNS name>" if @args == 2;
     return "FRITZBOX-define: define <name> FRITZBOX <IP address | DNS name>" if(@args < 2 || @args > 3);
Das geht dann in der Hilfe weiter:
<a name="FRITZBOX"></a>
<h3>FRITZBOX</h3>
      <code>define &lt;name&gt; FRITZBOX &lt;host&gt;</code>

Ein
define FritzBox_7590_Test FRITZ 192.168.178.1
hat bei mir übrigens funktioniert.


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