[ANNOUNCE] CEC Plugin 0.0.2

  • Das CEC Plugin soll es ermöglichen, mit jeder Fernbedienung jedes CEC-fähige Gerät steuern zu können (zumindest die Grundfunktionen). Per Menü soll man auf ein "Profil" umschalten können, z.B. DVD-Player oder Fernseher. Im Plugin lassen sich dann CEC-Befehle definieren, die an das entsprechende Gerät gesendet werden, z.B. Power ON/OFF. Das Plugin simuliert dann einen Standbild-Player und gibt die Tasten der Fernbedienung an das entsprechende Endgerät weiter. Beim Umschalten auf ein Profil soll man dann später auch noch ein Script ausführen können.


    Die Preview-Version 0.0.2 des CEC-Plugins erlaubt es schon mal den VDR von angeschlossenen Geräten aus zu steuern. Außerdem lassen sich angeschlossene Geräte ein und ausschalten und Tastendrücke vom VDR an das aktive Gerät senden. Das ganze lässt sich über eine XML-Datei konfigurieren. Ausstiegstaste aus einem "Profile" ist derzeit noch Hardcodiert die STOP-Taste.


    Voraussetzung sind die Pakete xerces-c und libcec. Getestet wurde das mit dem Pulse8 CEC Adapter.


    Das ganze ist derzeit eine "Technical-Preview" Version, die Doku beschränkt sich derzeit noch auf das README und eine kommentierte Beispielconfig im contrib-Verzeichnis des Plugins.


    TODO-Liste:

    • Ausstiegstaste konfigurierbar machen.
    • Scripte unterstützen.
    • Anpassbare Keymaps pro Device.
    • Doku.


    Download unter http://www.uli-eckhardt.de/vdr…d/vdr-cecremote-0.0.2.tgz oder im Mercurial Repository unter http://hg.uli-eckhardt.de/.


    Bugreports, Wünsche und Ideen sind wie immer willkommen :bpl .

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2

  • Das hört sich ja super an, ich habe mich schon häufig gefragt warum kann XBMC/Kodi oder VOMP mit dem RasperryPi das und der VDR nicht.
    Werde ich gleich mal versuchen zu paketieren ;)

    Gruß
    Frodo

  • Im Makefile ist ein Fehler. Mit dem angehängten Patch wird xerces-c nicht mehr herausoptimiert.
    libcec aber immernoch.


    Kann es sein, dass dein Plugin die libcec.so gar nicht benötigt?


    Edit: Es hängt von den LDFLAGS ab. Hier mal die Standard LDFLAGS von Arch Linux (Mit denen alle anderen Plugins problemlos kompilieren und auch richtig gelinkt werden.)


    Code
    1. export LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro
    2. make
    3. ldd


    Wenn man die LDFLAGS vorher löscht, funktioniert es.

  • Im Makefile ist ein Fehler. Mit dem angehängten Patch wird xerces-c nicht mehr herausoptimiert.
    libcec aber immernoch.

    Ich weiss jetzt nicht, was du mit herausoptimiert meinst. Ich nehme deinen Patch aber trotzdem :D , da mit deiner Änderung die libs dynamisch zur Laufzeit geladen werden anstatt statisch vom Linker.

    Quote

    Kann es sein, dass dein Plugin die libcec.so gar nicht benötigt?


    Das würde mich schwer wundern. Wenn du meine originales Makefile verwendest kommt es drauf an, ob du eine statische Version der Libs auf deinem System hast. Wenn da eine nicht statisch ist, versucht der Loader dann die lib dynamisch zu linken. Spätestens das sollte dann funktionieren.

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2

  • Ich habe es unter Ubuntu Trusty gebaut ohne Anpassung des Makefiles.
    Zum Bauen wurde libcec defintiv benötigt, außerdem noch libxerces-c .

    Gruß
    Frodo

  • Zum Bauen wurde libcec defintiv benötigt, außerdem noch libxerces-c .


    Und ein gcc > 4.6. Damit fällt dann Raspbian mit dem Standardcompiler als Buildplattform weg.

    SAT Hardware: Gibertini SE75 | DuraSat Dur-Line UK-24 | DD OctopusNET V2 Rack (Firmware 1.0.81) mit MaxS8
    Server: Asus M5A78L-M/USB3 | Sempron 145@2Cores | 8GB ECC RAM | PicoPSU | Debian Stretch 64Bit | VDR 2.4.0 mit SAT>IP, epgsearch, epg2vdr, vdr-epg-daemon
    Clients: RaspberryPI 2/3 | Yocto Poky Linux (Openembedded) 2.5+git | Linux Kernel 4.14+git | VDR 2.4.0 mit SAT>IP, RpiHDDevice, SkinDesigner, Remote, Graphlcd-ax206dpf, Extrecmenu, Femon, Mlist


    R.I.P: Gigaset M740 mit VDR von open7x0.org

  • Wenn ich ldd verwende wird die libcec.so nicht gelistet. Nehme ich dann '--as-needed' aus den LDFLAGS raus, wird es wieder gelistet.


    Warum hier libcec wegfallen soll kann ich mir so nicht erklären. Startet das Plugin bei dir?

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2

  • Damit fällt dann Raspbian mit dem Standardcompiler als Buildplattform weg


    Den Raspi wollte ich schon unterstützen. Zum Testen zumindest fürs Compilieren habe ich hier einen rumliegen. Hast du da ein Standard-Raspbian für den VDR oder ein spezielles Image?

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2

  • Hast du da ein Standard-Raspbian für den VDR oder ein spezielles Image?

    Ich denke die meisten Raspi User nehmen Raspbian/Wheezy, ich nehme das als Spiel- und Bastelwiese. Produktiv benutzte ich Yocto/Openembedded.


    Wenn du nicht zwingend die C++11 Features brauchst, wäre es nicht schlecht das auszubauen.

    SAT Hardware: Gibertini SE75 | DuraSat Dur-Line UK-24 | DD OctopusNET V2 Rack (Firmware 1.0.81) mit MaxS8
    Server: Asus M5A78L-M/USB3 | Sempron 145@2Cores | 8GB ECC RAM | PicoPSU | Debian Stretch 64Bit | VDR 2.4.0 mit SAT>IP, epgsearch, epg2vdr, vdr-epg-daemon
    Clients: RaspberryPI 2/3 | Yocto Poky Linux (Openembedded) 2.5+git | Linux Kernel 4.14+git | VDR 2.4.0 mit SAT>IP, RpiHDDevice, SkinDesigner, Remote, Graphlcd-ax206dpf, Extrecmenu, Femon, Mlist


    R.I.P: Gigaset M740 mit VDR von open7x0.org

  • Wenn du nicht zwingend die C++11 Features brauchst, wäre es nicht schlecht das auszubauen


    Ich habe jetzt eine neue Version 0.0.3, die kompiliert ohne C++11. Wenn das <stillpic> Tag weggelassen wird, so wird kein Player gestartet. Damit kann man dann z.B. den Fernseher nur ein oder ausschalten.


    Download unter http://www.uli-eckhardt.de/vdr…d/vdr-cecremote-0.0.3.tgz oder im Mercurial Repository unter http://hg.uli-eckhardt.de/.


    Bugreports, Wünsche und Ideen sind wie immer willkommen :bpl .

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2

  • Ich habe jetzt auch endlich mal nachgeschaut. Die libcec scheint wirklich keine Laufzeitabhängigkeit zu sein. Ich bin zwar noch nicht dazu gekommen, es an einem System mit CEC zu testen, aber auf meinem normalen VDR stürzt das Plugin zumindest schon mal nicht ab.

  • Ich habe jetzt auch endlich mal nachgeschaut. Die libcec scheint wirklich keine Laufzeitabhängigkeit zu sein. Ich bin zwar noch nicht dazu gekommen, es an einem System mit CEC zu testen


    Jetzt wird es aber echt seltsam. Das Plugin sollte sich eigentlich hart beenden, wenn es kein CEC-Adapter findet. ?(

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2

  • Kann ich die Tasten eigentlich auch irgendwie anlernen.


    Das steht noch auf der TODO-Liste. Die Tastenzuordnung soll für jedes Gerät konfigurierbar werden.

    VDR 2.4.1 Kodi 18.6-Leia
    Ubuntu 20.04, Kernel 5.6.13, Thermaltake DH102, ASHRock J4105B, CineS2 V6.5.
    Plugins:
    radio v1.1.0-6-g468280f , trayopenng 1.0.2, fritzbox 1.5.3, cdplayer 1.2.4, femon v2.4.0-GIT-d366856, menuorg 0.5.2, extrecmenung v2.0.4, streamdev-server v0.6.1-git, cecremote 1.5.0, osd2web 0.2.51, softhdvaapi v3.1.1-GITa41f6b2