[ANNOUNCE] CEC Remote Plugin 1.0.0

  • Es muss also in der libCEC 2.2-0 schon die Möglichkeit geben. Darf ich ein Feature Request aufmachen? :rolleyes: Viiieelen Dank im Voraus!


    Ziehe dir mal den aktuellen Stand aus meinem Repo und probiere mal, ob der neue Parameter <hdmiport>2</hdmport> (für HDMI-Port 2) in <global> funktioniert. Ich kann das leider nicht vernünftig testen.

    VDR 2.6.5 Kodi 18.6-Leia
    Debian GNU/Linux 12, Thermaltake DH102, ASUS PRIME N100I-D, 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.3, cecremote 1.5.0, osd2web 0.3.2, softhddevice v2.0.6-GIT97e825d

  • Es hat kurz funktioniert. Nach einem Neustart ging's nicht mehr. Keine Ahnung warum. Die Logs sehen eigentlich gut aus:



    CEC NOTICE: connection openedApr 19 16:00:18 SumClient vdr: [cecremote] CEC Command 135 : device vendor idApr 19 16:00:18 SumClient vdr: [cecremote] CEC NOTICE: registering new CEC client - v2.2.0Apr 19 16:00:19 SumClient vdr: [cecremote] CEC NOTICE: setting HDMI port to 3 on device TV (0)Apr 19 16:00:19 SumClient vdr: [cecremote] CEC NOTICE: CEC client registered: libCEC version = 2.2.0, client version = 2.2.0, firmware version = 4, firmware build date: Thu Dec 6 11:15:20 2012 +0000, logical address(es) = Recorder 1 (1) , base device: TV (0), HDMI port number: 3, phApr 19 16:00:19 SumClient vdr: [cecremote] CEC Command 192 : start ARCApr 19 16:00:19 SumClient vdr: [cecremote] CEC Command 144 : report power statusApr 19 16:00:20 SumClient vdr: [cecremote] TV 0@0000 TV SamsungApr 19 16:00:20 SumClient vdr: [cecremote] Recorder 1 1@3000 VDR Pulse EightApr 19 16:00:20 SumClient vdr: [cecremote] CEC Command 70 : give osd nameApr 19 16:00:20 SumClient vdr: [cecremote] CEC Command 135 : device vendor idApr 19 16:00:21 SumClient vdr: [cecremote] CEC Command 160 : vendor command with id


    Es hat kurz funktioniert, nachdem das Audio Device in der cecremote.xml definiert hatte:



    Ich habe eine ganze Weile rumprobiert, hab's aber nicht mehr zum Laufen bekommen. Keine Ahnung warum. Aber wie gesagt, es hat kurz funktioniert, also geht es im Prinzip.


    Gruß
    Sumitman

  • UPDATE:


    Nachdem ich das HDMI-Kabel zwischen dem CEC-Adapter und dem Video-Receiver ausgetauscht habe, nämlich durch eines, das keine CEC-Signale durchlässt, funktioniert das CEC-Plugin tadellos auf Port #3. Allerdings geht dadurch auch ARC nicht mehr :( Ist also nicht genau das, was ich haben will. Wenn jemand eine Gute Idee hat, her damit.


    Gruß
    Summitman

  • Wenn jemand eine Gute Idee hat, her damit.


    Hast du schon mal mit cec-client probiert, ob das damit funktioniert? Ich werde mal bei Gelegenheit in den Kodi-Code reinschauen, wie das dort gelöst ist. Ein paar Sachen bei libcec funktionieren irgendwie nicht so, wie ich das vermuten würde.

    VDR 2.6.5 Kodi 18.6-Leia
    Debian GNU/Linux 12, Thermaltake DH102, ASUS PRIME N100I-D, 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.3, cecremote 1.5.0, osd2web 0.3.2, softhddevice v2.0.6-GIT97e825d

  • Mit cec-client kann ich mit "p 0 3" dem TV sagen, dass CEC jetzt auf Port #3 läuft:



    p 0 3
    NOTICE: [ 791707] setting HDMI port to 3 on device TV (0)
    DEBUG: [ 791707] marking Recorder 1 (1) as inactive source
    DEBUG: [ 791707] marking the adapter as inactive source
    NOTICE: [ 791712] >> source deactivated: Recorder 1 (1)
    DEBUG: [ 791712] << Recorder 1 (1) -> broadcast (F): physical adddress 3000
    TRAFFIC: [ 791712] << 1f:84:30:00:01
    DEBUG: [ 791843] making Recorder 1 (1) the active source
    DEBUG: [ 791843] marking the adapter as active source
    NOTICE: [ 791848] >> source activated: Recorder 1 (1)
    DEBUG: [ 791848] sending active source message for 'Recorder 1'
    NOTICE: [ 791848] << powering on 'TV' (0)
    TRAFFIC: [ 791848] << 10:04
    NOTICE: [ 791906] << Recorder 1 (1) -> broadcast (F): active source (3000)
    TRAFFIC: [ 791906] << 1f:82:30:00
    DEBUG: [ 792011] << Recorder 1 (1) -> TV (0): menu state 'activated'
    TRAFFIC: [ 792011] << 10:8e:00
    TRAFFIC: [ 792163] >> 51:c0
    DEBUG: [ 792163] >> Audio (5) -> Recorder 1 (1): start ARC (C0)


    Sobald ich cec-client beende, schaltet der TV wieder auf Port #1 als CEC-Quelle.


    Aber:


    Wenn ich bei laufendem vdr mit cecremote-Plugin ein echo "p 0 3" | cec-client -s -d 1 sende, verliert das cec-Plugin die Connection. Sende ich ein DISC über svdrp und danach ein CONN wird die Verbindung wieder hergestellt und CEC funktioniert!


    edit: zuerst das Plugin DISC, dann echo "p 0 3" | cec-client -s -d 1, danach CONN.


    Ich hoffe, das hilft dir weiter beim Verständnis von libcec :D


    Gruß
    Sumitman

  • Nachdem ich bis dato den libcec-daemon zur VDR-Bedienung genutzt habe aber der seit irgendeinem Update nicht mehr funktioniert bin ich nun auf das cecremote-plugin umgestiegen. Funktioniert soweit, bis auf die "Menu"-Taste sowie "Kanal+" und "Kanal-". Wie kann ich das debuggen? Hab mal zwei Befehle in der Konsole abgesetzt:


    Muss ich noch eine keymap anpassen? Der Fernseher ist übrigens von Philips.

    Mein VDR: Hardware: Nanum SE-H100/ASRock Q1900M/Pico-PSU/GeForce GT 720/yavdr-ansible

  • Ok, das habe ich gefunden. Das sind die Keys die ich ummappen muss:


    Zitat

    214-4b FORWARD
    214-4c BACKWARD
    214-53 ELECTRONIC_PROGRAM_GUIDE


    Dazu hab ich dann in der cecremote.xml diesen Abschnitt eingefügt:


    Das reicht aber offentsichtlich noch nicht, er reagiert noch nicht auf die Tasten.

    Zitat

    Dieses Element legt eine neue Keymap mit vorkonfigurierten Werten an. Elemente der Map können mit <key> überschrieben werden.


    Wo wird diese Keymap abgelegt?

    Mein VDR: Hardware: Nanum SE-H100/ASRock Q1900M/Pico-PSU/GeForce GT 720/yavdr-ansible

  • Beim Abfragen der Keymaps kommt das hier:

    Code
    220 vdrclient2 SVDRP VideoDiskRecorder 2.2.0; Sun Apr 26 12:39:51 2015; UTF-8
    214-Keymaps CEC->VDR
    214-  default
    214-Keymaps VDR->CEC
    214-  myTV
    214   default
    221 vdrclient2 closing connection


    Müsste "myTV" nicht unter "CEC->VDR" stehen?

    Mein VDR: Hardware: Nanum SE-H100/ASRock Q1900M/Pico-PSU/GeForce GT 720/yavdr-ansible

  • Ein Beispiel für eine cecremote.xml:


    <config>
    <global>
    <cecdebug>7</cecdebug>


    <keymaps cec="myTV" />


    <hdmiport>3</hdmiport>


    <cecdevicetype>RECORDING_DEVICE</cecdevicetype>


    <combokeytimeoutms>800</combokeytimeoutms>
    <!-- On VDR start power on TV, make VDR device active -->
    <onstart>
    <poweron>TV</poweron>
    <poweron>Audio</poweron>
    <makeactive/>
    </onstart>
    <!-- On VDR stop power off TV and Audio -->
    <onstop>
    <poweroff>TV</poweroff>
    <poweroff>Audio</poweroff>
    </onstop>

    </global>



    <!-- Key mapping CEC Key to VDR -->
    <ceckeymap id="myTV">
    <key code="AN_CHANNELS_LIST">
    <value>Menu</value>
    </key>
    </ceckeymap>


    <!-- Key mapping VDR Key to CEC -->
    <vdrkeymap id="myTV">
    <key code="Volume+">
    <value>VOLUME_UP</value>
    </key>
    </vdrkeymap>


    </config>

  • Der Abschnitt, den ich die cecremote.xml eingefügt habe, scheint ja nicht so falsch so sein. Hier mal das syslog vom Start:


    Da ist jedenfalls kein "Error" dabei. Trotzdem funktioniert die Menu-Taste nicht. Wo kann man denn die gesamte keymap einsehen? Oder darf ich mir das nicht so wie bei "eventlirc" vorstellen, wo man zu jeder Fernbedienung eine *.evmap-Datei anlegen kann?

    Mein VDR: Hardware: Nanum SE-H100/ASRock Q1900M/Pico-PSU/GeForce GT 720/yavdr-ansible

  • Mit "svdrpsend plug cecremote LSTK" findest du die unterstützen Tasten. Wenn du die Fernbedienung drückst, siehst du in der syslog die entsprechende Nummer. Nummer und Name aus LSTK kannst du damit zusammenbringen. Wenn die Nummer nicht dabei ist, wird die Taste (noch) nicht unterstützt.

  • Hallo summitman, soweit bin ich schon (siehe meinen Post weiter oben). Hab ich ja so in der cecremote.xml eingetragen. Kann es sein, das keine keymap erstellt wird?

    Code
    thomas@vdrclient2:~$ svdrpsend plug cecremote CECK
    220 vdrclient2 SVDRP VideoDiskRecorder 2.2.0; Mon Apr 27 20:06:58 2015; UTF-8
    214-CEC KEYMAP
    214    Keymap not found
    221 vdrclient2 closing connection


    Obwohl im syslog steht:

    Code
    Apr 27 19:43:57 vdrclient2 vdr: [cecremote] Node Name ceckeymap
    Apr 27 19:43:57 vdrclient2 vdr: [cecremote] CECKEYMAP TV

    Mein VDR: Hardware: Nanum SE-H100/ASRock Q1900M/Pico-PSU/GeForce GT 720/yavdr-ansible

  • Kann es sein, das keine keymap erstellt wird?


    Du musst noch den Namen der Keymap angeben, also svdrpsend plug cecremote CECK myTV.

    VDR 2.6.5 Kodi 18.6-Leia
    Debian GNU/Linux 12, Thermaltake DH102, ASUS PRIME N100I-D, 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.3, cecremote 1.5.0, osd2web 0.3.2, softhddevice v2.0.6-GIT97e825d

  • Danke für den Tipp, die keymap bekomme ich damit angezeigt. Da kommt jetzt z.B. 3x Menu vor:

    Code
    214-<key code="ROOT_MENU">
    214-  <value>Menu</value>
    214-</key>
    214-<key code="CONTENTS_MENU">
    214-  <value>Menu</value>
    214-</key>


    und weiter unten das aus meiner cecremote.xml:

    Code
    214-<key code="ELECTRONIC_PROGRAM_GUIDE">
    214-  <value>Menu</value>
    214-</key>


    Mit den anderen Tasten das gleiche:

    Code
    214-<key code="FORWARD">
    214-  <value>Channel+</value>
    214-</key>
    214-<key code="BACKWARD">
    214-  <value>Channel-</value>
    214-</key>


    und meine Einträge:

    Code
    214-<key code="CHANNEL_UP">
    214-  <value>Channel+</value>
    214-</key>
    214-<key code="CHANNEL_DOWN">
    214-  <value>Channel-</value>
    214-</key>


    Aber auf der Plugin-Homepage steht:

    Zitat

    <key>


    Das Element wird innerhalb von <ceckeymap> oder <vdrkeymap> verwendet um existierende Map-Einträge zu überschreiben. Der <key> Tag muss das Attribut code angeben. code gibt den Key an, der neu definiert werden soll.

    Mein VDR: Hardware: Nanum SE-H100/ASRock Q1900M/Pico-PSU/GeForce GT 720/yavdr-ansible

  • Mit cec-client kann ich mit "p 0 3" dem TV sagen, dass CEC jetzt auf Port #3 läuft:


    Aufgrund von schlechtem Wetter bin ich heute doch wieder Erwartens noch mal zum Basteln gekommen ;D , ziehe dir doch noch mal die letzte Version aus meinem Repository und schaue mal, ob das jetzt besser funktioniert.

    VDR 2.6.5 Kodi 18.6-Leia
    Debian GNU/Linux 12, Thermaltake DH102, ASUS PRIME N100I-D, 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.3, cecremote 1.5.0, osd2web 0.3.2, softhddevice v2.0.6-GIT97e825d

  • Danke für den Tipp, die keymap bekomme ich damit angezeigt. Da kommt jetzt z.B. 3x Menu vor:


    Hast du die Keymap auch in <global> definiert? z.B:

    Code
    <global>
                    <keymaps cec="myTV" />


    Ansonsten poste mal deine komplette cecremote.xml, da mir mittlerweile nicht mehr klar ist, was du wie geändert hast.

    VDR 2.6.5 Kodi 18.6-Leia
    Debian GNU/Linux 12, Thermaltake DH102, ASUS PRIME N100I-D, 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.3, cecremote 1.5.0, osd2web 0.3.2, softhddevice v2.0.6-GIT97e825d

  • Das war der entscheidende Tipp:

    Code
    <global>
                    <keymaps cec="myTV" />


    Das hatte gefehlt, jetzt funktionieren alle Tasten wie gewünscht, Danke für den Support!

    Mein VDR: Hardware: Nanum SE-H100/ASRock Q1900M/Pico-PSU/GeForce GT 720/yavdr-ansible

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!