72_FRITZBOX: Sperren/Entsperren von Netzwerkgeräten / DECT Telefonen u weiteres

Begonnen von JoWiemann, 25 Januar 2021, 10:30:32

Vorheriges Thema - Nächstes Thema

RalfRog

Ne lass ruhig so wie Du das geplant hast.
Mir war halt nicht klar, ob ich die aktuellen Forks (jetzt 0.2.7a) auch für die  7.29 (auf 7590) nehmen kann.

Ich hatte den Fork 0.2.6a mit meiner 7.29 genutzt (bzw. erstmalig ausprobiert) und damit bei der Abfrage "get <name> luaInfo <landevices>" einen FHEM Restart ausgelöst mit diesem Logeintrag:

2022.12.06 16:35:05.225 1: PERL WARNING: Subroutine SOAP::Transport::HTTP::Client::get_basic_credentials redefined at ./FHEM/72_FRITZBOX.pm l$
Can't use string ("globe_online") as a HASH ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 6072.
2022.12.06 16:38:45.754 1: Including fhem.cfg
2022.12.06 16:38:45.872 3: telnetPort: port 7072 opened


Der Fork 0.2.5 hat mit der Abfrage "get <name> luaInfo <landevices>" ein korrektes Ergebnis geliefert. Im Ergebnis sieht man, dass "globe_online" offensichtlich das Icon aus der Webobefläche meint.

Wo sollen solche Infos/Fehler hin (also aktueller Fork und alte Version 7.29 (auf 7590)) ??


Edit
Zitat von: JoWiemann am 08 Dezember 2022, 07:21:32
Wenn gewünscht kann ich das Modul auch weiterhin hier parallel einstellen, um die Kompatibilität zu zeigen.
Oder eigentlich ja. Aus meiner Erstnutzersicht macht das Sinn.
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Zitat von: RalfRog am 08 Dezember 2022, 10:55:13

Der Fork 0.2.5 hat mit der Abfrage "get <name> luaInfo <landevices>" ein korrektes Ergebnis geliefert. Im Ergebnis sieht man, dass "globe_online" offensichtlich das Icon aus der Webobefläche meint.


Hallo Ralf,

ich habe hier: https://forum.fhem.de/index.php?topic=130637.msg1248865#msg1248865 den FB-Fork 0.2.8 hochgeladen. Es wäre schön, wenn Du den nochmal mit Deiner FritzOS Version testen könntest.

Danke Dir.

PS: Spezifische FritzOS 7.50 Themen würde ich nur im neuen Thread sehen. Alles Andere weiterhin hier.
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

RalfRog

Soo..  Vorbereitung:

  • verbose 3
  • FrtizBox 7590 mit 7.29
  • 72_FRITZBOX.pm nach /opt/fhem/FHEM kopiert
  • reload 72_FRITZBOX.pm
  • set <name> checkAPIs (Weboberfläche)

Zur Info Teile der Logdatei von "reload 72_FRITZBOX.pm"

