Sync multiple Calendars in OpenSync


Hallo,

diesen Artikle widme ich dem Thema:
Wie synce ich unter Linux meine Google-Termine auf das Handy?

Tja, natürlich lautet hier die einschlägige Antwort: mit Opensync.
Jetzt stehen wir nur vor dem Problem, dass das Opensync-Plugin nur einen Google-Kalender unterstützt. Hier hilft uns das Programm GCalDaemon.

Installation vom GCalDaemon

Der GCalDaemon ist ein sehr stabiles Programm, um die Termine verschiedener Google-Kalender in .ics-Dateien zu syncen. Diese Dateien stellen ein offenes Austauschformat für Termine dar und sind mit unterschiedlichsten Programmen kompatibel. GCalDaemon selbst benötigt nur eine installierte JavaVirtualMachine. Mit dem Befehl “java -version” kann man prüfen, ob eine entsprechende JVM installiert ist.

Trotz der Anleitung auf der Projektseite empfehle ich die Installation in das Homeverzeichnis des Benutzers. Sollte man neu installieren bleibt der ganze GCalDaemon erhalten und ist sofort wieder einsatzfähig. Ich habe daher in meinem Home-Verzeichnis einen Ordner “GCALDaemon” erstellt und dort den Inhalt des Download-Pakets hineinkopiert.

Angenommen, wir haben jetzt unseren GCalDaemon im Verzeichnis /home/user/GCALDaemon geht die Anleitung wie folgt weiter:

Wir öffnen eine Konsole. Wir wechseln in das “bin”-Verzeichnis von GCalDaemon und starten den Password-Encoder:

cd /home/user/GCALDaemon/bin

Bei der ersten Nutzung müssen wir die Datei password-encoder.sh geringfügig abändern. Daher tippen wir:

gedit password-encoder.sh

und berichtigen in der 6. Zeile den Pfad “GCALDIR”. Die Zeile lautet daher

GCALDIR=/home/user/GCALDaemon

Nun können wir den Password-Encoder nutzen, indem wir gedit schließen und in die Konsole folgenden Befehl tippen:

./password-encoder.sh

Hier wird nach unserem Google-Password gefragt, das wir bereitwillig eingeben. Anschließend erhalten wir unser Passwort. Hier kopieren wir uns die Ausgabe von “Encoded password: “. Anschließend öffnen wir in einem Texteditor die Datei

gedit /home/user/GCALDaemon/conf/gcal-daemon.cfg

Wichtig ist der Bereich “File-Based Synchronizer”, der wie folgt aussehen sollte: (Änderungen vom Standard sind fett)

################################################
# CONFIGURATION OF THE FILE-BASED SYNCHRONIZER #
################################################
# Enable iCalendar file listener/synchronizer
file.enabled=true
# Full path of the local iCalendar file
file.ical.path=/home/user/GCALDaemon/kalender1.ics
# Gmail user (your full email address)
file.google.username=username@gmail.com
# Gmail password (use password encoder!)
file.google.password=(codiertes Passwort)
# URL (without hostname) of the Google Calendar’s private ical file
file.private.ical.url=/calendar/ical/user%40hlmw9.at/private-29755fb657f4b2235da5c6d4450auh2473/basic.ics
file.ical.path2=/home/user/GCALDaemon/kalender2.ics
# Gmail user (your full email address)
file.google.username2=user@gmail.com
# Gmail password (use password encoder!)
file.google.password2=(codiertes Passwort)
# URL (without hostname) of the Google Calendar’s private ical file
file.private.ical.url2=/calendar/ical/user%40gmail.com/private-7e3393sdfad36037e2daf412e56d37dfdd47/basic.ics
# Local iCalendar file polling interval (recommended is “10 sec”)
file.polling.file=10 sec
# Google Calendar polling interval (recommended is “10 min”)
file.polling.google=5 min
# Turn it on when you use dial-up connection (default is “true”)
file.offline.enabled=true

Zuletzt noch muss GCalDaemon gestartet werden. Ein Testlauf kann mit folgendem Befehl gestartet werden:

/home/user/GCALDaemon/bin/sync-now.sh

Bei Systemstart (bei Ubuntu unter System / Präferenzen / Sitzungen) sollte folgender Befehl eingetragen werden:

/home/user/GCALDaemon/bin/standalone-start.sh

Jetzt haben wir eine stabile Synchronisation der Kalender auf unsere Festplatte. Diese ICS-Dateien können natürlich auch problemlos mit auf ICS-Files basierendern Kalendern wie Sunbird etc. sofort benutzt werden. Nur stellt sich die Frage, wie wir das Ding auf unser Handy bekommen.

