72_FB_CALLMONITOR: Laden FritzBox Telefonbuch über Telnet, wenn FB remote

Begonnen von JoWiemann, 10 Dezember 2014, 18:45:31

Vorheriges Thema - Nächstes Thema

JoWiemann

Hallo,

läuft FHEM nicht direkt auf der FB, musste bisher das FB-Telefonbuch exportiert werden und auf den FHEM-Server kopiert werden. Ich habe nun die Funktion so erweitert, dass das Telefonbuch per Telnet von der FritzBox geholt wird. Hierzu müssen folgende neue Attribute gesetzt werden:

attr <callmonitor> fritz-box-remote true
attr <callmonitor> fritz-box-password <Verschlüsseltes Passwort>

PS: Bitte die Perlmodule für Telnet installieren

Grüße Jörg

Aktualisiert: Ich habe die aktuellen Fehlerkorrekturen zur klicktel Rückwärtssuche noch übernommen

Aktualisiert: Habe noch etwas an der neuen Funktion angepasst.

Aktualisiert (11.12.): Habe einen Test eingebaut, ob Net::Telnet als Modul vorhanden ist. Vielleicht kann ja mal einer testen, der Net::Telnet noch nicht installiert hat.

Aktualisiert II (11.12.): Für alle die nicht an das Gute im Menschen glauben, habe ich das Hinterlegen des FritzBox Passwortes für die Telnet-Kommunikation geändert. Über die FHEM Oberfläche ist mit einem Aufruf in der Kommandozeile von {encode_base64("FritzBox Passwort")} die zu nutzende kodierte Zeichenkette zu generieren. Diese Zeichenkette ist dann im Attribut zu hinterlegen.

Aktualisiert III (11.12.): Ich habe jetzt noch die Password File Logik aus 72_FRITZBOX.pm übernommen. Wenn attr pwdFile definiert ist, dann wird das Passwort aus dem File genommen, ansonsten wird versucht es aus attr fritz-box-password zu nehmen.

Aktualisiert (12.12.): command.ref gepflegt
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

HolyMoly

Genial, hat mich schon immer genervt das Telefonbuch zu exportieren.
Könntest du dich mal an Markus Bloch wenden und ihn fragen ob er deine Änderungen in die offizielle Version von 72_FB_CALLMONITOR übernimmt?
FHEM auf Raspi2 & Radxa Rock

Brockmann

Schön, dass sich mal jemand dieser Sache angenommen hat. Vielen Dank dafür. Werde es direkt einbauen und testen.
Ich fände es auch sinnvoll, wenn es nach einer erfolgreichen Testphase in das offizielle Modul übernommen werden würde.

Mitch

Tolle Sache, aber könnte das umbauen, damit das Telefonbuch über Web geholt wird?

Telnet geht bei mit nicht, KD Box
FHEM im Proxmox Container

Brockmann

Nachtrag: Installation, Konfiguration und erster Test hat prima geklappt.
Auf Raspberry Pi & Co. wird das Perl-Telnetmodul mit
sudo apt-get install libnet-telnet-perl
installiert und zwar bevor man die angehängte 72_FB_CALLMONITOR.pm einspielt. Andernfalls lässt sie sich nicht laden.

Um ein eventuelles Missverständnis zu vermeiden:
Diese Erweiterung gleicht Nummern nicht "live" mit der Fritzbox ab, sondern importiert beim Fhem-Start einmal das aktuelle Telefonbuch von der Fritzbox (was man bislang manuell machen musste).
Um aktuell zu bleiben, sollte man diesen Import regelmäßig wiederholen, beispielsweise mit einem at wie diesem:
define FB_Phonebook_Update at *00:15:00 set <Fritz-Box-Device> rereadPhonebook

Vielleicht helfen diese zusätzlichen Infos dem einen oder anderen.

carlos

Mit welchem user wird das gemacht?
Auf meine Fritzbox kommt man per telnet nur mit user/password.
Gruß
Carlos
FHEM svn auf Intel NUC mit proxmox, 3 Raspberry Pi, signalduino, nanoCUL,  toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Brockmann

Zitat von: carlos am 11 Dezember 2014, 11:16:42
Mit welchem user wird das gemacht?
Auf meine Fritzbox kommt man per telnet nur mit user/password.
Dann schreibst Du den username in das Attribut fritz-box-user rein.

moonsorrox

ist das Modul bei einem heutigen Update aktuell..?