2022.12.08 16:55:26.110 1: PERL WARNING: Subroutine FRITZBOX_Log redefined at ./FHEM/72_FRITZBOX.pm line 168.
2022.12.08 16:55:26.113 1: PERL WARNING: Subroutine FRITZBOX_Initialize redefined at ./FHEM/72_FRITZBOX.pm line 182.
2022.12.08 16:55:26.116 1: PERL WARNING: Subroutine FRITZBOX_Define redefined at ./FHEM/72_FRITZBOX.pm line 226.
2022.12.08 16:55:26.119 1: PERL WARNING: Subroutine FRITZBOX_Undefine redefined at ./FHEM/72_FRITZBOX.pm line 284.
2022.12.08 16:55:26.121 1: PERL WARNING: Subroutine FRITZBOX_Delete redefined at ./FHEM/72_FRITZBOX.pm line 301.
2022.12.08 16:55:26.122 1: PERL WARNING: Subroutine FRITZBOX_Rename redefined at ./FHEM/72_FRITZBOX.pm line 312.
2022.12.08 16:55:26.127 1: PERL WARNING: Subroutine FRITZBOX_Attr redefined at ./FHEM/72_FRITZBOX.pm line 326.
2022.12.08 16:55:26.176 1: PERL WARNING: Subroutine FRITZBOX_Set redefined at ./FHEM/72_FRITZBOX.pm line 399.
2022.12.08 16:55:26.193 1: PERL WARNING: Subroutine FRITZBOX_Get redefined at ./FHEM/72_FRITZBOX.pm line 1305.
2022.12.08 16:55:26.202 1: PERL WARNING: Subroutine FRITZBOX_Readout_Start redefined at ./FHEM/72_FRITZBOX.pm line 1530.
2022.12.08 16:55:26.214 1: PERL WARNING: Subroutine FRITZBOX_API_Check_Run redefined at ./FHEM/72_FRITZBOX.pm line 1596.
2022.12.08 16:55:26.231 1: PERL WARNING: Subroutine FRITZBOX_Readout_Run_Shell redefined at ./FHEM/72_FRITZBOX.pm line 1827.
2022.12.08 16:55:26.267 1: PERL WARNING: "my" variable $strCurl masks earlier declaration in same scope at ./FHEM/72_FRITZBOX.pm line 2656.
2022.12.08 16:55:26.285 1: PERL WARNING: Subroutine FRITZBOX_Readout_Run_Web redefined at ./FHEM/72_FRITZBOX.pm line 2157.
2022.12.08 16:55:26.297 1: PERL WARNING: Subroutine FRITZBOX_Readout_Done redefined at ./FHEM/72_FRITZBOX.pm line 2812.
2022.12.08 16:55:26.306 1: PERL WARNING: Subroutine FRITZBOX_Readout_Process redefined at ./FHEM/72_FRITZBOX.pm line 2835.
2022.12.08 16:55:26.311 1: PERL WARNING: Subroutine FRITZBOX_Readout_Aborted redefined at ./FHEM/72_FRITZBOX.pm line 2980.
2022.12.08 16:55:26.317 1: PERL WARNING: Subroutine FRITZBOX_Readout_Format redefined at ./FHEM/72_FRITZBOX.pm line 2991.
2022.12.08 16:55:26.322 1: PERL WARNING: Subroutine FRITZBOX_Readout_Add_Reading redefined at ./FHEM/72_FRITZBOX.pm line 3095.
2022.12.08 16:55:26.329 1: PERL WARNING: Subroutine FRITZBOX_Set_Cmd_Start redefined at ./FHEM/72_FRITZBOX.pm line 3105.
2022.12.08 16:55:26.333 1: PERL WARNING: Subroutine FRITZBOX_Set_Cmd_Done redefined at ./FHEM/72_FRITZBOX.pm line 3207.
2022.12.08 16:55:26.335 1: PERL WARNING: Subroutine FRITZBOX_Set_Cmd_Aborted redefined at ./FHEM/72_FRITZBOX.pm line 3241.
2022.12.08 16:55:26.342 1: PERL WARNING: Subroutine FRITZBOX_Call_Run_Shell redefined at ./FHEM/72_FRITZBOX.pm line 3250.
2022.12.08 16:55:26.352 1: PERL WARNING: Subroutine FRITZBOX_Call_Run_Web redefined at ./FHEM/72_FRITZBOX.pm line 3413.
2022.12.08 16:55:26.356 1: PERL WARNING: Subroutine FRITZBOX_GuestWlan_Run_Shell redefined at ./FHEM/72_FRITZBOX.pm line 3591.
2022.12.08 16:55:26.361 1: PERL WARNING: Subroutine FRITZBOX_GuestWlan_Run_Web redefined at ./FHEM/72_FRITZBOX.pm line 3641.
2022.12.08 16:55:26.364 1: PERL WARNING: Subroutine FRITZBOX_Wlan_Run_Shell redefined at ./FHEM/72_FRITZBOX.pm line 3714.
2022.12.08 16:55:26.369 1: PERL WARNING: Subroutine FRITZBOX_Wlan_Run_Web redefined at ./FHEM/72_FRITZBOX.pm line 3757.
2022.12.08 16:55:26.381 1: PERL WARNING: Subroutine FRITZBOX_Ring_Run_Shell redefined at ./FHEM/72_FRITZBOX.pm line 3816.
2022.12.08 16:55:26.400 1: PERL WARNING: Subroutine FRITZBOX_Ring_Run_Web redefined at ./FHEM/72_FRITZBOX.pm line 4067.
2022.12.08 16:55:26.407 1: PERL WARNING: Subroutine FRITZBOX_Set_Alarm_Shell redefined at ./FHEM/72_FRITZBOX.pm line 4439.
2022.12.08 16:55:26.411 1: PERL WARNING: Subroutine FRITZBOX_Set_Alarm_Web redefined at ./FHEM/72_FRITZBOX.pm line 4514.
2022.12.08 16:55:26.418 1: PERL WARNING: Subroutine FRITZBOX_SetMOH redefined at ./FHEM/72_FRITZBOX.pm line 4585.
2022.12.08 16:55:26.422 1: PERL WARNING: Subroutine FRITZBOX_SetCustomerRingTone redefined at ./FHEM/72_FRITZBOX.pm line 4687.
2022.12.08 16:55:26.425 1: PERL WARNING: Subroutine FRITZBOX_ConvertMOH redefined at ./FHEM/72_FRITZBOX.pm line 4740.
2022.12.08 16:55:26.428 1: PERL WARNING: Subroutine FRITZBOX_ConvertRingTone redefined at ./FHEM/72_FRITZBOX.pm line 4771.
2022.12.08 16:55:26.432 1: PERL WARNING: Subroutine FRITZBOX_SendMail_Shell redefined at ./FHEM/72_FRITZBOX.pm line 4802.
2022.12.08 16:55:26.437 1: PERL WARNING: Subroutine FRITZBOX_StartRadio_Shell redefined at ./FHEM/72_FRITZBOX.pm line 4857.
2022.12.08 16:55:26.441 1: PERL WARNING: Subroutine FRITZBOX_StartRadio_Web redefined at ./FHEM/72_FRITZBOX.pm line 4928.
2022.12.08 16:55:26.444 1: PERL WARNING: Subroutine FRITZBOX_Shell_Query redefined at ./FHEM/72_FRITZBOX.pm line 5015.
2022.12.08 16:55:26.447 1: PERL WARNING: Subroutine FRITZBOX_Shell_Exec redefined at ./FHEM/72_FRITZBOX.pm line 5054.
2022.12.08 16:55:26.450 1: PERL WARNING: Subroutine FRITZBOX_Shell_Exec_Local redefined at ./FHEM/72_FRITZBOX.pm line 5077.
2022.12.08 16:55:26.454 1: PERL WARNING: Subroutine FRITZBOX_Shell_Exec_Telnet redefined at ./FHEM/72_FRITZBOX.pm line 5124.
2022.12.08 16:55:26.461 1: PERL WARNING: Subroutine FRITZBOX_Telnet_OpenCon redefined at ./FHEM/72_FRITZBOX.pm line 5184.
2022.12.08 16:55:26.463 1: PERL WARNING: Subroutine FRITZBOX_Telnet_CloseCon redefined at ./FHEM/72_FRITZBOX.pm line 5303.
2022.12.08 16:55:26.468 1: PERL WARNING: Subroutine FRITZBOX_TR064_Cmd redefined at ./FHEM/72_FRITZBOX.pm line 5322.
2022.12.08 16:55:26.475 1: PERL WARNING: Subroutine FRITZBOX_TR064_Get_ServiceList redefined at ./FHEM/72_FRITZBOX.pm line 5399.
2022.12.08 16:55:26.479 1: PERL WARNING: Subroutine SOAP::Transport::HTTP::Client::get_basic_credentials redefined at ./FHEM/72_FRITZBOX.pm line 5547.
2022.12.08 16:55:26.480 1: PERL WARNING: Subroutine FRITZBOX_TR064_Init redefined at ./FHEM/72_FRITZBOX.pm line 5511.
2022.12.08 16:55:26.483 1: PERL WARNING: Subroutine FRITZBOX_Web_OpenCon redefined at ./FHEM/72_FRITZBOX.pm line 5555.
2022.12.08 16:55:26.487 1: PERL WARNING: Subroutine FRITZBOX_Web_CmdPost redefined at ./FHEM/72_FRITZBOX.pm line 5602.
2022.12.08 16:55:26.490 1: PERL WARNING: Subroutine FRITZBOX_Web_CmdGet redefined at ./FHEM/72_FRITZBOX.pm line 5663.
2022.12.08 16:55:26.494 1: PERL WARNING: Subroutine FRITZBOX_Web_Query redefined at ./FHEM/72_FRITZBOX.pm line 5702.
2022.12.08 16:55:26.524 1: PERL WARNING: Subroutine FRITZBOX_storePassword redefined at ./FHEM/72_FRITZBOX.pm line 6433.
2022.12.08 16:55:26.527 1: PERL WARNING: Subroutine FRITZBOX_readPassword redefined at ./FHEM/72_FRITZBOX.pm line 6463.
2022.12.08 16:55:26.530 1: PERL WARNING: Subroutine FRITZBOX_fritztris redefined at ./FHEM/72_FRITZBOX.pm line 6504.


Ausführen von get <name> luaInfo <landevices> auf der Weboberfläche => Fhem beendet sich und startet neu.
Das Log schließt an die obige Ausgabe an.

Die Zeile 1 "Can't use string ("globe_online") as a HASH ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 6213." kam zum Absturz.

Interessant vielleicht am Ende "2022.12.08 16:57:33.692 1: PERL WARNING...."

Can't use string ("globe_online") as a HASH ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 6213.
2022.12.08 16:57:24.247 1: Including fhem.cfg
2022.12.08 16:57:24.367 3: telnetPort: port 7072 opened
2022.12.08 16:57:25.090 3: WEB: port 8083 opened
2022.12.08 16:57:25.101 3: WEBphone: port 8084 opened
2022.12.08 16:57:25.109 3: WEBtablet: port 8085 opened
2022.12.08 16:57:25.795 2: eventTypes: loaded 4512 lines from ./log/eventTypes.txt
2022.12.08 16:57:26.045 3: Opening nanoCUL1 device /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AL00F4TK-if00-port0
2022.12.08 16:57:26.141 3: Setting nanoCUL1 serial parameters to 38400,8,N,1
2022.12.08 16:57:29.316 3: nanoCUL1: Possible commands: ABCeFfGiKLlMNRTtUVWXx
2022.12.08 16:57:29.332 3: nanoCUL1 device opened
2022.12.08 16:57:29.348 3: Opening cubeCUL_stk1 device 10.20.:2323
2022.12.08 16:57:29.474 3: cubeCUL_stk1: Possible commands: BbCFiAZNEkGMKLUYRTVWXefhltxz*
2022.12.08 16:57:29.491 3: cubeCUL_stk1 device opened
2022.12.08 16:57:29.505 2: Switched cubeCUL_stk1 rfmode to HomeMatic
2022.12.08 16:57:29.652 3: cubeCUL_stk2: Possible commands: bCFiAZNEGMKLUYRTVWXfz
2022.12.08 16:57:29.667 2: Switched cubeCUL_stk2 rfmode to SlowRF
2022.12.08 16:57:32.504 3: TelegramBot_Define teleBot: called
2022.12.08 16:57:33.692 1: PERL WARNING: "my" variable $strCurl masks earlier declaration in same scope at ./FHEM/72_FRITZBOX.pm line 2656, <$fh> line 1051.
2022.12.08 16:57:39.899 3: FUIP: Registering ui for URL /ui
...


