Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter cec2

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter cec2

    This topic has been deleted. Only users with topic management privileges can see it.
    • Garfonso
      Garfonso Developer last edited by Garfonso

      Aktuelle Test Version 0.0.8
      Veröffentlichungsdatum 14.02.2021
      Github Link https://github.com/iobroker-community-adapters/ioBroker.cec2

      Ich habe einen Adapter für HDMI-CEC geschrieben. Es gab bereits einen, der wurde aber nicht mehr gepflegt und hatte aus meiner Sicht einige Probleme (mehr dazu).

      Der HDMI-CEC Adapter ist getestet auf eine Raspberry PI, der per HDMI an einem TV oder Switch oder AV-Reciever hängt (also irgenwie im "HDMI-Netz"). Es sollte auch mit anderen Rechnern gehen. Wichtig ist, dass der cec-client vorhanden ist, unter Raspian "cec-utils" installieren mit:

      sudo apt-get install cec-utils
      

      Danach muss vermutlich noch dem user "iobroker" das Recht eingeräumt werden auf die CEC-Schnittstelle zuzugreifen, das geht in Raspian so (User iobroker ist danach Mitglied in der Gruppe "video"):

      sudo usermod -a -G video iobroker
      

      Der Adapter pollt beim Start alle HDMI Geräte und legt entsprechend Geräte im ioBroker an. Ich habe für die Geräte ID den Namen des Geräts genommen. Der sollte sich nicht verändern und ist für Menschen doch ganz gut lesbar. Wenn während dem Betrieb weitere Geräte hinzukommen, werden die ebenfalls hinzugefügt und ggf. befragt.

      (wer sich fragt, was das ganze mit den Adressen soll, liest kurz im Spoiler eine kurze Einführung in CEC Adressen ;-)):


      Bei CEC gibt es zwei Adressen. Beide sind wichtig.
      Zum einen gibt es die "logische Adresse". Das ist eine Zahl zwischen 0-15, wobei die Zahl eindeutig festlegt um welches Gerät es sich handelt:

      • 0 = TV
      • 5 = Audiosystem
      • 4,8,11 = Playback
      • 1,2,9 = Recording
      • 3,6,7,10 = Tuner
        die restlichen sind reserviert (12,13), Freeuse (14) und Unregistered/Broadcast 15 und schränken das Gerät deutlich ein in der Verwendung des CEC Bus.
        Die logische Adresse wird dynamisch vergeben, wer zuerst kommt, hat sie. Gibt es zu wenig logische Adressen, muss ein Device gehen, damit ein neues kommen kann (z.B. hab ich 4 Playback Geräte und zwei "Teilen" sich eine Adresse -> der Adapter sollte damit umgehen können so gut es geht).
        Gleichzeitig ist die logische Adresse wichtig für alle anderen Geräte um zu wissen, welche Befehle sie an das Gerät schicken können/sollen und um was es sich handelt. Sie ist die Adressierung für alle Befehle und Rückmeldungen.

      Daneben gibt es die physische Adresse. Diese orientiert sich an den verwendeten HDMI Ports und stellt einen Pfad zum Endgerät da. Sie besteht aus 4 Zahlen getrennt durch Punkte. Ein paar Beispiele:

      • 0.0.0.0 = TV
      • 1.0.0.0 = 1. HDMI Port am TV
      • 2.0.0.0 = 2. HDMI Port am TV
      • 2.2.0.0 = 2. HDMI Port am TV, 2. HDMI Port am Switch / AV-Receiver
      • 4.1.2.0 = 4. HDMI Port am TV, 1. HDMI Port am AV-Reciever / Switch, 2. HDMI Port am nächsten AV-Receiver/Switch
        Es sind also immer die Port-Nummern auf dem Weg zum Endgerät. Wobei eine "0" bedeutet, dass der Pfad zu Ende ist.

      Es gibt für jedes Gerät die folgenden States:

      • info.active = das Gerät wurde gesehen, seitdem der Adapter gestartet ist und ist vermutlich unter der logischen Adresse noch erreichbar
      • info.cecVersion = meist 1.4, wäre interessant ob ihr hier was anderes beobachtet
      • info.lastSeen = letzte Nachricht von dem Gerät
      • info.logicalAddress = logische Adresse (falls bekannt und aktiv) als Nummer
      • info.logicalAddressHex = logische Adresse (falls bekannt und aktiv) als Hex-Zahl (wird in dieser Form für eigene Befehle benötigt, also 0-F).
      • info.Name = der Name, den das Gerät sich selbst gibt
      • info.physicalAddress = physische Adresse des Gerätshttp://info.name/
      • info.Vendor = Hersteller des Geräts
      • activeSource = ist dieses Geräte activeSource (= Eingang wird darauf umgestellt). Lässt sich setzen, dann wird das Gerät activeSource
      • menuStatus = das Gerät reportet, dass es sich gerade mit einer Fernbedienung bedienen lassen würde (?), damit experimentiere ich noch (gerne Erfahrungen mitteilen, mit CEC kann man ja z.B. den FireTV mit der FB des TVs bedienen, soweit ich verstanden habe, hat es damit zu tun)
      • state = Gerät ist an oder in standby bzw. kann darüber geschaltet werden

      Dann gibt es noch das "Global" Device mit den folgenden States:

      • active-source = hier kann die activeSource mit einer physischen Adresse gesetzt werden, so kann auch auf Geräte umgeschaltet werden, die selber kein CEC unterstützen (oder es deaktiviert ist). Außerdem wird hier die activeSource, die im Bus gesetzt wird auch reportet
      • arc = Audio Return Channel ist (in)aktiv bzw. kann (de)aktiviert werden
      • mute = AV-Receiver stumm schalten
      • raw-command = Befehl direkt an cec-client senden. Da geht z.B. "scan" oder "standby all" oder auch mit tx davor beliebige CEC-Befehle...
      • standbyAll = alle Geräte in Standby schicken (die es unterstützen)
      • systemAudio = systemAudio ist (in)aktiv bzw. kann (de)aktiviert werden. Entscheidet ob das "Audiosystem" (= AV-Receiver) sich um Audio & Lautstärke kümmern soll, oder nicht und Geräte Lautstärkeanforderungen entsprechend dorthin schicken sollen
      • volume = Status der Lautstärke, 0 = mute.
      • volumeUp/Down = leiser/lauter machen

      Dazu gibt es noch einen Unterordner "poll" für in dem für die meistens States noch ein Button ist. Wenn man den Button auslöst, wird auf dem CEC Bus ein Befehl zur Abfrage des entsprechenden States gesendet und der Wert, falls erhalten, entsprechend aktualisiert. Leider reagieren nicht alle Gerät zuverlässig auf diese Befehle.

      Update 0.0.8:
      Unter der Haube hat sich viel getan.

      Sichtbar neu ist der Support für die cec-Fernbedienung. Dafür gibt es bei jedem Gerät jetzt den state "createButtons" -> das erzeugt einen neuen Unterordner mit Button-States für alle möglichen Knöpfe (das sind einige) und einen State für das Delay (es wird immer ein Drücken und Loslassen gesendet, mit dem Delay lässt sich einstellen, wie viel Zeit zwischen drücken und loslassen verstreichen soll).
      Es reagieren nicht alle Geräte auf Knöpfe und auch ganz sicher nicht auf alle. Viel Spaß beim testen.

      Auch neu ist Support für OSD Nachrichten. Mein TV will das irgendwie alles nicht -> daher kann ich das selber nicht testen... 😞

      Viel Spaß beim Testen und ich bin offen für weitere Anregungen.
      Interessant fände ich auch, wenn jemand ein Gerät zum Aufnehmen hat oder ein "Tuner" Gerät. Oder ein Gerät, was plötzlich den state "deck" hat (da weiß ich noch gar nicht, wofür der da ist?).

      Ich überlege auch, ob man in den Geräten noch einen Unterordner für Fernbedienungsbefehle macht. Die kann man über CEC ja auch senden. Braucht man das?

      J 1 Reply Last reply Reply Quote 1
      • X
        Xyolyp last edited by

        @Garfonso wie sieht es mit dem Resourcenbedarf aus? Ich hätte noch einen Raspberry Pi Zero W in der Schublade, für den ich bisher keine Verwendung habe. Wenn das reichen sollte könnte ich den als Slave einrichten und an den "Receiver passthrough" Port meiner Xbox One hängen. Wahrscheinlich komme ich aber leider erst kommendes Wochenende dazu.

        Garfonso 1 Reply Last reply Reply Quote 0
        • Garfonso
          Garfonso Developer @Xyolyp last edited by

          @Xyolyp
          Könnte reichen... ich hatte das ganze auch eine lange Zeit auf einem PI 1 mit 512 MB RAM laufen (da ich beim entwickeln das ganze aber öfter neu starten musste, war mir das dann doch irgendwann zu doof und das ist jetzt ein PI 4. 😉 , daher kann ich es nicht garantieren, dass es noch läuft).

          X 1 Reply Last reply Reply Quote 0
          • X
            Xyolyp @Garfonso last edited by

            @Garfonso einen Raspi 1B+ habe ich auch noch aber der letzte Installationsversuch ist kläglich gescheitert. Wie hast du auf dem 1er ioBroker installiert? Gerne per Chat falls es dir hier zu Off Topic ist.

            1 Reply Last reply Reply Quote 0
            • X
              Xyolyp last edited by Xyolyp

              @Garfonso ich bin doch schon dazu gekommen meinen Raspberry Pi 1B+ als Slave einzurichten und den CEC2 Adapter zu installieren. Angeschlossen ist der Raspberry am "Satellitenreceiverinput" von meiner XBox One. Leider bleibt der Adapter gelb mit dem folgenden Fehler im Log:
              (1479) Can not access HDMI. Please read requirements part of readme. Error: Error: EACCES: permission denied, access '/dev/vchiq'
              EDIT: Ich konnte das Problem lösen indem ich auf dem Slave sudo usermod -a -G video iobroker ausgeführt habe.

              Aktuell habe ich im Log die folgenden Meldungen:
              6b63e561-9f97-4c03-b442-31b29d690420-image.png

              X Garfonso 2 Replies Last reply Reply Quote 0
              • X
                Xyolyp @Xyolyp last edited by

                Aktuell wird der Chromecast und der Fernseher erkannt. Die XBox One, die aktuell der aktive Eingang ist sowie der Sat-Receiver (ziemlich alt, möglicherweise kann er kein CEC) werden nicht erkannt bzw. es werden keine Objekte angelegt.
                Die angelegten Buttons funktionieren nicht. Weder Mute, noch Volume Up/Down unter Global, noch irgenein anderer:
                5f782f29-363a-45e6-bf47-e49a4400d9d9-image.png
                Kann ich dir irgendwelche Informationen/Logs/Dumps/… bereitstellen, damit du die Probleme untersuchen kannst?

                1 Reply Last reply Reply Quote 0
                • Garfonso
                  Garfonso Developer @Xyolyp last edited by

                  @Xyolyp said in Test Adapter cec2:

                  EDIT: Ich konnte das Problem lösen indem ich auf dem Slave sudo usermod -a -G video iobroker ausgeführt habe.

                  Achja, das wollte ich hier ja noch ergänzen... 😉
                  Da muss ich mal gucken, ob ich das irgendwie automatisieren kann bei der Installation (wenn überhaupt).

                  @Xyolyp said in Test Adapter cec2:

                  Die angelegten Buttons funktionieren nicht. Weder Mute, noch Volume Up/Down unter Global, noch irgenein anderer:

                  Also nur buttons? Oder auch die anderen States? (also z.B. an/aus).
                  Das ist ja merkwürdig...
                  Könntest du neu von github installieren und es nochmal versuchen und mir ggf. nochmal das Log zeigen? Vielleicht auch mal ein Log vom Startvorgang.

                  X 1 Reply Last reply Reply Quote 0
                  • X
                    Xyolyp @Garfonso last edited by

                    @Garfonso sagte in Test Adapter cec2:

                    Also nur buttons? Oder auch die anderen States? (also z.B. an/aus).

                    Es wirkt auf mich so als würde abgesehen vom Scan nichts so funktionieren wie es eigentlich sollte. Ich weiß nicht ob das Ursprungsproblem nicht vielleicht mein Aufbau ist, da ich den Raspi nicht direkt an einen Input vom Fernseher, sondern durch die Xbox am Fernseher angeschlossen habe. Leider habe ich keine Möglichkeit den Raspberry direkt am Fernseher anzuschließen.

                    2020-01-30 17:37:16.346  - info: host.iobroker-slave1 iobroker add cec2  --host iobroker-slave1
                    2020-01-30 17:37:28.001  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 create instance cec2
                    2020-01-30 17:37:28.113  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.sigKill created
                    2020-01-30 17:37:28.177  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.eventLoopLag created
                    2020-01-30 17:37:28.235  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.outputCount created
                    2020-01-30 17:37:28.311  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.inputCount created
                    2020-01-30 17:37:28.454  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.uptime created
                    2020-01-30 17:37:28.523  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.memRss created
                    2020-01-30 17:37:28.585  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.memHeapTotal created
                    2020-01-30 17:37:28.653  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.memHeapUsed created
                    2020-01-30 17:37:28.717  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.cputime created
                    2020-01-30 17:37:28.779  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.cpu created
                    2020-01-30 17:37:28.847  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.compactMode created
                    2020-01-30 17:37:28.910  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.connected created
                    2020-01-30 17:37:28.977  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0.alive created
                    2020-01-30 17:37:29.087  - info: host.iobroker-slave1 iobroker host.iobroker-slave1 object system.adapter.cec2.0 created2020-01-30 17:37:30.135  - info: host.iobroker-slave1 iobroker exit 0
                    2020-01-30 17:37:31.926  - info: host.iobroker-slave1 instance system.adapter.cec2.0 started with pid 6492
                    2020-01-30 17:37:46.125  - info: cec2.0 (6492) starting. Version 0.0.2 in /opt/iobroker/node_modules/iobroker.cec2, node: v10.9.0
                    2020-01-30 17:37:46.357  - info: cec2.0 (6492) config osdName: ioBroker
                    2020-01-30 17:37:46.364  - info: cec2.0 (6492) config type: r
                    2020-01-30 17:37:50.749  - info: cec2.0 (6492) Device with logicalAddress 0 seen. Has name TV
                    2020-01-30 17:37:52.850  - info: cec2.0 (6492) created/found device, returning {"created":true,"lastGetName":0,"getNameTries":0,"lastGetPhysAddr":0,"getPhysAddrTries":0,"logicalAddress":0,"name":"TV","logicalAddressHex":"0","createdStates":["name","logicalAddress","vendor","logicalAddressHex","active","lastSeen","menuStatus","state","activeSource","physicalAddress","state"],"vendor":"LG","powerState":true,"active":true,"lastSeen":1580402270755,"physicalAddress":"0.0.0.0"}
                    2020-01-30 17:37:57.416  - info: cec2.0 (6492) Could not poll audio status: Error: CEC monitor hasn't gotten response in some time (3000 ms) from 5
                    2020-01-30 17:38:00.425  - info: cec2.0 (6492) Could not poll audio system status: Error: CEC monitor hasn't gotten response in some time (3000 ms) from 5
                    2020-01-30 17:38:03.432  - info: cec2.0 (6492) Could not poll active source: Error: CEC monitor hasn't gotten response in some time (3000 ms) from 15
                    2020-01-30 17:38:04.556  - info: cec2.0 (6492) No name for logicalAddress 4, requesting it.
                    2020-01-30 17:38:05.298  - info: cec2.0 (6492) Devices with unexpected physical address came online on logical address 42020-01-30 17:38:06.396  - info: cec2.0 (6492) Device with logicalAddress 4 seen. Has name Chromecast
                    2020-01-30 17:38:07.256  - info: cec2.0 (6492) created/found device, returning {"created":true,"lastGetName":1580402284561,"getNameTries":1,"lastGetPhysAddr":0,"getPhysAddrTries":0,"logicalAddress":4,"name":"Chromecast","logicalAddressHex":"4","createdStates":["physicalAddress","physicalAddress","name","logicalAddress","logicalAddressHex","active","lastSeen","menuStatus","state","activeSource","vendor","cecVersion","state"],"vendor":"GOOGLE","physicalAddressReallyChanged":true,"cecVersion":"VERSION_1_4","powerState":true,"active":true,"lastSeen":1580402286400,"physicalAddress":"3.0.0.0"}
                    

                    Garfonso 1 Reply Last reply Reply Quote 0
                    • Garfonso
                      Garfonso Developer @Xyolyp last edited by

                      @Xyolyp
                      Also an dem Port kann es eigentlich nicht liegen. Wenn CEC durchkommt, dann kommt es durch. 🙂 Ich vermute, außer deinem TV "spricht" bei dir einfach keiner richtig CEC. Beim Chromecast kann ich mir gut vorstellen, dass der Support für CEC eher rudimentär ist und eher in die Richtung geht, dass der dafür sorgen kann, dass der TV auf ihn umschaltet und ggf. noch Ton gesteuert werden kann. Zumindest bei den FireTV sticks ist das so...
                      Die XBox scheint kein CEC zu unterstützen, hab ich mal gegoogelt, da lässt sich also nichts machen. Beim Sat-Receiver könntest du mal in den Menüs gucken, ob es da was gibt oder selber googeln (leider haben die Hersteller immer eigene Namen und verweisen selten selber auf CEC).

                      Kannst du denn mit active-source den HDMI Eingang vom TV umstellen? (Es müsste gehen 1 oder 1.0.0.0 für Port 1 usw., X = X.0.0.0 ist eine Vereinfachung, die ich für den Fall am TV umzuschalten eingebaut hab). Oder TV an/aus?

                      Gehen mit der Version die Buttons? Ansonsten würde mir ein log davon auch weiterhelfen. Der Fehler ist jedenfalls ein Bug im Code, selbst wenn da vorher was "falsches" von außen kommt, muss der Code damit ja klar kommen.

                      Achja, die Fehler beim starten nicht überinterpretieren. Die hab ich jetzt auch rausgenommen. Das heißt nur, dass da halt keine geantwortet hat. Also die Timeouts sind immer unproblematisch.

                      1 Reply Last reply Reply Quote 0
                      • S
                        SuperElmi last edited by

                        Hallo Garfonso,

                        ich hab den Adapter installiert und scheint so weit alles gut zu funktionieren. Ich habe den Raspi an meinen Onkyo angeschlossen und kann damit den Samsung TV ein- und ausschalten, muten, usw.
                        Wie kann ich z.B. Fernbedienungsbefehle an den TV senden?

                        Grüße

                        Garfonso 1 Reply Last reply Reply Quote 0
                        • Garfonso
                          Garfonso Developer @SuperElmi last edited by

                          @SuperElmi

                          Hi,

                          das freut mich zu hören.
                          Fernbedienungsbefehle hab ich bisher noch nicht umgesetzt. Besteht da Bedarf? Dann guck ich mal. Meine erste Idee wäre in einem eigenen Unterordner am Device für die Befehle die CEC so unterstützt jeweils Knöpfe zu machen. Oder wäre ein sendTo für Skripte besser? (Hab ich Adapterseitig noch nie gemacht, müsste ich mir angucken). Es gibt glaube ich leider keinen einfachen Weg rauszufinden, welche Befehle ein Gerät unterstützt oder nicht.

                          Es wird in CEC ein Button_Press und ein Button_Release gesendet. Da müsste ich überlegen, wie man das am besten umsetzt, wie lange ein Knopf gedrückt sein sollte... oder soll ich einen Knopf für release machen? grübel

                          Wenn du das nutzen willst, vielleicht hast du ja Ideen dazu. 🙂

                          Viele Grüße,
                          Garfonso

                          boriswerner 1 Reply Last reply Reply Quote 0
                          • boriswerner
                            boriswerner Developer @Garfonso last edited by

                            Hi zusammen, ich frag das Mal hier, bitte Bescheid sagen, wenn ich das woanders machen soll.
                            Ich hab einen recht eigenwilligen AV Receiver (Samsung HW C700).
                            Der ist per CEC mit meinem Panasonic Fernseher verbunden und wenn der Receiver an ist, lässt sich die Lautstärke über die Fernbedienung des Receivers steuern und der Receiver geht mit dem TV zusammen aus. Leider aber nicht mit ihm zusammen an. Zumindest meistens nicht.
                            Ich habe einen workaround getestet über den Panasonic TV Adapter, indem ich nach dem erkennen des Einschaltens auf den HDMI Eingang des TV schalte, am dem der Receiver hängt. Das funktioniert in 90 Prozent der Fälle, außer meine Frau ist alleine Zuhause. Dann schaltet der Receiver doch manchmal mit dem TV ein, dann schaltet der Receiver manchmal auf einen anderen Eingangskanal, manchmal auf Mute, sodass er sich aber auch nicht mit der TV Fernbedienung wieder laut stellen lässt.

                            Länge Rede kurzer Sinn, ich würde gerne bei erkennen des Einschaltens meines Fernsehers dem AV Receiver per CEC sagen, er solle angehen, auf den TV als Quelle stellen und die Lautstärke auf einen bestimmten Wert stellen. Kann ich das hiermit? Dann würde ich ihn die Tage auch installieren und ausgiebig testen.

                            Level 2 wäre dann noch:
                            Ich habe den iobroker zwar auf einem RPi4 aber würde den ungern am TV unterbringen. Da hab ich schon einen RetroPi. Könnte man den Adapter so einstellen/umbauen das ganze auf einem anderen RPi zu machen (SSH?) Kenne den cec-client noch nicht.

                            Ich hab mittlerweile auch ein bisschen Erfahrung gesammelt in der Adapterentwicklung und könnte ggf auch unterstützen.

                            Gruß, Boris

                            S 1 Reply Last reply Reply Quote 0
                            • S
                              SuperElmi @boriswerner last edited by

                              @boriswerner Das mit den 90% kenne ich bei meinem Onkyo und Samsung TV auch...
                              Du kannst mit diesem Adapter den Zustand jedes am HDMI-CEC-Bus angeschlossenen Gerätes auslesen und entsprechend als Datenpunkt verwenden, Laustärke regeln, etc.

                              Zum Level 2: IOBroker unterstützt das Master-Slave Prinzip. Ich hab auch einen RPI4 als Master und einen RPI3 mit HDMI-Kabel am Onkyo Receiver hängen, um genau das zu machen. Die Administration erfolgt ausschließlich in der Web-Oberfläche am Master.

                              Gruß

                              boriswerner 1 Reply Last reply Reply Quote 0
                              • boriswerner
                                boriswerner Developer @SuperElmi last edited by

                                @SuperElmi cool. Danke für die Info.
                                Ich hab gestern direkt mit dem cec-client getestet und bin verzweifelt... Das Verhalten der Geräte hinterlässt bei mir nur Fragezeichen.
                                Ich werde dann aber Mal schauen, wie ich auf dem RetroPi am TV einem Slave installiert bekomme oder bringe den master einfach Mal runter zum Test.

                                1 Reply Last reply Reply Quote 0
                                • boriswerner
                                  boriswerner Developer last edited by

                                  Hab jetzt mal den RPi4 direkt angeschlossen. Er hat alles erkannt (AVR, FireTV-Stick, TV; die XBox wird auch bei mir nicht angezeigt, steht aber ja schon oben, dass die kein CEC kann), zeigt allerdings beim Einschalten von TV oder AVR:
                                  cec2.0 2020-03-27 14:17:02.079 error (1341) No device for name TV created. cec2.0 2020-03-27 14:10:52.436 error (1341) No device for name AV_Receiver created.

                                  Ich weiß, nicht ob das etwas ausmacht.
                                  Ich konnte auch über den raw_command den AVR einschalten, allerdings hat er seine Source dann auf den Kanal des RPi gestellt. Das soll dann eigentlich der TV werden (der ist über den HDMI-Out am HDMI2 (mit ARC) an den TV angeschlossen). Da muss ich noch testen.

                                  @Xyolyp die Buttons für Mute und Volume funktionieren übrigens per Definition des CEC Protokolls wohl nur wenn ein AVR im System ist (die gehen immer an Device 5, daher der Timeout, der bei dir "from 5" angezeigt wird).

                                  Ich berichte weiter, muss nur weiter schauen, wie/ob das mit der active source funktioniert. Wollte nur schonmal einen Zwischenstand dalassen.

                                  1 Reply Last reply Reply Quote 0
                                  • Garfonso
                                    Garfonso Developer last edited by

                                    Hi,

                                    also, was du vorhast sollte so gehen. Ich habe hier auch Probleme mit meinem AVR, die ich mit dem Adapter gelöst habe.

                                    Zur Fehlermeldung:
                                    Du hast aber devices (also "Ordner") für die Geräte im ioBroker unter Objekte? Darin sollte auch ein "state" Objekt sein, mit dem du an/aus schalten kannst. Und mit dem Objekt "activeSource" kannst du die Eingänge auf das Gerät umstellen (als "Boolean" im Gerät selber oder in Global, dann als physikalische Adresse).

                                    Zum Ton:
                                    Bei mir ist das Problem, dass mein AVR zwar mit dem TV angeht, aber kein Ton liefert, weil er meint Audio würde über HDMI gerade nicht gebraucht... keine Ahnung, was da genau schiefläuft oder ob es auch mit dem FireTV zusammenhängt oder was (lustigerweise macht er auch keinen Ton, wenn er selber Audio streamt)... da hilft dann in Global "systemAudio" anschalten. Mein AVR schickt den status dazu allerdings nicht aktiv rum (keine Ahnung, ob das andere anders machen), daher gibt es für alle States noch im Unterordner "poll" einen Switch, mit dem man den Status aktiv abfragen lassen kann (der Adapter schickt dann einen Request in CEC und es sollte dann eine Antwort kommen -> der State aktualisiert sich dann in ioBroker, wenn es geklappt hat).

                                    Also hab ich hier ein Skript, was, wenn der TV angeht (also TV.state -> true) den systemAudio Status pollt nach kurzer Zeit ( -> Global.poll.systemAudio = true) und falls der auf "false" bleibt (was er nicht immer tut), den dann auf true setzt.

                                    Zu SSH noch kurz:
                                    Man könnte vermutlich den fork verändern und noch SSH drum herum legen... aber dabei handelt man sich natürlich noch Probleme ein, wenn was mit dem Netzwerk passiert, auf die der Adapter nicht vorbereitet ist... daher ist die Lösung mit ioBroker Slave vorzuziehen. 🙂 Für schwache Geräte müsste der cec2 Adapter auch im compact Mode laufen können.

                                    Vielen Dank fürs testen. 🙂

                                    VIele Grüße,
                                    Garfonso

                                    1 Reply Last reply Reply Quote 0
                                    • J
                                      JohnnyBahama @Garfonso last edited by JohnnyBahama

                                      @Garfonso sagte in Test Adapter cec2:

                                      Ich habe probleme den zweiten Befehl:
                                      sudo usermod -a -G video iobroker
                                      abzusetzen. Ich bekomme die Meldung: user 'iobroker' does not exist
                                      Habe versucht den user mit sudo su und useradd -m iobroker diesen zu kreieren, ging aber nicht. Nach dem Enter, bekam ich nur die Auflistung der Befehle.
                                      Hat hier jemand eine Lösung?

                                      EDIT: Hab jetzt erst verstanden, dass auf dem Pi am HDMI Netz ein Iobroker Slave installiert werden muss.

                                      1 Reply Last reply Reply Quote 1
                                      • Homoran
                                        Homoran Global Moderator Administrators last edited by

                                        @Garfonso
                                        Ein "wenig" OT:
                                        ich habe bisher CEC deaktiviert, weil ich alles über Harmony steuere.
                                        Seit diesem Jahr habe ich Disney+, das ich jedoch nicht (wie Netflix) über den BluRay Player streamen kann, sondern nur über den TV.
                                        Damit dann ARC funktioniert, musste ich CEC aktivieren.
                                        seitdem schaltet mir der TV, nachdem über die Harmony die Dreambox, der AV-Receiver und der TV angeschaltet wurde, sofort wieder die Dreambox aus 😢

                                        Würde der Adapter etwas dagegen machen können?

                                        Garfonso 1 Reply Last reply Reply Quote 0
                                        • Garfonso
                                          Garfonso Developer @Homoran last edited by

                                          @homoran
                                          Ja. Der würde die Physische Adresse der Dreambox als "Active Source" ankündigen. Das sollte, bei richtiger Einstellung von TV / AV Receiver dazu führen, dass diese an gehen und die Eingänge entsprechend umstellen.
                                          Das Problem, daher verlangt Logitech ja auch die Deaktivierung von CEC, ist, dass die Befehle der Harmony das dann alles durcheinander bringen. Daher solltest du das erstmal ohne Harmony ausprobieren. Also z.B. mal den Adapter nutzen und da active Source auf die Dreambox stellen (kannst du eine Zahl eingeben, das ist dann die Nummer des Anschluss am TV oder die volle Adresse, also z.B. 1.2.0.0, wenn z.B. AV Receiver an Anschluss 1 am TV und Dreambox an Anschluss 2 am AV Receiver usw.).

                                          rant on
                                          Ich hab bei mir die Harmony rausgeschmissen und bin froh nicht jeden kleinen Scheiß mit der scheiß App konfigurieren zu müssen. Mit CEC geht das bei mir gerade alles sehr gut und viel besser als mit der Harmony jemals. Aber ich bin mit der auch nie grün geworden, für das gefummel hatte ich einfach nie die Geduld (und durch das schlechte Desing der App dauert dann ja alles auch nochmal extra ewig).
                                          rant off 😉

                                          Garfonso 1 Reply Last reply Reply Quote 0
                                          • Garfonso
                                            Garfonso Developer @Garfonso last edited by

                                            Update 0.0.8:
                                            Unter der Haube hat sich viel getan.

                                            Sichtbar neu ist der Support für die cec-Fernbedienung. Dafür gibt es bei jedem Gerät jetzt den state "createButtons" -> das erzeugt einen neuen Unterordner mit Button-States für alle möglichen Knöpfe (das sind einige) und einen State für das Delay (es wird immer ein Drücken und Loslassen gesendet, mit dem Delay lässt sich einstellen, wie viel Zeit zwischen drücken und loslassen verstreichen soll).
                                            Es reagieren nicht alle Geräte auf Knöpfe und auch ganz sicher nicht auf alle. Viel Spaß beim testen.

                                            Auch neu ist Support für OSD Nachrichten. Mein TV will das irgendwie alles nicht -> daher kann ich das selber nicht testen... 😞

                                            S 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            513
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            cec hdmi
                                            7
                                            29
                                            2410
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo