Ein Traum wird wahr: Synchronisation aller gängigen Daten mit fast allem, was so als Gegenstelle in Frage kommt. Andere Handys, die PC-Suite von Nokia zum Synchronisieren von Outlook per Kabel oder Bluetooth, aber auch “over-the-air” per Active Sync Protokoll, welches das N900 von Natur aus unterstützt, ist bereits möglich. Nachdem in einem Update der Firmwareversion nicht mehr nur Exchange 2007 Server, sondern endlich auch Exchange 2003 und wahrscheinlich auch Google als Gegenstelle unterstützt werden, ist ja ein nicht unwesentlicher Teil der Synchronisationswilligen bedient. Vielleicht widme ich eine der nächsten Synchronisationsgeschichten diesen Themen.
Theorie…
Hier und heute soll es um SyncML gehen. Also um ein von Nokia auf dem N900 nicht offiziell unterstütztem Protokoll. Auch per SyncML können Kontakte, Termine, Aufgaben und Notizen mit einem Synchronisationsserver abgeglichen werden.
Auf den älteren Internet Tablets war dies nur für Kontakte möglich, wie in den vorangegangenen Artikeln zum Thema Synchronisation in diesem Blog beschrieben wird.

Kalender-Anwenung auf dem N900 unter Mameo5
Nun besitzt das N900 zu meiner großen Freude eine rudimentäre, aber gut funktionierende Kalender-Anwendung, die zugleich auch noch Aufgaben und Notizen verwalten kann und darüber hinaus sogar die Verwendung verschiedener Kalender für verschiedene Zwecke ermöglicht. Die Frage ist, ob syncevolution auch auf dem N900 lauffähig ist und ob man die über Kontaktdaten hinausgehende Datentypen damit ebenfalls synchronisieren kann.
Man kann!

Verwendet man mehrere Kalender, können diese einzeln Ein- oder Ausgeblendet werden
Nachdem sich Patrick Ohly, der Schöpfer des wunderbaren syncevolution, nach dem Erscheinen des N900 aus zeitlichen Gründen nicht mehr mit der Portierung und Weiterentwicklung dieses sync-Wunders für Maemo5 befassen kann und in der maemo.org Community anfragte, wer dieses Projekt weiterzuführen bereit wäre, passierte lange Zeit nichts. Zaghafte Versuche, sich mit Hilfe eines maemo.org Brainstorms an das Thema heranzutasten, wurden gestartet… Doch dann nahm Ove Kaaven das Heft des Handelns in die Hand und baute eine funktionierende Version von syncevolution für Maemo5. Und was für eine! Über meine kühnsten Erwartungen hinausgehend ist es mit dieser Version auch möglich Termine, Aufgaben und Notizen zu synchronisieren. Verwendet man mehr als einen Kalender, ist es zudem möglich festzulegen, welche(r) Kalender (in denen auch Aufgaben und Notizen verwaltet werden) synchronisiert werden sollen.
… und Praxis
Ich bitte den geneigten Leser, zu beachten, dass nachfolgende Beschreibung sich auf Software bezieht, die nicht hinreichend getestet wurde und die sich noch im Entwicklungsstadium befindet. Nur weil bei mir bisher alles gut funktioniert hat, kann nicht davon ausgegangen werden, dass es auch beim Nachmachen funktioniert. Ein Backup der Daten aller beteiligter Parteien ist obligatorisch.
Ich beschreibe die Installation am Beispiel des Dienstes scheduleworld.com. Dieser ist inzwischen kostenpflichtig. Eine Liste von Sync-Anbietern kann dieser Seite entnommen werden. Welche Konfigurationsparameter jeweils verwendet werden, ist den Anleitungen der entsprechenden Anbieter zu entnehmen.

