FRITZBOX - Fritz!Box und Fritz!Fon sprechen - Jetzt auch ohne Telnet

Begonnen von tupol, 28 November 2014, 23:46:54

Vorheriges Thema - Nächstes Thema

Bartimaus

LG
B.


FHEM@AMD-Ryzen7-5700U@Debian-LXC (ProxmoxHOST), CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

volschin

Wenn man sich Dirty Cow und Co. ansieht, ist vieles durchaus nachvollziehbar. Ich frage mich dann allerdings irgendwann, ob ich noch so eine All-in-one Kiste von AVM kaufe. Wenn ich da nichts mehr steuern kann, fahre ich mit einem dummen Modem, einer Firewall und einer steuerbaren Kiste für den Rest möglicherweise besser.
Irgendwann wacht aber auch AVM auf und wird erkennen, das sie entweder vom Markt verschwinden oder bessere HA-fähige Produkte anbieten müssen.
Intel NUC+Ubuntu 24.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7690, Echo Dots+Show8, HomeBridge

AmunRe

Zitat von: meddie am 09 Oktober 2016, 15:09:28
dito habe im Moment das gleiche Problem. Musste auf die LAbor Version wechseln, weil ich vorher Probleme mit Portweiterleitung hatte. Seitdem geht die Anwesendheitserkennung nicht. :-(
Exakt das gleiche. Die MAC Readings sind nicht mehr vorhanden, das PRESENCE Modul setzt nun alle Residents auf absent.
Wäre für jede Hilfe Dankbar!

Hier ebenfalls. Will aber auch nicht wieder Downgraden, weil bei meiner 7390 ich sonst kein Gäste Wlan mit eigenem Logo hinterlegen kann.


Schon jemand eine Idee, was der Grund ist?
4 x Echo Dot, HMLAN Gateway, und diverse HM Komponenten, Philips Hue + OSRAM Plugs

pjakobs

ok, ich bin offenbar nicht alleine.
Meine Präsenzerkennung fing auch an zu zicken, als ich vor drei Tagen die aktuelle FritzOS version installiert habe. Eben hab ich auf FRITZ!OS: 06.69-41986 BETA upgegraded, damit aber noch keine Erfahrung.

Ich habe mir eine kleine Routine geschrieben, die den Status eines Gerätes per 1TR6 Protokoll abholt

sub checkFritzMACpresent($$) {
   # Benötigt: Name der zu testenden Fritzbox ($Device),
   #           zu suchende MAC ($MAC),
   # Rückgabe: 1 = Gerät gefunden
   #           0 = Gerät nicht gefunden
   my ($Device, $MAC) = @_;
   my $HostStatus = 0;
   my $HostResponse;
   my $HostResponseS = fhem("get $Device tr064Command hosts:1 hosts GetSpecificHostEntry NewMACAddress $MAC");
   $HostResponseS =~ s/^(?:.*\n){1,3}//;
   $HostResponseS =~ s{\A\$VAR\d+\s*=\s*}{};
   #Log3 ($Device, 5,"$Device HostResponseS: $HostResponseS") ;
   $HostResponse = eval $HostResponseS or return 0;
   $HostStatus = $HostResponse->{'GetSpecificHostEntryResponse'}->{'NewActive'};
   Log3 ($Device,  2,"$Device HostStatus: $HostStatus") ;

   return $HostStatus
}

das funktioniert auch grundsätzlich einwandfrei, allerdings scheint der Status aus der Fritzbox nicht immer zu stimmen.

Wenn ich beim Telefon manuell das WLAN abschalte, dann wird das korrekt erkannt. Verlasse ich aber einfach das Haus, dann wird es reproduzierbar nicht erkannt. Ganz abstrus wird es, wenn ich nach Hause komme: im Log sehe ich, dass während meiner Abwesenheit die Funktion oben regelmäßig eine "1" geliefert hat, aber ca. 10-20 Minuten nachdem ich daheim bin springt das auf "0". Auf der Fritzbox ist mein Telefon dann unter den nicht angemeldeten Geräten geführt, obwohl ich über das WLAN auf das Netz zugreifen kann.
Ich vermute mal, das hat was mit dem neuen WLAN steering zu tun...

pj

tupol

Oder damit dass es eine Beta-Version ist. Um sich an Betas anzupassen, braucht es viel Zeit und Pflegeaufwand.

plin

Meine FHEM->Fritzbox-Verbindung funktioniert, d.h. ich kann das Telefonbuch auslesen und sehe ein-/ausgehende Telefonate. Aber mein Fritzbox-Device zeigt als Status immer nur "Didn't get a session ID" an. Laut https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/AVM_Technical_Note_-_Session_ID.pdf hat sich der Login ab FRITZ!OS 5.50 geändert. Ein wenig Debugging führte zu folgender Codepassage im Modul "FritzBoxUtils.pm" in der Function "FB_doCheckPW":


... snip ...
  } else {                            # FritzOS >= 5.50
    my @d = ( "response=$chlAnsw", "page=/login_sid.lua" );
    $data = join("&", map {join("=", map {urlEncode($_)} split("=",$_,2))} @d);
    my $url = "http://$host/login_sid.lua";
    $url .= "?username=$user" if($user);

    $data = GetFileFromURL($url, undef, $data, 1);
    my $sid = $1 if($data =~ /<SID>(\w+)<\/SID>/i);
    $sid = undef if($sid =~ m/^0*$/);
    return $sid;
  }
