Hauptmenü

Carddavclient in FHEM

Begonnen von kyreon, 24 März 2014, 13:45:43

Vorheriges Thema - Nächstes Thema

kyreon

Hallo zusammen,

gibt es eine möglichkeit Telefonkontakte über Carddav zu synchronisieren und hat dies jemand schonmal gemacht?

Meine Frage kam mir während dem Einrichten von FB_Callmonitor, da es natürlich sehr schön wäre immer die aktuellen Telefondaten in dem Telefonbuch für die Rückwärtssuche zu haben. Am besten wäre es natürlich wenn man mehrere Carddavquellen angeben könnte die dann in ein neues Telefonbuch gemerged werden.

Viele Grüße,
kyreon

Slanesh

Hallo kyreon,

die Idee kam mir auch, gerade in Verbindung mit einer ownCloud wäre das wirklich ein nettes Szenario. Habe bisher leider auch keine fertige Lösung  gefunden und bin am überlegen, ob man nicht einfach ein kleines Shell-Script schreiben kann, das die Daten aus dem CardDAV in die  ./log/Fritz_Box_Telefonbuch.xml schreibt, welches man periodisch per Crontab laufen lässt.

Werde hier nochmal ein Feedback posten, wenn ich mich dazu durchringen kann das umzusetzen.

Gruß
Slanesh
Intel NUC, 2x HM-LAN, 1x CUL-USB, 2x CCU2, 1x Harmony-Hub, 20x HM-LC-Sw1PBU-FM, 5x HM-LC-SW1-PL2, JeeLink mit 15x TX-29-DTH, 7x HM-SEC-SC-2, 3x HM-LC-SW1-BA-PCB, 8x HM-SEC-SD, 3x HM-SEC-MDIR-2, 2x HM-ES-PMSw1-Pl, 8x HmIP-BWTH, 3xHM-CC-RT-DN, 16xHM-LC-Bl1PBU-FM, 8x HM-SEC-SCo, 1xHM-ES-PMSw1-SM

Rince

Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Slanesh

Hallo Rince,

das habe ich auch gerade entdeckt, es gibt sogar eine Erweiterung dazu:
http://www.ip-phone-forum.de/showthread.php?t=267477

Jetzt muss ich mich erstmal etwas näher mit dem FB Callmonitor beschäftigen...

Gruß Slanesh
Intel NUC, 2x HM-LAN, 1x CUL-USB, 2x CCU2, 1x Harmony-Hub, 20x HM-LC-Sw1PBU-FM, 5x HM-LC-SW1-PL2, JeeLink mit 15x TX-29-DTH, 7x HM-SEC-SC-2, 3x HM-LC-SW1-BA-PCB, 8x HM-SEC-SD, 3x HM-SEC-MDIR-2, 2x HM-ES-PMSw1-Pl, 8x HmIP-BWTH, 3xHM-CC-RT-DN, 16xHM-LC-Bl1PBU-FM, 8x HM-SEC-SCo, 1xHM-ES-PMSw1-SM

Rince

Ich würde eher nicht die FritzBox als Quelle nehmen.
Die hat nämlich mittlerweile einen CardDav Client bekommen, kann also z.B. automatisch die Google Kontakte benutzen. Das ist recht bequem, weil sie halt so immer die Kontaktdaten deines Androiden aktuell hat. Leider ist in diesem Fall kein XML Export mehr möglich. Ob man dann mit einem Client aus ihr die Daten rauskitzeln kann, weiß ich nicht.
Ich denke OwnCloud oder Google Server zu nutzen ist ein schlauerer Weg.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

Slanesh

Ich habe mir das jetzt folgendermaßen zusammengebastelt:
Alle Kontakte liegen in der OwnCloud und das iPhone greift für die Kontakte auf OwnCloud zu. Einmal am Tag wird per Cronjob auf dem Raspberry PI das Adressbuch in der FritzBox mit den Daten aus der OwnCloud überschrieben, gleichzeitig wird auf dem Raspberry die XML-Datei für die interne Suche des CallMonitors aktualisiert.

Der einzige Punkt der mich noch etwas stört ist, dass ich von meinem Cisco IP Phone 7960 nicht auf die Kontakte zugreifen kann. Die Anruferanzeige über der FritzBox funktioniert allerdings einwandfrei. Da ich Anrufe aber sowieso meistens vom DECT-Mobilteil mache und am Cisco nur Anrufe annehme, kann ich mit der kleinen Einschränkung ganz gut leben.

Perfekt wäre es, wenn man das CardDAV der OwnClould irgendwie mit einem LDAP synchronisieren könnte, um auch noch in Outlook auf die gleichen Kontakte zugreifen zu können.

