Yamaha-_Receiver einschalten, Netradio-Lesezeichen

Begonnen von Bartimaus, 07 Februar 2014, 19:32:44

Vorheriges Thema - Nächstes Thema

Schlimbo

Hi Markus,

hier die Befehle mit deren Antwort:

<YAMAHA_AV cmd="GET"><System><Party_Mode>GetParam</Party_Mode></System></YAMAHA_AV>
<YAMAHA_AV rsp="GET" RC="2"></YAMAHA_AV>

<YAMAHA_AV cmd="GET"><System><Party_Mode><Mode>GetParam</Mode></Party_Mode></System></YAMAHA_AV>
<YAMAHA_AV rsp="GET" RC="0"><System><Party_Mode><Mode>On</Mode></Party_Mode></System></YAMAHA_AV>

<YAMAHA_AV cmd="GET"><System><Party_Mode><Target_Zone>GetParam</Target_Zone></Party_Mode></System></YAMAHA_AV>
<YAMAHA_AV rsp="GET" RC="0"><System><Party_Mode><Target_Zone><Zone_2>Enable</Zone_2></Target_Zone></Party_Mode></System></YAMAHA_AV>

<YAMAHA_AV cmd="GET"><System><Party_Mode><Volume>GetParam</Volume></Party_Mode></System></YAMAHA_AV>
<YAMAHA_AV rsp="GET" RC="2"></YAMAHA_AV>



und noch ein paar andere:
<YAMAHA_AV cmd="GET"><System><Misc><Network><Network_Standby>GetParam</Network_Standby></Network></Misc></System></YAMAHA_AV>
<YAMAHA_AV rsp="GET" RC="0"><System><Misc><Network><Network_Standby>On</Network_Standby></Network></Misc></System></YAMAHA_AV>


<YAMAHA_AV cmd="GET"><Main_Zone><Basic_Status>GetParam</Basic_Status></Main_Zone></YAMAHA_AV>
<YAMAHA_AV rsp="GET" RC="0"><Main_Zone><Basic_Status><Power_Control><Power>On</Power><Sleep>Off</Sleep></Power_Control><Volume><Lvl><Val>-450</Val><Exp>1</Exp><Unit>dB</Unit></Lvl><Mute>Off</Mute><Subwoofer_Trim><Val>5</Val><Exp>1</Exp><Unit>dB</Unit></Subwoofer_Trim></Volume><Input><Input_Sel>HDMI1</Input_Sel><Input_Sel_Item_Info><Param>HDMI1</Param><RW>RW</RW><Title>HDMI1 SAT</Title><Icon><On>/YamahaRemoteControl/Icons/icon004.png</On><Off></Off></Icon><Src_Name></Src_Name><Src_Number>1</Src_Number></Input_Sel_Item_Info></Input><Surround><Program_Sel><Current><Straight>Off</Straight><Enhancer>On</Enhancer><Sound_Program>7ch Stereo</Sound_Program></Current></Program_Sel><_3D_Cinema_DSP>Auto</_3D_Cinema_DSP></Surround><Party_Info>On</Party_Info><Sound_Video><Tone><Bass><Val>0</Val><Exp>1</Exp><Unit>dB</Unit></Bass><Treble><Val>0</Val><Exp>1</Exp><Unit>dB</Unit></Treble></Tone><Pure_Direct><Mode>Off</Mode></Pure_Direct><HDMI><Standby_Through_Info>Off</Standby_Through_Info><Output><OUT_1>On</OUT_1><OUT_2>On</OUT_2><OUT_2_Info>On</OUT_2_Info></Output></HDMI><Adaptive_DRC>Auto</Adaptive_DRC><Dialogue_Adjust><Dialogue_Lift>0</Dialogue_Lift><Dialogue_Lvl>0</Dialogue_Lvl></Dialogue_Adjust></Sound_Video></Basic_Status></Main_Zone></YAMAHA_AV>

