FRITZBOX - Fritz!Box und Fritz!Fon sprechen

Begonnen von tupol, 04 April 2017, 08:59:23

Vorheriges Thema - Nächstes Thema

Otto123

Zitat von: raimundl am 07 März 2019, 10:16:39
Meine konkrete Frage und Bitte:
Wie lautet der Befehl für einen Neustart der Box?

Moin,

ich weiß es nicht und ich würde das auch nicht machen wollen. Aber sicher hast Du einen Grund.

Ich hatte mal was dazu aufgeschrieben, vielleicht hilft es Dir beim suchen. Falls sich keiner weiter meldet. ;)
https://heinz-otto.blogspot.com/2018/08/fritzbox-mit-tr064-abfragen.html

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

raimundl

Hallo Otto,

danke vorerst, werde probieren und berichten.

Der Grund ist, dass ich laufend kleinere Probleme mit WLAN Geräten hatte, einmal eine Kamera, dann der Laptop, dann ...... Viele kleinere Probleme merkst du ja nicht sofort.
Nach langwierigen eingrenzen, stellte ich fest, dass es eigentlich an der FritzBox liegen sollte. Ein Neustart und alles war wieder o.k.
Daher dachte ich einen einen wöchentlichen Neustart der Box.

LG
Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....

Wernieman

würde Dir dann eigentlich empfehlen, lieber auf ein ordentliches WLan zu setzten,. Das der Fritte ist bekanntlich  ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

raimundl

Zitat von: raimundl am 07 März 2019, 13:01:16
Hallo Otto,

danke vorerst, werde probieren und berichten.

Der Grund ist, dass ich laufend kleinere Probleme mit WLAN Geräten hatte, einmal eine Kamera, dann der Laptop, dann ...... Viele kleinere Probleme merkst du ja nicht sofort.
Nach langwierigen eingrenzen, stellte ich fest, dass es eigentlich an der FritzBox liegen sollte. Ein Neustart und alles war wieder o.k.
Daher dachte ich einen einen wöchentlichen Neustart der Box.

Hallo, zur Info:

Damit funktioniert es:

https://github.com/nicoh88/cron_fritzbox-reboot

LG
Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....

sprudelverduenner

N'abend zusammen,

da letzte Woche bei mir mal für knapp 24 Stunden das DSL nicht da war und damit auch FHEM nicht erreichbar und benutzbar war habe ich mich mit USB Tethering an meiner FritzBox beschäftigt und auch ans Laufen bekommen.

Jetzt gibt es im FritzBox Modul ja auch ein Reading namens "gsm_internet".
Meine Hoffnung war dass hier bei DSL eine 0 und bei USB-Tethering eine 1 stehen würde und ich mir bei einem Ausfall von DSL / Wechsel zu Mobilfunk eine push-Nachricht als Info kommen lasse...

Leider bleibt das Reading immer auf dem Wert 0.
Bug oder Feature?
Ist das Fehler oder gibt es bei der FritzBox noch einen kleinen Unterschied zwischen USB-Tethering und dem direktem Empfang via GSM-Stick.??

LG, Sprudelverduenner
FHEM @ RaspberryPi 3, HMLAN, HMUART + HMRS485, Homematic, ESPEasy @ Sonoff / Shelly / ESP8266, ZigBee @ CC2531
Echo Dot, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12, LD382
FRITZ!Box 7590 AX, Mesh @ FRITZ!Repeater 2400, FRITZ!Fon, iPhone 13, iPad Air 5, AppleWatch 8

Otto123

#65
Zitat von: raimundl am 16 März 2019, 15:19:45
Hallo, zur Info:

Damit funktioniert es:

https://github.com/nicoh88/cron_fritzbox-reboot

LG
Ok, das geht auch mit dem Modul.
Man muss eben bloß wissen wonach man suchen muss :)
get <FBName> tr064Command DeviceConfig:1 deviceconfig Reboot

Geht sogar relativ "einfach" zu finden
get <FBName> tr064ServiceList
Dann sucht man nach reboot, steht relativ weit oben.
Der Abschnitt liefert dann die notwendigen Einträge für das Kommando (Service Control Action):
ZitatSpec: http://192.168.90.1:49000/deviceconfigSCPD.xml    Version: 1.0
Service: DeviceConfig:1     Control: deviceconfig
----------------------------------------------------------------------------------------------------------------------------------
  GetPersistentData ( ) = ( NewPersistentData )
  SetPersistentData ( NewPersistentData )
  ConfigurationStarted ( NewSessionID )
  ConfigurationFinished ( ) = ( NewStatus )
  FactoryReset ( )
  Reboot ( )

Es geht also offenbar auch FactoryReset - nicht ausprobieren;D

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

raimundl

Zitat von: Otto123 am 17 März 2019, 00:27:58

get <FBName> tr064Command DeviceConfig:1 deviceconfig Reboot


Hallo Otto,  leider nein!

