FritzBox WLAN schalten funktioniert nicht, Windows 10/falsche Perl-Version

Begonnen von papr1989, 26 Juli 2021, 12:57:28

Vorheriges Thema - Nächstes Thema

papr1989

Hallo,

da ich nun ein Script für HTTPMOD gefunden habe, um bei meinen D-Link PoE-Switch die Ports schalten zu können, bin ich nun bei FHEM gelandet.

Nun wollte ich auch meine FritzBox 7490 mit integrieren um das WLAN sowie meine PoE Acces Points von meiner Homatic CCU2 aus schalten zu können.
Das mit den Accespoints klappt wunderbar.
Jedoch macht mir die Kommunikation zwischen FHEM und der FritzBox Probleme.

Bei dem FHEM Gerät für die FritzBox sehe ich den Status der WLAN-Netzwerke, sowie alle verbundenen Geräte usw.
"Lesen" funktioniert also.

Jedoch wenn ich jetzt das WLAN über den Befehl
get FritzBox tr064Command WLANConfiguration:3 wlanconfig3 SetEnable NewEnable 0
ausschalten will, bekomme ich folgenden Fehler:
Zitat'Error' => '500 Can\'t locate object method "new" via package "LWP::Protocol::https::Socket"'

Die ServiceList lässt sich auch ohne Probleme mit dem Befehl
get FritzBox tr064ServiceList
abrufen.

FHEM läuft auf einem Windows 10 PC.
Als Benutzer für die FritzBox ist mein normaler Account angegeben, mit welchem ich mich auch im Webinterface einlogge.

Ich habe bis jetzt leider noch keine Lösung für das Problem gefunden.
Ich hoffe, mir kann hier jemand weiter Helfen.

Gruß

Paul

JoWiemann

Hallo,

warum nutzt Du nicht "set FritzBox wlan on|off" ?

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

JoWiemann

Hallo,

würdest Du bitte verbose für das FritzBox_device auf 5 setzen, den Befehl ausführen und den relevanten Teil posten.

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

Otto123

Hi,

ZitatFHEM läuft auf einem Windows 10 PC.
Nachgefragt :)
direkt - mit welchem Perl?
oder in WSL unter debian?
oder als docker in Windows docker-desktop?

Einfach set FritzBox wlan on/off reicht nicht?

Der Fehler sagt eigentlich: Dir fehlt das Perl Modul LWP::Protocol::https ?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

papr1989

Also installiert habe ich FHEM bzw Perl nach folgender Anleitung:
https://wiki.fhem.de/wiki/FHEM_Installation_Windows#Installation_FHEM
Wenn Perl nicht funktionieren würde, dürfte ich doch erst gar keine Verbindung zur Fritzbox in FHEM aufbauen können?

Mit On/Off schalten führte zum selben Fehler, dachte das geht noch über Telnet. Aber wie im Log zu sehen wird da auch das TR064 Protokoll benutzt.
Also ist der
get FritzBox tr064Command WLANConfiguration:3 wlanconfig3 SetEnable NewEnable 0
gleich dem jeweiligen set Befehl.


Hier der Log

2021.07.26 15:56:54 3: FRITZBOX: set FritzBox guestWlan off
2021.07.26 15:56:54 4: FRITZBOX FritzBox: Set_Cmd_Start.2143 Fork process FRITZBOX_GuestWlan_Run_Web
2021.07.26 15:56:54 5: FRITZBOX FritzBox: readPassword.4737 Read FritzBox password from file
2021.07.26 15:56:54 4: FRITZBOX FritzBox: TR064_Cmd.4301 Perform TR-064 call - service='WLANConfiguration:3', control='wlanconfig3', action='SetEnable', parameter1='NewEnable' => '0'
2021.07.26 15:56:54 2: FRITZBOX FritzBox: TR064_Cmd.4311 TR064-Transport-Error: 500 Can't locate object method "new" via package "LWP::Protocol::https::Socket"
2021.07.26 15:56:54 5: FRITZBOX FritzBox: Web_Query.4644 Request data via API luaQuery.
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Web_Query.4652 Response: 200 OK
{"box_guestWlanRemain":"-1","box_wlan_24GHz":"1","box_guestWlan":"1","box_wlan_5GHz":"1"}

2021.07.26 15:56:55 5: FRITZBOX FritzBox: Web_Query.4675 Decode JSON string.
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Add_Reading.2045 box_wlan_2.4GHz: on
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Add_Reading.2045 box_wlan_5GHz: on
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Add_Reading.2045 box_guestWlan: on
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Add_Reading.2045 box_guestWlanRemain: -1
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Add_Reading.2045 fhem->sid: a8f3f9e4b6b16b93
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Add_Reading.2045 fhem->sidTime: 1627307815
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Add_Reading.2045 readoutTime: 1.00
2021.07.26 15:56:55 5: FRITZBOX FritzBox: GuestWlan_Run_Web.2652 Handover to main process: box_wlan_2.4GHz|on|box_wlan_5GHz|on|box_guestWlan|on|box_guestWlanRemain|-1|fhem->sid|a8f3f9e4b6b16b93|fhem->sidTime|1627307815|readoutTime|1.00
2021.07.26 15:56:55 4: FRITZBOX FritzBox: Set_Cmd_Done.2163 Back at main process
2021.07.26 15:56:55 4: FRITZBOX FritzBox: Readout_Process.1792 Processing 7 readouts.
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Process.1867 SET box_wlan_5GHz = 'on'
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Process.1867 SET box_wlan_2.4GHz = 'on'
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Process.1867 SET box_guestWlanRemain = '-1'
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Process.1867 SET box_guestWlan = 'on'
2021.07.26 15:56:55 5: FRITZBOX FritzBox: Readout_Process.1899 SET state = 'WLAN: on gWLAN: on'
2021.07.26 15:56:55 4: FRITZBOX FritzBox: Readout_Process.1917 7 values captured in 1.00 s