<YAMAHA_AV cmd="GET"><Zone_2><Basic_Status>GetParam</Basic_Status></Zone_2></YAMAHA_AV>
<YAMAHA_AV rsp="GET" RC="0"><Zone_2><Basic_Status><Power_Control><Power>On</Power><Sleep>Off</Sleep></Power_Control><Volume><Lvl><Val>-370</Val><Exp>1</Exp><Unit>dB</Unit></Lvl><Mute>Off</Mute><Output_Info>Variable</Output_Info></Volume><Input><Input_Sel>NET RADIO</Input_Sel><Input_Sel_Item_Info><Param>NET RADIO</Param><RW>RW</RW><Title>NET RADIO</Title><Icon><On>/YamahaRemoteControl/Icons/icon005.png</On><Off></Off></Icon><Src_Name>NET_RADIO</Src_Name><Src_Number>1</Src_Number></Input_Sel_Item_Info></Input><Party_Info>On</Party_Info></Basic_Status></Zone_2></YAMAHA_AV>

<YAMAHA_AV cmd="PUT"><System><Party_Mode><Volume><Mute>Off</Mute></Volume></Party_Mode></System></YAMAHA_AV>
<YAMAHA_AV rsp="PUT" RC="0"><System><Party_Mode><Volume><Mute></Mute></Volume></Party_Mode></System></YAMAHA_AV>

<YAMAHA_AV cmd="PUT"><System><Party_Mode><Volume><Mute>On</Mute></Volume></Party_Mode></System></YAMAHA_AV>
<YAMAHA_AV rsp="PUT" RC="0"><System><Party_Mode><Volume><Mute></Mute></Volume></Party_Mode></System></YAMAHA_AV>

<YAMAHA_AV cmd="PUT"><System><Party_Mode><Volume><Lvl>Down</Lvl></Volume></Party_Mode></System></YAMAHA_AV>
<YAMAHA_AV rsp="PUT" RC="0"><System><Party_Mode><Volume><Lvl></Lvl></Volume></Party_Mode></System></YAMAHA_AV>

<YAMAHA_AV cmd="PUT"><System><Party_Mode><Volume><Lvl>Up</Lvl></Volume></Party_Mode></System></YAMAHA_AV>
<YAMAHA_AV rsp="PUT" RC="0"><System><Party_Mode><Volume><Lvl></Lvl></Volume></Party_Mode></System></YAMAHA_AV>


hoffe das sind die Infos, die du wolltest.
Wenn du willst kann ich dir auch mal einen kompletten Wireshark Mitschnitt zusenden.

Gruß Schlimbo

FunkOdyssey

Zitat von: Markus Bloch am 18 August 2015, 23:48:15,
den Firmware-Update habe ich eingebracht. Den Rest muss ich später mal angehen.

Gibt es im AVR ein Feld, indem die Verfügbarkeit einer neuen Firmware-Version enthalten ist? Ermittelt das der AVR? Warum zeigt dieser das dann nicht als Popup oder so. Ich wusste das gar nicht und habe immer manuell auf der Internetseite gesucht. Hmm.

Markus Bloch

Zitat von: FunkOdyssey am 19 August 2015, 20:38:50
Gibt es im AVR ein Feld, indem die Verfügbarkeit einer neuen Firmware-Version enthalten ist? Ermittelt das der AVR? Warum zeigt dieser das dann nicht als Popup oder so. Ich wusste das gar nicht und habe immer manuell auf der Internetseite gesucht. Hmm.

Der AV-Receiver prüft selbständig auf ein neues Update per Internet. Das Ergebnis wird nirgendwo in Form eines Popups notifiziert. Diese Schnittstelle ist die einzige Möglichkeit, wodurch auf der Yamaha-App ein Firmware-Update angezeigt wird. Diese Information greift YAMAHA_AVR ab und stellt sie nun als Reading dar.
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Schlimbo

Hallo Markus,

Arbeitest du noch an diesem Thema? 

- Zone2 Netradio Steuerung über  "\"PUT\"><NET_RADIO><List_Control>" Kommandos, damit man nicht erst den Umweg über die Main Zone gehen muss.
- Steuern des "Party Mode"
http://forum.fhem.de/index.php/topic,19896.msg315600.html#msg315600

Momentan Schalte ich die NetRadio Sender über ein Shell Skript:
##!/bin/bash
Sender="$*"

