LIRC

Aus EasyVDR Wiki
Wechseln zu: Navigation, Suche
Lirc Logo.jpg

zurück

Teile dieser Seite stammen aus dem VDR-Wiki

Fernbedienung auswählen

Für die Fernbedienung des VDR sind hauptsächlich die folgenden Dateien verantwortlich:

  • /etc/lircd.conf ist die Konfigurationsdatei zu LIRC, hier werden die Tasten-Codes der Fernbedienung "Klartext" (z.B. "OK") zugeordnet.
  • /etc/vdr/remote.conf enthält die Tasten-Zuordnungen aller konfigurierten Fernbedienungen zu VDR-Tasten bzw. VDR-Aktionen.

Bei easyVDR sind die o.g. Dateien nur symbolische Links auf die Konfigurationsdateien im Order /etc/vdr/remotes/.... Hier findet man für eine Menge Fernbedienungen die passenden Dateien. Wenn dort nicht das passende Modell aufgelistet ist, wird man vieleicht direkt bei lirc fündig: supported remote controls.

Um die Verknüpfungen richtig zu setzen, wird zunächst die falsche Verknüpfung gelöscht und dann neuer erstellt:

cd /etc
rm lircd.conf
ln -s /etc/vdr/remotes/FernbedienungX/lircd.conf
cd /etc/vdr
rm remote.conf
ln -s /etc/vdr/remotes/FernbedienungX/remote.conf

Anschließend den VDR neu starten.

Ansonsten erstellt man sich die lirc.conf mit irrecord selbst (s.u.).

Fernbedienung per Hand anlernen

Um die Fernbedienung per Hand anzulernen müsst ihr folgende Schritte vornehmen.

1. VDR stoppen um Prozess lircd anzuhalten

stopvdr

2. Löschen oder Umbenennen einer vorhandenen Datei /etc/lircd.conf, diese Datei beinhaltet die LIRC Konfiguration der Fernbedienung.

mv /etc/lircd.conf /etc/lircd.conf.alt

3. Neue lircd.conf anlernen. (evtl. ist beim folgenden Befehlsaufruf die Option -d /dev/lirc0 nötig, ohne diese wird /dev/lirc verwendet.) Dazu vorher die Schnittstelle initialisieren:

lirc_on_com1
irrecord /etc/lircd.conf

Die hierbei wichtigen Tasten sind.

Up
Down
Menu
Ok
Back
Left
Right
Red
Green
Yellow
Blue
0...9
Power
Volume+
Volume-
Mute

4. Prozess lirc starten.

lircd

5. Fernbedienung überprüfen.

irw

6. Lircd direkt überprüfen.

Um den Lircd direkt zu überprüfen, kann der Socket direkt benutzt werden, dort sind dann auch die Befehle, wie Green, Red, etc. direkt gesehen werden:

socat UNIX-CONNECT:/dev/lircd STDIO

Anmerkung: Falls irw ordnungsgemäß funktioniert und der VDR fehlerfrei LIRC aufruft, die Fernbedienung aber dennoch nicht im VDR funktioniert, vergewissert Euch, dass /etc/lircd.conf und remote.conf auch wirklich die gleichen Namen der Tastenbelegungen haben.

7. remote.conf erstellen

Über das OSD kann man mit der Funktion "Fernbedienung neu anlernen" eine neue remote.conf anlegen, alternativ löscht man die vorhande remonte.conf und startet den VDR neu.

Fehlersuche:

Bei einem stopvdr werden auch die lirc-module entladen. Deshalb muss die Schnittstelle z.B. mit lirc_on_com1 erneut zu initialisiert werden. Lircd wird dabei nicht mitgestartet.

Signaltransport:

Fernbedienung --> FB-Empfänger --> com1 --> lirc_serial --> /dev/lirc0 --> (A) --> lircd --> /dev/lircd --> (B) --> VDR

  • bei (A) kann man mit "mode2" testen bzw mit "irrecord" ein lircd.conf erstellen, lircd darf dazu nicht laufen.
    Also entweder:
    • bei laufendem VDR:
      - killall lircd
      - irrecord
    • oder:
      - stopvdr
      - lirc_on_com1
      - irrecord
  • bei (B) kann man mit irw testen was ankommt

Test der Installation mit mode2

Nach der Installation von LIRC, kann man einen ersten Test bei gestopptem Lirc machen. Wenn man Tasten auf der Fernbedienung drückt muß eine Ausgabe kommen, ansonsten sind die Treiber nicht korrekt installiert.

killall lircd
mode2 -d <device>

<device> ist in den meisten Fällen "/dev/lircd" oder "/dev/lirc0"

Konfiguration der lircrc zum Ausführen von Aktionen

Irexec ist ein nützlicher daemon, mit dem man so ziemlich alles anstellen kann.

Die Konfigurations-Datei lircrc wird unter /etc/lircrc oder unter ~/.lircrc abgespeichert.

Aufbau der lircrc.

begin
	prog   = <Daemon für Skript- und Programm-Ausführungen>
	button = <Tasten-Name, ist in der lircd.conf definiert>
	config = <Auszuführender Befehl>
	mode   = <Modus: Schaltet Modus ein oder aus>
	repeat = <Wiederholung an oder aus (0 oder 1)>
	remote = <Name des Buttons in der lircd.conf>
end

Beispiele.

4 x Button Power würde einen Reboot einleiten, somit sind Doppel-Belegungen ("über") vdr möglich.

begin
	prog   = irexec
	button = Power
	button = Power
	button = Power
	button = Power
	config = reboot
end

1 Key = 2 Funktionen.

begin
	prog   = irexec
	button = Reserve
	config = eject
	config = eject -t
end

Wurde diese Datei erzeugt, kann der daemon gestartet werden, wichtig dass dieses nach lirc geschieht (Reihenfolge beachten).

start-stop-daemon --start --verbose --exec /usr/local/sbin/lircd -- /etc/lircd.conf
start-stop-daemon --start --verbose --exec /usr/local/bin/irexec -- --daemon /etc/lircrc

Sollte irexec nicht auf anhieb funktionieren muss man noch die Path Variable ins init Script schreiben.

PATH=$PATH:/usr/local/sbin:/usr/local/bin

XMBC mit LIRC

Um XBMC mit der Fernbedienung steuern zu können wird die Datei /root/.xbmc/userdata/Lircmap.xml benötigt. Sie verknüpft die Tasten aus der lircd.conf mit den Befehl-Definitionen aus der Datei /root/.xbmc/userdata/keymap.xml:

Xbmc-lirc-remote-action-mapping4.png

Funktioniert die Fernbedienung unter easyVDR, kann die Lircmap.xml automatisch aus der /etc/lircd.conf und /etc/vdr/remote.conf mit dem Skript: easyvdr-create-lircmapxml.sh generiert werden. (aktuelle Fassung der create_lircmap gibt es hier)

Zum Ausprobieren:

/usr/bin/easyvdr/easyvdr-create-lircmapxml.sh

Bekommt man dort eine sinnvolle Ausgabe, diese beim nächsten Aufruf des Skriptes in die Lircmap.xml "umleiten":

/usr/bin/easyvdr/easyvdr-create-lircmapxml.sh > /root/.xbmc/userdata/Lircmap.xml

siehe auch hier: [1]

Konfigurationsdateien