yaVDR ansible / Lirc mit Atric

  • Hallo zusammen,


    ich möchte unter yaVDR ansible lirc mit Atric serial nutzen.


    Was muss man machen, damit diese Konfiguration funktioniert?


    Viele Grüße

    Frank

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

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

  • Was muss man machen, damit diese Konfiguration funktioniert?

    Wenn du den Empfänger an ttyS0 (COM1) hast, einfach die Raute vor diesem Eintrag in der yavdr07.yml entfernen und das Playbook bzw. den Teil für die Rolle noch mal laufen lassen: sudo -H ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="serial-ir"


    Falls du ein anderes Device als ttyS0 (sonst ist noch ttyS1 möglich) benötigst, erstellst du zusätzlich eine host_vars/localhost und trägst die gewünschte Schnittstelle darin ein, bevor du das Playbook laufen lässt:

    Code: host_vars/localhost
    1. serial_ir_device: ttyS1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • ok, lirc läuft jetzt :).


    Jetzt gibt es neue Fragen:

    Wie bekomme ich meine mit irrecord angelernte Fernbedienung (Name der Fernbedienung in lirc: OneForAll) in ansible bekannt gemacht?

    Wie starte ich den lircd-Service neu? Ich bekommt im Moment die Fehlermeldung Failed to restart lircd.service: Unit lircd.service is masked.

    Sehe ich dann die Tastendrücke auch mit irw?

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

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

  • Lircd sollte nach dem Ausführen des Playbooks nicht laufen (es sei denn man hat einen Atric IRWakeupUSB oder einen yaUsbIR Empfänger) und man braucht es auch nicht, wenn man ein IR-Protokoll verwendet, für das es einen Kernel-Decoder gibt.


    Der Kernel-Treiber serial_ir legt ein rc-core Gerät an, das man mit ir-keytable konfigurieren kann (in der Voreinstellung wird eine Keytable für eine RC-6(A) MCE-Fernbedienung geladen). Die Konfiguration erfolg dann wie in https://www.yavdr.org/document…/ch02s03.html#ir-keytable beschrieben. Das Stoppen von eventlircd (damit man mit ir-keytable die Scancodes sehen kann) kann man so umsetzen: systemctl mask --now --runtime eventlircd.service eventlircd.socket - um eventlircd wieder anzuschalten den Rechner neu starten oder das mask im Befehl durch unmask ersetzen und den --runtime Schalter dabei weglassen.


    Mal ein Beispiel für eine fertige Konfiguration auf meinem ION-VDR:

    Code
    1. $ sudo ir-keytable
    2. /sys/class/rc/rc0/ gefunden (/dev/input/event3) mit:
    3. Name: Serial IR type home-brew
    4. Treiber: serial_ir, Tabelle: rc-rc6-mce
    5. Lirc Gerät: /dev/lirc0
    6. unterstützte Protokolle: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
    7. Aktivierte Protokolle: lirc rc-5
    8. bus: 25, Anbieter/Produkt: 0001:0001, Version: 0x0100
    9. Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms

    In der /etc/rc_maps.cfg lasse ich dann eine Keytable für das KLS VDR 1.6 Profil (nutzt das RC-5 extendend IR-Protokoll) meiner Harmony Fernbedienung laden:

    Code: /etc/rc_maps.cfg
    1. serial_ir rc-rc6-mce /etc/rc_keymaps/kls-1.6

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich habe für meine Fernbedienung eine eigene keytable in /lib/udev/rc_keymaps names rc-one4all-7960 angelegt. Diese habe ich der /etc/rc_maps.cfg wie folgt verlinkt:

    Code
    1. ...
    2. #driver table file
    3. ite-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
    4. nuvoton-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
    5. # serial_ir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
    6. serial_ir rc-rc6-mce /lib/udev/rc_keymaps/rc-one4all-7960
    7. mceusb rc-rc6-mce /lib/udev/rc_keymaps/HOPLOrc6
    8. ...

    Wenn ich diese keytable manuell mit ir-keytable -c -p rc-5 -w /lib/udev/rc_keymaps/rc-one4all_7960 lade, funktioniert dies schon mal und er gibt die Tasten richtig aus.


    Nach einem Reboot wird aber leider nicht meine neue keytable geladen, er reagiert leider nicht auf die Tastendrücke.

    Code
    1. Found /sys/class/rc/rc0/ (/dev/input/event16) with:
    2. Name: Serial IR type home-brew
    3. Driver: serial_ir, table: rc-rc6-mce
    4. lirc device: /dev/lirc0
    5. Supported protocols: other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
    6. Enabled protocols: lirc rc-6
    7. bus: 25, vendor/product: 0001:0001, version: 0x0100
    8. Repeat delay = 500 ms, repeat period = 125 ms


    EDIT: Bei mir wird rc-6 als Protokoll enabled, obwohl in der keytable RC5 drinsteht


    Wo muss ich noch dran drehen?

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

    The post was edited 2 times, last by r371769 ().

  • EDIT: Bei mir wird rc-6 als Protokoll enabled, obwohl in der keytable RC5 drinsteht

    Wo muss ich noch dran drehen?

    Wie sieht denn die erste Zeile der von dir erstellten Keytable aus? Die sollte wie bei im von mir geposteten Beispiel aussehen:

    Code
    1. # table rc-rc6-mce, type: RC5

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Selbst wenn ich in der /etc/rc_maps.cfg den Eintrag * * /lib/udev/rc_keymaps/rc-one4all_7960 drin habe, wird diese Keymap nicht geladen.


    Irgendwie habe ich den Eindruck, an der falschen Stelle zu suchen.

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

  • Hhhmm, bei mir sieht das etwas anders aus: type: rc-5 und nicht type: RC5

    Meine Ausgabe von ir-keytable sieht dann auch so aus:

    Code
    1. yavdr# ir-keytable
    2. /sys/class/rc/rc0/ gefunden (/dev/input/event11) mit:
    3. Name: Serial IR type home-brew
    4. Treiber: serial_ir, Tabelle: rc-rc6-mce
    5. Lirc Gerät: /dev/lirc0
    6. unterstützte Protokolle: other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
    7. Aktivierte Protokolle: lirc rc-5
    8. bus: 25, Anbieter/Produkt: 0001:0001, Version: 0x0100
    9. Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms

    Wichtig hierbei ist m.M. nach auch die Angabe Aktivierte Protokolle: lirc rc-5


    Laden der richtigen keymap kann man über:

    ir-keytable -a /pfad-zur-keymap/rc_maps.cfg -s rc0

  • Hhhmm, bei mir sieht das etwas anders aus: type: rc-5

    Habs gerade nochmal mit rc-5 getestet und komme leider zu dem gleichen Ergebnis. Meine keytable wird nicht geladen.


    Kann udev da irgendwas in eine andere Richtung lenken?

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

  • Was bringt denn die Ausgabe von ir-keytable ?

    Welche Protokolle werden denn überhaupt unterstützt bzw. aktiviert?


    Und mach doch mal das ir-keytable -a /etc/rc_maps.cfg -s rc0 , evtl. den Pfad zur "rc_maps.cfg" anpassen.

    Bei mir kommt da z.B. folgende Ausgabe, wobei ich nur die 1 keytable, welche ich für meine Fernbedienung erstellt habe, in der "rc_maps.cfg" aktiviert habe.

    Code
    1. ir-keytable -a /etc/rc_maps.cfg -s rc0
    2. alte Schlüsseltabelle geleert
    3. 36 Schlüsselcode(s) wurden in den Treiber geschrieben.
    4. Protokolle geändert in rc-5

    Erst jetzt wird doch das richtige Protokoll aktiviert!


    Nachtrag:

    Eine sehr gute und ausführliche Anleitung für "ir-keytable mit serial-ir" findest Du hier: Step by Step serial-ir mit ir-keytable

    The post was edited 4 times, last by Paulaner ().

  • Meine keytable wird nicht geladen.

    Kannst du die mal unverändert als Datei anhängen?

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich bin bei ansible nicht auf dem Laufenden. Braucht es noch die udev-Regel, um eventlirc das Ding mitzuteilen?

    Code
    1. ENV{ID_VENDOR_ID}=="0419", ENV{ID_MODEL_ID}=="0001", \
    2. ENV{eventlircd_enable}="true",\
    3. ENV{eventlircd_evmap}="03_$env{ID_VENDOR_ID}_$env{ID_MODEL_ID}.evmap"
  • rc-core Empfänger werden über diesen Teil der udev-Regel eingebunden: https://github.com/yavdr/yavdr…v/98-eventlircd.rules#L63


    Das Problem ist eher, dass die Keytable (oder das Protokoll) nicht auf den Empfänger anwendet wird.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Das Problem ist eher, dass die Keytable (oder das Protokoll) nicht auf den Empfänger anwendet wird.

    Siehe meine Hinweise zum Laden der keytable im Beitrag #15 in diesem Thread!


    Außerdem gibt es bereits eine Diskussion zu dem Thema im "yavdr-ansible"-Thread, wo genau beschrieben ist, wie man das alles zu laufen bekommt:

    Ab Beitrag #220 bis ca. #227

  • Kannst du die mal unverändert als Datei anhängen?

    Code
    1. # table rc-rc6-mce, type: RC5
    2. 0x80c KEY_POWER
    3. 0x86b KEY_RED
    4. 0x852 KEY_MENU
    5. 0x822 KEY_RETURN

    Ich habe zu Testzwecken nur diese 4 Tasten definiert.


    EDIT:

    Was bringt denn die Ausgabe von ir-keytable ?

    Code
    1. Found /sys/class/rc/rc0/ (/dev/input/event4) with:
    2. Name: Serial IR type home-brew
    3. Driver: serial_ir, table: rc-rc6-mce
    4. lirc device: /dev/lirc0
    5. Supported protocols: other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
    6. Enabled protocols: lirc rc-6
    7. bus: 25, vendor/product: 0001:0001, version: 0x0100
    8. Repeat delay = 500 ms, repeat period = 125 ms

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

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

  • Und mach doch mal das ir-keytable -a /etc/rc_maps.cfg -s rc0

    ich halte folgende Reaktion

    Code
    1. Empty table /lib/udev/rc_keymaps/rc-one4all-7960

    Eigentlich müssten doch jetzt die 4 Keycodes geladen werden - oder?


    EDIT-1:

    Nachdem ich das Protokoll auf rc-5 umgestellt habe

    Code
    1. ir-keytable -s rc0 -p rc-5

    Und die keytable nochmal lade

    Code
    1. ir-keytable -a /etc/rc_maps.cfg -s rc0

    Bekomme ich nun ein besseres (:)) Ergebnis:

    Code
    1. Read rc-rc6-mce table
    2. Old keytable cleared
    3. Wrote 4 keycode(s) to driver
    4. Protocols changed to rc-5

    Mal sehen wie das nach einem Reboot ausssieht?


    EDIT-2:

    Nach dem Booten sind die Protokoll-Einstellungen leider wieder weg. Es wird meine Keytable nicht geladen ...

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT

    The post was edited 2 times, last by r371769 ().

  • Mich hätte der Dateiname interessiert, wei du in den früheren Posts munter Binde- und Unterstriche durcheinander geworfen hast...

    serial_ir rc-rc6-mce /lib/udev/rc_keymaps/rc-one4all-7960

    Selbst wenn ich in der /etc/rc_maps.cfg den Eintrag * * /lib/udev/rc_keymaps/rc-one4all_7960 drin habe, wird diese Keymap nicht geladen.

    Wenn ich diese keytable manuell mit ir-keytable -c -p rc-5 -w /lib/udev/rc_keymaps/rc-one4all_7960 lade, funktioniert dies schon mal und er gibt die Tasten richtig aus.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Wie seahawk1986 schon sagt, Du hast hier einige dateinamen unterschiedlich geschrieben!

    Einmal schreibst Du rc-one4all-7960 und dann wieder rc-one4all_7960.


    Du solltest also nochmals genau kontrollieren, was Du in der /etc/rc_keymaps.cfg drin stehen hast!

  • Mich hätte der Dateiname interessiert, wei du in den früheren Posts munter Binde- und Unterstriche durcheinander geworfen hast...

    8| Ach du Schreck ... Dateiname gecheckt, ist rc-one4all_7960 ... In /etc/rc_maps.cfg geprüft. Eintrag ist * * rc-one4all-7960. Ach du meine Güte :sleep.


    Dateiname geändert und (wer hätte es gedacht), er lädt nach einem Reboot mit RC-5 meine Keytable :).


    Sorry, da war ich wohl betriebsblind. Vielen Dank für Eure Hilfe beim Augenöffnen :thumbup:.


    Jetzt muss ich mal schauen, warum der VDR auf diese Tasten noch nicht reagiert ...


    EDIT:

    Dann doch noch eine Frage:

    Wie kann ich verhindern, dass meine Änderung in etc/rc_maps.cfg beim nächsten Playbook-Update überschrieben wird?

    4x yaVDR 0.7: ASUS P5N7A-VM // 2*TeVii S460 // Atric mit Lirc // 4*1,5TB // 7" TFT