rabehd

ZitatWenn Perl nicht funktionieren würde,

Bei einem Auto ohne Bereifung kannst Du auch den Motor anlassen.
Auch funktionierende Lösungen kann man hinterfragen.

papr1989


Nobbynews

#7
Lt. commandref werden noch folgende Perl-Module benötigt:
ZitatDas Modul nutzt das Perlmodule 'Net::Telnet', 'JSON::XS', 'LWP', 'SOAP::Lite' für den Fernzugriff.
Sind die vorhanden? Ob die standardmäßig in Strawberry PErl enthalten sind, weiß ich nicht.

krikan

Die Umgebungsvariable PATH muss vermutlich noch angepasst werden, wenn Du Perl/FHEM nicht über "portableshell.bat" startest. Erläuterungen findest Du in der jeweiligen README.txt von strawberryperl-portable.

Gruß, Christian

Otto123

Zitat von: papr1989 am 26 Juli 2021, 16:07:08
Mit On/Off schalten führte zum selben Fehler, dachte das geht noch über Telnet. Aber wie im Log zu sehen wird da auch das TR064 Protokoll benutzt.
Seit 2015 gibt es kein OS mehr von AVM wo Telnet offiziell unterstützt wird. Ich hoffe für Deine Sicherheit, dass Du nicht so ein altes OS auf der FB hast. ;)

Du musst ein Spezialist sein, um FHEM auf Windows zu betreiben. Es gibt hier nicht viele davon. Viel Glück.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

papr1989

Danke erst mal noch für die Hilfe

Nein, keine Angst. Die Fritzbox ist auf aktuellem stand  ;)

Ich habe jetzt über die "portableshell.bat" mittels CPAN alle Module installiert.
Auch das LWP::Protocol::https::Socket Modul.
Wenn ich aber z.B. das Modul Net::Telnet installieren will kommt bekomme ich die Meldung "Net::Telnet is up to date (3.05)."
Ist quasi installiert und aktuell
Aber das LWP::Protocol::https::Socket Modul kann ich jedes mal neu installieren  ???

Habe die Umgebungsvariable angepasst.
Doch immer noch selbes Problem...

Ich habe auch FHEM aus der "portableshell.bat" heraus gestartet. Leider auch ohne Erfolg.

Wahrscheinlich wird das wohl wirklich nix mit FHEM und Windows.
Jedenfalls im vollen umfang :(

Es sei denn, jemand hat noch eine Idee

Otto123

Zitat von: papr1989 am 26 Juli 2021, 22:11:18
Aber das LWP::Protocol::https::Socket Modul kann ich jedes mal neu installieren  ???
Ich würde mich an der commandref orientieren und LWP installieren.
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

krikan

Ich habe strawberryperl ohne Anpassungen/Nachinstallationen installiert. Den besagten Fehler bekomme ich nur, wenn ich ohne portableshell.bat oder ohne PATH-Ergänzung fhem starte. Mit fhem-Start über portableshell.bat oder bei PATH-Ergänzung tritt der Fehler nicht auf und es wird ordnungsgemäß das WLAN on/off geschaltet.

papr1989

Das ist gut zu wissen, dass es ohne weitere Anpassungen und nachinstallationen gehen muss. Aber wie gesagt Trotz path Anpassungen oder Start aus der portableshell.bat bekomme ich Trotzdem den Fehler.  :(
Hab dann alles noch mal komplett neu auf einem anderen PC mit Windows 10 eingerichtet mit selbigen Ergebnis.
Welche Version hast du denn von hier heruntereladen?
https://strawberryperl.com/releases.html

krikan

#14
Welche Version ich gestern genutzt habe, kann ich wegen örtlicher Entfernung gerade nicht feststellen.

ABER:
Habe jetzt in einem anderen Netzwerk mit anderem PC erfolgreich getestet. (Beide Netzwerke Windows 10 Pro 64 mit Fritzbox 7590 Firmware 7.28)

Perl installiert: https://strawberryperl.com/download/5.32.1.1/strawberry-perl-no64-5.32.1.1-32bit-portable.zip
FHEM installiert.
portableshell.bat im Ordner my-fhem gestartet.
FHEM mit "perl fhem.pl fhem.cfg" gestartet.
FHEM aktualisiert und wie zuvor neu gestartet.
FRITZBOX-Device definiert.
Password gesetzt.
Attribut boxUser gesetzt.
-> geht ohne ersichtliche Probleme.

Um strawberryperl mit 64-Bit mache ich aus alten schlechten Erfahrungen einen Bogen. Man hat mir zwar berichtet, dass das nicht mehr nötig sei, aber selbst habe ich es noch nicht probiert.

Gruß, Christian