Das habe ich zu allererst ausprobiert und bei mir funktioniert es nicht - deswegen mein Hinweis!

LG
Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....

Otto123

Hi,

bekommst Du da eine Fehlermeldung zurück?
Ich habe zwei unterschiedliche Boxen hier, das klappt bei beiden einwandfrei. Dein verlinktes Script tut nichts anderes, es nutzt die gleiche Schnittstelle, die gleichen Kommandos.

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

raimundl

Zitat von: Otto123 am 17 März 2019, 19:51:21
Hi,

bekommst Du da eine Fehlermeldung zurück?
Ich habe zwei unterschiedliche Boxen hier, das klappt bei beiden einwandfrei. Dein verlinktes Script tut nichts anderes, es nutzt die gleiche Schnittstelle, die gleichen Kommandos.

Gruß Otto

Hallo Otto,

nun funktioniert es auch mit den Fritzbox Modul - ein "install libnet-telnet-perl" war notwendig.

Die ursprüngliche Meldung:

Service='DeviceConfig:1'   Control='deviceconfig'   Action='Reboot'
----------------------------------------------------------------------
$VAR1 = undef;

und nunmehr:

Service='DeviceConfig:1'   Control='deviceconfig'   Action='Reboot'
----------------------------------------------------------------------
$VAR1 = {
          'RebootResponse' => ''
        };

Danke und LG
Homematic: Licht, Heizung, Alarm, Alexa ... auf einen RaspberryPi3+mit OS "Stretch" und RPI-RF-MOD mit piVCCU3 (HMCCU), ca. 40 HM Komponenten, alexa, MobileAlerts, Hue Ledstripes....

loescher

Hi!

Die Lösung hilft aber nur, wenn FHEM per Telnet mit der FritzBox sprechen kann.
Was ist das denn für eine FB?
Ich habe das gleiche Problem mit einer 3270.
Das

get FritzBox tr064Command DeviceConfig:1 deviceconfig Reboot

liefert obigen Fehler.
Wenn ich es per curl versuche, wird klar woran es liegt:

curl -k -m 5 --anyauth -u "$FRITZUSER:$FRITZPW" https://$IP:49443$location -H 'Content-Type: text/xml; charset="utf-8"' -H "SoapAction:$uri#$action" -d "<?xml version='1.0' encoding='utf-8'?><s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'><s:Body><u:$action xmlns:u='$uri'></u:$action></s:Body></s:Envelope>"

ergibt:

curl: (35) error:14082174:SSL routines:ssl3_check_cert_and_algorithm:dh key too small

Das heißt, dass der SSL Verbindungsaufbau scheitert, weil der DH Key zu kurz ist. (Mein Linux ist sehr aktuell und die FB ist sehr alt.)
Abhilfe für curl:

--ciphers 'DEFAULT:!DH'

Um das in FHEM hinzubekommen müsste an geeigneter Stelle beim SSL Verbindungsaufbau sowas rein:

my $sock = IO::Socket::SSL->new(..., SSL_cipher_list => 'DEFAULT:!DH' ...);

Aber wo genau weiß ich nicht. Das habe ich nicht weiter verfolgt, da mir der curl Aufruf als Lösung reicht.
Evtl. hilft es ja jemandem mit einer alten FB mit zu kurzen DH Keys.  :)

LG,
Stephan.

loescher

Hi!

Ich habe nun doch die "richtige" Stelle gefunden, wo es in 72_FRITZBOX.pm rein müsste:


--- 72_FRITZBOX.pm.ORIG 2019-04-24 22:34:29.293748205 +0200
+++ 72_FRITZBOX.pm 2019-04-24 22:41:09.833224981 +0200
@@ -4303,7 +4303,9 @@
       my $soap = SOAP::Lite
          -> on_fault ( sub {} )
          -> uri( "urn:dslforum-org:service:".$service )
-         -> proxy('https://'.$host.":".$port."/upnp/control/".$control, ssl_opts => [ SSL_verify_mode => 0 ], timeout => 10  )
+ # Set SSL_cipher_list as workaround for newer OpenSSL-Libraries who do not allow
+ # weak DH based ciphers.
+         -> proxy('https://'.$host.":".$port."/upnp/control/".$control, ssl_opts => [ SSL_verify_mode => 0, SSL_cipher_list => 'DEFAULT:!DH' ], timeout => 10  )
          -> readable(1);
       my $res = $soap -> call( $action => @soapParams );


Damit funktionieren die TR064 Befehle auch für die FB 3270  :)

Meines Erachtens würde es Sinn machen analog zum globalen FHEM Attribut sslVersion auch noch das globale Attribut sslCipherList einzuführen und dieses ggf. in allen Modulen zu verwenden.
Da müsste aber wohl mal Rudi in der HttpUtils.pm ran...

LG,
Stephan.

Puccini

Hallo zusammen,

