HMDI-CEC Steuerung für HTPCs (1 Viewer)

laptop24

Portal Member
May 24, 2010
6
2
Home Country
Germany Germany
Ich habe mir vor ein paar Tagen ein kleines Interface gebaut, mit dem ich das HDMI-CEC Signal auskoppeln und per USB an einen PC liefern kann. Das Interface ist keine große Sache: ein Mikrokontroller, eine HDMI-Buchse, ein HDMI-Stecker und eine USB-Buchse. Das Interface wird einfach im HDMI-Kabel zwischen HTPC und TV/AV-Receiver geschleift. Der Mikrokontroller dekodiert das physikalische Protokoll und überträgt es per USB an den PC. Einfach gesprochen...

Soweit, so gut.

Die API für den Treiber ist zwar noch nicht 100%ig fertig, aber ich mache mir jetzt Gedanken, auf welche Weise ich das CEC im Mediaportal integriere. Da ich mit dem Mediaportal noch nicht viel gemacht habe, kenne ich die Architektur von MP noch nicht so gut. Deshalb hoffe ich auf ein paar Vorschläge von Leuten, die sich auskennen.

Auf der PC-Seite habe ich einen kleinen Kernelmode Treiber, der die unverarbeiteten Daten vom CEC-Controller (wie ich ihn nenne) annimmt und hinsendet. Sonst tut der nichts. Weiterhin gibt es einen Teil im Usermode, der die API bereitstellt. Mit dieser kann man die CEC-Adresse abfragen, die Kommandos abfragen und Antworten schreiben, etc.

Ich dachte mir jetzt, man könnte von einem Programm die empfangenen Kommandos in die Windows-Eventqueue einfügen. Oder man macht das Gerät gleich HID-konform. In diesem Fall würden die CEC-Kommandos also als Tastendrücke am PC ankommen. Viele CEC-Kommandos lassen sich aber so nicht abwickeln. Es ist also vielleicht besser ein MP-Plugin zu schreiben, dass direkt in die Architektur von MP eingeklinkt wird. Dann lassen sich auch solche Dinge realisieren, wie "Fernseher auf HTPC-Quelle schalten, wenn ein Film in den DVD-Player eingelegt wird", oder "HTPC auf Kanal einstellen, der am TV eingestellt ist und Aufnahme starten".

Was ist nach eurer Einschätzung die bessere Methode? USB-HID (Tastaturemulation) oder MP-Plugin?

Man kann auch anders Fragen: Was würdet Ihr steuern wollen, wenn euch HDMI-CEC am MP zur Verfügung stünde?

Gruß, L.
 

yahoodee