case "$Sender" in
TrueRnB) curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Cursor>Return to Home</Cursor</List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
sleep 1
curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Direct_Sel>Line_1</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
sleep 1
curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Direct_Sel>Line_1</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
sleep 1
curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Direct_Sel>Line_4</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
;;
Hot108jamz) curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Cursor>Return to Home</Cursor</List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
sleep 1
curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Direct_Sel>Line_2</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
sleep 1
curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Direct_Sel>Line_1</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
;;
old_school) curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Cursor>Return to Home</Cursor</List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
sleep 1
curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Direct_Sel>Line_2</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
sleep 1
curl -v -d '<?xml version="1.0" encoding="utf-8"?><YAMAHA_AV cmd="PUT"><NET_RADIO><List_Control><Direct_Sel>Line_2</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV>' http://192.168.x.xxx/YamahaRemoteControl/ctrl >/dev/null 2>&1 &
;;
esac

exit 0


allerdings ist FHEM blockiert, solange das Skript läuft, hat hier jemand ein Tipp, wie ich das verhindern kann?

Der Aufruf erfolgt in 99_myUtils:
system("sh /opt/fhem/set_NetRadio.sh $sender");

Markus Bloch

Hallo zusammen,

um die Frage zu beantworten, ja, ich arbeite noch an diesem Thema.

Ich habe heute eine generelle Lösung des Problems gebaut. Mit der Änderung hin zu einer Kommando-Warteschlange, konnte ich darauf aufbauend nun einen Mechanismus bauen, der das Menü auf einen bestimmten Pfad durchschreitet und damit ein gewünschtes Element startet. Das ganze funktioniert generell für alle Eingänge, die mit Menüs arbeiten (Net-Radio, Server, USB, ...)

Anbei findet ihr eine Vorab-Version, welche ein neues Set-Kommando "navigateListMenu" enthält. Es ist nur bei Eingängen verfügbar, welche sowas unterstützen.

Man gibt den Pfad als kommaseparierte Liste an. Also im Falle von Net Radio:

set AV_Receiver navigateListMenu Lesezeichen,My__Favorites,1LIVE
set AV_Receiver navigateListMenu Länder,Ozeanien,Australien,Alle Sender,1Radio.FM


für den Eingang "server"  zum Abspielen von Musik z.B. :
set AV_Receiver navigateListMenu NAS,Musik,Nach Ordner,Alicia Keys,Songs in A Minor,Fallin

Vorraussetzung ist natürlich, dass der Receiver auf den entsprechenden Eingang geschaltet ist.

Das Modul geht dann genau wie ein Mensch die Liste durch, sucht von oben nach unten nach dem ersten Element. Wenn es gefunden wurde, wählt es dieses aus. Wartet solange bis das Untermenü aufgebaut ist und geht dann weiter für die nächste Ebene vor.

WICHTIG: Die einzelnen Namen der Menüpunkte sind Suchbegriffe, d.h. man muss nicht den 100% exakten Namen des Menüeintrags verwenden. Es reicht auch nur ein Stichwort, welches dann aber so genau sein sollte, dass es nur auf den gewünschten Listeneintrag in der aktuellen Liste matcht.

Wenn beim Ausführen dieses Befehls man aktuell woanders im Menü ist, so wird dies erkannt. Das Modul springt dann zum Anfang und startet ab da die Menüabfolge wie im Kommando angegeben.

Bitte testet das mal bei euch aus, da das umfangreiche Änderungen sind und ich die nicht ohne weiteres verteilen möchte.

Bei mir funktioniert es sehr zuverlässig bisher. Allerdings weigert sich mein Receiver momentan generell Internetradiosender abzuspielen (auch mit manueller Fernbedienung :-/ ).

Vielen Dank

Gruß
Markus

Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Schlimbo

Wow, das sind ja wahnsinns Neuigkeiten  :)
Habe es gleich mal getestet und es funktioniert bestens, werde die nächsten Tage weiter testen und berichten, falls mir noch was auffällt.
Vielen Dank für dieses tolle Feature und die super Umsetzung.

Gruß
Schlimbo

Markus Bloch

Noch zu erwähnen ist, dass FHEM dabei nicht blockiert wird. Das bedeutet, während solcher Menü-Navigationen ist FHEM nachwievor noch benutzbar und verarbeitet auch andere Sachen weiterhin.

