Ubuntu 12.10 „Quantal Quetzal“
Ubuntu 11.10 „Oneiric Ocelot“
Ubuntu 10.04 „Lucid Lynx“
Logitech Harmony
ist eine Serie von Universalfernbedienungen, also Fernbedienungen mit denen man mehrere Geräte auf einmal steuern kann. Diese werden über eine Webseite programmiert. Ist die Programmierung abgeschlossen, so wird eine Datei auf die Fernbedienung übertragen. Mit Hilfe der Bibliothek Concordance
ist es externen Programmen und Skripten erlaubt, Logitech Harmony Fernbedienungen unter Linux anzusprechen. Welche Modelle der Fernbedienung derzeit unterstützt werden, kann auf der Webseite des Entwicklers
nachgelesen werden.
Concordance teilt sich in zwei Teile auf: die eigentliche Bibliothek libconcord und das Terminalprogramm concordance, mit dem die Fernbedienung angesprochen werden kann. Des weiteren gibt es mit congruity ein Pythonscript, welches eine simple grafische Oberfläche zur einfacheren Verwaltung der Fernbedienung bietet.
Hier genügt es die beiden Pakete aus den Paketquellen zu installieren [1] und danach die udev Regeln zu erweitern.
congruity
concordance
mit apturl
Paketliste zum Kopieren:
sudo apt-get install congruity concordance
sudo aptitude install congruity concordance
Folgende Pakete müssen vorab installiert werden [1] (ggf. sind die Namen der Pakete zusätzlich mit einer Versionsnummer versehen):
libusb
libusb-dev
python
python-ctypes
python-wxgtk
Die Bibliothek bzw. Programm concordance kann in der aktuellen Version von hier heruntergeladen werden. Anschließend das heruntergeladene Archiv concordance-[VERSION].tar.bz2 im Terminal [2] in ein beliebiges Verzeichnis entpacken [4]. Man erhält dann das Unterverzeichnis concordance-[VERSION].
Im ersten Schritt muss die Bibliothek libconcord kompiliert und installiert werden. Dazu in das Verzeichnis concordance-[VERSION]/libconcord wechseln und nach der Standardmethode kompilieren [6]. Sind alle Abhängigkeiten (siehe oben) erfüllt, gelingt das Kompilieren problemlos.
Nach der erfolgreichen Installation der Bibliothek muss jetzt das eigentliche Programm kompiliert werden. Dazu in das Verzeichnis concordance-0.21/concordance wechseln und auch hier das Programm entsprechend [6] kompilieren.
Das grafische Pythonscript congruity in der aktuellen Version kann hier heruntergeladen werden. Danach das heruntergeladene Archiv congruity-[VERSION].tar.bz2 in ein beliebiges Verzeichnis entpacken [4]. Man erhält dann das Unterverzeichnisse congruity-[VERSION]. Dann im Terminal [2] in das Verzeichnis wechseln und
sudo make install
eingeben.
Danach im Verzeichnis /concordance-[VERSION]/libconcord/bindings/python
python setup.py install
ausführen.
Nun sind alle Vorkehrungen getroffen und man kann sich den udev Regeln widmen.
Im Idealfall ist es nicht nötig eine solche udev-Regel anzulegen. Sollte die Fernbedienung aber nicht vom System erkannt werden, so muss dann doch eine Regel für das Gerät angelegt werden. Dazu ist es notwendig die Vendor- und Product-ID der jeweiligen Fernbedienung zu ermitteln. Dazu in einem Terminal [2]
lsusb
bei, per USB, angeschlossener Fernbedienung eingeben und die Vendor:Product-ID notieren. Als Ausgabe erscheint folgendes:
Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 008: ID 046d:c111 Logitech, Inc.
Nun muss eine neue Datei namens 85-harmony.rules im Pfad /etc/udev/rules.d erzeugt [3] werden. Diese muss folgenden Inhalt haben:
SYSFS{idVendor}=="046d", SYSFS{idProduct}=="[ID_PRODUCT]", MODE="666"
SYSFS{idProduct}=="[ID_PRODUCT]" muss auf das eigene Modell abgestimmt sein. Hier einige Beispiele:
Produktbezeichnung | ID_PRODUCT |
Harmony 555 (Mocha Grande) | c111 |
Harmony 885 (Espresso) | c110 |
Harmony 300 (wird von Concordance z.Z. nicht unterstützt) | c124 |
Damit ergibt sich dann folgender oder ähnlicher Aufbau für eine Harmony 555:
SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c111", MODE="666"
Nachdem udev mittels folgenden Befehls
sudo /etc/init.d/udev restart
neu gestartet wurde wurde, kann das Gerät abgezogen und wieder angesteckt werden. Durch die Eingabe von:
concordance -i
kann geprüft werden, ob die Verbindung funktioniert. Im Erfolgsfall sieht die Ausgabe folgendermaßen oder ähnlich aus:
Concordance 0.21 Copyright 2007 Kevin Timmerman and Phil Dibowitz This software is distributed under the GPLv3. Requesting Identity: 100% done Model: Logitech Harmony 555 (Mocha Grande) Firmware Version: 3.0 Hardware Version: 3.0 Config Flash Used: 13% (51 of 384 KiB) Success!
Bevor man über den Webbrowser und congruity die Harmony programmiert, sollte eine Sicherheitskopie der aktuellen Einstellungen in der Fernbedienung gesichert werden. Dazu die Fernbedienung mit dem USB-Kabel an den Rechner anschließen und im Terminal [2]
concordance --dump-config <dateiname.EZhex>
eingeben. Im Fehlerfall kann diese Sicherheitskopie jederzeit durch die Eingabe von
concordance --write-config <dateiname.EZhex>
wieder in die Fernbedienung geschrieben werden.
Auf der Website http://members.harmonyremote.com/ kann nach der Eingabe der Benutzerdaten damit begonnen werden, die Fernbedienung zu programmieren. Sollen Daten auf dem Gerät gespeichert werden, so versucht der Browser die Datei mit der Endung EZhex bzw EZup herunterzuladen.
Im "Öffnen mit"-Dialog des Browsers muss nun der Pfad von Congruity angegeben werden, damit dies die Daten übernimmt und an Concordance weitergibt. Bei der normalen Installation lautet dieser: /usr/local/bin/congruity. Bei Versionen vor 9 entsprechend: /usr/bin/congruity. Funktioniert diese Vorgehensweise, bietet es sich an, bei jedem Download einer EZhex bzw. EZup-Datei diese automatisch mit Congruity zu öffnen. Dazu können entsprechende Einstellungen im jeweiligen Browser vorgenommen werden.
Normalerweise wird die Eintrichtung über die Webseite http://myharmony.com/ vorgenommen. Dabei kommt Silverlight zum Einsatz. Dies funktioniert allerdings nur unter Windows und MacOSX. Moonlight unter Linux wird nicht unterstützt.