Plug and Play Fernbedienung

  • Hi,

    dazu müsstest du sagen, welches OS du nutzen willst...

    In easyvdr 3.5 gehen sehr viele Fbs ootb.


    MfG,

    Stefan

    Test-VDR1: HP rp5700 Fertigsystem, Core2Duo E6400, 2GB RAM, FF-SD C-2300, nvidia Slim-GT218 x1 | easyVDR 2.0 64Bit
    VDR3: in Rente

    VDR4: MSI G31M2 v2, Digitainer2-Geh., t6963c 6" gLCD, E5200, 2GB, 3TB WD Red, GT730, 2x TT S2-3200; easyVDR 3.5 64bit
    VDR5: Gigabyte
    GA-G31M-S2L, Intel E2140, Zotac GT730 passiv, Digitainer2-Geh., t6963c 6 " gLCD, 2 TB WD Red, 2x TT S2-3200 (an 1 Kabel) easyVDR 3.5 64bit
    VDR6:
    Intel E5200, GT630 passiv, F1 750 GB, t6963c gLCD, 2x TT S2-3200 | easyVDR 3.5 64bit
    VDR-User #1068
    www.easy-vdr.de

  • Du bist nicht der Erste, der sich sowas wünscht.

    Wenn dir ein Empfänger gut genug wäre, der leicht einzurichten ist, kann ich dir mein Projekt empfehlen. Der kann mit fast jeder Fernbedienung, und du kannst dir eine, deren Layout dir gefällt, aussuchen.

    Kannst du hier ansehen. Bei Interesse bitte PN.

  • Hallo,


    danke für eure Antworten. Ich muss erstmal lesen.

    Tatsächlich habe ich noch einen yausbir v3, den dein Projekt ja ersetzt.

    Aber ein Empfänger alleine löst das Problem ja nicht. Da muss ja noch immer angelernt werden.

    Ich hatte gedacht, dass es vielleicht eine FB mit Empfänger gibt, die sich als Tastatur ausgibt, und so universell ist, oder ähnliches.

    jrie dein Projekt habe ich mir noch nicht angesehen. Mache ich noch.

    Distribution ist yavdr.


    Gruß,

    Hendrik

  • Eventuell ist ja dann Flirc USB etwas für dich?


    Cheers,

    Ole

  • Wenn's was mit Arduino sein darf, dann evtl. auch mein Projekt:


    https://github.com/M-Reimer/irmp2keyboard


    In der Theorie könnte die Lösung sogar "Plug&Play" sein wenn deine Fernbedienung schon jemand aufgezeichnet und als Vorlage angeboten hätte:


    https://github.com/M-Reimer/ir…board/tree/master/remotes


    Auch in dem Fall muss die Konfiguration noch selber zusammengestellt werden, aber das "Anlernen" wäre entfallen.


    Ich habe aktuell Templates für zwei Programme (Kodi und VDR):

    https://github.com/M-Reimer/ir…ard/tree/master/templates


    Das Kodi-Template funktioniert 100%ig. Das VDR-Template sollte, ist aber noch ungetestet.


    Kleine Besonderheit bei meiner Lösung ist, dass die PS2 kann. Soll heißen das mein Empfänger an jedem PC, der "Boot on Keyboard" im BIOS hat (wohl einige) direkt den PC starten kann ohne das im Inneren gefummelt werden muss.


    Starten durch Einschleusen in den Power-Button ist in meinem Projekt aktuell nicht drin. Zum einen brauche ich es nicht, weil mein eigener Empfänger am PS2-Port hängt. Zum anderen hat noch keiner danach gefragt.


    Läuft an meinem HTPC vollkommen unproblematisch mit Kodi. Inklusive Booten via Fernbedienungs-Taste.

  • Wie funktioniert denn z.B.sowas?

    Das dürfte eine MCE-kompatible Fernbedienung sein (sieht zumindest so aus wie https://kodi.wiki/view/List_of…rols#Unbranded_MCE_remote) - dieser Typ agiert als Keyboard und Maus und sendet für viele Tasten keine einzelnen Tastendrücke, sondern Tastenkombinationen, was wir bei yaVDR dann über evmaps für Eventlircd auf einzelne für den VDR über den Lirc-Sockel leichter verdauliche einfache Tastendrücke herunterbrechen - so wie es bei der Hama MCE Remote (die nicht ganz optimal ist, weil die Tastenwiederholung für einige Tasten wie die Volume-Keys unter Linux nicht funktioniert) über die Evmap https://github.com/yavdr/yavdr…0.6/evmaps/hama-mce.evmap passiert, die aufgrund dieses Eintrags in den udev-Regeln geladen wird: https://github.com/yavdr/yavdr…v/98-eventlircd.rules#L88.


    Also ohne Lirc ablernen hoffen und beten und so.

    Solange man nicht gerade eine Fernbedienung mit einem exotischen Protokoll hat, ist das Anlernen mit irrecord eigentlich unkompliziert - man startet das Programm mit dem gewünschten Treiber/Gerät und nach dem Erkennen der Protokollparameter durch ein paar Tastendrücke (einzeln, gedrückt gehalten, schnelle Wiederholung) gibt man den gewünschten Tastennamen aus https://www.yavdr.org/document…3.html#idm140261253405312 an, die drückt die dazu gehörige Taste und wiederholt das ganze solange, bis alle gewünschten Tasten belegt wurden. Beten ist bei deterministischen Systemen meistens unnötiger Overhead.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ich hatte gedacht, dass es vielleicht eine FB mit Empfänger gibt, die sich als Tastatur ausgibt, und so universell ist, oder ähnliches.

    Die Erwartung, dass ein Fernbedienungsempfänger, der sich als Tastatur anmeldet, alle Probleme löst, haben zwar Viele, aber sie erfüllt sich nicht wirklich.

    Denn ein Tastaturfernbedienungsempfänger ohne Zusatzsoftware hat entweder Nachlauf oder er kommt mit langen Tastendrücken nicht klar.


    Da die Distributionen sowieso Zusatzsoftware benutzen, ist das kein Nachteil, aber der vermeintliche Vorteil ist nur bedingt gegeben.


    Der IRMP-STM32-USB-IR-Empfänger+Einschalter hat den Vorteil, dass es auf allen bekannten VDR-Distributionen fertige Softwarepakete und gute Anleitungen für ihn gibt und man bei Fragen kompetente Hilfe bekommt.

    Der IRMP-STM32-USB-Keyboard-IR-Empfänger+Einschalter ist wie der Flirc universeller, aber die Zusatzsoftware muss erst noch ihren Weg in die VDR-Distributionen finden.

  • Die Erwartung, dass ein Fernbedienungsempfänger, der sich als Tastatur anmeldet, alle Probleme löst, haben zwar Viele, aber sie erfüllt sich nicht wirklich.

    Denn ein Tastaturfernbedienungsempfänger ohne Zusatzsoftware hat entweder Nachlauf oder er kommt mit langen Tastendrücken nicht klar.


    Ich war anfangs auch skeptisch aber mittlerweile halte ich es schon für möglich das ein Tastatur-IR-Empfänger vielleicht nicht alle aber schon viele Probleme elegant und dauerhaft löst. Einmal den Empfänger auf eine Fernbedienung programmieren und die zu sendenden Tasten hinterlegen und man braucht auf dem HTPC keinerlei Zusatz-Software mehr. Ich bin bei meinem sogar soweit gegangen und habe eine IR-Tastatur komplett mit angelernt. Für die schnelle YouTube-Suche ist so eine kleine Tastatur für den Schoß echt praktisch.


    Ja, es gibt Nachlauf. Den kann man aber recht gut minimieren. Ich habe in meiner "Anlernsoftware" auch gleich "Benchmarking" für die Wiederholrate drin. So kann man den Wert in der Firmware auf das mögliche Minimum tunen. Zumindest meine Erfahrung ist, dass der bleibende leichte Nachlauf kein Problem darstellt.


    Was die Tastenwiederholung angeht: Das Problem sollte eigentlich gar nicht existieren. Software kann sehr wohl erkennen ob eine Taste gedrückt gehalten wird. Ich spiele unter Linux CS:GO und wenn beim Bewegen via Tastatur die Tastaturwiederholung reinfunken würde, dann wäre das fatal. Geht also definitiv ohne. Wenn das mit VDR ein Problem ist, dann liegt das im lange ungepflegten softhddevice. Hier müsste gepatcht werden um die Tastenwiederholung abzustellen. Ich bin was das angeht aber außen vor. VDR macht bei mir schon lange nirgends mehr direkt die Ausgabe und mit Kodi existiert das Problem nicht.


    Ich würde beim Thema "Tastenwiederholung" sogar soweit gehen, dass alles außer einem "Standard-Tastaturverhalten" ein Fehler wäre. Kein Daemon oder Kernel-Modul sollte die Tastenwiederholung aktiv verhindern. Der Bug ist im Anwendungsprogramm (hier softhddevice) und sollte auch dort gefixt werden. Allerdings habe ich, wie schon erwähnt, halt auch eine echte IR-Tastatur dran und die soll sich möglichst genau so wie eine Tastatur verhalten. Inklusive Wiederholung.

  • Quote

    Die Erwartung, dass ein Fernbedienungsempfänger, der sich als Tastatur anmeldet, alle Probleme löst, haben zwar Viele, aber sie erfüllt sich nicht wirklich.

    Denn ein Tastaturfernbedienungsempfänger ohne Zusatzsoftware hat entweder Nachlauf oder er kommt mit langen Tastendrücken nicht klar.

    Dann dürften ja auch keine drahtlosen USB Tastaturen richtig funktionieren ...

  • Zumindest meine Erfahrung ist, dass der bleibende leichte Nachlauf kein Problem darstellt.

    Mich stört er.


    Wenn das mit VDR ein Problem ist, dann liegt das im lange ungepflegten softhddevice. ... mit Kodi existiert das Problem nicht.

    Das hat mit softhddevice nichts zu tun. Und Kodi hat das Problem auch.

    Ich würde beim Thema "Tastenwiederholung" sogar soweit gehen, dass alles außer einem "Standard-Tastaturverhalten" ein Fehler wäre. Kein Daemon oder Kernel-Modul sollte die Tastenwiederholung aktiv verhindern

    Das ist ja das Problem.

    Eine Tastatur sendet beim Drücken Key-Press und beim Loslassen Key-Release. Das funktioniert super.

    Eine Fernbedienung kennt keinen Key-Release, deswegen wird er nach einem timeout vom Empfänger erzeugt. Der timeout verursacht zusammen mit der Autorepeatfunktion des Kernels Tastendrücke, die der User nicht mit seinem Finger erzeugt hat.

    Siehe #46 und folgende.

  • Dann dürften ja auch keine drahtlosen USB Tastaturen richtig funktionieren ...

    Eine Tastatur sendet auch beim Loslassen einer Taste, eine Fernbedienung nicht.

    Das ist ein kleiner, aber entscheidender Unterschied.

    Und der verursacht entweder Nachlauf oder dass ein langer Tastendruck als viele einzelne erkannt wird.


    Es ist im Kernel nicht vorgesehen, dass eine Fernbedienung eine Tastatur simuliert.

    Un niemand hat auf meine Eingabe bei linux-input geantwortet.

    Der Kernel hat für Fernbedienungen rc-core.

  • Stört aber nicht. Entweder die Tastenwiederholungen gehören da hin und das Programm geht passend damit um oder sie sind nicht gewünscht. Dann muss das Programm sich darum kümmern die abzuschalten.

    Woher soll das Programm wissen, ob ein Tastendruck vom User gemacht war oder vom Autorepeat erzeugt?

    Woher soll das Programm wissen, ob mehrere einzelne Tastendrücke eigentlich ein langer war?

    Das ist unmöglich.


    Wenn dich das nicht stört, ist es gut für dich.

    Ich bin knackig reagierende Empfänger gewohnt und merke den Unterschied ;)

  • Woher soll das Programm wissen, ob ein Tastendruck vom User gemacht war oder vom Autorepeat erzeugt?

    Woher soll das Programm wissen, ob mehrere einzelne Tastendrücke eigentlich ein langer war?

    Das ist unmöglich.

    Wenn an der Stelle kein Repeat gewünscht ist, dann kann das Programm den ausschalten. Wenn ich in CS die W Taste gedrückt halten, dann stottert man ja auch nicht nach vorne sondern die Bewegungen sind flüssig.

  • Eine Tastatur sendet auch beim Loslassen einer Taste, eine Fernbedienung nicht.

    Das ist ein kleiner, aber entscheidender Unterschied.

    Und der verursacht entweder Nachlauf oder dass ein langer Tastendruck als viele einzelne erkannt wird.

    Und was spricht dagegen eine Tastatur in die Form einer Fernbedienung zu packen und mit den passenden Keysignalen zu belegen so dass das System eben nur eine Tastatur sieht ? Sowas muss es doch eigentlich schon längst geben und das ist genau das was gesucht wird

  • Es ist aber auch falsch dafür einfach das Repeat schon auf Kernelseite hart auszuschalten.

    Das kann doch jeder machen, wie er es braucht.

    Wie gesagt: Ich hab an meinem Empfänger tatsächlich eine IR-Tastatur laufen.

    Das kann man auf zwei Arten interpretieren:

    * Du hast eine echte Tastatur, die Press und Release generiert.

    * Dein Empfänger meldet sich als Tastatur an, aber deine Fernbedienung hat nur Press.

    Je nach dem hat das ganz unterschiedliche Konsequenzen.


    Wenn an der Stelle kein Repeat gewünscht ist, dann kann das Programm den ausschalten.

    Das ist was ganz anderes. Was das Programm macht, ist Sache des Programms.


    Hier geht es darum, auf welche Weise ein nicht vorhandener Release künstlich erzeugt wird, und was das für Nebenwirkungen hat.


    Ein Tastaturkontroller sendet beim Drücken ein Signal und er sendet beim Loslassen ein Signal.

    Eine Fernbedienung sendet nur beim Drücken ein Signal. Der Release wird künstlich von der Empfängerfirmware erzeugt und das hat zwangsläufig Nebenwirkungen.

    Wenn die Firmware abwartet, ob noch was kommt, kommt der Release zu spät. Das erzeugt Nachlauf.

    Wenn die Firmware den Release gleich nach dem Press generiert, werden lange Tastendrücke nicht als Wiederholung, sondern als neue Tastendrücke erkannt.


    Diese Nebenwirkungen können nur von Zusatzsoftware kompensiert werden, weil linux-input nur für echte Tastaturen mit Release gemacht ist.

    Dafür gibt es bei mir entweder stm32kbd2uinput oder den Kernel Treiber.


    Das grundsätzliche Problem hat jeder Tastaturfernbedienungsempfänger. Egal ob deiner oder meiner oder Flirc oder sonst einer.

    Das wird von Vielen übersehen, und darauf wollte ich hinweisen.

  • Das kann man auf zwei Arten interpretieren:

    * Du hast eine echte Tastatur, die Press und Release generiert.

    * Dein Empfänger meldet sich als Tastatur an, aber deine Fernbedienung hat nur Press.

    Je nach dem hat das ganz unterschiedliche Konsequenzen.


    Die IR-Tastatur sendet tatsächlich Release-Codes.

    Worauf ich hinaus wollte, ist, dass ein grundsätzliches "Totschalten" der Wiederholung dann auch die Wiederholung einer IR-Tastatur kaputt machen würde.


    Quote

    Diese Nebenwirkungen können nur von Zusatzsoftware kompensiert werden, weil linux-input nur für echte Tastaturen mit Release gemacht ist.

    Dafür gibt es bei mir entweder stm32kbd2uinput oder den Kernel Treiber.

    Die können die Fernbedienung aber auch nicht überreden "Release-Codes" zu senden.


    Im Prinzip müsste das gleiche Problem auch mit LIRC existieren. Auch da sollte ein "Pressed" zumindest solange stehen bleiben bis es eben zum Timeout kommt.


    Bei der Tastatur kommt da nur dazu, dass eine Tastenwiederholung greifen könnte. Die will ich aber, wenn ich die Taste gedrückt halte, durchaus haben. Auch auf einer Fernbedienung, sofern diese Tastatur-Anschläge sendet.


    Wenn die Tastenwiederholung bei Bedienung mit einer Tastatur Probleme macht, dann muss die Software gefixt werden.


    Was mir besonders bei Kodi aufgefallen ist, ist, dass einige Events nur auf "Release" getriggert werden. Durch Tunen des Timeouts nach unten stört das nicht mehr, aber ich wüsste auch nicht wie ich das über clientseitige Software besser machen sollte wenn ich die Wiederholung an sich doch behalten will.


    Nur aus Spaß habe ich ab einen gewissen Punkt meinen Code für "irmp2keyboard" tatsächlich auf der IR-Tastatur getippt. Geht recht gut :P