Bearbeitung der Konfigurationsdateien von syncevolution mit dem Editor Leafpad
Zunächst sollte ein Editor installiert werden, der alle bearbeiteten Dateien im Nur-Text-Format belässt und keine Formatierung kennt. Dafür bietet sich der dem Midnight Comander beiliegende mcedit oder der ebenfalls zu installierende Editor “Leafpad” an. Ich beschreibe alles nachfolgend mit Leafpad als Editor.
Update vom 26.01.2010: syncevolution kann inzwischen ganz normal mit Hilfe des Programmmanagers installiert werden. Voraussetzung ist die Aktivierung des Programmkatalogs extras-devel.
Für scheduleworld existiert bereits ein Konfigurationstemplate, das mit dem Kommando:
~ $ syncevolution -c scheduleworld
konfiguriert wird.
Nun müssen noch wenige kleine Anpassungen an den Konfigurationsdateien vorgenommen werden. Details zu diesen Anpassungen können den enthaltenen Beschreibungen in diesen Dateien entnommen werden. Die Konfigurationsdateien sind unter /home/user/.config/syncevolution/scheduleworld/ abgelegt. Zunächst wird die Kofigurationsdatei mit den allgemeinen Informationen bearbeitet:
~ $ leafpad /home/user/.config/syncevolution/scheduleworld/config.ini
Es gilt, den Benutzernamen und das Passwort zu hinterlegen indem man diese Werte als “username =” und “password =” hinterlegt. Die URL ist bereits korrekt vorkonfiguriert.
Nachdem die alllgemeinen Parameter festgelegt sind, kann in den Dateien:
/home/user/.config/syncevolution/scheduleworld/sources/addressbook/config.ini
/home/user/.config/syncevolution/scheduleworld/sources/calender/config.ini
/home/user/.config/syncevolution/scheduleworld/sources/todo/config.ini
/home/user/.config/syncevolution/scheduleworld/sources/memo/config.ini
Einstellungen für die einzelnen Datentypenbearbeitet werden.
Um zu ermitteln, welche Einträge in Frage kommen, können die vorhanden Sync-Quellen hier abgefragt werden:
~ $ syncevolution
Evolution Address Book = Evolution Contacts = evolution-contacts:
<<system>> (file:///home/user/.osso-abook/db) <default>
Maemo Calendar = maemo-events:
N900 (id:1) <default>
Privat (id:2)
Geburtstage (id:3)
Nokia E52 jukey (id:4)
Mail for Exchange (id:5)
Maemo Tasks = maemo-tasks:
N900 (id:1) <default>
[...]
Maemo Notes = maemo-notes:
N900 (id:1) <default>
[...]
Um einen bestimmten Kalender als Quelle für den Synchronisationsvorgang zu wählen, muss der entsprechende Wert für “id:x” später in der entsprechenden Konfifgurationsdatei eingetragen werden. Im obrigen Beispiel müsste also z.B. id:2 genommen werden, um den Kalender “Privat” zu synchronisieren. Zusätzlich muss ein Synchronisationsmodus gewählt werden. Der Modus “two-way” bedeutet beidseitige Synchronisation, während im Modus one-way-to-server/client nur in die jeweils angegebene Richtung synchronisiert wird.
Die Datei im Verzeichnis /home/user/.config/syncevolution/scheduleworld/sources/calender/config.ini sieht nun also folgendermaßen aus:
sync = two-way
type = calendar
evolutionsource = id:2
uri = cal2
wobei uri der Name der externen Datenbank ist, in die die Termine wandern. Im Falle von scheduleworld.com kann im dortigen Login-Bereich nachgelesen werden, welcher Wert für welchen Kalender angegeben werden muss. Um die Datei mit Hilfe von leafpad zu editieren, wird folgender Befehl verwendet:
~ $ leafpad /home/user/.config/syncevolution/scheduleworld/sources/calender/config.ini
Für die andern Syncchronisationsquellen gestaltet sich die Konfiguration jeweils genauso.
Um den Synchronisationsvorgang zu starten ist nun nur noch folgender Befehl nötig:
~ $ syncevolution scheduleworld
Es folgt ein Bericht, der u.a. ausgibt welche Daten synchronisiert wurden:
Changes applied during synchronization:
+---------------|-------ON CLIENT-------|-------ON SERVER-------|-CON-+
| | rejected / total | rejected / total | FLI |
| Source | NEW | MOD | DEL | NEW | MOD | DEL | CTS |
+---------------+-------+-------+-------+-------+-------+-------+-----+
| addressbook | 0/0 | 0/0 | 0/0 | 0/189 | 0/0 | 0/0 | 0 |
| refresh-from-client, 71 KB sent by client, 0 KB received |
| item(s) in database backup: 189 before sync, 189 after it |
+---------------+-------+-------+-------+-------+-------+-------+-----+
| calendar | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0 |
| two-way, 0 KB sent by client, 0 KB received |
| item(s) in database backup: 1 before sync, 1 after it |
+---------------+-------+-------+-------+-------+-------+-------+-----+
| todo | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0/0 | 0 |
| two-way, 0 KB sent by client, 0 KB received |
| item(s) in database backup: 1 before sync, 1 after it |
+---------------+-------+-------+-------+-------+-------+-------+-----+
| start Wed Dec 30 21:19:51 2009, duration 0:24min |
| synchronization completed successfully |
+---------------+-------+-------+-------+-------+-------+-------+-----+
Damit kann jeder, der ein wenig Konfigurationsaufwand nicht scheut, sein N900 in einen wahres Synchronisations-Multitalent verwandeln.
Zukunft
Was fehlt nun noch, um auch Leuten, die weder die Kommandozeile benutzen wollen, noch in Kofigurationsdateien herumwühlen wollen, eine komfortable Art der Kofiguration zu bieten?
Zum einen muss aus syncevolution erstmal wieder ein ordentliches, im “extras” Programmkatalog geführtes Programm werden. Zum anderen wäre es großartig, wenn sich jemand fände, der ein Plugin für den Dialog “Einstellungen” schreibt. Dort könnte man dann, ähnlich der jetzt bereits vorhanden Möglichkeit zur Konfiguration von Exchange-Sync, die Kofiguration von sync-Evolution übernehmen.
Zu guter Letzt wäre es natürlich sehr vorteilhaft, wenn man den Synchronisationsvorgang nicht immer manuell starten müsste, sondern ein Intervall festlegen könnte, in dem die Daten ausgetauscht werden. Auch hier fehlt es noch an einer guten Lösung.
Technorati Tags: syncevolution, syncml, n900, maemo5, pim