Dies bedeutet aber auch, dass eine zügige Verarbeitung der Menü-Navigation vorraussetzt, dass FHEM nicht anderweitig durch blockierende Sleeps (z.B. in Perl-Funktionen/Perl-Code) aufgehalten wird. Jedes Kommando, was aus der Befehls-Queue abgesetzt wird, benötigt einen Hauptschleifen-Durchlauf. Wenn also irgendwo 5 Sekunden gesleept wird oder ein System-Aufruf FHEM für mehrer Sekunden blockiert, dann verzögert das ebenfalls solche Menü-Navigationen oder z.B. Lautstärkeänderungen mit Smoothing.

Also bitte auf solche blockierenden Sachen möglichst verzichten.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

Zitat von: Schlimbo am 23 Juli 2015, 21:41:16
Noch ein wichtiges Feature für mich wäre es den "Party Modus" zu Steuern.
cmd="PUT"><System><Party_Mode><Mode>Off</Mode></Party_Mode></System></YAMAHA_AV>

Hallo Schlimbo,

ich habe auf Basis deiner Requests und meiner Doku-Grundlage das Set-Kommando/Reading "partyMode" eingebracht. Es funktioniert folgendermaßen:

Main-Zone

In der Main-Zone schaltet man mit set <name> partyMode on/off den Party Mode geräteweit ein und aus.

alle anderen Zonen (Zone 2,3,4)

Hier schaltet man mit set <name> partyMode on/off die entsprechende Zone dazu, sodass diese Teil des Party-Modus ist.

Auch hier würde ich dich bitten, dies zu testen, da ich keine Zonen habe. :-)

Sofern alles positiv läuft würde ich alles zusammen (Menü-Steuerung, Optimierungen, Party-Mode, ...) einchecken wollen.

Vielen Dank

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Bartimaus

Hallo Markus,

super Update. Funktioniert tadellos an meinem RX-V-773. Auch mit Inetradio !!
Vielen Dank
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Schlimbo

Vielen Dank Markus,
Party Modus funktioniert  :)
Da ich aber nur einen 2-Zonen Receiver habe, kann ich die einzel-Zonen Zu/Abschaltung nicht richtig Testen.

Gruß
Schlimbo




Markus Bloch

Hallo zusammen,

das freut mich zu hören. Ich bin aktuell dabei die commandref zu schreiben. Den Abschnitt wie man ein Internet-Radio sender mittels remoteControl-Befehlen ansteuert, habe ich komplett entfernt und baue dafür einen Abschnitt zur Menü-Navigation mittels navigateListMenu ein.

Das Ergebnis würde ich evtl. vorher nochmal hier posten, da ich nicht weis, ob das so rüber kommt wie es soll.

Ich melde mich.

Viele Grüße

Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

Um den Receiver direkt einzuschalten, auf netradio umzuschalten und einen Sender auszuwählen muss man folgenden Befehl nehmen:

set AV_Receiver on ; sleep 1; set AV_Receiver input netradio ; sleep 1 ; set AV_Receiver navigateListMenu Lesezeichen,Favoriten,1LIVE

Die Sleeps müssen sein, da es sonst (trotz Kommando-Warteschlange) zu schnell abläuft. Dennoch geht das so immer noch schneller als vorher ;-)

mit at-Konstrukt:

define turn_on_Radio_morning at *08:00 set AV_Receiver on ; sleep 1; set AV_Receiver input netradio ; sleep 1 ; set AV_Receiver navigateListMenu Lesezeichen,Favoriten,1LIVE

Ich werde in der Version die ich im SVN einchecke aber wohl lieber folgende Syntax nehmen:

set AV_Receiver navigateListMenu Lesezeichen/Favoriten/1LIVE

Ist glaube ich so besser erkennbar, worum es geht, oder?

Was meint ihr?

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Bartimaus

Moin,

super ! Ich komme mit beiden Alternativen klar

Aber Frage: "Favoriten" oder "My__Favorites" ?
LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly

Markus Bloch

Das kommt drauf an, wie du deinen Favoriten-Ordner in vTuner genannt hast. Ich hab den vorhin umbenannt, jetzt heist meiner "Favoriten".

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Bartimaus

LG
B.


FHEM@Intel-J4105@Debian-LXC, CUL1101,FS20,IT,DS18B20,DS2413(Heizungslogger),DS2423(Stromlogger)Homematic,HM-LAN,ZWave,MiniCULs,Shelly