[gelöst] Samsung-Fernbedienung mit USB IR Receiver einrichten

  • Liebe alle, ich möchte bei yaVDR meine Samsung-Fernbedienung mit diesem Empfänger einrichten (USB-Einschalter und IR-Receiver Projekt ). Damit ich nicht so viele Irrwege gehe, bitte ich um Feedback für das, was ich mir bisher zusammengelesen und -gereimt habe:


    Also der Empfänger steckt am Gerät und wird vom Kernel auch erkannt:


    Code
    1. rainer@f2server:~$ dmesg|grep Remote
    2. [ 2.743563] generic-usb 0003:16C0:27D9.0002: hiddev0,hidraw1: USB HID v1.01 Device [www.mikrocontroller.net/articles/USB_IR_Remote_Receiver USB IR Remote Receiver] on usb-0000:00:04.0-2/input0
    3. [ 17.533304] lirc_dev: IR Remote Control driver registered, major 250


    Nun habe ich in der Doku gelesen und erfahren, dass yaVDR "eventlirc" verwendet, mit diesem Empfänger aber ein Dienst "irmplircd" geliefert wird, der ähnlich arbeitet.


    Fragen:
    1) brauche ich den "irmplircd", oder kann "eventlircd" den auch verstehen?
    2) wenn ich irmplircd brauche - muss ich den aus den Quellen übersetzen, oder gibt es ein fertiges Paket für yaVDR/Ubuntu? Das Teil ist ja eigentlich für easyVDR.. Ich habe zumindest mit apt-cache search .. kein Paket gefunden - was muss ich ggf. in die sources.list eintragen?
    3) wenn ich irmplircd brauche - muss ich "eventlircd" deaktivieren?
    4) was muss ich im Webfrontend als Empfänger eintragen?
    5) Ich gehe davon aus, dass ich danach die Funktion testen kann, wenn ich "irw" an der Konsole aufrufe und mal ein paar Tasten drücke?


    Soweit erstmal..

  • Ui, als du wegen dem Empfänger gefragt hattest, bin ich noch davon ausgegangen, dass du es mit Debian durchziehst... yaVDR hat aktuell noch keine Pakete für den Empfänger, aber wenn du ein bisschen Zeit hast, können wir uns das gerne erarbeiten. Als erstes hätte ich gerne mal die Ausgabe von

    Code
    1. lsusb
    2. grep -l "USB IR Remote Receiver" /sys/class/hidraw/hidraw*/device/uevent


    1) brauche ich den "irmplircd", oder kann "eventlircd" den auch verstehen?

    Ja du brauchst irmplircd, das liest von dem IR-Empfänger und schreibt die empfangenen Codes auf einem Lirc-kompatiblen Sockel raus. Das Problem besteht jetzt darin diese Informationen sinnvoll an eventlircd weiterzureichen. In easyVDR ist das Problem anders als bei yaVDR gelöst - da lernt man die Fernbedienung am VDR an und daraus wird die Lircmap.xml für XBMC erstellt. Bei yaVDR gibt es einen vorgegebenen Namespace für die Tastennamen und es ist eine statische Konfiguration der remote.conf des VDR und der Lircmap.xml für XBMC vorgesehen. Der Vorteil bei yaVDR ist, dass man so praktisch beliebig viele Fernbedienungen parallel betreiben kann, dafür aber die Vorkonfiguration aufwendiger ist. Der Vorteil bei dem Konzept von EasyVDR ist dass man die Fernbedienung einfach anlernen kann und dann alles funktionieren sollte (aber mit mehreren Empfängern wird es dann komplizierter).

    2) wenn ich irmplircd brauche - muss ich den aus den Quellen übersetzen, oder gibt es ein fertiges Paket für yaVDR/Ubuntu? Das Teil ist ja eigentlich für easyVDR.. Ich habe zumindest mit apt-cache search .. kein Paket gefunden - was muss ich ggf. in die sources.list eintragen?

    Das original Paket gibt es hier: https://launchpad.net/~easyvdr…20/+listing-archive-extra - das baut so aber bei mir lokal und wenn man es auf Launchpad in ein anderes PPA kopiert und dabei neu bauen lässt nicht, weil die Includes für hashmap.h in mehreren Dateien nicht passen. Pakete für Ubuntu Precise/yaVDR 0.5 lasse ich gerade hier bauen: https://launchpad.net/~seahawk…l/+archive/misc/+packages
    Einbinden und installieren kannst du das ganze so:

    Code
    1. sudo add-apt-repository ppa:seahawk1986-hotmail/misc
    2. sudo apt-get update
    3. sudo apt-get install irmplircd


    3) wenn ich irmplircd brauche - muss ich "eventlircd" deaktivieren?

    Das wäre eine mögliche Lösung, allerdings musst du dann den Rattschwanz an nötigen Änderungen selbst aufdröseln, u.a. hängen einige Upstart-Jobs von eventlircd ab. Ich würde irmplircd gerne an eventlircd hängen, weil wir das Ganze dann für yaVDR leichter vorkonfiguriert ausliefern können.

    4) was muss ich im Webfrontend als Empfänger eintragen?

    Gar nichts.

    5) Ich gehe davon aus, dass ich danach die Funktion testen kann, wenn ich "irw" an der Konsole aufrufe und mal ein paar Tasten drücke?

    Wenn meine Pakete passen, sollte es so möglich sein zumindest schon mal die Reaktion des Empfängers zu sehen:

    Code
    1. sudo start irmplircd
    2. sudo irw /var/run/lirc/irmplircd


    Aus der Ausgabe erstellst du am besten wie in diesem Post eine Mapping Datei, bei der du die Tasten dem gewünschten yaVDR-Tastennamen zuordnest: (Punkt 5): irmplircd für USB IR Remote Receiver (based on irmp)


    Wenn du soweit bist, schauen wir dass wir das ganze über lircd2uinput an eventlircd hängen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    The post was edited 1 time, last by seahawk1986 ().

  • bin ich noch davon ausgegangen, dass du es mit Debian durchziehst...

    Ich bin immer noch nicht abgeneigt, aber es gab (siehe Post) einen Punkt, da ging es nicht mehr weiter. Was mir aber einfällt: Ich habe dort nicht probiert, das Web-Frontend aufzurufen und / oder das Ausgabeplugin nochmal zurück zu weckseln auf xine, nachdem das mit xhost+ klar war.. Das werd ich später versuchen, ich hab die yaVDR-Distribution parallel auf eine andere Partition installiert - und wenn ich den grub beim starten wieder sichtbar bekomme, kann ch auch in Debian weitermachen.. :-)

    du ein bisschen Zeit hast, können wir uns das gerne erarbeiten.

    Gerne - wenn wir Erfolg haben, hilft es Anderen evtl. Ich hab immer mal Zeit, nur nicht so kontinuierlich, weil auch Familie, Arbeit und andere Sachen zu tun.


    .. Es geht gleich weiter ..

  • Was liefert denn udev zu dem Empfänger?

    Code
    1. udevadm info --query=all --attribute-walk --name=/dev/hidraw1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • ja, es funktioniert. Sowohl wenn ich meine Samsung-FB als auch eine Pioneer bediene, werden Zeichen angezeigt. Auffällig ist, dass die Pioneer schneller wiederholt


    (wie kann ich aus dem xterm direkt kopieren?)


    das wid angezeigt:

  • wie kann ich aus dem xterm direkt kopieren


    Einfach markieren und den Text dann mit der Mittleren Maustaste an der gewünschten Stelle einfügen.


    Wie schon geschrieben müsstest du jetzt noch die Zuordnung der Codes zum gewünschten Tastennamen machen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Mittleren Maustaste

    Schade, hat meine Funktastatur nicht.. :-) naja Nebensache. Ich denke, die FB vom Fernseher zu verwenden, ist gar keine so gute Idee, denn wenn ich Zahlen drücke oder channel +/-, dann "sieht" das der Fernseher ja auch und schaltet vom HDMI-Eingang wieder auf den entspr. Fernsehkanal..


    Also nehme ich wohl besser die FB vom Pioneer. Was mir da auffällt: ich bekomme für jede gedrückte Taste immer 2 Zeilen. Die erste sagt wohl "jetzt kommt was" und die 2. Zeile enthält dann den Code. Einmaliges Drücken der "hoch"-Taste für ca. eine halbe Sekunde bringt mir


    Code
    1. 0254ab002c00 0 0254ab002c00 IRMP
    2. 0250af00f200 0 0250af00f200 IRMP
    3. 0254ab002c00 0 0254ab002c00 IRMP
    4. 0250af00f200 0 0250af00f200 IRMP


    Ich würde also die erste Zeile jeweils ignorieren, und dann eine Datei so erzeugen:


    Code
    1. nano /etc/vdr/FBpioneer.map
    2. 0250af00f200 KEY_UP
    3. ...
    4. ...


    richtig?
    Und dann müsste ich die Schritte 7 und 8 genauso machen oder anders? (natürlich mit meiner FBpioneer.map)

  • Schade, hat meine Funktastatur nicht..


    Bei den meisten Geräten kann man den Tastendruck auslösen, wenn man linke und rechte Maustaste gleichzeitig drückt.


    Wie sieht denn die Ausgabe für andere Tasten aus?


    Die Keymap kannst du laden lassen, wenn du die /etc/init/irmplircd.conf so anpasst (ein neues Paket mit allen nötigen Änderungen kann ich wahrscheinlich heute Abend fertig machen):


    Und dann in eine /etc/init/irmplircd.override den Pfad zur Keymap so einträgst:

    Code
    1. env KEYMAP=/pfad/zur/keymap


    Wenn alles klappt, solltest du dann mir irw die gemappten Tastennamen sehen können:

    Code
    1. sudo stop irmplircd && sudo start irmplircd
    2. sudo irw /var/run/lirc/irmplircd


    Und dann kannst du noch lircd2uinput dranhängen - /etc/init/irmplircd2uinput.conf:


    Der Dienst sollte jetzt immer nach irmplircd starten - manuell kannst du ihn so anstoßen:

    Code
    1. sudo start irmplircd2uinput


    Sobald er läuft (und die Tastennamen stimmen) sollte der VDR auf die Fernbedienung reagieren.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • ein neues Paket mit allen nötigen Änderungen kann ich wahrscheinlich heute Abend fertig machen

    Das reicht völlig, kann ohnehin erst heute abend weitertesten. Danke für die Mühe! Dann warte ich solange - nciht dass ich den Anpassungsaufwand scheue, aber dann gäbe es gleich ein fertiges und getestetes Paket für "Nachahmer"

    Wie sieht denn die Ausgabe für andere Tasten aus?

    Das sind schon mehrere Tasten - hier nochmal die selben Werte mit Kommentaren (bin mir nicht mehr 100% sicher über die Reihenfolge meienr Tastendrücke):


  • Ok, dann kannst du ja einfach mal eine Keymap mit den eindeutigen Codes bei einem Tastendruck anlegen, das andere könnte eventuell noch das Wiederholungs-Signal des NEC-Protokolls sein (ich habe den IRMP-Decoder und die Erstellung der rohen Tastennamen durch irmplircd noch nicht so ganz verstanden).

    Das reicht völlig, kann ohnehin erst heute abend weitertesten.


    Könntest du dann bitte mal bei laufendem

    Code
    1. udevadm monitor --environment


    den Empfänger aus- und wieder einstecken und das Ergebnis posten? Ich würde irmplircd lieber nur starten lassen, wenn das Gerät auch tatsächlich vorhanden ist.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • So, eine erste Version des restrukturierten Paketes ist in meinem PPA - einfach das Paket yavdr-addon-irmp installieren (die Änderungen an den Dateien bei Rückfrage dieses Mal alle übernehmen, sonst klappt es nicht):

    Code
    1. sudo apt-get update
    2. sudo apt-get dist-upgrade
    3. sudo apt-get install yavdr-addon-irmp


    Den Pfad zur erstellten Keymap kannst du jetzt in der KEYMAP-Variable in der /etc/default/irmplircd eintragen.


    Nach einem Neustart solltest du folgende Sachen sehen können:

    Code
    1. $ status irmplircd
    2. irmplircd start/running, process xyz
    3. $ status irmplircd2uinput
    4. irmplircd2uinput start/running, process xyz
    5. $ sudo irw /var/run/lirc/irmplircd # liefert die in der Keytable definierten Tastennamen


    Und der VDR sollte natürlich auf die Fernbedienung reagieren :)


    Falls etwas nicht klappt, bräuchte ich die Logs unter /var/log/upstart/irmplircd.log und /var/log/upstart/irmplircd2uinput.log

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • udevadm monitor --environment


    Bitte sehr: einmal abgezogen und wieder 'rangesteckt (bin nicht sicher, ob es ganz vorn anfängt). Bevor ich Deine Änderungen mache -


    1) soll ich etwas deinstallieren? (vom letzten Mal / womit ich gerade teste) ?
    2) Willst Du mit den Angaben unten das Paket noch ändern?


  • 1) soll ich etwas deinstallieren? (vom letzten Mal / womit ich gerade teste) ?


    Nein, es kommt nur das Paket yavdr-addon-irmp neu dazu, die anderen Pakete bekommen ein Upgrade.

    2) Willst Du mit den Angaben unten das Paket noch ändern?

    Ja, nachdem es nur "add" Events beim Anstecken gibt habe ich die Udev-Regel noch einmal angepasst - wenn hier überall ein grünes Häkchen hinter den Paketen ist, kannst du es angehen: https://launchpad.net/~seahawk1986-hotmail/+archive/misc/+packages?field.name_filter=&field.status_filter=published&field.series_filter=

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Mein Fernseher ist nicht frei.. :-) Ich habe die .map-Datei erstmal mit den Werten aus dem verlinkten Beitrag gefüllt und dann meine 5 Tasten (s.o.) , die ich kenne, angepasst.


    Ich geh mal davon aus, wenn ich das Paket installiere, brauche ich Dein Posting von heute 11:05 nicht abarbeiten, oder? Momentan läuft es noch nicht / existieren die 2 genannten logdateien nicht, und das syslog sagt beim booten (gefiltert)


  • und das syslog sagt beim booten (gefiltert)


    Kannst du bitte mal das komplette Syslog posten?

    Code
    1. sudo apt-get install pastebinit
    2. sudo pastebinit /var/log/syslog


    Ich geh mal davon aus, wenn ich das Paket installiere, brauche ich Dein Posting von heute 11:05 nicht abarbeiten, oder?


    Nein das sollte nicht nötig sein.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)