MP Donator
  • Premium Supporter
  • July 17, 2006
    64
    6
    Frankfurt am Main
    Home Country
    Germany Germany
    AW: HMDI-CEC Steuerung für HTPCs

    hmm, also ich nur bedingt ne ahnung von dem was sich hinter hdmi-cec alles verbirgt, aber ich schwätz einfach mal drauf los... ;-)

    in meiner konstellation wär es super wenn ich alles mit meiner mp-rc machen könnte... das einzige was ich mit der nicht machen kann ist:
    - av-receiver ein- und ausschalten
    - av-receiver lautstärke ändern (stichwort dts/ac3-passthrough)
    - av-receiver eingangskanal wählen
    - av-receiver zwischen stereo- und mehrkanaltonausgabe wechseln
    - tv ein- und ausschalten
    - tv eingangskanal wählen

    wie gesagt, ich hab keine ahnung ob man das alles überhaupt mit hdmi-cec umsetzen könnte... hab leider keine hdmi-cec komponenten.
     

    Maaji

    Portal Member
    November 23, 2008
    21
    0
    Home Country
    Germany Germany
    Ich habe mich vor kurzem auch kurz mit dem Thema beschäftigt. Dabei bin ich auf dieses Projekt hier gestoßen: HDMI-CEC to USB Bridge . Im Rahmen dessen gibt es auch schon eine Library: cec-arduino - Project Hosting on Google Code

    Aufgegeben habe ich dann wegen des Preises der Hardware.

    Ich bin stark interessiert an dem Thema, da ich ein Dual-Screen Setup habe. Also einen großen Schirm für TV und Video und den Touchscreen in meinem DH-102. Je nach MP Modul würde ich dann den großen Schirm komplett automatisch ein und ausschalten wollen. Wenn ich also mit dem Touchscreen auf TV- oder Video- gehe, dann soll der große Schirm angehen, das Bild zum großen Schirm wechseln, das Video starten. Wenn ich dann z.B. auf Radio gehe soll der große Schirm ausgehen, das Bild zum kleinen Schirm wechseln und dann die Bedienung wieder über den Touchscreen laufen.

    Aktuell läuft das ganze eher manuell. Vielleicht wirds ja irgendwann mal was...

    Grüße,
    Maaji
     

    quake2rambo

    MP Donator
  • Premium Supporter
  • January 18, 2007
    803
    47
    Home Country
    Germany Germany
    AW: HMDI-CEC Steuerung für HTPCs

    yahoodee
    Alles was du brauchst/willst, kann eine Logitech Harmony locker "erschlagen". Wobei ein "normaler" PC ohne gesonderte Playersoftware (z.B. PowerDVD) leider nur Stereo über HDMI ausgibt. Die Audio-Chip-Treiber-Hersteller haben für Mehrkanal über HDMI schlicht keine Lizenz abgedrückt. SAF mag da helfen. Optical-Out geht aber immer.

    laptop24
    Wenn das funktioniert mit dem CEC, wäre das schon toll. Damit könnte dann jede FB, dessen zugehöriges Gerät CEC beherrscht, alle anderen steuern. EIN/AUS,Play,Pause etc.
    Hier sind aber sicher die MP-Entwickler gefragt was die Steuerung betrifft. Die meisten hier sind ja "nur" Anwender.

    Nachtrag am 23.01.2011:

    Wobei ein "normaler" PC ohne gesonderte Playersoftware (z.B. PowerDVD) leider nur Stereo über HDMI ausgibt.
    Stimmt so nicht mehr... Die in den Grafikkarten von NVIDIA und AMD integrierten Audiochips könne deutlich mehr!
     

    laptop24

    Portal Member
    May 24, 2010
    6
    2
    Home Country
    Germany Germany
    Dabei bin ich auf dieses Projekt hier gestoßen: HDMI-CEC to USB Bridge .

    Diese Hardware kenne ich auch.

    Dazu kann man nur sagen... $115 (ca. 90€) sind zu viel. Gut... ich habe mehr dafür ausgegeben, wenn ich die Entwicklungstools mit einrechne. Aber meine Bauteile haben 9€ gekostet. Die Buchsen und Stecker sind recht teuer. Wenn ich jetzt noch die Platine und eine ordentliche Bestückung rechne, dann kommt man auf etwa 40€. Also mit 50€ sollte das Thema ausreichend finanziert sein.

    Im Rahmen dessen gibt es auch schon eine Library: cec-arduino - Project Hosting on Google Code

    Das Arduino-Projekt kannte ich noch nicht. Aber ein kurzer Blick auf den Schaltplan sagt mir schon, dass mit dem Interface nur die Hälfte erledigt ist. Das CEC-Gerät (also der HTPC) braucht ja eine Adresse auf dem Bus. Sonst kann er nur auf Broadcasts antworten. Da am HTPC aber niemand an die Adresse des HDMI-Gerätes rankommt, muss man diese aus dem EDID auslesen. Das EDID bekommt man von der DDC-Leitung und diese ist bei dem Controller von oben und beim Arduino-Projekt nicht angebunden.

    Nur wenn man die Address-Vergabe mitbekommt, kann man auch die Topologie der HDMI-Geräte mitlesen. Und nur wenn man diese kennt, kann man z.B. Rerouting-Kommandos an AV-Receiver schicken. Und nur dann kann man als Fremdgerät die Eingangsquellen am TV oder AV-Receiver ändern.

    Aber den Quelltext werde ich mir trotzdem mal zu Gemüte führen.

    @quake2rambo

    Ich dachte, hier sind auch MP Entwickler unterwegs? :oops:
     

    quake2rambo

    MP Donator
  • Premium Supporter
  • January 18, 2007
    803
    47
    Home Country
    Germany Germany
    AW: HMDI-CEC Steuerung für HTPCs

    Ich dachte, hier sind auch MP Entwickler unterwegs?
    :D Na klar auch das ... Oder die werkeln wie wild an der Final und haben keine Zeit mal ins Forum zu schauen.

    Mir fällt da spontan noch ein Feature ein, dass da möglicherweise gleich mit erschlagen werden kann. Ich musste bei meinem Sony noch einen Logilink HDMI Umschalter zwischenstöpseln, sonst war nach Umschaltvorgängen am TV der PC "der Meinung": Ach da ist gerade nichts aktiv; Ich schalte mal den HDMI-Port dunkel ... Einigen anderen ging das hier auch so. Von denen habe auch den Tipp mit dem Umschalter. Der macht weiter nichts, als eben "so tun als ob" da was aktiv wäre. Netterweise reicht da die anliegende Spannung und man kann auf das Netzteil verzichten.
     

    Bubbleman

    Portal Pro
    July 29, 2008
    124
    2
    Home Country
    Germany Germany
    AW: HMDI-CEC Steuerung für HTPCs

    Hallo

    Ich freue mich, dass sich jemand dieses Themas annimmt!

    Ich hatte vor geraumer Zeit schon mal eine Anfrage gepostet, ob sich dahingehend was in MP tut. War damals nicht der Fall. Meiner damaligen Vorstellung nach sollte das in "Software-only" zu lösen sein. Quasi ein "Treiber", der sich in die Grafikkarte (mit HDMI Port) einklinkt und die Steuersignale empfängt uns sendet. Scheint aber nicht so einfach zu sein....

    Was die Features deines Interface angeht, so kann ich nur von meinen Bedürfnissen ausgehen, wobei ich die hier bereits geposteten unterstützen würde.
    Für mich würde reichen:

    • TV ein/aus mit HTPC
    • Lautstärkeregelung am TV über HTPC Fernbedienung
    • TV ein/aus je nach gerade genutztem Modul in MP (TV, Musik,...). Am Besten zeitgesteuert d.h. wenn "blank screen" dann TV aus, bei zB Musik (Mein 50" Plasma schluckt auch bei schwarzem Bild einiges an Strom)
    • Steuerung eines A/V Receivers: ein/aus, Eingangskanal, Lautstärke
    Ich kann mir noch mehr vorstellen, allerdings sind das die Funktionen die für mich derzeit nützlich wären.


    Schonmal vorab die Frage, ob du dir im Fall des guten Gelingens vorstellen kannst die Platine (welche sicher geätzt gehört, Lochraster wird wohl nicht gehen?) zu produzieren und programmierte Microcontroller an zu bieten.
    Da ich das alles locker gelötet bekäme aber selbst nicht das Equipment zur Produktion habe, würde sich für die Einzelanwendung die Anschaffung für mich nicht lohnen.

    Vielen Dank für dein Engagement.
     

    wolfi_b

    MP Donator
  • Premium Supporter
  • April 10, 2008
    799
    38
    Home Country
    Austria Austria
    AW: HMDI-CEC Steuerung für HTPCs

    Man kann auch anders Fragen: Was würdet Ihr steuern wollen, wenn euch HDMI-CEC am MP zur Verfügung stünde?
    Ich wünsche mir das der HTPC erkennt das der TV nicht eingeschaltet ist und dann direkt Radio startet.
     

    Ponyriemen

    MP Donator
  • Premium Supporter
  • July 9, 2007
    2,570
    110
    /root/home
    Home Country
    Germany Germany
    AW: HMDI-CEC Steuerung für HTPCs

    oder WENN er eingeschaltet ist, direkt LiveTV startet.
     

    laptop24

    Portal Member
    May 24, 2010
    6
    2
    Home Country
    Germany Germany
    Re: AW: HMDI-CEC Steuerung für HTPCs

    Meiner damaligen Vorstellung nach sollte das in "Software-only" zu lösen sein. Quasi ein "Treiber", der sich in die Grafikkarte (mit HDMI Port) einklinkt und die Steuersignale empfängt uns sendet. Scheint aber nicht so einfach zu sein....

    Eigentlich könnte es so einfach sein... wenn die Grafikartenhersteller eine API zum CEC-Interface anbieten würden. Da sie das leider nicht un, und auch keine Informationen rausgeben, wie Ihre HDMI-Implementation aussieht, muss man leider wieder mit uneleganten Methoden vorlegen. Irgendwann, wenn die HTMP User massenhaft solche Interfaces in Betrieb haben, dann werden die Grafikkartenhersteller merken, dass man damit Geld verdienen könnte und anfangen dieses Interface anzubieten. Dann wird mit viel Medienrummel ein "bahnbrechendes Feature" angekündigt... etc.

    • TV ein/aus mit HTPC das geht dann mit etwas Zeitverzögerung (sobald der PC fertig gebootet ist)
    • Lautstärkeregelung am TV über HTPC Fernbedienung geht
    • TV ein/aus je nach gerade genutztem Modul in MP (TV, Musik,...). geht Am Besten zeitgesteuert d.h. wenn "blank screen" dann TV aus, bei zB Musik (Mein 50" Plasma schluckt auch bei schwarzem Bild einiges an Strom)
    • Steuerung eines A/V Receivers: ein/aus, Eingangskanal, Lautstärke geht, wenn sich dieser per HDMI-CEC steuern läßt, was momentan nur bei sehr wenigen Geräten der Fall ist

    Schonmal vorab die Frage, ob du dir im Fall des guten Gelingens vorstellen kannst die Platine (welche sicher geätzt gehört, Lochraster wird wohl nicht gehen? nein, allein die HDMI-Buchse hat 0,5mm Raster) zu produzieren und programmierte Microcontroller an zu bieten.

    ja, deshalb frage ich auch, ob jemand anderes interessiert ist. Dann lasse ich gleich ein paar mehr Platinen herstellen

    Ich wünsche mir das der HTPC erkennt das der TV nicht eingeschaltet ist und dann direkt Radio startet.

    geht, per MP Plugin

    oder WENN er eingeschaltet ist, direkt LiveTV startet.

    geht, per MP Plugin

    Die Quintessenz ist, dass es wohl ein MP-Plugin sein muss. Dann werde ich mich mal mit der MP-Programmierung beschäftigen.

    Momentan versuche ich gerade das Samsung Anynet+ Protokol zu enträtseln. Dass sollte dann auch mal jemand für BraviaLink, Regza, VieraLink, etc. machen. Einen CEC-Sniffer könnte ich dann mal zur Verfügung stellen.
     

    Users who are viewing this thread

    Top Bottom