Installation von Opensync

Die Installation von Opensync unter Gutsy gestaltet sich denkbar einfach, und läßt sich im Wiki unter Ubuntuusers.de nachlesen.
Zuerst benötigen wir die zusätzlichen Paketquellen (nicht vom Wort “feisty” verwirren lassen. Diese Quellen sind sowohl für Feisty Fawn, als auch für Gutsy Gibbon)

Dann noch die nötigen GPG-Schlüssel hinzufügen:

gpg –keyserver hkp://subkeys.pgp.net/ –recv-keys CB210090B029CB84
gpg –export CB210090B029CB84 | sudo apt-key add –

Tja, was benötigen wir jetzt für Pakete?

Zuerst

Die für unser Vorhaben benötigten Pakete sind daher:

  • libopensync0 (Programm selbst)
  • multisync-gui (grafisches User-Interfaces)
  • libopensync-plugin-sunbird (für die ICS-Dateien)

und je nach Mobiltelefon die entsprechenden Partner. In meinen Fall sind das

  • libopensync-plugin-irmc (für das Sony Ericsson K800i)
  • libopensync-plugin-syncml (für das Nokia E50)

Daher starte ich die Konsole und tippe

sudo apt-get install libopensync0 multisync-gui libopensync-plugin-sunbird libopensync-plugin-irmc libopensync-plugin-syncml

OpenSync konfigurieren

Nach erfolgter Installation erscheint unter Anwendungen / Zubehör der Punkt Multisync-gui. Das Fenster sieht im Ursprungszustand so aus:

Wir klicken natürlich erstmal auf “Hinzufügen”. Hier müssen wir einen Namen für das Synchronisationsgruppe angeben. Ich wähle “K800i” und haben diese Gruppe dann im GUI aufgelistet:

Hier klicke ich auf “Bearbeiten” und anschließend auf “Add Member”. Ich füge “sunbird-sync” und dann “irmc-sync” hinzu.

Nun noch festlegen, dass wir nur Kalendereinträge syncen wollen. Dazu die Punkte “Note”, “Contact” und “Todo” anhakeln, während wir “Event” und “Data” stehenlassen.

Nun müssen wir die beiden Plugins noch konfigurieren. Bei unserem “Sunbird-Sync” tragen wir in das Textfeld folgende Konfiguration ein:

<?xml version=“1.0″?>
<config>

<file path=“/home/user/GCALDaemon/kalender1.ics“ />
<file default=“1″ path=“/home/user/GCALDaemon/kalender2″ />
</config>

Für das Plugin IRMC-sync benötigen wir mehr Informationen. Wir brauchen die Bluetooth-MAC-Adresse des Mobiltelefons und den entsprechenden Channel des Dienstes “IRMC-Sync” am Handy. Dazu schalten wir am Laptop und am Handy die Bluetooth-Schnittstellen ein und tippen in eine Konsole den Berehl:

hcitool scan

Die Ausgabe lautet (etwa) wie folgt:

user@meinpc:~$ hcitool scan
Scanning …
00:19:63:4B:39:1E name-vom-handy

user@meinpc:~$

Diese mit Doppelpunkten getrennte Buchstaben- und Ziffernfolge ist die MAC-Adresse des Mobiltelefons. Diese tragen wir bei untenstehender Konfiguration zwischen die Worte <btunit> und </btunit> ein.

Um den Kanal des Dienstes “irmc-sync” am Handy zu erhalten benötigen wir noch den Befehl (gegebenenfalls natürlich die MAC-Adresse ändern!!)

sdptool browse 00:19:63:4B:39:1E

Die Ausgabe ist jetzt relativ lang, irgendwo zwischendurch finden wir die Zeile “Service Name: OBEX IrMC Sync Server” und ein paar Zeilen darunter steht “Channel: 8″. (Bei mir ist es Kanal 8). Diesen trage ich nun ebenfalls in die Konfiguration ein, sodass sie (in etwa) so aussieht:

<config>
<connectmedium>bluetooth</connectmedium>
<btunit>00:19:63:4B:39:1E</btunit>
<btchannel>8</btchannel>
</config>

Et voilà. Nun können wir mit unserem K800i syncen.

Die Beschreibung für das Nokia E50 mit SyncML werde ich in Kürze ebenfalls posten, für heute habe ich aber genug vom Schreiben ;-)

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s