Reicht das soweit erstmal?
Edit:
doch nur Verbose 2, brauchst du mehr?
in 0.2.5 gings noch; ich interpretiere globe_online als Beschreibung des Icon da es in der Ausgabe von 0.2.5 zusätzlich noch dot_green (oder so ähnlich) gab
-> siehe Screenshot

Frage eines Nichtprogrammmierers zum Verständnis:
Habe unter der 0.2.4 mit set/get tr064Command und get <name> luaQuery <Command> rumgespielt ohne auf Restarts zu achten. Im Nachhinein sind mir dann 7-8 Resatarts vom FHEM aufgefallen (Umstände kann ich nicht mehr benennen). Aber bei all diesen Abfragen liefert die FritzBox doch eigentlich nur Text zurück (strukturiert in XML/JSON oder ähnlich) der dann in Variablen? gespeichert wird.
Wieso führt das zu den Restarts bzw. warum lässt sich das nicht abfangen?


FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Hallo Ralf,

danke für das Testen. Es wäre schön, wenn Du mal die angehängte Version testen könntest.

Danke Dir.
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

RalfRog

Wieder ein FHEM Restart
Ich stelle die Log Daten mit verbose 5 in die nächste Antwort

Gruß Ralf


Edit:
uuups verbose 5 ist etwas heftig. Mal sehen ob ich die relevanten Einträge finde...
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

RalfRog

Im Prinzip hatte ich den gleichen Ablauf wie beim Test davor

  • FritzBox 7590 mit 7.29
  • verbose 5
  • 72_FRITZBOX.pm nach /opt/fhem/FHEM kopiert
  • reload 72_FRITZBOX.pm
  • set <name> checkAPIs (Weboberfläche)
Leider ist der Log seeehr voll mit verbose 5 aufgrund der normalen Abfragen  :(

Dann auf der Weboberfläche "get <name> luaInfo <landevices>"

Dann kommt direkt der Restart mit dem Eintag "Can't use string" davor (ist gleich zum letzten Test):

Can't use string ("globe_online") as a HASH ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 6213.
2022.12.08 22:48:54.081 1: Including fhem.cfg
....


.... da ist das Tool mit der Menge an Text wohl überfordert  :-\
Alles weg was ich eingetragen hatte.


Der JSON String enthält bei den "active" Devices (vielleicht liegt das Problem da):

  • 'state' => 'globe_online'
  • 'state' => 'globe_notallowed'
  • 'state' => 'led_green'

Ich stelle meine Loginhalte als angehängte Textdatei zur Verfügung.
* die Abfrage => get_luaInfo_lanDevices.txt
* die Antwort => Decode_JSON_string.txt
*dann folgt der Restart siehe Code Block oben.
  Auffällig ein weiterer Restart nach 4 Minuten ohne Eingaben meineseits (ausser demVersuch das Attribut verbose umzustellen).

Log:
2022.12.08 22:54:07.089 3: FHEMWEB WEB CSRF error: csrf_720271012000321 ne csrf_289656299782733 for client WEB_10.20.62019 / command {AttrVal("Fritzbox","verbose","")}. For details see the csrfToken FHEMWEB attribute.
2022.12.08 22:54:07.102 3: FHEMWEB WEB CSRF error: csrf_720271012000321 ne csrf_289656299782733 for client WEB_10.20.62021 / command {AttrVal("Fritzbox","verbose","")}. For details see the csrfToken FHEMWEB attribute.
2022.12.08 22:54:11.144 3: FHEMWEB WEB CSRF error: csrf_720271012000321 ne csrf_289656299782733 for client WEB_10.20._62019 / command attr Fritzbox verbose 2. For details see the csrfToken FHEMWEB attribute.
Can't use string ("globe_online") as a HASH ref while "strict refs" in use at ./FHEM/72_FRITZBOX.pm line 6213.
2022.12.08 22:54:14.854 1: Including fhem.cfg
2022.12.08 22:54:14.970 3: telnetPort: port 7072 opened


Danach läuft es



FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Hallo Ralf,

ich glaube ich haben meinen Knoten im Hirn gefunden. Bitte noch einmal testen. Danke Dir.

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

RalfRog

Vorgehen wie gehabt - et fluppt  :)