Gruß Slanesh
Intel NUC, 2x HM-LAN, 1x CUL-USB, 2x CCU2, 1x Harmony-Hub, 20x HM-LC-Sw1PBU-FM, 5x HM-LC-SW1-PL2, JeeLink mit 15x TX-29-DTH, 7x HM-SEC-SC-2, 3x HM-LC-SW1-BA-PCB, 8x HM-SEC-SD, 3x HM-SEC-MDIR-2, 2x HM-ES-PMSw1-Pl, 8x HmIP-BWTH, 3xHM-CC-RT-DN, 16xHM-LC-Bl1PBU-FM, 8x HM-SEC-SCo, 1xHM-ES-PMSw1-SM

P.A.Trick

Zitat von: Slanesh am 20 Juli 2014, 21:43:33
Ich habe mir das jetzt folgendermaßen zusammengebastelt:
Alle Kontakte liegen in der OwnCloud und das iPhone greift für die Kontakte auf OwnCloud zu. Einmal am Tag wird per Cronjob auf dem Raspberry PI das Adressbuch in der FritzBox mit den Daten aus der OwnCloud überschrieben, gleichzeitig wird auf dem Raspberry die XML-Datei für die interne Suche des CallMonitors aktualisiert.

Der einzige Punkt der mich noch etwas stört ist, dass ich von meinem Cisco IP Phone 7960 nicht auf die Kontakte zugreifen kann. Die Anruferanzeige über der FritzBox funktioniert allerdings einwandfrei. Da ich Anrufe aber sowieso meistens vom DECT-Mobilteil mache und am Cisco nur Anrufe annehme, kann ich mit der kleinen Einschränkung ganz gut leben.

Perfekt wäre es, wenn man das CardDAV der OwnClould irgendwie mit einem LDAP synchronisieren könnte, um auch noch in Outlook auf die gleichen Kontakte zugreifen zu können.

Gruß Slanesh

Kannst du uns mitteilen wie das funktioniert? Skript? Vielen Dank im Voraus!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Slanesh

#7
Ich verwende das oben verlinkte php Skript:
http://www.ip-phone-forum.de/showthread.php?t=267477

Meine config sieht wie folgt aus:
<?php

// CONFIG
$config['fritzbox_ip'] = '192.168.0.1';
$config['fritzbox_user'] = 'carddav2fb';
$config['fritzbox_pw'] = 'GEHEIM';
$config['phonebook_number'] = '0';
$config['phonebook_name'] = 'CardDAV2FB';
$config['output_file'] = '/opt/fhem/FritzBoxPhonebook.xml'// das ist das interne Phonebook für den Callmonitor
$config['group_vip'] = 'VIP';


// multiple carddav adressbooks could be specified and will be merged together.

// first
$config['carddav'][0] = array(
        
'url' => 'https://OWNCLOUD.DOMAIN.TLD/remote.php/carddav/addressbooks/carddav2fb/contacts_shared_by_USERNAME',
        
'user' => 'carddav2fb',
        
'pw' => 'GEHEIM'
);

// second
//$config['carddav'][1] = array(
//      'url' => 'https://raspserver/owncloud/remote.php/carddav/addressbooks/fritzbox/fb_contacts_second',
//      'user' => 'oc_username',
//      'pw' => 'oc_password'
//);


Der Namen des Phonebooks für den Callmonitor muss noch per attr FB_CALLMONITOR reverse-search-phonebook-file ./FritzBoxPhonebook.xml in der fhem.cfg definiert werden.

Ich habe mir sowohl auf der FritzBox als auch in der Owncloud einen eigenen User "carddav2fb" eingerichtet. Das bringt zwar auf der FritzBox nicht viel, da Adminrechte benötigt werden um das Telefonbuch zu schreiben, aber der OwnCloud-User hat nur lesenden Zugriff auf die geteilten Kontakte meines Hauptusers und kommt zumindest nicht an den Kalender und die Dateien ran.

Gruß Slanesh
Intel NUC, 2x HM-LAN, 1x CUL-USB, 2x CCU2, 1x Harmony-Hub, 20x HM-LC-Sw1PBU-FM, 5x HM-LC-SW1-PL2, JeeLink mit 15x TX-29-DTH, 7x HM-SEC-SC-2, 3x HM-LC-SW1-BA-PCB, 8x HM-SEC-SD, 3x HM-SEC-MDIR-2, 2x HM-ES-PMSw1-Pl, 8x HmIP-BWTH, 3xHM-CC-RT-DN, 16xHM-LC-Bl1PBU-FM, 8x HM-SEC-SCo, 1xHM-ES-PMSw1-SM

P.A.Trick

Danke schaue ich mir mal näher an!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

P.A.Trick

Hm falsche Richtung...ich wollte eigentlich von der Fritte das Adressbuch nach fhem konvertieren!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Mitch

P.A.Trick, bist Du da weiter gekommen?

Ich bin gerade am Suchen einer Lösung, um das Telefonbuch automatisch aus der Fritte zu lesen und dann in fhem zu speichern.