... snip ...


Hier wird zwar in
my @d = ( "response=$chlAnsw", "page=/login_sid.lua" );
$data = join("&", map {join("=", map {urlEncode($_)} split("=",$_,2))} @d);
die Challenge-Antwort in $data vorbereitet, im weiten Coding vor Aufruf der URL aber nicht weiter verwendet. Folglich erhält die Fritzbox keine korrekte Antwort und gibt als SID wieder die 0000000000000000 zurück.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

tupol

Versteh ich nicht. Wieso sollte es "weiter verwendet" werden? Es wird doch nur erzeugt und dann im URL-Aufruf übergeben.

Ansonsten funktioniert das FRITZBOX-Modul bei mir auch mit den neueren Versionen einwandfrei. Es kann also eigentlich kein generischer Fehler sein.

plin

ok, da war ich heute Morgen wohl blind (oder noch nicht ganz wach).

Dann aber die Frage: Wieso kriege ich keine Session Id?

Ich habe bereits von telnet auf boxUser umgestellt. Die Kombinatiion aus user/pw klappt.

list FritzBox sieht bei mir so aus:


Internals:
   APICHECKED 1
   DEF        192.168.3.1
   HOST       192.168.3.1
   INTERVAL   300
   LUAQUERY   1
   M3U_LOCAL  ./www/images/FritzBox.m3u
   M3U_URL    http://192.168.3.10:8085/fhem/images/FritzBox.m3u
   NAME       FritzBox
   NR         47
   REMOTE     1
   SECPORT    49443
   STATE      Didn't get a session ID
   TELNET     0
   TR064      1
   TYPE       FRITZBOX
   WEBCM      0
   Readings:
     2016-11-13 15:34:20   box_fwVersion   113.06.60
     2016-11-13 15:34:20   box_model       FRITZ!Box 7490 [avm]
     2016-11-12 10:27:02   box_tr064       0
     2016-11-13 16:49:30   lastReadout     Didn't get a session ID
     2016-11-13 16:49:30   state           Didn't get a session ID
   Fhem:
     LOCAL      0
     definedHost 192.168.3.1
     is_double_wlan -1
     lastHour   0
     modulVersion $Date: 2016-09-29 20:30:14 +0200 (Thu, 29 Sep 2016) $
     sidTime    0
   Helper:
     TimerCmd   FritzBox.Cmd
     TimerReadout FritzBox.Readout
Attributes:
   allowShellCommand 0
   allowTR064Command 1
   boxUser    myFHEM
   forceTelnetConnection 0
   fritzBoxIP 192.168.3.1
   group      Fritzbox
   icon       it_router
   room       Vorratskeller
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

tupol


plin

Bevor ich noch mal 'was blödes schreibe habe ich erneut gegoogelt und bin auf Seite 69 dieses Threads auf den Hinweis von jens001 gestoßen

Zitat
Hallo zusammen.

Danke für Eure Antwort. Eine Nacht schlafen hat die Lösung ergeben. In den FritzBox Settings hatte ich vergessen den Haken bei "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" anzuwählen. Nun klappt es.

Gruß, Jens.

Nachdem ich die Einstellungen meiner Fritzbox geändert habe bin ich mein Problem los.

Sollte man auf den Zusammenhang user/pw evtl. im Wiki hinweisen? Da steht zwar, dass ich in FHEM den boxUser definieren muss, wenn die Anmeldung in der Fritzbox auf "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort" steht. Es wird nicht erwähnt, dass die Angabe eines boxUsers im anderen Fall schädlich ist.

