How to: Yamaha - AVR mit Statusabfrage per Http

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Andrii Kuzmuk
    Extension Master
    • 29.08.2015
    • 142

    How to: Yamaha - AVR mit Statusabfrage per Http

    Hallo,
    Yamaha-AVR zu steuern ist kein Problem. Es gibt Vordefinierten Geräten Yamaha AVR in Config. Es ist aber zu merken, dass für verschiedene Yamahas die Befehle nicht gleich sind.
    In der Anlage YNC, YNCA Befehle für meinen Yamaha RX - V675.

    Als Beispiel schalten wir NET Radio.

    1. Machen wir einen virtuellen Ausgang mit IP-Adresse von AVR, dann fügen virtuellen Ausgangsbefehl hin.

    <YAMAHA_AV cmd="PUT"><Main_Zone><Scene><Scene_Load>Scene 3</Scene_Load></Scene></Main_Zone></YAMAHA_AV>

    2. Dann machen wir einen neuen Ausgangsbefehl "Enter", genau wie in der Yamaha-Fernbedienung.

    <YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Cursor>Sel</Cursor></List_Control></NET_RADIO></YAMAHA_AV>

    Um Netradio einschalten, machen wir diesen Befehl dreimal - Ebene Bookmarks, dann My_favorites, dann nämlich Netstation einschalten.



    Um AVR komplett zu steuern, brauchen wir ein Gerätstatus.

    Als Beispiel Power Status abfrage.

    1. Es wird einen neuen Ausgangsbefehl gemacht. Der Befehl kommt aus der Unterlagen.

    <?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><System><Power_Control><Power>GetParam</Power></Power_Control></System></YAMAHA_AV>

    Sehr wichtig. Es gibt in Eigenschaft 'Http-Antwort speichern' eine Datei. Da muss man '' /user/common/answer.xml' schreiben. So bekommen wir eine Antwort von AVR in MS gespeichert.


    2. Virtueller Http-Eingang
    Es sei betont
    URL 'http://login:kennword@ip: port/dev/fsget/user/common/answer.xml'

    Virtueller Http-Eingangsbefehl

    Befehlserkennung <Power>\1


    Also, wenn Gerät eingeschaltet - Power ON virtueller Http-Eingang = 79
    Power Standby virtueller Http-Eingang = 83



    Auf solche Weise kann man weitere Statusinfo bekommen.
    Angehängte Dateien
    Zuletzt geändert von Andrii Kuzmuk; 20.09.2015, 18:04.
  • Rar9
    LoxBus Spammer
    • 25.08.2015
    • 219

    #2
    Könntest Du mal einen Screenshot Deiner Logik posten?

    Ich bin noch nicht zufrieden hiermit.
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Net-Radio.jpg
Ansichten: 2295
Größe: 51,9 KB
ID: 7749


    Kommentar

    • Gast

      #3
      Hallo Zusammen,

      ich habe ebenfalls HTTP Befehle programmiert, aber ich habe das Gefühl, dass der AVR bei den Befehlen nicht hinterherkommt bzw. zu spät schaltet. Mit dem Ergebnis, dass die Befehle dann vermischt werden. :-/ Ich habe dazu auch RaR9´s Logik ausprobiert. Beim Abruf eines Liedes vom Server (oder Alarmsound ;-)) genau das gleiche. Ich bin am überlegen ob ich Zeitverzögerungen einbauen soll..aber das Ganze wird dann recht aufwändig.

      Gibt es denn mittlerweile vielleicht einfachere Lösungen zum Steuern? Der Programmieraufwand für einen einzelnen Sender ist schon enorm...

      Danke und allen weiterhin viel Spaß beim ausprobieren. :-)

      Kommentar

      • Andrii Kuzmuk
        Extension Master
        • 29.08.2015
        • 142

        #4
        Hallo,

        meine Variante Yamaha- Steuerung.

        Gruss,
        Andrii
        Angehängte Dateien
        Zuletzt geändert von Andrii Kuzmuk; 11.12.2015, 09:48.

        Kommentar


        • Rar9
          Rar9 kommentierte
          Kommentar bearbeiten
          Danke für den Screenshot. Kannst Du hier noch mal ausholen. Fragst Du noch den Status per HTTP ab?
      • Gast

        #5
        Hallo Zusammen,
        der Http status wird aber zuerst gepooled - z-B. min alle 10 sek. Das ist aber aus meiner sicht nicht ausreichend.
        Eigentlich sollte man vor jedem Befehl sich zuerst den real-time Status einholen und den ausm xml rauslesen und zwischenspeichern.

        Z.b. ich bastle da an einer Türklingel, die der AVR übernimmt.
        Ausgangssituation - wir hören Radio und jemand klingelt.
        Loxone sollte den status vom AVR abfragen (ON/OFF, Lautstärke, Audioinput) und zwischenspeichern.
        Dann entscheiden - ist das AVR an (ON) - dan direkt vom USB Key die Türklingelmelodie bei einer bestimmten Laustärke abspielen, wenn der AVR noch nicht an ist (OFF), dann zuerst anschalten 5sek warten und dann abspielen.. nach dem den Ursprunglichen zustand herstellen (z.B. Radio bei Lautstärke xy)

        Was ich jedoch im Loxone vermisse, ist die Auswertung vom real-time stream, den das AVR zurückschreibt. Loxone kann den /dev/fsget/user/common/answer.xml auch nur alle 10sek poolen,
        Was für meine Zwecke zuspät ist, weil das XML File beim betätigen der Türklingel erstellt wird (da müsst ich auch den status vom AVR alle 10 sek abfragen...) Unnötige Daten traffick.

        Meine überlegung war ein Program, dass mit der Klinkel ausgelöst wird, das frische XML File durchliest und gibt den aktuellen status an den 3 Ausgängen zurück.

        Leider bin ich kein Programierer und es existiert keine Pico community.. (ich frag mich was ist es überhaupt für eine komische sprache...)
        Könnte es jemand Programieren?

        Oder kann ich das XML irgendwie anders auch getriggert lesen?

        Lg.
        Martin

        Kommentar

        • klenn
          Extension Master
          • 08.09.2015
          • 194

          #6
          cool da muss ich doch gleich mal testen ob meiner das auch kann

          Kommentar

          • Gast

            #7
            Hallo!

            Irgendwie bin ich zu doof den Yamaha AVR (RX779) mit der Loxone zum Laufen zu bringen.

            Was habe ich gemacht:
            - Baustein bei Digitale Ausgänge "Yamaha AVR" eingefügt
            - Alle Postbefehle überprüft mit dem Code Tree von Yamaha -> passen alle laut der Doku, die ich vom Yamaha Support bekommen habe
            - Alle Befehle (speziell Power und Szenen) für die Visualisierung freigegeben
            - IP Adresse des AVR geändert auf http://10.xxx.xxx.xxx (meine IP, wo der AVR über das Wlan erreichbar ist, was auch per Browser klappt)

            Nun habe ich in der Visualisierung die Buttons, aber keine Aktion wird ausgeführt. Stehe ich am Schlauch? Wüsste nach 2 Tagen probieren nicht weiter, was ich noch testen kann.

            (Finales Ziel sollte sein, bei Leinwand runter, den AVR "on" und auf "szene3" - aber soweit komme ich ja gar nicht).

            Bin für jeden Denkanstoß offen ... viele Dank Noizede

            Kommentar

            • romildo
              Lebende Foren Legende
              • 25.08.2015
              • 5113

              #8
              In der Config nur die Ausgänge zu platzieren reicht nicht, die müssen auch angesteuert werden.
              lg Romildo

              Kommentar

              • Gast

                #9
                Danke - Entschuldige die doofe Frage. D.h. ich muss erst einen Programmbaustein nehmen, wo ich dann die Ansteuerung löse. Die oberen Beispiele sind für mein vorhaben zu komplex. Wollte "nur" power on - szene wechseln. Da kommt mir der Medien-Baustein auch recht komplex vor. Welchen sollte ich da am besten nehmen?

                Ist leider mein erstes Vorhaben mit der Config, bis jetzt nur bestehende Funktionen erweitert/geändert - und in den Tutorial Videos hätte ich es nicht gefunden.

                Vielen Dank!

                Kommentar

                • romildo
                  Lebende Foren Legende
                  • 25.08.2015
                  • 5113

                  #10
                  Du schreibst ja, dass dies zusammen mit Leinwand runter passieren soll.
                  Wie willst du denn diese Funktion realisieren?

                  Zum Testen kannst einfach mal einen virtuellen Eingang nehmen und diesen mit dem Ausgang verbinden.
                  lg Romildo

                  Kommentar

                  • Gast

                    #11
                    Vielen Dank, das war der Denkanstoss - bin zu komplex an die Sache rangegangen, klappt einwandfrei.

                    Kommentar


                    • romildo
                      romildo kommentierte
                      Kommentar bearbeiten
                      Bitte gerne, Hauptsache es funktioniert.
                  • Rar9
                    LoxBus Spammer
                    • 25.08.2015
                    • 219

                    #12
                    Zitat von Andrii Kuzmuk
                    Als Beispiel Power Status abfrage.

                    1. Es wird einen neuen Ausgangsbefehl gemacht. Der Befehl kommt aus der Unterlagen.
                    <?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><System><Power_Control><Power>GetParam</Power></Power_Control></System></YAMAHA_AV>
                    Sehr wichtig. Es gibt in Eigenschaft 'Http-Antwort speichern' eine Datei. Da muss man '' /user/common/answer.xml' schreiben. So bekommen wir eine Antwort von AVR in MS gespeichert.

                    2. Virtueller Http-Eingang
                    Es sei betont
                    URL 'http://login:kennword@ip: port/dev/fsget/user/common/answer.xml'

                    Virtueller Http-Eingangsbefehl

                    Befehlserkennung <Power>\1

                    Also, wenn Gerät eingeschaltet - Power ON virtueller Http-Eingang = 79
                    Power Standby virtueller Http-Eingang = 83

                    Auf solche Weise kann man weitere Statusinfo bekommen.


                    Hallo Andii,

                    Könntest Du hierzu ein Screenshots machen da mit meinem Verständis bei mir der Minserver sich sporadish rebootet :-(
                    Muss die answer.xml per Ftp anlegegt werden oder macht der Miniserver das selber?

                    Kann mann mitder answer.xml auch z.B für Net_Radio den aktuellen Song Title erhalten?

                    Gruß
                    Robert

                    Kommentar


                    • Andrii Kuzmuk
                      Andrii Kuzmuk kommentierte
                      Kommentar bearbeiten
                      Hallo Robert,
                      answer.xml wird beim MS selbst gemacht.
                      Was möchtest Du machen?

                      Song Title erhalten mit solcher Abfrage nicht möglich, so viel ich sehe. Es gibt kein Befehl in YNC dazu.

                      Gruss
                      Andrii
                  • Rar9
                    LoxBus Spammer
                    • 25.08.2015
                    • 219

                    #13
                    Ja so ähnlich ... laut Wireshark erhalte ich folgedes wenn ich im Yamaha Web-Gui bin..... das sollte die Loxone auch filtern können.

                    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: 1.png
Ansichten: 1878
Größe: 5,4 KB
ID: 21727

                    <YAMAHA_AV rsp="GET" RC="0"><NET_RADIO><Play_Info><Feature_Availability >Ready</Feature_Availability><Playback_Info>Play</Playback_Info><Meta_Info><Station>WDR 2 87.8 FM Dortmund</Station><Album></Album><Song>WDR 2. Immer fuer NRW.</Song></Meta_Info><Album_ART><URL></URL><ID>100</ID><Format>YMF</Format></Album_ART></Play_Info></NET_RADIO></YAMAHA_AV>

                    Kommentar

                    • Rar9
                      LoxBus Spammer
                      • 25.08.2015
                      • 219

                      #14
                      Hallo ,

                      Ich kann mir leider nicht vorstellen das es nur so wenige User gibt die einen Yamaha Receiver mit Loxone nutzen.

                      Die hier aufgeführt Http Abfrage dauert zu lange und belastet den Server unnötig.

                      Evtl. git es jemanden der bei der Programmierung eines PicoC Scripts zur Abfrage behilflich seinen könnte???

                      Hier was der Receiver ausgibt. Wichtig habe ich mal ROTmarkiert.


                      URL:

                      http://IP/YamahaRemoteControl/ctrl


                      Anfrage STATUS Receiver MAIN ZONE per POST

                      <?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="GET"><Main_Zone><Basic_Status>GetParam</Basic_Status></Main_Zone></YAMAHA_AV>

                      Receiver Antwort:

                      <YAMAHA_AV rsp="GET" RC="0"><Main_Zone><Basic_Status><Power_Control><Power>Standby</Power><Sleep>Off</Sleep></Power_Control><Volume><Lvl><Val>-290</Val><Exp>1</Exp><Unit>dB</Unit></Lvl><Mute>Off</Mute><Subwoofer_Trim><Val>0</Val><Exp>1</Exp><Unit>dB</Unit></Subwoofer_Trim></Volume><Input><Input_Sel>Napster</Input_Sel><Input_Sel_Item_Info><Param>Napster</Param><RW>RW</RW><Title>Napster</Title><Icon><On>/YamahaRemoteControl/Icons/icon074.png</On><Off></Off></Icon><Src_Name>Napster</Src_Name><Src_Number>1</Src_Number></Input_Sel_Item_Info></Input><Surround><Program_Sel><Current><Straight>Of f</Straight><Enhancer>On</Enhancer><Sound_Program>7ch Stereo</Sound_Program></Current></Program_Sel><_3D_Cinema_DSP>Auto</_3D_Cinema_DSP></Surround><Sound_Video><Tone><Bass><Val>10</Val><Exp>1</Exp><Unit>dB</Unit></Bass><Treble><Val>60</Val><Exp>1</Exp><Unit>dB</Unit></Treble></Tone><Pure_Direct><Mode>Off</Mode></Pure_Direct><HDMI><Standby_Through_Info>On</Standby_Through_Info><Output><OUT_1>On</OUT_1></Output></HDMI><Adaptive_DRC>Auto</Adaptive_DRC><Dialogue_Adjust><Dialogue_Lift>3</Dialogue_Lift><Dialogue_Lvl>3</Dialogue_Lvl></Dialogue_Adjust></Sound_Video></Basic_Status></Main_Zone></YAMAHA_AV>


                      Hier noch ein Link für die Ausgangbefehle die Der Receiver sonst noch versteht.

                      http://openremote.org/display/forums...065+Yamaha+Amp


                      Kommentar

                      • morpheus999
                        Extension Master
                        • 08.10.2015
                        • 127

                        #15
                        Hallo.

                        Ja das wäre schon cool. Verwende auch einen Yamaha Receiver. Nur kann ich leider nix programmieren.

                        mfg schorsch

                        Kommentar

                        Lädt...