LanDevices: Active
------------------
MAC IPv4 UID NAME STATUS INFO
54:A0:50:52:00:00 10.00.00.xx landevice5344 PC globe_online
B8:27:EB:39:00:00 10.00.00.xx landevice5346 raspi globe_online
00:80:41:23:00:00 10.00.00.xx landevice5351 cube globe_notallowed
CC:50:E3:55:00:00 10.00.00.xx landevice559470 ESP-2 led_green
3C:61:05:DF:00:00 10.00.00.xx landevice466755 shellyplug globe_notallowed durch Kindersicherung gesperrt
...

LanDevices: Passive
-------------------
MAC IPv4 UID NAME STATUS INFO
7C:FF:4D:14:00:00 10.00.00.yy landevice2202 Fritz7490
4C:B1:99:81:00:00 10.00.00.yy landevice1794 iPad
8E:5F:7D:0C:00:00 10.00.00.yy landevice907223 Samsung
...
netDev


so sah es in 0.2.5 auch aus

Edit


  • Wenn ich es richtig sehe ist "box_connnect" mit Text (connected) statt Zahlen befüllt. Ich meine im Code zu erkennen das "box_connnect" aus "tr064Command WANPPPConnection:1" geholt wird.
    Da kann ich das UserReading "get Fritzbox tr064Command WANPPPConnection:1 wanpppconn1 GetInfo" ja löschen.

  • Das Attribut "enableUserInfo <0 | 1>" habe ich nicht ganz verstanden. Weder mit 0 noch mit 1 verschwindet mein UserReading.
    Im Gegensatz dazu ist "enableAlarmInfo <0 | 1>" gleich ersichtlich.

    P.S.
    Doch verstanden: die Reading die mit User starten sind weg. Ich hatte mich (glaub ich) durch den englischen Text der Commanref in die Irre leite lassen; dort stand was von User Reading?

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Zitat von: RalfRog am 09 Dezember 2022, 16:33:31
Vorgehen wie gehabt - et fluppt  :)
...
Gruß Ralf

Hallo Ralf,

danke für Deine Geduld, die ich vielleicht noch einmal strapazieren darf. Angehängt habe ich eine Version wo folgendes verfügbar ist:

set <FritzBox> macFilter on|off

Mit diesem neuen Set kann der MAC Filter (neue WLAN Geräte zulassen oder nur bekannte) eingeschaltet oder abgeschaltet werden. Es wäre schön, wenn Du das mit Deiner FritzOS Version einmal testen könntest. Danke Dir.

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

RalfRog

Blöd bei mir ist halt -> Tests am Lifesystem (habe noch gar nicht geschaut ob es Datenverfälschungen am EVU-Zähler oder meiner MiniPV gab).

Melde mich zurück.

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

RalfRog

erste Ergebnisse

Vorbereitung
=> 72_FRITZBOX.pm nach /opt/fhem/FHEM kopiert
=> reload 72_FRITZBOX.pm mit den allgegenwätigen "PERL WARNING: Subroutine FRITZBOX_WasAuchImmer redefined")
=> verbose 3

set <name> checkAPIs ==> einmal Timeout
2022.12.09 22:24:51.617 1: FRITZBOX [Fritzbox: Readout_Start.1710] - INFO: Old readout process still running. Killing old process HASH(0x809da68)
2022.12.09 22:24:51.618 1: Timeout for FRITZBOX_Readout_Run_Web reached, terminated process 27493
2022.12.09 22:24:51.636 1: FRITZBOX [Fritzbox: Readout_Aborted.3127] - INFO: Error: Timeout when reading Fritz!Box data.


