Infrarot Fernbedienung (z.B. Logitech Harmony) mit WeTek OpenELEC
WeTek OpenELEC ist eine kleine Box mit installiertem OpenELEC, welches wiederum auf Kodi basiert. WeTek OpenELEC enthält je nach Variante bereits einen Tuner (DVB-C/T, DVB-S oder ATSC). Bei mir hat die Box einen Raspberry Pi ersetzt. Zum Lieferumfang gehört eine AirMouse. Das ist eine Fernbedienung die sich durch Bewegungssensoren auch als Maus verwenden lässt. Da ich aber bereits eine Logitech Harmony als Universalfernbedienung verwende, soll diese die Steuerung übernehmen. Bei WeTek OpenELEC handelt es sich um eine Sonderedition von WeTek Play (Unterschiede zwischen WeTek Play und WeTek OpenELEC). Die Einrichtung einer Fernbedienung sollte für WeTek Play also ähnlich sein.
WeTek OpenELEC hat einen Infrarotempfänger eingebaut. Standardmäßig wird dieser jedoch nur zum Ein- und Ausschalten des Geräts verwendet. Die Steuerung der anderen Funktionen ist etwas komplizierter einzurichten. Ich werde zuerst erklären wie man (um sich Arbeit zu sparen) meine Konfiguration übernehmen kann. Danach gibt es mehr Details wie die Vorgehensweise war und die Konfiguration auch für andere Fernbedienungen selbst angepasst werden kann. Die verwendete Fernbedienung muss das NEC Protokoll verwenden.
Um möglichst viele Tasten der Harmony Fernbedienung nutzen zu können habe ich als Gerät “Mut@nt HD2400” konfiguriert. Wählt man als Gerät WeTek Play aus bleiben leider viele Tasten der Harmony ohne Funktion.
Die Tasten und die jeweilige Aktion werden auf WeTek OpenELEC über die Datei remote.conf gesteuert. Für eine möglichst schnelle Konfiguration stelle ich meine Datei hier bereit.
Es muss also für die Harmony das Gerät Muta@nt HD2400 hinzugefügt (und in gewünschte Aktionen aufgenommen) werden. Danach per Samba (
Zusätzlich habe ich noch einige weitere Tasten konfiguriert:
Sie sind in der remote.conf auf die Tasten M, S, L, Z, T und V gemappt. T und L sind in der Standardkonfiguration von Kodi den Aktionen “Untertitel umschalten” und “Videotext” zugeordnet. Die anderen Tasten können über eine eigene Keymap (Datei keymap.xml) Aktionen zugeordnet werden. In meinem Fall sind dies M = “Ansicht Filme”, S = “Ansicht Serien”, L = “Audiospur umschalten” und Z = “TV”. Des Weiteren enthält die Keymap die Tasten zur Navigation im Videotext (red, green, yellow, blue). Die keymap.xml wird unter
Wie kann man selbst eine beliebige Fernbedienung für WeTek OpenELEC konfigurieren? Als erstes muss der SSH Zugang zu der Box in den Einstellungen aktiviert werden. Das Standardpasswort für den Benutzer root lautet openelec. Jetzt kann eine beliebige Taste auf der Fernbedienung gedrückt werden. Mit dmesg -c | grep custom erhält man den Factory Code für seine Fernbedienung:
OpenELEC:~ # dmesg -c | grep custom [ 1657.693666@0] Wrong custom code is 0xe21d1f00
Dieser muss in die Datei remote.conf eingetragen werden. Entweder man editiert die Datei direkt in der SSH Sitzung (z.B. vi /storage/.config/remote.conf) oder mit einem beliebigen Editor über die Freigabe
OpenELEC:~ # head -n 15 /storage/.config/remote.conf # WeTek Play NEC remote factory_code = 0x1f000001 work_mode = 1 repeat_enable = 1 release_delay = 150 debug_enable = 1 reg_control = 0xfbe40 key_begin ; Code = IR keycode ; Linux = Linux keycode ; Android = Android keycode ; Button = Description button on Logitech remote ; KODI = Action in KODI (focus on video playback) ; Further info: http://kodi.wiki/view/Keyboard_controls
Damit die Änderung an der remote.conf aktiv wird, muss das System entweder neu gestartet oder der Befehl remotecfg /storage/.config/remote.conf ausgeführt werden. Danach kommt der aufwendige Teil: Für jede Taste muss der Code ermittelt werden. Dafür muss zuerst die gewünschte Taste auf der Fernbedienung gedrückt und danach der empfangene Code ausgelesen werden:
OpenELEC:~ # dmesg -c | grep scan [ 3135.540356@0] scancode is 0x002b, invalid key is 0x0000. [ 3135.812065@0] scancode is 0x002b, invalid key is 0x0000. OpenELEC:~ # dmesg -c | grep scan [ 3163.433223@0] scancode is 0x0028, invalid key is 0x0000. [ 3163.702069@0] scancode is 0x0028, invalid key is 0x0000.
Jedem empfangenen Code (scancode) wird ein Keycode zugeordnet, der wiederum eine Aktion in Kodi auslöst. Meine remote.conf enthält bereits die wichtigsten Keycodes wie z.B. 114 und 115 zum Verändern der Lautstärke (siehe Erklärung der Funktion in der Spalte “Kodi”). Einige der gültigen Keycodes können dieser Liste entnommen werden.
Die Tasten werden im Bereich zwischen “key_begin” und “key_end” definiert. Die bereits vorhandenen können einfach geändert werden. Dafür muss der Wert in der ersten Spalte “Code” auf die Codes der eigenen Fernbedienung angepasst werden. Nicht benötigte Zeilen werden mit ; oder # auskommentiert. Für die Codes aus dem Beispiel könnte das wie folgt aussehen:
key_begin 0x2b 114 # Vol - 0x28 115 # Vol + key_end
Wenn alle Codes in der remote.conf eingetragen wurden kann die neue Konfiguration mit remotecfg /storage/.config/remote.conf aktiviert werden.
Die Vorgehensweise wird auch in diesem Foreneintrag erläutert.