"Wenn (und nur wenn) das Login auf der Benutzeroberfläche der FritzBox mit User und Passwort (und nicht nur per Passwort) geschieht, den User konfigurieren: "

P.S. Danke für die Unterstützung.
FHEM1 (Main) Raspi4 mit CUL, Homematic, SDUINO 433/OOK, zentrale Steuerung
FHEM2 (Keller) x86 mit CUL/hmland, IP-basierte Module
FHEM3 (Erdgeschoss) Raspi2 mit SDUINO 868/GFSK
FHEM4 (Hausanschlussraum), USV und OBIS-Modul
FHEM5 (Docker) mit FHEM2FHEM, InfluxDB

tupol

Habe es ergänzt. Ist aber eher was für die Rubrik "Fehlersuche"

Kurt77

Hallo,
habe mal testweise versucht, einen Anruf zu machen und sehe imlogfile diesen fehler

2016.11.17 10:52:23 2: FRITZBOX d_fb7490: TR064_Cmd.4151 TR064-Error 606:Action Not Authorized (service='X_VoIP:1', control='x_voip', action='X_AVM-DE_DialNumber',
parameter1='NewX_AVM-DE_PhoneNumber' => '0xxxxxxxxx4#')

TR064 ist allowed.
Was ist falsch?
Danke und Gruß,
Kurt

f-zappa

Zitat von: octek0815 am 16 März 2016, 20:41:26
Hallo Robert,

deine ersten beiden Punkte habe wie folgt gelöst:


urNewDownstreamCurrRate {my $resp=fhem("get Arbeitszimmer_OG_Fritzbox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);$resp =~/'NewDownstreamCurrRate' => '(.*)'/;return $1;}
urNewUpstreamCurrRate {my $resp=fhem("get Arbeitszimmer_OG_Fritzbox tr064Command WANDSLInterfaceConfig:1 wandslifconfig1 GetInfo",1);;$resp =~/'NewUpstreamCurrRate' => '(.*)'/;;return $1;;}


Müsstest du entsprechend für Dich anpassen.

Grüße
Olli

Moin,
diese Userreadings habe ich auch einige Zeit benutzt. Dann habe ich festgestellt, dass das anscheinend merkbar auf die Performance schlägt:

2016.12.01 21:52:10 1: Perfmon: possible freeze starting at 21:52:08, delay is 2.738
2016.12.01 21:54:10 1: Perfmon: possible freeze starting at 21:54:08, delay is 2.624
...

Sobald ich die Userreadings entferne, läuft alles flüssig. Kann man da irgendwas mit Blocking() machen?
Wobei ich mich auch gefragt habe, warum FRITZBOX diese Readings nicht standardmäßig mit anzeigt, die sind ja nun nicht uninteressant ...

Gruß, Uli

Monti

Nach Umstellung auf Fritz Labor Firmware funktioniert das PRESENCE Modul nicht mehr weil die Werte nicht ausgelesen wurden.
Das liegt am Modul 72_Fritzbox.pm

Die Version kann den Presence Status von LAN und WLan wieder korrekt in der Abfrage darstellen.

ACHTUNG:
dies ist nur ein Hotfix, nach einem Update (überschreiben 72_Fritzbox.pm) ist dieser wieder weg

nicht alle fehlenden Readings werden gelesen, mir ging es nur um die PRESENCE funktionen

Vielleicht kann der Autor des Moduls sich das mal ansehen, für PRESENCE mussten nur wenige Zeilen angepasst werden.
Wenn readings mit _ (underscore) zurückgegeben werden kommt nichts an, wird das in der Abfrage geändert sollte allles wieder gehen.

Da ich nicht der Autor bin ist das alles auf eigene Gefahr. Bei mir läuft es wieder aber das ist nur ein Behelf und keine Lösung.

Leider ist das Modul zu groß um es hier anzuhängen und die Zeilen rauszupuzzeln ist auch nicht für jeden.
Einfach eine PM mit email und ich sende sie auf Wunsch zu.

LG
Monti

tupol


Hallo Monti,


ich habe mal versucht, die Ergebnisse Deiner Recherche einzubauen und habe eine neue Version hochgespielt.


Prinzipiell ist aber eine Anpassung an einzelne Betas ein Hase-Igel-Spiel und extrem zeitaufwendig. Die Betas von AVM sind zudem extrem buggy (siehe Laborseite) und deshalb nicht zu empfehlen. Ich spiele inzwischen bei mir keine mehr auf.


Trotzdem Danke für die Recherche. Dadurch weiß ich auch, wo ich bei der nächsten offiziellen Version suchen muss.


Gruß


tupol