Hier gibt es wohl einen Ansatz http://www.ip-phone-forum.de/showthread.php?t=196309&highlight=fritzbox_api_php, ich komme aber damit nicht weiter.
FHEM im Proxmox Container

Tobias

Zitat von: Rince am 14 Juli 2014, 15:02:51
Ich würde eher nicht die FritzBox als Quelle nehmen.
Die hat nämlich mittlerweile einen CardDav Client bekommen, kann also z.B. automatisch die Google Kontakte benutzen. Das ist recht bequem, weil sie halt so immer die Kontaktdaten deines Androiden aktuell hat. Leider ist in diesem Fall kein XML Export mehr möglich. Ob man dann mit einem Client aus ihr die Daten rauskitzeln kann, weiß ich nicht.
Ich denke OwnCloud oder Google Server zu nutzen ist ein schlauerer Weg.
Hi Rince,
in meiner 7270 habe ich nichts gefunden, wo ich meinen OwnCloud Kontakte URL hinterlegen kann. Kannst du mir mal auf die Sprünge helfen?

Bzgl CallMonitor: wünschenswert wäre, wenn dieser direkt mit der CardDav-URL arbeiten könnte.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

P.A.Trick

Zitat von: Mitch am 29 August 2014, 11:17:47
P.A.Trick, bist Du da weiter gekommen?

Ich bin gerade am Suchen einer Lösung, um das Telefonbuch automatisch aus der Fritte zu lesen und dann in fhem zu speichern.

Hier gibt es wohl einen Ansatz http://www.ip-phone-forum.de/showthread.php?t=196309&highlight=fritzbox_api_php, ich komme aber damit nicht weiter.

Ich habe mal ein Perl-Snippet genommen und folgendes versucht:


#!/usr/bin/perl
use strict;
use LWP 5.64;
use Digest::MD5 "md5_hex";
my $boxpasswort = "<<<HIERDEINFRITZBOXPASSWORTEINGEBEN>>";
my $user_agent = LWP::UserAgent->new;
# challenge string holen
my $http_response = $user_agent->get("http://fritz.box/login_sid.lua");
$http_response->content =~ /<Challenge>(\w+)/i and my $challengeStr = $1;
# response zur challenge generieren
my $ch_Pw = "$challengeStr-$boxpasswort";
$ch_Pw =~ s/(.)/$1 . chr(0)/eg;
my $md5 = lc(md5_hex($ch_Pw));
my $challenge_response = "$challengeStr-$md5";
# Session ID erfragen
$http_response = $user_agent->get( "http://fritz.box/login_sid.lua?user=&response=$challenge_response");
# Session ID aus XML Daten auslesen
$http_response->content =~ /<SID>(\w+)/i and my $sid = $1;
# Ereignisse-Seite mit SID als GET Parameter aufrufen und html ausgeben
#$http_response = $user_agent->get("http://fritz.box/system/syslog.lua?sid=$sid");
$http_response = $user_agent->get("http://fritz.box/fon_num/fonbook_list.lua?sid=$sid&stylemode=print");
print $http_response->content;


Damit sollte es einem Perl-Menschen möglich sein die Datei zu speichern.
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

Rince

Bei der Fritte unter Telefonie=> Telefonbuch => neues Telefonbuch anlegen => Telefonbuch eines eMail-Kontos nutzen

Für OwnCloud hilft das aber leider nicht weiter fürchte ich. Ist eher was für die Google Fans, da man so einfach alle seine Telefonnummern auf allen Geräten immer synchron behält.

Drum wäre mir eine Lösung, dass fhem einen CardDav Client bekommt, der da auch drauf zugreift, eigentlich am liebsten.

Mit OwnCloud hatte ich in der Vergangenheit sehr, hm, ich nenne es mal durchwachsene Erfahrungen. Ob es am Thecus lag, einer schlechten OwnCloud Implemetierung oder was auch immer weiß ich nicht. Jedenfalls hat das nie das gemacht was es sollte.
Wer zu meinen Posts eine Frage schreibt und auf eine Antwort wartet, ist hiermit herzlich eingeladen mich per PN darauf aufmerksam zu machen. (Bitte mit Link zum betreffenden Thread)

betateilchen

Zitat von: Rince am 30 August 2014, 14:11:25
Mit OwnCloud hatte ich in der Vergangenheit sehr, hm, ich nenne es mal durchwachsene Erfahrungen. Ob es am Thecus lag, einer schlechten OwnCloud Implemetierung oder was auch immer weiß ich nicht. Jedenfalls hat das nie das gemacht was es sollte.

Solche Erfahrungen hatte ich in der Vergangenheit auch. Aber die aktuellen Versionen von ownCloud funktionieren sowohl server- als auch clientseitig absolut stabil. Lediglich ein zuverlässiger push-Service fehlt mir eigentlich noch.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!