Yamaha Receiver über LM Air schalten

Pino72
Beiträge: 38
Registriert: Mo 19. Dez 2016, 13:03

Do 29. Dez 2016, 14:19

Hi Zusammen,

kaum hat man die Lampen, Lichtsensoren, Rauchmelder, Bewegungssensoren etc. im Griff will man mehr ;)

Würde gerne meinen Yamaha Receiver bei gewissen Bedingungen einschalten lassen bzw. steuern....im LM Air gibt es ja den Send Http Bereich. Hier gibt es auch Put, Get, etc.

Was ich zu Yamaha Receiver generell gefunden habe poste ich mal hier rein da sehr aufschlussreich!

----------------------------------------------------------------------

Kompletter Artikel zu finden hier: https://www.heimkino-praxis.com/yamaha- ... steuerung/

Ein AV-Receiver von Yamaha ist unter seiner IP über den Port 80 erreichbar. Ein Blu-ray Player ist dagegen unter Port 50100 anzusprechen. Immer. Ich habe noch keine Ausnahmen hierzu gefunden und auch keinen Weg, das umzustellen. Es erscheint etwas inkonsistent, ist aber von Yamaha so gesetzt.
Beide Arten von Geräten stellen den Pfad /YamahaRemoteControl/ctrl zur Verfügung, unter dem der Webservice zu erreichen ist. Gibt man diesen nicht richtig an, reagiert das Gerät nicht. Logisch, muss man aber wissen.
Die XML-Syntax des Befehls muss fehlerfrei sein – eigentlich selbstverständlich. Die XML-Deklaration kann angegeben oder weggelassen werden.

Die XML-Syntax

Die eigentliche Arbeit beginnt erst mit dem Verstehen der XML-Syntax, die an die Geräte gesendet werden kann. Sie weist zwischen Receivern und Playern viele Gemeinsamkeiten auf, ist aber ansonsten völlig unterschiedlich, da die Geräte natürlich unterschiedliche Befehle kennen.

Nachfolgend ein paar Beispiele. Der erste XML-String ist jeweils die Anfrage, die zum Gerät gesendet wird, der zweite ist die Antwort, die man zurück bekommt. Ich habe ein paar Interessante Befehle herausgesucht, um deren Details zu erläutern.
Power

<YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone></YAMAHA_AV>

Das ist ein sehr simpler Befehl für einen Blu-ray-Player. Statt On als Wert zu übergeben, wäre alternativ auch Network Standby möglich, wenn man den Player ausschalten will. Network Standby ist deshalb wichtig, damit das Geräte für die Netzwerk-Steuerung erreichbar bleibt, obwohl es ausgeschaltet ist.

Und hier die Antwort des Players auf diesen Befehl:

<YAMAHA_AV rsp="PUT" RC="0"><Main_Zone><Power_Control><Power></Power></Power_Control></Main_Zone></YAMAHA_AV>

Als Antwort kommt eine entsprechend ähnliche XML-Syntax zurück. Das Attribut RC="0" gibt dabei an, dass der Befehl erfolgreich ausgeführt wurde. Der aktuelle Power-Zustand wird nicht mitgeliefert, den müsste man bei Bedarf extra erfragen.

Es fällt übrigens auf, dass der Player auch über eine Zone verfügt. Normalerweise haben nur Receiver zwei oder mehr Zonen. Wahrscheinlich damit es einheitlich bleibt, hat Yamaha aber auch den Playern eine Zone untergejubelt, die sich in den Befehlen wiederfindet.
Volume

<YAMAHA_AV cmd="PUT"><Main_Zone><Volume><Lvl><Val>-455</Val><Exp>1</Exp><Unit>dB</Unit></Lvl></Volume></Main_Zone></YAMAHA_AV>

Die Lautstärke eines Receivers ist ein gutes Beispiel für die Vielseitigkeit der Befehle. Neben den oft gebräuchlichen relativen Angaben wie 1 Up, 2 Down oder einfach nur Up und Down (was den Tasten der Fernbedienung entspricht), gibt es hier die Möglichkeit, einen konkreten Wert anzugeben. Die Angabe in Val ist der Dezibel-Wert, den man einstellen möchte. Die Angabe in Exp ist der Exponent, oder einfach ausgedrückt, die Anzahl der Stellen des Wertes, die eigentlich Nachkommastellen sein sollen. Der Dezibel-Wert, der hier eingestellt werden soll, ist also eigentlich -45,5, nicht -455. Der letzte Teil gibt die Maßeinheit an.

Das sieht erstmal komplizierter aus, als es sein müsste. Tatsächlich hat das aber was mit der Wiederverwendbarkeit der XML-Struktur zu tun. Derartige Values werden auch für andere Angaben als nur die Lautstärke verwendet. Deshalb muss das Konstrukt entsprechend flexibel sein.
Input

<YAMAHA_AV cmd="PUT"><Main_Zone><Input><Input_Sel>HDMI1</Input_Sel></Input></Main_Zone></YAMAHA_AV>

Der aktuelle Eingang lässt sich sehr einfach festlegen. Es gibt fest definierte Werte, die übergeben werden können, zum Beispiel HDMI1, AV4, USB, TUNER und andere. Ähnlich funktioniert das auch, wenn man das DSP-Programm oder den Surround-Decoder einstellen will.

--------------------------------------------------------------------------------------

Ich würde gerne verstehen was ich unter welchem Befehl des LM Air eintragen muss?

Receiver einschalten:

<YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone></YAMAHA_AV>

Ist das dann 192.168.188.234/YamahaRemoteControl/ctrl

und
<YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone></YAMAHA_AV>

in das Befehlsfeld oder alles in eine Zeile?

192.168.188.234/YamahaRemoteControl/ctrl<YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone></YAMAHA_AV>

und was muss ich anhaken? Put? oder Http?

Bisher hab ich es nicht hinbekommen den Receiver einzuschalten...oft kommt eine Fehlermeldung zurück Bad request oder so ähnlich etc.

Danke Euch schon mal.
Viper99
Beiträge: 40
Registriert: Fr 17. Jun 2016, 22:09

Fr 30. Dez 2016, 10:44

Receiver an

Befehl = Post

URI = Receiver-IP/YamahaRemoteControl/ctrl

Daten = <YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone>
</YAMAHA_AV>

Receiver aus, bzw. Standby

Befehl = Post

URI = Receiver-IP/YamahaRemoteControl/ctrl

Daten = <YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>Standby</Power></Power_Control></Main_Zone>
</YAMAHA_AV>

Hoffe ich konnte ein wenig helfen? ;)
Viper99
Beiträge: 40
Registriert: Fr 17. Jun 2016, 22:09

Fr 30. Dez 2016, 10:45

P. S.

Alternativ funktioniert allerdings auch die Steuerung per IR ganz hervorragend
Pino72
Beiträge: 38
Registriert: Mo 19. Dez 2016, 13:03

Fr 30. Dez 2016, 11:03

Danke werde ich gleich mal testen, leider fällt IR aus da ich alles im Schrank über ein Harmony Hub per Harmony Remote ansteuere und der LM AIR den Receiver nicht per Ir erreichen kann.
Viper99
Beiträge: 40
Registriert: Fr 17. Jun 2016, 22:09

Fr 30. Dez 2016, 11:15

Für IR im Schrank gibt es auch eine Lösung. IR Extender sind schon zwischen 20 und 30 Euronen zu bekommen und funktionieren wirklich gut. Mein Schwiegersohn hat so einen Extender ab Werk im Schrank eingebaut, alles funzt ohne Probleme.
Pino72
Beiträge: 38
Registriert: Mo 19. Dez 2016, 13:03

Fr 30. Dez 2016, 13:06

Kann denn der LML Air auch die kompletten Harmony Aktivitäts IR Kettenbefehle als "einen" Befehl lernen?
Marioir
Beiträge: 1147
Registriert: Mi 24. Feb 2016, 15:36
Wohnort: Offenbach

Fr 30. Dez 2016, 13:41

Pino72 hat geschrieben:Kann denn der LML Air auch die kompletten Harmony Aktivitäts IR Kettenbefehle als "einen" Befehl lernen?
Glaub das wird nicht gehen, da So eine Aktion ja auch mal schnell sehr lange andauern kann.
Und würde ich auch nicht Empfehlen.

Wenn man mit dem LM dann diese Aktivität (Befehle einzeln per IR angelernt) aktiviert, bekommt der Harmony Hub bzw. die FB nix davon mit und die Harmoy würde immer noch "Ausgeschaltet" sein. Aktiviert man dann auf der Harmony diese Aktivität, könnten schon Geräte, die übern LM schon eingeschaltet waren, wieder ausgeschaltet werden (Bei Toggle befehlen) Also Die Harmony würde die Aktion einfach ausführen obwohl du es schon am LM gestartet hast.

Ich habe mit FHEM abhilfe geschaffen. LM Sendet Signal an FHEM, der wieder rum, greift auf den Hub zu und startet die Aktivität der Harmony, die FB schaltet automatisch in der richtigen Aktivität,

So könntest du auch dein Yamaha Receiver steuern. Mit FHEM hat man auf alle Tasten der Harmony Zugriff. und kannst sie in der Aktorenverwaltung anlegen.
Heiko
Beiträge: 711
Registriert: Sa 20. Feb 2016, 21:16
Wohnort: Dortmund

Fr 30. Dez 2016, 15:07

Hi,

mal ne blöde frage, kennt zufälig jemand das Format, welches ich zu meinem
Onkyo TX-NR609 Receiver schicken müsste, bin schon lange auf der suche danach.

Eine Codetabelle für die Befehle habe ich gefunden, aber ich verstehe den sytax nicht.

Gruß Heiko
BG

Heiko
hugo
Beiträge: 45
Registriert: Mo 14. Mär 2016, 11:57

Di 3. Jan 2017, 02:09

Super, dass hier jemand sich mit dieser Problematik beschäftigt und vor allem mal Antworten kommen :-) Mich würde auch interessieren wie man ein Bose sondtouch system ansteuern kann. Vielleicht hat da jemand auch einen Ansatz dafür.
Pino72
Beiträge: 38
Registriert: Mo 19. Dez 2016, 13:03

So 15. Jan 2017, 15:22

Viper99 hat geschrieben:Receiver an

Befehl = Post

URI = Receiver-IP/YamahaRemoteControl/ctrl

Daten = <YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone>
</YAMAHA_AV>

Receiver aus, bzw. Standby

Befehl = Post

URI = Receiver-IP/YamahaRemoteControl/ctrl

Daten = <YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>Standby</Power></Power_Control></Main_Zone>
</YAMAHA_AV>

Hoffe ich konnte ein wenig helfen? ;)
Ja, hat funktionert. Man muss allerdings genau die Form pro Zeile so einhalten.
Antworten