Einen solchen Eintrag gab es heute nachmittag (und gestern) beim  Ausführen nicht.
Ein zweiter Durchlauf ohne einen solchen Timeout

set <name> update ==> ok
2022-12-09 22:36:01.735 FRITZBOX Fritzbox update
2022-12-09 22:36:03.731 FRITZBOX Fritzbox mac_24_6F_28_xx_yy_zz: ESP32 [landevice1748872] (WLAN, 28 / 26 Mbit/s, -75)
2022-12-09 22:36:03.731 FRITZBOX Fritzbox mac_4A_32_0D_xx_yy_zz: iPad2 [landevice2205] (WLAN, 390 / 195 Mbit/s, -82)
2022-12-09 22:36:03.731 FRITZBOX Fritzbox mac_3C_61_05_xx_yy_zz: shellyplug-s-DF2674 [landevice466755] (WLAN, 14 / 18 Mbit/s, -83)
2022-12-09 22:36:03.731 FRITZBOX Fritzbox mac_CC_50_E3_xx_yy_zz: ESP-2 [landevice559470] (WLAN, 65 / 36 Mbit/s, -79)
2022-12-09 22:37:33.504 FRITZBOX Fritzbox mac_4A_32_0D_xx_yy_zz: iPad2 [landevice2205] (WLAN, 240 / 195 Mbit/s, -79)
2022-12-09 22:37:33.504 FRITZBOX Fritzbox mac_24_6F_28_xx_yy_zz: ESP32 [landevice1748872] (WLAN, 39 / 26 Mbit/s, -75)


Allerdings wird z.B. das Internal "VERSION FB-Fork 0.2.8a" nicht aktualisiert auf 0.2.9 -> das war heute Nachmittag der Fall
Schenke mir den Restart aber jetzt mal...

Tests  siehe weiter unten Abschluss, da hat es dann doch noch Restarts gegeben:

set <name> macFilter <off> (LUA?) ==> scheint ok
Reading vor Test "box_macFilter_active   on"
Ausgabe in der Webobefläche von FHEM
$VAR1 = {
          'sid' => '8ffe02064c45fd68',
          'box_macFilter_active' => '0'
        };
zurück zu den Details FritzBox


Reading nach Test "box_macFilter_active   off"      

=> Zurückstellen geht auch und die Oberfläche der FritzBox ist analog dazu


set <name> guestWlan <on|off>    (tr064Command)
set <name> wlan5 <on|off>           (tr064Command)
set <name> wlan2.4<on|off>         (tr064Command)
set <name> ring <intNumbers>       (tr064Command)
=> funktioniert (ich denke im ursprünglichen Modul schon vorhanden)


set <name> lockLandevice <number> <on|off> ==> Fehler
Ausgabe Weboberfläche FHEM
Error while setting locklandevice: landevice443370

Log
2022.12.09 23:23:10.531 3: FRITZBOX [Fritzbox: Set.1032] - INFO: set Fritzbox lockLandevice xhr 1 kisi_profile filtprof1 dev landevice443370 lang de page edit_device2 block_dev
2022.12.09 23:23:13.872 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/72_FRITZBOX.pm line 6484.
2022.12.09 23:23:13.873 1: PERL WARNING: Use of uninitialized value $jsonMsgId in concatenation (.) or string at ./FHEM/72_FRITZBOX.pm line 6506.
2022.12.09 23:23:13.875 1: PERL WARNING: Use of uninitialized value $jsonMsgId in string eq at ./FHEM/72_FRITZBOX.pm line 6507.



get <name> lanDeviceInfo <number> ==> Fehler
2022.12.09 23:38:06.437 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/72_FRITZBOX.pm line 6487.

Bei einem zweiten Versuch (immer noch Verbose 3) passiert gar nichts mehr.
In der Detailansicht belibt auch der Parameter <number> in der Anzeige stehen.


Neuer Versuch mit Verbose 5 vorher; welches Ergebnis/Ausgabe soll die Abfrage denn liefern?
Fritzbox lanDeviceInfo landevice4398070   ==> wie soll Ergebis aussehen?

