yavdr 0.4: eventlircd und Fernbedienungen - Die Grundlagen

  • Die Grundlagen
    Eventlircd (http://code.google.com/p/eventlircd übersetzt Tastendrücke die über event Geräte hereinkommen in Lirc-Tastendrücke. Im Prinzip macht es das gleiche wie das remote plugin, mit dem Unterschied das es nur Tasten auswerten kann, denen auch eine Taste zugewiesen wurde.


    Eventgeräte sind zum Beispiel normale Tastaturen, Fernbedienungen die sich als Tastaturen melden. Fernbedienungen welche an DVB Karten angeschlossen sind, melden sich teilweise auch als Tastaturen, ausserdem gibt es eine neue Schnittstelle für Fernbedienungen namens rc-core, auf welche Jarod Wilson (Neuer Maintainer des Lirc Projektes) schon einige der ehemals Lirc Treiber portiert hat, als auch einige der Fernbedienungen an DVB Geräten
    Auch diese Schnittstelle, auch wenn sie keine normalen Tastaturtreiber sind, stellt ihre Geräte als Eventgeräte zur Verfügung.


    Mäuse arbeiten auch über die Input Schnittstelle, eventlircd versucht diese aber durchzuleiten.


    Eventlircd erkennt seine Geräte über udev, auch wenn sie nach dem Start des Dämon eingebunden oder angeschlossen werden. Hier liegt einer der Vorteile dieser Lösung, da eventlircd ab Start den Lirc Socket bereitstellt, und nach und nach seine Geräte einbinden kann.


    Um welche Geräte es sich kümmern soll, erkennt eventlircd anhand von Attributen, welche man den Geräten über udev mitteilen kann. Für manche Geräte haben wir das schon in der Standardkonfiguration (rc-core, Geräte die wir selber besitzen, Konfigurationen die uns gegeben wurden).


    Lircd kann man über den Switch --uinput mitteilen seine Tastendrücke an das uinput-Gerät (Userland Input?) zu übergeben. Damit kann dann lircd parallel zu anderen Geräten gestartet werden und auch mehrere lircd für verschiedene Geräte mit unterschiedlicher Konfiguration gleichzeitig starten. Die Ausgabe erfolgt für die Anwendungen dann, als würde es von einem einzigen Gerät kommen.


    Da manche Geräte eindeutig erkannt werden können (zum Beispiel USB Geräte), kann man diese über udev mit der für das jeweilige Geräte richtigen Konfiguration automatisch starten. Die Konfigurationen für all diese Geräte kann man alle gleichzeitig auf dem System haben, da sie nur aktiv werden, wenn udev die Geräte die auch wirklich angeschlossen sind initialisiert.


    Eventlircd kann geräteabhängig eine Übersetzungstabelle mitgegeben werden, um die Tastenbelegung anzupassen. (sogenannte evmaps)


    Die Vorteile sind also:

    • frühe Verfügbarkeit des Lircsocket
    • Vorkonfiguration für verschiedenste Geräte möglich
    • Tastatur , rc-core und Lirc Geräte können angesprochen werden.
    • Nichts muss konfiguriert werden wenn die Fernbedieung bekannt ist und schon unterstützt wird.

    Da nichts ohne einen Preis zu haben ist, gibt es natürlich auch "Nachteile".


    Um die Vorteile der Lösung zu nutzen, braucht man eine Standardbelegung auf die man die Tasten normalisieren kann, hierbei kommt dann die Anlernfunktion des VDR nicht mehr zum tragen. Wenn das Gerät noch nicht unterstützt wird, bedeuteutet dies unter Umständen ein etwas mühsames manuelles Anpassen bis die Tasten der eigenen Fernbedienung auf die von uns gelieferte passt.


    Um in den Genuß zu kommen Lirc wie oben beschrieben nutzen zu können, müssen die Tasten in der lircd.conf entsprechend der Regeln der Inputgeräte benannt werden. Bei Lirc heisst das Namespace-konform benannt sein. Sinnvoll wäre hier natürlich eine Benennung entsprechend unserer Standardbelegung.


    Ein Wort zu unserer Standardbelegung. Wir richten uns nach der Dokumentation von linux-media (http://www.linuxtv.org/wiki/index.php/Remote_Controllers , Tabelle am Ende der Seite) und benutzen diese nach unserem Verständnis als Referenz


    Es folgen noch Details zu:

    • Inputgeräten
    • rc-core
    • automatisch erkennbare Lirc Geräte
    • nicht automatisch erkennbare Lirc Geräte

    Das dann aber in jeweils seperaten Posts. :)

  • Der 1. Link linkt nicht wegen dem )
    Wo sind die Konfigurationsdateien denn überall versteckt ? (ein paar habe ich ja gefunden)
    Werden die Kerneltreiber für z. B. für die X10 benutzt oder kann man eventlircd auch mit Lirc umsetzten ? (sollte diese Frage sinnfrei sein, liegt es daran, das ich das mit der technischen Umsetzung noch nicht ganz verstanden habe ;( )


    Ich habe nämlich heute meine X10 softwaretechnisch geschrottet, brauche da noch etwas wissenstechnischen Hintergrund.


    Gruß Dirch

    Mutterbrett: Foxconn g31mx mit Core2Duo E2200, 2GB / 1TB Hitachi / 240er GT weil 9500er gehimmelt / X10 / FF1.3 & Pinnacle PCTV Sat HDTV Pro USB / TV nur noch unter yaVDR und mit The Beast natürlich


    Dieser Beitrag wird 81 mal editiert, zum nächsten Mal von Dirch: Morgen, so um 20:39 :whistling:

  • X10 ist über ein gepatchtes ati-remote eingebunden (also Kerneltreiber). Lircd geht auch wenn die lircd.conf entsprechend aussieht und lircd mit --uinput gestartet wird (das machen wir für lirc_igorplugusb zB)


    EDIT: Wie gesagt für die X10 sollte das ati-remote-dkms installiert sein (müsste schon der Fall sein) und sie sollte OotB schon funktionieren. Wie schon angekündigt werde ich versuchen über den Tag noch weitere Infos zusammenzuschreiben.

  • ich nehm den Ball mit dem Atric einfach nochmal auf, hier in Kombination mit ner Harmony und einer Konfiguration abseits jeglicher Standards. Und ich denke ich bin nicht der Einzige der so unterwegs ist.


    Was hab ich bisher gemacht:
    im WFE den homebrew gewählt, lircd.conf und remote.conf aus dem funktionierenden 0.3a reingebügelt: geht!


    Was haben wir gelernt:
    Der angedachte Weg wäre mit einem Umweg über eventlircd und der mit der pre1 mitgelieferrten remote.conf


    zu spät: Steffen, kannst du die jungfräuliche remote.conf bitte an das erste Posting hängen, meine ist irgendwo im Nirvana, danke.


    Vorteil:
    eventlircd standardisiert die Kommunikation aller Eingabegeräte und bietet eine Form von Schnittstelle, es können theoretisch auch andere input devices wie Maus, Tastatur, Gehäusetasten oder andere FB angekoppelt werden.


    Weiterer Vorteil:
    Standardisierter Ausgang aus eventlircd für unterschiedliche Applikationen, bspw. vdr und xbmc


    Was ist zu tun:
    damit eventlircd von lircd gefüttert wird ist dieser mit --uinput zu starten. Da die yavdr Installation ja Applikationen wie vdr, xbmc fertig konfiguriert installiert sollte daran nix geändert werden. Stattdessen muss die lircd.conf auf das im Eingangspost verlinkte Mapping angepasst werden.


    Ist das soweit korrekt?


    Dann hätte ich ne Frage: wie sind in der remote.conf userspezifische Tasten gemappt, bspw. user1-9, die hier teilweise über die keymacros direkt auf Plugins wie Fritz, Sysinfo oder Epgsearch zeigen (Tasten gibts ja auf der Harmony genug? Weil selbst wenn ich mir die anderen ableiten könnte wird auf diese Tasten in dem verlinkten Beitrag nicht eingegangen...


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5

  • wie sind in der remote.conf userspezifische Tasten gemappt


    Da hilft am Besten ein Blick in die remote.conf. Alle Tasten sind irgendwie im o.g. Link nicht zu finden. Ich habe meine lircd.conf an die remote.conf angepasst.

    Asus AT3N7A-I (Dualcore Intel Atom 330), Nvidia GeForce 9400 (onBoard), Pinnacle PCTV 452e, Mystique Satix S2 Sky USB Rev.2, AverTV Green Volar HD, X-Tensions DVB-T-380U, 2GB RAM, Xubuntu 12.04 mit yaVDR stable-Paketen, gepatchter Kernel 3.6.7, yaVDR 0.4, linux-media-dkms bzw. media-match 3.3, USB-IR-Einschalter (igorplug-kompatibel)
    Gehäuse: Maxdata Favorit 5000i, Antennen: Strong SRT Ant 15 Eco, Selfsat HD30D4

  • Quote

    Da hilft am Besten ein Blick in die remote.conf.

    Nochmal den Beitrag gelesen und dann nocht mal über "Los"!

    Quote

    zu spät: Steffen, kannst du die jungfräuliche remote.conf bitte an das erste Posting hängen, meine ist irgendwo im Nirvana, danke.

    Schlaumeier...

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5

  • die remote.conf kann jeder zeit neu gebaut werden mit:


    Code
    1. process-template /var/lib/vdr/remote.conf

    mfg traxanos
    ____________________
    Ist das neu?, Nein Linux!


    VDR1: Zotac NM10-ITX Wifi - 2GB Ram - S2-6400 HD mit IR - yavdr 0.4 (development) - LianLi PC-Q11


    Tags: VDR-HD - AT5IONT-I - 4GB Ram - 512MB ION - TT 3600 DVB-S2 - TT6400-FF - Sundtek DVB-S2 Sundtek DVB-C - Tevii S480 (dank an L4M für kostenlose Bereitstellung) - yaVDR 0.5 (development) - SKY - HD+ - Atric - X10 FB - Zotac ID41 PLUS - SilverStone LC19B-R - Yamaha RX-V671 - Samsung 8Series 55"

  • die remote.conf kann jeder zeit neu gebaut werden mit:


    Toll, und ich installiere neu!


    CKone : Was ich damit sagen wollte: Wenn die (jungfräuliche) Datei vorhanden ist, ist es besser in diese Datei zu gucken anstatt oben auf die verlinkte Webseite, da manche "Sondertasten" oben irgendwie fehlen. Desweiteren wird aus dem o.g. Link nicht klar, dass man KEY_POWER2 nehmen sollte.
    Ich meinte auch damit, dass Du in die remote.conf gucken sollst, die Dir neu gesendet wurde etc.

    Asus AT3N7A-I (Dualcore Intel Atom 330), Nvidia GeForce 9400 (onBoard), Pinnacle PCTV 452e, Mystique Satix S2 Sky USB Rev.2, AverTV Green Volar HD, X-Tensions DVB-T-380U, 2GB RAM, Xubuntu 12.04 mit yaVDR stable-Paketen, gepatchter Kernel 3.6.7, yaVDR 0.4, linux-media-dkms bzw. media-match 3.3, USB-IR-Einschalter (igorplug-kompatibel)
    Gehäuse: Maxdata Favorit 5000i, Antennen: Strong SRT Ant 15 Eco, Selfsat HD30D4

  • CKone :
    Das: https://bugs.yavdr.com/projects/yavdr/wiki/IR_Integration_04 ist unser "Notizzettel"


    Zu deinen Fragen - ja so wie du es beschrieben hast, wäre die Vorstelleung wie ich es gerne hätte. Wie wir festgestellt haben, haben wir an der Ecke noch etwas vergessen. (eventlircd als seperaten Job erstellen, lircd als seperaten Job mit --uinput als Parameter).


    Siehe auch hier: https://bugs.yavdr.com/issues/485


    im "alten Dialog" WFE würde ich dann nur noch die nicht automatisch erkennbaren sehen wollen.


    Quote

    Toll, und ich installiere neu!


    Das ist auch eine Eigenart die keiner von uns nachvollziehen kann ;) :D :P

  • Das ist auch eine Eigenart die keiner von uns nachvollziehen kann


    Naja, dazu kann ich zwei Dinge sagen: 1. noch ein Überbleibsel aus der Windoof-Welt und 2. ist die Installation von Linux mittlerweile so einfach geworden und schnell geworden, dass das einfach schneller geht. Das war bei mir Montag halt, dass ich um 8:30 Uhr begonnen hatte, um 10:00 Uhr ging weder Tastatur noch FB mehr, also um 10:15 Uhr Neuinstallation, um währenddessen den Geistesblitz zu haben, dass die von yaVDR 0.3a rüberkopierte Remotes.conf vermutlich falsche Rechte sprich den falschen Eigentümer hatte.

    Asus AT3N7A-I (Dualcore Intel Atom 330), Nvidia GeForce 9400 (onBoard), Pinnacle PCTV 452e, Mystique Satix S2 Sky USB Rev.2, AverTV Green Volar HD, X-Tensions DVB-T-380U, 2GB RAM, Xubuntu 12.04 mit yaVDR stable-Paketen, gepatchter Kernel 3.6.7, yaVDR 0.4, linux-media-dkms bzw. media-match 3.3, USB-IR-Einschalter (igorplug-kompatibel)
    Gehäuse: Maxdata Favorit 5000i, Antennen: Strong SRT Ant 15 Eco, Selfsat HD30D4

  • P.S:
    Wenn man noch einen seriellen Lirc-Empfänger hat, sollte man ja nicht die remote.conf einfach überschreiben, sondern seine Lircd.conf der remote.conf anpassen, richtig?
    Ist da sonst noch etwas zu beachten?

  • Quote

    Wenn man noch einen seriellen Lirc-Empfänger hat, sollte man ja nicht die remote.conf einfach überschreiben, sondern seine Lircd.conf der remote.conf anpassen, richtig?


    Korrekt. Das wäre was ich mir als das Optimum vorstelle. In Zeiten von Logitech Harmony's wäre es sicher auch sinnvoll, wenn ein oder 2 Standardbelegungen hier schon fertig wären (Wenn ich es richtig verstehe, werden die viel benutzt).


    Quote

    Ist da sonst noch etwas zu beachten?


    Im Moment ja - hier müssen wir noch einen kleinen Umbau machen (eventlrcd konstant laufen lassen, lircd wenn konfiguriert dorthin ausgeben lassen)

  • Oh, das ist mir neu.
    Wäre es nicht sinnvoll Owner und Group in die Templates mit aufzunehmen?


    Gruß,
    Hendrik


    Nein, das wäre nicht sinnvoll. Die Templates werden für alles Mögliche benutzt, ohne ansehen dessen was drinsteht. Wir müssten diese Angaben in Kommentare verstecken und wieder raus parsen, Die Art wie kommentiert wird unterscheidet sich von File zu File ...
    Ich habe mir Gedanken gemacht, dafür Metafiles zu verwendem, aber das lohnt nicht, weil es zu selten nötig ist.


    Immer daran denken warum ihr das jetzt machen musstet. Ihr habt Mist gebaut :D. Dafür lohnt es sich nicht das ich dafür wieder ein paar Stunden code.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • In Zeiten von Logitech Harmony's wäre es sicher auch sinnvoll, wenn ein oder 2 Standardbelegungen hier schon fertig wären (Wenn ich es richtig verstehe, werden die viel benutzt).


    Ansonsten vielleicht mal bei HelAu vorbeischauen.
    Der hat ja auch eine ganze Reihe üblicher Fernbedienungen mitgeliefert.
    Er verwendet allerdings m.w. einen eigenen -aber einheitlichen, und somit per Skript umwandelbaren- Namespace.


    Damit hat man sicher schonmal 75% der User glücklich gemacht.



    Gruß,
    Hendrik

  • Quote

    Dafür lohnt es sich nicht das ich dafür wieder ein paar Stunden code.

    Full Ack!


    Aber:

    Quote

    Immer daran denken warum ihr das jetzt machen musstet. Ihr habt Mist gebaut :D.

    Das war denk ich vor ca 3 Wochen noch nicht wirklich kommuniziert, ergo benutzen wir die Distri wie gewohnt und es funktioniert soweit einwandfrei (ich benutze eh nur vdr), es kann keine Rede davon sein etwas zu müssen. - Als interessierter User bin ich jedoch auch gern bereit einen Weg der sinnvoll scheint mit zu beschreiten und dafür notwendige Änderungen einzupflegen - das hat nix mit einem Fehlverhalten zu tun und es erscheint auch unangemessen mich dafür tadeln zu lassen...


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5


  • Ansonsten vielleicht mal bei HelAu vorbeischauen.
    Der hat ja auch eine ganze Reihe üblicher Fernbedienungen mitgeliefert.
    Er verwendet allerdings m.w. einen eigenen -aber einheitlichen, und somit per Skript umwandelbaren- Namespace.


    Damit hat man sicher schonmal 75% der User glücklich gemacht.


    Wir benutzen lieber einen festen Namespace und machen damit 100% der Benutzer einer unterstützen Fernbedienungen und 100% der yaVDR-Entwickler ohne Umwandelung glücklich.
    Da wir nicht alle Fernbedienungen der Welt zur Verfügung hatten, gibt es sicher noch das ein oder andere Problem, das wir durch Anpassungen an den Eventlircd-Skripten lösen müssen, aber wenn man mal die
    seriellen Empfänger weg lässt, dann sollte es mit unserem Konzept ein leichtes sein eine 75% Abdeckung zu erzielen.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • henfri


    process-template --help



    sry für offtopic