Ich habe das Problem sobald ich die attr setze aus dem 1.Post das ich folgende Fehlermeldung bekomme
ZitatFritz_Box: unknown attribute fritz-box-remote. Type 'attr Fritz_Box ?' for a detailed list.
Fritz_Box: unknown attribute fritz-box-password. Type 'attr Fritz_Box ?' for a detailed list.
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Brockmann

Zitat von: moonsorrox am 11 Dezember 2014, 14:27:21
ist das Modul bei einem heutigen Update aktuell..?
Den erweiterten Callmonitor kannst Du im ersten Post dieses Threads herunterladen und dann manuell einspielen.
Im Update ist diese Version nicht und wird sie vorläufig auch nicht kommen.

tupol

Zitat von: JoWiemann am 10 Dezember 2014, 18:45:31
attr <callmonitor> fritz-box-remote true
geht doch eigentlich auch z.B. durch
unless (-X <phonebook/datei>) {..}

JoWiemann

Zitat von: tupol am 11 Dezember 2014, 17:11:16
geht doch eigentlich auch z.B. durch
unless (-X <phonebook/datei>) {..}

Ich wollte nicht auf <phonebook/datei> prüfen, da weiterhin darüber der Default-Pfad/Datei zur /var/flash/phonebook auf der Fritzbox überschrieben werden kann. Man weiß ja nie, was sich AVM so ausdenkt.

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

moonsorrox

Zitat von: JoWiemann am 10 Dezember 2014, 18:45:31
Aktualisiert II (11.12.): Für alle die nicht an das Gute im Menschen glauben, habe ich das Hinterlegen des FritzBox Passwortes für die Telnet-Kommunikation geändert. Über die FHEM Oberfläche ist mit einem Aufruf in der Kommandozeile von {encode_base64("FritzBox Passwort")} die zu nutzende kodierte Zeichenkette zu generieren. Diese Zeichenkette ist dann im Attribut zu hinterlegen.
ich glaube das dieses aber nicht mit Sonderzeichen funktioniert, oder täusche ich mich da..?

EDIT:// also das geht dann mit dieser Variante nicht, wer ein Sonderzeichen im Passwort haben sollte, geht mit putty auf sein RasPi oder Cubie loggt sich ein und gibt folgendes ein:

echo -n user:passwort | base64
oder eben nur Passwort und hinterlegt die Zeichenkette dann als Passwort
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

Spartacus

Hallo zusammen,
ich habe heute auch den neuen CallMonitor installiert. Aber irgenwie komme ich nicht klar! Im log steht:
2014.12.11 20:04:20 3: FB_CALLMONITOR (FB7390) - Getting phonebook from FritzBox: /var/flash/phonebook
2014.12.11 20:04:20 2: FB_CALLMONITOR (FB7390) - found FritzBox phonebook over Telnet
2014.12.11 20:04:20 2: FB_CALLMONITOR (FB7390) - read 2 contacts from FritzBox phonebook


Sollte eigentlich funzen. Aber er findet nur zwei Kontakte? Kann das sein, dass der CallMonitor nur funzt, wenn das Dingen phonebook heisst? Ich verwalte mehrere Telefonbücher auf der Fritte und die haben unterschiedliche Namen. kann man das im Callmonitor einstellen, oder habe ich einen anderen Fehler

Spartacus
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R

JoWiemann

Zitat von: Spartacus am 11 Dezember 2014, 20:17:58
Sollte eigentlich funzen. Aber er findet nur zwei Kontakte? Kann das sein, dass der CallMonitor nur funzt, wenn das Dingen phonebook heisst? Ich verwalte mehrere Telefonbücher auf der Fritte und die haben unterschiedliche Namen. kann man das im Callmonitor einstellen, oder habe ich einen anderen Fehler

Hallo Spartacus,

wenn Du Dich mit Telnet auf der FB einlogst, dann findest Du unter /var/flash nur das phonebook. Im phonebook sind für die einzelnen Telefonbücher entsprechende XML-Tags vorhanden. Ich weiß jetzt nicht, wie der Callmonitor damit umgeht, da ich per Telnet auch nur das phonebook hole und dann in die bisherige Verarbeitungslogig übergebe.

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

Spartacus

Hallo Jörg,
danke für die Info. Auf der Fritte finde ich zwar das phonebook, da scheint aber nix drin zu stehen (vi phonebook ist leer)! Wohin kopierst Du das?
Christian
Fhem-System: 1 x raspberry PI Typ B, 1 x enOcean PI Typ B | Enocean: PTM210, FMS61NP, FAM14, 2 x FSR14-4x, FTS14-EM | LaCrosse: 2 x TX29D über Jeelink V3 | 1-Wire: 2 x DS18B20 über DS9490R