2022.12.09 23:52:29.390 4 : FRITZBOX [Fritzbox: Proof_Params.1618] - INFO: set Fritzbox lanDeviceInfo f�r Version: 07.29
2022.12.09 23:52:29.392 4 : FRITZBOX [Fritzbox: Proof_Params.1633] - INFO: Fritzbox lanDeviceInfo landevice4398070
2022.12.09 23:52:29.394 4 : FRITZBOX [Fritzbox: Lan_Device_Info.6421] - INFO: LanDevice to proof: landevice4398070 for lock: info
2022.12.09 23:52:29.396 4 : FRITZBOX [Fritzbox: Lan_Device_Info.6449] - INFO: FRITZBOX_Lan_Device_Info f�r Version: 07.29
2022.12.09 23:52:29.397 4 : FRITZBOX [Fritzbox: Lan_Device_Info.6459] - INFO: set Fritzbox info xhr 1 xhrId
2022.12.09 23:52:29.399 5 : FRITZBOX [Fritzbox: Lan_Device_Info.6477] - INFO: get Fritzbox info 'xhr' => '1'
'xhrId' => 'all'
'backToPage' => 'netDev'
'dev' => 'landevice4398070'
'initalRefreshParamsSaved' => 'true'
'lang' => 'de'
'page' => 'edit_device'
2022.12.09 23:52:29.401 4 : FRITZBOX [Fritzbox: Web_OpenCon.5726] - INFO: using old SID from 1670626264.25028
2022.12.09 23:52:29.403 4 : FRITZBOX [Fritzbox: Lua_Data.6009] - INFO: Request data via API dataQuery.
2022.12.09 23:52:29.404 4 : FRITZBOX [Fritzbox: Lua_Data.6013] - INFO: URL: http://10.20./data.lua?sid=8ffe02064c45fd68
2022.12.09 23:52:31.634 4 : FRITZBOX [Fritzbox: Lua_Data.6018] - INFO: Response: 200 OK
{"pid":"overview","hide":{"rss":true,"mobile":true,"provServ":true,"liveTv":true,"dectMail":true,"dectRdio":true,"ssoSet":true,"liveImg":true},"time":[],"data":{"naslink":"nas","fritzos":......jede Menge noch
2022.12.09 23:52:31.649 5 : FRITZBOX [Fritzbox: Process_JSON.6088] - INFO: Decode JSON string.
2022.12.09 23:52:31.701 5 : FRITZBOX [Fritzbox: Process_JSON.6104] - INFO: JSON: $VAR1 = {
          'time' => [],
          'data' => {
                      'wlan' => {
                                  'led' => 'led_green',......jede Menge noch
2022.12.09 23:52:31.710 5 : FRITZBOX [Fritzbox: Lan_Device_Info.6484] - INFO: landevice: landevice4398070landevice:

Ab hier sieht es wie der regelmäßige Poll aus
2022.12.09 23:52:33.612 4 : FRITZBOX [Fritzbox: Readout_Start.1723] - INFO: Fork process FRITZBOX_Readout_Run_Web
2022.12.09 23:52:35.257 4 : FRITZBOX [Fritzbox: Readout_Done.2964] - INFO: Back at main process
2022.12.09 23:52:35.264 4 : FRITZBOX [Fritzbox: Readout_Process.2986] - INFO: Processing 332 readouts.
2022.12.09 23:52:35.267 5 : FRITZBOX [Fritzbox: Readout_Process.3063] - INFO: SET box_dect = 'on'
2022.12.09 23:52:35.269 5 : FRITZBOX [Fritzbox: Readout_Process.3070] - INFO: Ignore reading radio27.
2022.12.09 23:52:35.271 5 : FRITZBOX [Fritzbox: Readout_Process.3070] - INFO: Ignore reading dect1_custRingToneName.
2022.12.09 23:52:35.272 5 : FRITZBOX [Fritzbox: Readout_Process.3063] - INFO: SET .box_TodayBytesSentHigh = '0'
....
2022.12.09 23:57:05.397 5 : FRITZBOX [Fritzbox: Readout_Process.3070] - INFO: Ignore reading radio08.
2022.12.09 23:57:05.398 5 : FRITZBOX [Fritzbox: Readout_Process.3070] - INFO: Ignore reading radio21.
2022.12.09 23:57:05.399 5 : FRITZBOX [Fritzbox: Readout_Process.3095] - INFO: SET state = 'WLAN: on gWLAN: off'
2022.12.09 23:57:05.400 4 : FRITZBOX [Fritzbox: Readout_Process.3113] - INFO: 334 values captured in 1.50 s


Abschluss
Habe dann doch noch einen Restart von FHEM zu Fuss ausgelöst, teilweise abweichendes Ergebnis mit Restart

  • sudo systemctl stop fhem /  sudo systemctl start fhem
  • Default ist verbose 2 für die FritzBox
  • Bei den Hochlaufmeldungen kommt:"PERL WARNING: "my" variable $strCurl masks earlier declaration in same scope at ./FHEM/72_FRITZBOX.pm line 2797, <$fh> line 1051."
  • :) VERSION FB-Fork 0.2.9

  • Fritzbox lanDeviceInfo landevice4398070
    * keine Reaktion in Webobefläche
    * beim ersten Aufruf
    2022.12.10 00:22:43.403 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/72_FRITZBOX.pm line 6484.
    2022.12.10 00:22:43.405 1: PERL WARNING: Use of uninitialized value in string eq at ./FHEM/72_FRITZBOX.pm line 6487.
  • erneute Aufrufe "lanDeviceInfo" bringen keine Logeinträge mehr

  • Test von "set Fritzbox lockLandevice landevice443370 on"     => Restart
Restart von FHEM mit Logeintrag unmittelbar davor (Zeitversatz duch Restart):
2022.12.10 00:30:40.702 3: FRITZBOX [Fritzbox: Set.1032] - INFO: set Fritzbox lockLandevice xhr 1 kisi_profile filtprof1 dev landevice443370 lang de page edit_device2 block_dev
2022.12.10 00:30:43.037 1: PERL WARNING: Use of uninitialized value $jsonMsgId in concatenation (.) or string at ./FHEM/72_FRITZBOX.pm line 6506.
2022.12.10 00:30:43.039 1: PERL WARNING: Use of uninitialized value $jsonMsgId in string eq at ./FHEM/72_FRITZBOX.pm line 6507.
Can't call method "Dumper" on unblessed reference at ./FHEM/72_FRITZBOX.pm line 6148.

Problem ist wiederholbar
2022.12.10 00:39:16.978 3: FRITZBOX [Fritzbox: Set.1032] - INFO: set Fritzbox lockLandevice xhr 1 kisi_profile filtprof1 dev landevice443370 lang de page edit_device2 block_dev
2022.12.10 00:39:19.380 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/72_FRITZBOX.pm line 6484.
2022.12.10 00:39:19.381 1: PERL WARNING: Use of uninitialized value $jsonMsgId in concatenation (.) or string at ./FHEM/72_FRITZBOX.pm line 6506.
2022.12.10 00:39:19.383 1: PERL WARNING: Use of uninitialized value $jsonMsgId in string eq at ./FHEM/72_FRITZBOX.pm line 6507.
Can't call method "Dumper" on unblessed reference at ./FHEM/72_FRITZBOX.pm line 6148.
2022.12.10 00:39:23.037 1: Including fhem.cfg
2022.12.10 00:39:23.151 3: telnetPort: port 7072 opened


ALs Letztes habe dann noch "set <name> macFilter <off>" wiederholt. Es kam ebenfalls zum Restart aber der Parameter wurde in der FritzBox von ON auf OFF gesetzt. Das versehrntlich vorher ausgefühte ON brachte die Meldung in der WEboberfläche , dass nicht zu ändern sei.
Logeintrag vor Restart:
Can't call method "Dumper" on unblessed reference at ./FHEM/72_FRITZBOX.pm line 6148.
2022.12.10 00:49:23.826 1: Including fhem.cfg
2022.12.10 00:49:23.943 3: telnetPort: port 7072 opened


Ich hör mal auf und warte auf ne Rückmeldung Gruß Ralf


Aufgrund der Meldung zur Methode Dumper habe ich mal das Modul "Installer" befragt

perlVersion    5.028001

Perl Packages Name    Importance    Status    Action
Blocking              required      included   
FritzBoxUtils         required      included   
HttpUtils             required      included   
strict                required      built-in   
warnings              required      built-in   
Data::Dumper          suggested     built-in   
Digest::MD5           suggested     built-in   
IO::Socket::SSL [inherited]   suggested   installed   
JSON                  suggested     installed   
LWP::UserAgent        suggested     installed   
MIME::Base64          suggested     built-in   
Net::Telnet           suggested     installed   
SOAP::Lite            suggested     installed   
URI::Escape           suggested     installed



FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Hallo Ralf,

vielen Dank für die Unterstützung. Da werde ich mich dann mal am Sonntag durch arbeiten.

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

RalfRog

Alles klar. Bei Fragen zu einzelnen Punkten kann ich gern versuchen Antworten zu geben.
Bin in der Tat etwas über die Seiteneffekte verwundert zwischen Reload Modul ohne Restarts beim Test
und dann nach einem manuellen Restart von FHEM doch spontane Restarts beim Ausführen vom "Kommandos".
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

JoWiemann

Hallo,

falls Du nochmal testen möchtest. Ich konnte nicht alle Fehler nachstellen, habe aber in der Code Inspektion noch etwas gefunden. Anbei eine Version FB-Fork 0.2.10. Der Versions-String wird übrigens nur bei einem Fhem-Neustart aktualisiert.

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

RalfRog

Alles klar.
Ich beschränke mich mal auf einzelne Tests. Ist auch für mich übersichtlicher.

Um vom produktiven FHEM wegzukommen (re)aktiviere ich gerade meine Testinstallation von FHEM auf BullsEye (ein PI 1).

  • Ist es hilfreich den Stacktrace zu aktivieren?
  • Welcher Verbose Level soll es sein?

Gruß Ralf

FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder