LIRC neue Fernbedienung anlernen

Damit eine Fernbiedienung mit LIRC funktioniert, muss man Sie erst anlernen. Es sei denn, es gibt schon eine fertige Konfiguration.
Ich habe 2 Universal- Fernbedienungen, aber hier keine fertige Konfiguration. Das ist allerdings kein Problem, das Anlernen ist ganz einfach. Außer die Fernbedienung wird nicht erkannt und im RAW Format gespeichert. Diese würde ich bei Seite legen, da RAW nicht so genau ist. Zum Anlernen der Fernbedienung darf der Dienst LIRC nicht laufen. So kann man den Dienst anhalten:

/etc/init.d/lirc stop

Zum Konfigurieren der Tasten muss man die verfügbaren Namen kennen, diese Liste habe ich in den Editor kopiert.

irrecord –list-namespace

Hier habe ich mir meine benötigten Tasten rausgesucht.

Das sind meine Tasten:
KEY_0
KEY_1
KEY_2
KEY_3
KEY_4
KEY_5
KEY_6
KEY_7
KEY_8
KEY_9
KEY_PAUSE
KEY_PLAY
KEY_POWER
KEY_NEXT
KEY_PREVIOUS
KEY_STOP
KEY_VCR
KEY_CHANNELDOWN
KEY_CHANNELUP
KEY_VOLUMEDOWN
KEY_VOLUMEUP
KEY_RECORD
KEY_MUTE
KEY_E
KEY_F
KEY_G
KEY_H
KEY_MENU
KEY_SETUP
KEY_A
KEY_UP
KEY_DOWN
KEY_RIGHT
KEY_LEFT
KEY_OK
KEY_LAST
KEY_102ND

Jetzt muss „irrecord“ ausgeführt werden. Hier wird der gedrückten Taste ein Name hinterlegt.

irrecord -d /dev/lirc0 /root/lircd.conf

Am Anfang kommt ein Hinweistext, hier kann man mit Return bestätigen.
Jetzt soll man nach Eingabe von Return unterschiedliche Tasten drücken. Pro Taste wird ein Punkt am Bildschirm ausgegeben werden.
Das Ganze macht man so lange, bis der Assistent etwas Neues erwarten.
Jetzt verlangt der Assistent immer einen Namen, z.B. KEY_0. Nach Eingabe soll die Taste 0 gedrückt werden.
Das Ganze macht man bis man keine Tasten mehr hat oder man bricht vorher hab. Das Ganze macht man mit der Taste Return.

Jetzt muss die Konfigurations-datei am richtigen Ort abgelegt werden:
cp /root/lircd.conf /etc/lirc/lircd.conf

Nachdem am Anfang der Dienst gestoppt wurde, sollte man jetzt LIRC wieder starten:

/etc/init.d/lirc start

Jetzt kann man seine Aufnahme testen:

irw

Nach Eingabe des Befehls sollte man auf die Fernbedienung drücken. Als Ergebnis sieht man seine programmierten Tasten:

0000000000000002 00 KEY_1 /root/lircd.conf
0000000000000004 00 KEY_2 /root/lircd.conf
0000000000000005 00 KEY_3 /root/lircd.conf
0000000000000008 00 KEY_6 /root/lircd.conf
0000000000000007 00 KEY_5 /root/lircd.conf
0000000000000006 00 KEY_4 /root/lircd.conf
0000000000000009 00 KEY_7 /root/lircd.conf
000000000000000a 00 KEY_8 /root/lircd.conf
000000000000000b 00 KEY_9 /root/lircd.conf
0000000000000009 00 KEY_7 /root/lircd.conf
000000000000000a 00 KEY_8 /root/lircd.conf
000000000000000b 00 KEY_9 /root/lircd.conf
0000000000000006 00 KEY_4 /root/lircd.conf
0000000000000007 00 KEY_5 /root/lircd.conf
0000000000000008 00 KEY_6 /root/lircd.conf
0000000000000008 01 KEY_6 /root/lircd.conf
0000000000000008 00 KEY_6 /root/lircd.conf
0000000000000008 00 KEY_6 /root/lircd.conf
0000000000000008 00 KEY_6 /root/lircd.conf

Falls etwas nicht funktioniert, sollte der lirc Treiber kontrolliert werden:
lsmod
modprobe lirc_dev
dmesg

Sollte hier kein fehler vorliegen, sollte man die Konfiguration (irrecord) prüfen:

/etc/init.d/ stop
mode2 -d /dev/lirc0

Jetzt auf der Fernbedienung rumdrücken und es sollte etwas am Bildschirm erscheinen. Damit kann man sehen, ob der IR-Empfänger überhaupt was empfangen kann. Sollte auch das funktionieren, muss man die hardware.conf überprüfen:

sudo nano /etc/lirc/hardware.conf

Die Zeile DEVICE sollte so aussehen:
DEVICE=/dev/lirc0

Ist auch das richtig, wurde vielleicht die lirc.conf nicht ins richtige Verzeichnis erstellt.
Am Besten überprüfen, ob die lircd.conf vorhanden ist.


cp -v /root/lircd.conf /etc/lirc/lircd.conf
chown root:root /etc/lirc/lircd.conf

LIRC jetzt wieder starten:
/etc/init.d/lirc start

Jetzt wieder irw ausführen und an der Fernbedienung drücken. Sollte da nichts erscheinen und vorher kein Fehler aufgetaucht sein, ist die Aufzeichnung der Tasten nicht in Ordnung. Es muss die Fernbedienung neu angelegt werden.

irrecord -d /dev/lirc0 /root/lircd.conf

Bei dem Befehl irw, werden nur angelernte Tasten ausgegeben!