da ich aktuell die Anwensenheitserkennung versuche via Fritzbox und angemeldeter Smartphones zu realisieren, bin ich über das Modul gestolpert.
Im Wiki gibt es zwei Funktionen, welche entweder eine Fritzbox oder alle definierten "Fritzbox" Devices abfragen.
Jedoch immer nur mit einer MAC

Daher habe ich meine Funktion wie folgt verändert:

Übergabe von mehreren MAC-Adressen mit Komma möglich:
function {checkAllFritzMACpresent("MAC1,MAC2")} 60 60

Angepasste Routine:
# Fritzbox Anwesenheitserkennung für mehrere Geräte über alle Fritzbox-Devices
sub checkAllFritzMACpresent($) {
  # Benötigt: nur die zu suchende MAC ($MAC),
  # Es werden alle Instanzen vom Type FRITZBOX abgefragt
  #
  # Rückgabe: 1 = Gerät gefunden
  #           0 = Gerät nicht gefunden
  my ($MAC) = @_;
  my @macs = split /,/, $MAC;
  # Wird in keiner Instanz die MAC Adresse gefunden bleibt der Status 0
  my $Status = 0;
  my @FBS = devspec2array("TYPE=FRITZBOX");
  foreach( @macs ){
  my $tmpMAC = $_;
  $tmpMAC =~ tr/:/_/;
  $tmpMAC = "mac_".uc($tmpMAC);
foreach( @FBS ) {
my $StatusFritz = ReadingsVal($_, $tmpMAC, "weg");
if ($StatusFritz eq "weg") {
} elsif ($StatusFritz eq "inactive") {
} else {
  # Reading existiert, Rückgabewert ist nicht "inactive", also ist das Gerät am Netzwerk angemeldet.
  $Status = 1;
  return $Status;
}
}
  }
  return $Status
}


Ich hoffe das hilft jemandem weiter :)

Grüße
Christian

Heiner33

Hallo zusammen,

wie kann ich denn per TR-064 oder luaQuery die "Verfügbare Bitrate" aus dem Online Monitor auslesen (siehe Screenshot)?
Ich komme irgendwie nur an die theoretischen maximalen Bitraten ran, aber nicht, mit welcher Bitrate mein VDSL tatsächlich gesynct ist.

Danke

Elektrolurch

Hallo,

ich habe eine 7390 und von Zeit zu Zeit (ca. 1 x je Tag) kann das Modul wohl keine Daten bei der Fritzbox abrufen. Das ist auch nicht so schlimm, da dann meist der nächste Zugriff wieder funktioniert.
Ich erhalte allerdings Level 1 - Logfile Einträge, die etwas nervig sind. Man möchte ja sein Logfile wirklich nur mit den Dingen beschrieben haben, die ein ernstes Problem darstellen.
Offensichtlich wird im Modul nicht abgefragt, ob die von der FB zurückgelieferten Daten vollständig sind und dann kommt es zu folgenden Meldungen:


2019.10.11 23:50:00 1: PERL WARNING: Use of uninitialized value $sid in pattern match (m//) at FHEM/FritzBoxUtils.pm line 52.
2019.10.11 23:50:00 1: stacktrace:
2019.10.11 23:50:00 1:     main::__ANON__                      called by FHEM/FritzBoxUtils.pm (52)
2019.10.11 23:50:00 1:     main::FB_doCheckPW                  called by ./FHEM/72_FRITZBOX.pm (4522)
2019.10.11 23:50:00 1:     main::FRITZBOX_Web_OpenCon          called by ./FHEM/72_FRITZBOX.pm (4638)
2019.10.11 23:50:00 1:     main::FRITZBOX_Web_Query            called by ./FHEM/72_FRITZBOX.pm (1372)
2019.10.11 23:50:00 1:     main::FRITZBOX_Readout_Run_Web      called by FHEM/Blocking.pm (194)
2019.10.11 23:50:00 1:     main::BlockingStart                 called by FHEM/Blocking.pm (107)
2019.10.11 23:50:00 1:     main::BlockingCall                  called by ./FHEM/72_FRITZBOX.pm (715)
2019.10.11 23:50:00 1:     main::FRITZBOX_Readout_Start        called by fhem.pl (3293)
2019.10.11 23:50:00 1:     main::HandleTimeout                 called by fhem.pl (673)
2019.10.11 23:50:00 2: FRITZBOX fritzbox: Web_OpenCon.4529 Web connection could not be established. Please check your credentials (password, user).
2019.10.11 23:50:00 2: FRITZBOX fritzbox: Readout_Run_Web.1376 Error: Didn't get a session ID

Kann man das irgendwie fixen?
Die credentials  sind natürlich ok, denn meist funktioniert der nächste Zugriff ja wieder.
Elektrolurch
configDB und Windows befreite Zone!

Mave

Moin,

kann ich mit dem Modul meine FB automatisch täglich oder wöchentlich neu starten lassen?

Vielen Dank.

Grüße