AC3 downmix ein/aus wenn AVR aus/ein

  • Zitat

    Original von SuperAggy
    Ein druck auf Info bringt folgendes auf der Glotze:


    Code
    Es haben sich keine HDMI-CEC Hooks eingetragen


    Das bedeutet, dass es Probleme gab, dein Plugin zu registrieren (vermutlich sowohl als enigma-plugin als auch beim HDMI-CEc)


    Zitat


    Unter /var/log/messages findet sich überhaupt nichts.


    Du musst einen log vom enigma-startup machen. Dafür gibt es mehrer Lösungen, die hier schon oft beschrieben wurden. Der m. E. einfachste ist, in der /usr/bin/enigma2.sh an die Zeile mit /usr/bin/enigma2

    Code
    > /tmp/enigma.log 2>&1

    oder vergleichbar anzughängen (natürlich danach gui-neustart)
    Vorher noch im Adv-Hdmi das Debug aufdrehen

  • So, hab jetzt die Anweisungen befolgt.
    Debug eingestellt.
    GUI neugestartet
    Aber im dem Log taucht weder was von meinem, noch von deinem Plugin auf. Bis auf:



    Wenn`s jetzt irgendwelche Probleme mit meinem Plugin geben würde, sollte er doch hier jetzt schon was bringen. Oder?


    EDIT: Wenn ich über Erweiterungen -> Denon Control -> OK mache sagt er im Log:


    action -> WizardActions ok


    <<<<<<<<<< Denon Control >>>>>>>>>>


    action -> WizardActions back

  • Den Sessionstart musst du noch registrieren, sonst wird die Fuktion nicht aufgerufen:


  • Der Hook ist jetzt im Advanced HDMI-CEC eingetragen. Aber es passiert beim einschalten des AVR trotzdem nix.


    Im Enigma-Log steht beim einschalten des AVR:


    Muss evtl. "from Plugins.SystemPlugins.AdvHdmi.plugin import ADVHDMI_AFTER_POWERON, ADVHDMI_AFTER_POWEROFF" über statt unter "def ac3_after_event(advhdmi_event):"???

  • An welcher Stelle der Import erfolgt, ist hier vermutl nicht relevant.


    Ich seh auch nirgends ein "[AdvHdmiCec] power on" oder andere prints vom AdvHdmi, hast du im Adv-Hdmi-Setup das Debug aufgedreht?
    Wird der Denon-AVR beim Enigma-Start aufgedreht? Wie verhält es sich beim Abdrehen und anschließendem wieder aufdrehen der Box?


    mach mal bitte im telnet (od ähnlichem) `grep "AdvHdmi" /etc/enigma2/settings` und poste den output

  • Aso, jetzt habe ich gerade erst gelesen, dass du es ja umgekehrt probierst: Du willst die Box durch den AVR einschalten. AdvHdmi wurde ja eigentlich für die andere Richtung entwickelt (steht auch in der Hilfe des Enble-Config-Elements).


    Hm, dann müsste ich die anderen 2 Funktionen vom Hdmi-Cec (__receivedStandby, __receivedNowActive) auch noch überschreiben und den Hook mit anderen Events einbauen.

  • Code
    root@dm7020hd:~# grep "AdvHdmi" /etc/enigma2/settings
    config.plugins.AdvHdmiCec.debug=true
    config.plugins.AdvHdmiCec.enable=true



    Eigentlich möchte ich kein Gerät einschalten. Ich möchte AC3 downmix/passthrouh schalten.


    Ich versuche es nochml zu erklären was ich eigentlich möchte.


    Also:
    Die Dreambox und der TV laufen. Also AC3 = Downmix (Nur das versteht die Glotze)
    Jetzt schalte ich den AVR ein, d.h. die HDMI Verbindung wird kurz unterbrochen und wieder aufgebaut. Jetzt soll mein Plugin übers Netzwerk den Status des AVR`s abfragen und wenn der Status PowerON und SISAT/CBL zurückgibt AC3 = Passthrough schalten.


    So ist es per HDMI verkabelt:


    TV <===> AVR <===> Dreambox

  • Hi,


    SuperAggy


    schau im laufe des späten Nachmittags mal im #enigma2 vorbei..


    Es gibt wohl doch eine halbewegs brauchbare Lösung um einen "Trigger" zum Abfragen des AVR State zu bekommen.


    Genaueres dann im #enigma2.


    cu

  • Ich hab noch eine Version gemacht:
    Jetzt gibt es auch die Events ADVHDMI_AFTER_RECEIVED_NOWACTIVE und ADVHDMI_AFTER_RECEIVED_STANDBY bzw. deren "BEFORE"-Pendants, die du importieren und darauf reagieren kannst.


    Die Events werden aber glaube ich standardmäßig vom Enigma nicht umgesetzt --> Da gibts eine eigene Config-Einstellung unter HDMI-Einstellungen die dafür enabled sein muss

  • Hallo Joe,


    danke Dir erstmal für die Unterstützung, aber im IRC-Channel wurde mir gezeigt, ohne zusätzliches Plugin auszukommen. Es gibt eine Möglichkeit sich im HDMI-CEC Prozess zu registrieren und beim Connect dann aufgerufen zu werden.


    Bei Gelegenheit werde ich im ersten Beitrag die Lösung noch ergänzen.

  • meldet eigentlich ein gerät per hdmi zurück ob es ac3 kann?


    entsprechend könnte man ja den ac3 downmix komplett automatisieren...
    wenn hdmi connect und gerät kann ac3 dann downmix an, wenn es kein ac3 kann dann aus :)



    wenn das nicht geht kannst du dir imho zumindest die anfrage an den receiver webif sparen, da du mit get vendor id per hdmi auch den vendor abfragen kannst.
    und der ausgeschaltete receiver sollte ja nur passthrough machen, also als vendor und deviceid den tv rausgeben und nicht sich selbst.
    sobald er eingeschaltet wird sollte dann nicht mehr der tv vendor/device kommen sondern der des receivers (nach einem hdmi disconnect-connect event).


    edit:
    eventuell kann man auch mit dem code 0x84 was machen.
    am ende von dem artikel dort:
    http://irq5.io/2013/10/27/exploring-hdmi-cec/
    steht die cec spezifikation.
    da gibt es einen "operand" namens device type:
    “TV” 0
    “Recording Device” 1
    “Tuner” 3
    “Playback Device” 4
    “Audio System” 5
    wenn man den also irgendwie zurückbekommt... dann würde das ja auch helfen :)
    im prinzip müsste man sich also mal anschauen was der tv zurückliefert auf diverse cec anfragen und was der receiver zurückmeldet.
    daraus liesse sich dann der "trigger" doch basteln denke ich



    edit2:
    laut dem dokument müsste auf
    0x84 ("<Report Physical Address>")
    als antwort kommen:
    [Physical Address]
    [Device Type]
    und somit müsste da beim tv eine 1 und beim receiver eine 5 kommen, oder?


    edit3:
    ich vergass: die device id ist bei tvs mandatory, bei allen anderen geräte optional. was kommt denn im hdmi log beim einschalten des tv anderes als beim einschalten des avr?
    bzw beim ausschalten des avr?

  • Im Log sieht man leider keinen Unterschied zwischen AVR und TV. Cec auf der dream wird ja auch leider etwas stiefmütterlich behandelt, sonst wäre da sicherlich auch mehr drin.


    Ich frage per Socket ab wie der AVR eingestellt ist und stelle dann AC3 entsprechend ein.


    Das fertige Plugin ist jetzt im ersten Beitrag zu finden.

  • habe jetzt quasi das selbe "problem":
    avr kann ac3 devoden aber halt nur wenn er an ist.
    tv kann kein downmix (samsung halt).
    => ich muss immer manuell schalten.


    aber ich habe eine dm8000.
    würde da dein plugin auch helfen bzw geht da cec überhaupt?
    der hdmi anschluss ist ja ein dvi=>hdmi adapter.


    wenn ja, könntest du erklären wie man dein plugin in die box bekommt bzw was man noch zuinstallieren muss?
    oder gleich eine installationsdatei erstellen.


    tnx

  • Das hängt auch vom AVR ab. Was ist es denn für einer?
    Mein Plugin ist nur mit einem Denon AVR-X1000 getestet und ich schätze mal das es auch mit anderen aus der X-Reihe geht.

  • Ein yamaha 775
    Die Frage war im prinzip ja auch eher ob das auch mit einer dm8000 funktionieren kann da die ja nur einen dvi zu hdmi anschluss hat.


    offtopic:
    ansonsten ist mein alternativprogramm meine harmony dazu zu bewegen die tastaturtasten zu kennen und dann z.B. mit m1/m2 direkt downmix an bzw auszuschalten.
    somit könnte ich dann gezielt beim anschalten des avr immer den downmix abschalten und beim abschalten des avr den zuschalten.

  • Stimmt. Die 8000er hat ja "nur" DVI. Da müsste man mal im enigma log nachschauen, ob was passiert wenn du den AVR ein, bzw ausschaltest.


    Allerdings würde mein "plugin" sowieso nicht funktionieren. Ich frage meinen Denon quasi per telnet ab. Das hab ich auf anhieb bei dem yamaha so nicht gefunden. Sicher würde das auch irgendwie über`s Web Interface gehen, die frage ob man das von der deambox getriggert bekommt, wäre aber als erstes zu klären.


    Aber wenn du schon ne Harmony hast, dann mach es mit der. Ist sicher einfacher. =)

  • yep, nachdem ich folgendes habe eintragen lassen von harmony support:



    das sind die "sondertasten".
    danach habe ich M1 mit downmix an und M2 mit downmix aus belegt.
    dann 2 activities: 1* TV mit AVR, 1* TV ohne AVR.
    im poweron für TV mit AVR steht M2 als dream kommando mit drin, im poweron für TV ohne AVR M1.
    somit kann ich mit "activities:TV mit AVR" den AVR anschalten.

  • ich hab jetzt nur noch das problem das die box zu lange bootet um geordnet m1 zu schicken.


    wenn man also downmix aus hat und abschaltet bekommt die box beim einschalten den m1 nicht mit.


    eventuell könnte ich das lösen wenn ich beim booten einen ping auf "avr" absetze und wenn keine antwort kommt downmix anschalte und wenn eine kommt downmix ausschalte ... aber dafür habe ich zu wenig ahnung :)


    also muss ich eine lösung per harmony suchen ... ich denke beim ausschalten der avr activities koennte ich ein m1 reinmachen. mal sehen.

  • Zitat

    Original von niemand0815
    eventuell könnte ich das lösen wenn ich beim booten einen ping auf "avr" absetze und wenn keine antwort kommt downmix anschalte und wenn eine kommt downmix ausschalte ... aber dafür habe ich zu wenig ahnung :)


    Du müsstest halt den Ping irgendwie abfragen. Den Downmix schalten kannst du ja von mir übernehem.