Notification Service für Updates von GARMIN GPS-Empfängern

Erstellt 04.01.2013  Kategorien  Software

In der Vergangenheit habe ich ja schon mehrfach im Blog Artikel zu dem Problem geschrieben, GARMIN GPS-Geräte als Linux-User updaten zu können. Die entsprechende Software WebUpdater von GARMIN läuft nur unter Windows und Mac. Ein Work-Around ist, sich direkt die GCD-Dateien für sein jeweiliges Gerät herunterzuladen und manuell den GPS-Empfänger zu updaten. Dazu muß man aber wissen, daß überhaupt ein Update verfügbar ist und wie man an die Datei kommt. Zur Lösung des letzteren Problems habe ich nun ein Perl-Skript geschrieben, der einen Twitter-Account mit Nachrichten zu anstehenden Updates füttert. So können möglicherweise auch andere profitieren.

Das Programm WebUpdater von GARMIN ließt aus einem angeschlossenen GPS Gerät einige Parameter aus und erstellt daraus eine Anfrage an einen speziellen GARMIN Webserver, um Informationen über verfügbare Updates zu erhalten. In der Antwort des Webservers ist dann auch der Link auf die Update-Datei enthalten. Das von mir geschriebene Skript gpsr-update.pl imitiert genau diese Kommunikation mit dem GARMIN Webserver. Die notwendigen Parameter müssen hierfür vorher in einer zentralen XML-Datei als Device-Einträge spezifiziert werden. So kann das Skript die Verfügbarkeit von Updates gleich für mehrere Geräte überprüfen (allerdings derzeit nur GARMIN-Geräte).
Ein kritischer Parameter ist die sog. PartNumber, die eindeutig das Geräte-Modell (Dakota 20, Oregon 300, Montana 600, eTrex 20, ...) spezifiziert. Mit Hilfe von Geocachern im Grünen Forum ist es mir gelungen, die PartNumbers von ein paar unter Geocachern häufig verwendeten Geräten zu ermitteln. Die PartNumber eines GARMIN Geräts kann jeder selbst in Erfahrung bringen. Im einfachsten Fall schließt man sein Gerät über die USB-Schnittstelle an den Computer an und öffnet den geräteinternen Speicher. Dort sollte man die Datei Garmin/GarminDevice.xml finden. Dort wiederum findet man die Einträge Partnumber und Description. Wenn Ihr ebenfalls ein GARMIN Gerät habt, würde ich mich freuen, wenn Ihr diese Informationen auslesen und mir zukommen lasen würdet! Dann kann ich meinen Service um weitere Geräte ergänzen.
Das Skript wertet also die Antwort des GARMIN Webservers aus. Alle bisher abgerufenen Updates werden ebenfalls in der oben genannten XML-Datei abgelegt. Verkündet der Webserver nun die Verfügbarkeit eines neuen Updates, so wird eine Twitter-Nachricht erzeugt, die die Links auf die GCD-Datei sowie auf die Release-Notes enthält. Anschließend wird dieses Update ebenfalls in der XML-Datei vermerkt. Zur Kommunikation mit Twitter bietet Perl das Modul Net::Twitter an. Das habe ich aber bislang nicht zum Laufen bekommen, weshalb das Perl Skript derzeit das externe Programm ttytter aufruft.

Den Service habe ich heute scharf gestellt. Einmal täglich werden verfügbare Updates abgerufen. Der Twitter-Account lautet @GPSr_Updates. Wer keinen Twitter-Zugang hat und/oder lieber RSS verwenden möchte, kann folgende URL verwenden: http://twitrss.me/twitter_user_to_rss/?user=GPSr_Updates&replies=on.
Das Skript gpsr-update.pl habe ich unter GNU GPL Lizenz auf github veröffentlicht, falls jemand den Code reviewen oder ergänzen möchte. Den entsprechenden Thread im Grünen Forum findet Ihr hier.

Tags  perl,  update,  geocaching,  gps,  garmin,  twitter