Modul für Yamaha Musiccast

Begonnen von Pythonf, 20 Juni 2016, 10:28:46

Vorheriges Thema - Nächstes Thema

xynicolo

Hallo zusammen,

wie aus dem von mir gestarteten Thread https://forum.fhem.de/index.php?topic=45990.0 hervorgeht bin auch ich, sehr an einem Modul für die Musiccast-Serie interessiert.
Meine Programmierkenntnisse stecken leider noch in den Kinderschuhen, jedoch möchte ich gerne helfen so gut es geht.
Ich habe mir das bisherige Modul mit großem Interesse angesehen. und kann bestätigen das die geschilderten Funktionen auch bei der Soundbar YSP1600 funktionieren.

Durch einfügen von mute


# define set commands and corresponding url
my %YAMAHA_MC_setCmds = (
# "power:on,standby" => "/v1/main/setPower?power",    #Funktioniert leider nicht
# "volume:slider,0,1,161" => "/v1/main/setVolume?volume",
"power" => "/v1/main/setPower?power=",
"volume" => "/v1/main/setVolume?volume=",
"input" => "/v1/main/setInput?input=",
"mute" => "/v1/main/setMute?enable=",
"getStatus" => "/v1/main/getStatus",
"getFeatures" => "/v1/system/getFeatures"
);



funktioniert sogar, in Zusammenarbeit mit dem Callmonitor,  das stummschalten  bei Telefonanrufen mittels true und false.
set <device> mute true

Vielleicht kann es jemand gebrauchen.

Gruß

Leugi

Hallo zusammen,

ich besitze einen Yamaha wx030 und schalte hauptsächlich die NetRadio Funktionen per 6fach-Schalter  HM-PB-6-WM55 mit den Funktionen an, aus, lauter, leiser, nächster und voriger Sender.

Ich habe dazu das Modul erweitert, so dass der Status und einige zusätzliche Informationen gelesen werden aber insbesondere auch Menü Navigation möglich ist.
Vielleicht sind die Erweiterungen für irgendjemanden hilfreich. Habe eine erste Version der Erweiterungen beigefügt.

Gruss,
Stefan.
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

miracoli

Stefan, das ist super!
Habe mir vor einer Woche zwei WX-030 und einen neuen RX-V581 gekauft...Zwei Sonos Play 1 sind dafür rausgeflogen, weil mir das MusicCast-System besser gefällt. Das einzige, was nicht mehr lief, war der HM-PB-6-WM55 neben dem Bad-Spiegel, der die Box an der Decke steuert. Meine ersten Bemühungen, auch am Modul weiterzuarbeiten, waren noch nicht wirklich erfolgreich...und dann platzt Du hier mit einem schon so umfangreichen Ding rein.  ;)
Also erstmal ein ganz großes Dankeschön!

-Steffen

sprudelverduenner

@Leugi:
das hört sich schon mal super an - mir fehlte bisher immer die Möglichkeit des Senderwechsel.
Ich werde Dein Update mir gerne heute Abend einspielen und mal auf meinen 3 MusicCast Komponenten testen.
Vielen Dank schonmal dafür.

LG, Sprudelverduenner
FHEM @ RaspberryPi 3, HMLAN, HMUART + HMRS485, Homematic, ESPEasy @ Sonoff / Shelly / ESP8266, ZigBee @ CC2531
Echo Dot, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12, LD382
FRITZ!Box 7590 AX, Mesh @ FRITZ!Repeater 2400, FRITZ!Fon, iPhone 13, iPad Air 5, AppleWatch 8

Leugi

Vielleicht noch zur Erläuterung. Ich habe mein wx030 folgendermaßen definiert :

define wx030 YAMAHA_MC 192.168.0.28 80 120 60
attr wx030 FavoriteNetRadioChannel 1
attr wx030 menuNameFavoritesNetRadio "Best radio"
attr wx030 pathToFavoritesNetRadio 0 0
attr wx030 room YAMAHA_AV
attr wx030 verbose 3
attr wx030 volumeSteps 3
attr wx030 webCmd on:off:volume:input

Wer die Sender Vor und zurück-Funktion fürs InternetRadio benötigt muss sich per vtuner registrieren und die Sender anlegen
und dann im Attr pathToFavoritesNetRadio die Menüstruktur zu den eigenen Favoriten angeben, sollte normalerweise immer 0 0 sein.

Zusätzlich sollte der Name des Menüs mit den Favoriten werden, damit das Umschalten schneller geht, im Beispiel :
menuNameFavoritesNetRadio "Best radio"

Dann muss noch der Lieblingssender innerhalb der Senderliste angegeben werden, der erste Sender dabei ist Nummer 0. Im Beispel :
FavoriteNetRadioChannel 1

Ich habe dann am 6fach Schalter einfach per notify folgende cmd's ausgeloest :

define set_wx030_on notify Wandschalter_Radio_Btn_01 set wx030 TurnFavNetRadioChannelOn
define set_wx030_off notify Wandschalter_Radio_Btn_02 set wx030 off
define set_wx030_volup notify Wandschalter_Radio_Btn_03 set wx030 volumeDown
define set_wx030_voldwn notify Wandschalter_Radio_Btn_04 set wx030 volumeUp
define set_wx030_chnup notify Wandschalter_Radio_Btn_05 set wx030 NetRadioPrevFavChannel
define set_wx030_chndown notify Wandschalter_Radio_Btn_06 set wx030 NetRadioNextFavChannel

Bei mir funktioniert das einwandfrei, die Umschaltung der Sender dauer allerdings ca. 3 Sekunden.

Ist das erste mal, dass ich in Perl programmiere, wäre daher interessant zu erfahren, ob es bei anderen auch funktioniert.  ::)

Gruss,
Stefan.



FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

enno

@Leugi:

Vielen Dank für die Arbeit. Ich habe mir das Modul gestern installiert und einen 6fach-Schalter  HM-PB-6-WM55 per DOIF an einen WX030  "gekoppelt". Das klappt alles bestens. Ich habe allerdings Verbose auf 1 gestellt, da ich bei Verbose 3 folgende Meldung im Minuten Takt im Log habe.

2017.02.03 08:42:15 3: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: cmd=getStatus starte httpRequest url => http://192.1.1.12:80/YamahaExtendedControl/v1/main/getStatus
2017.02.03 08:42:15 3: YAMAHA_MC: Kuechenradio YAMAHA_MC_httpRequestParse ResponseCode =


Jetzt bin ich mal gespannt, ob es irgendwann auch noch eine Lösung gibt, wie man ohne App die MusicCast Funktion aus FHEM mit mehreren Geräten nutzen kann. Steuern lassen sich die Geräte ja einzeln schon bestens.  :)
Einfacher FHEM Anwender auf Intel®NUC

sprudelverduenner

@ Leugi

Ich habe bei meinem WX-030 die Funktion TurnFavNetRadioChannelOn benutzt: Super
Dank Startsender und Startlautstärke startet der WX-030 so wie ich es möchte - egal in welchem Zustand er ausgeschaltet wurde.

Ich habe darüber hinaus noch einen WXA-50. Hier scheint es grundsätzlich auch zu funktionieren - allerdings werden alle Befehle stark verzögert ausgeführt. Teilweise bis zu 10 Sekunden.
Was kann ich machen um dem Problem auf die Schliche zu kommen? Was brauchst Du an Daten?

Danke vorab für Deine Hilfe.

LG, Sprudelverduenner
FHEM @ RaspberryPi 3, HMLAN, HMUART + HMRS485, Homematic, ESPEasy @ Sonoff / Shelly / ESP8266, ZigBee @ CC2531
Echo Dot, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12, LD382
FRITZ!Box 7590 AX, Mesh @ FRITZ!Repeater 2400, FRITZ!Fon, iPhone 13, iPad Air 5, AppleWatch 8

Leugi

@Sprudelverduenner

Ich kann mir das gerne einmal anschauen. Sende mir einfach das Fhem-Log der 10 Sekunden mit Verbose 5 zu.
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

Leugi

@Enno

das Linken von MusicCast Geräten war leider nicht in der Yamaha-API-Reference enthalten. Aber ich kann mal versuchen das per Wireshark zu analysieren und vielleicht lässt sich da was machen ...

Gruß
Stefan.
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

Pythonf

Vielen Dank für die Weiterentwicklung. Ich werde das im ersten Post hinzufügen. Leider funktioniert es bei mir nicht und ich bekomme bei einem reload folgende Fehlermeldung:
Illegal declaration of subroutine main::YAMAHA_MC_Define at ./FHEM/71_YAMAHA_MC.pm line 160.

Beste Grüße
Fabian

sprudelverduenner

N'abend Leugi,,

hier ein LOG mit verbose 5.

Ich habe nur die Funktion TurnFavNetRadioChannelOn bei dem WXA-50 gedrückt.
Der WXA-50 hat diesmal gar nichts gemacht.


2017.02.05 20:28:06 4: YAMAHA_MC_Set start with cmd ?
2017.02.05 20:28:06 4: YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,juke,qobuz,airplay,mc_link,server,net_radio,bluetooth,usb,optical,aux
2017.02.05 20:28:06 4: YAMAHA_MC_Set cmd ? Helper MENUITEMS availablebookmarks,locations,genres,newstations,popularstations,podcasts,help
2017.02.05 20:28:06 4: YAMAHA_MC_Set unknown cmd not in List ? returning usage
2017.02.05 20:28:07 4: YAMAHA_MC_Set start with cmd ?
2017.02.05 20:28:07 4: YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,juke,qobuz,airplay,mc_link,server,net_radio,bluetooth,usb,optical,aux
2017.02.05 20:28:07 4: YAMAHA_MC_Set cmd ? Helper MENUITEMS availablebookmarks,locations,genres,newstations,popularstations,podcasts,help
2017.02.05 20:28:07 4: YAMAHA_MC_Set unknown cmd not in List ? returning usage
2017.02.05 20:28:07 4: YAMAHA_MC_Set start with cmd ?
2017.02.05 20:28:07 4: YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,juke,qobuz,airplay,mc_link,server,net_radio,bluetooth,usb,optical,aux
2017.02.05 20:28:07 4: YAMAHA_MC_Set cmd ? Helper MENUITEMS availablebookmarks,locations,genres,newstations,popularstations,podcasts,help
2017.02.05 20:28:07 4: YAMAHA_MC_Set unknown cmd not in List ? returning usage
2017.02.05 20:28:14 4: YAMAHA_MC_GetStatus try to getInputs
2017.02.05 20:28:14 4: YAMAHA_MC_GetStatus fetching Inputs now
2017.02.05 20:28:14 4: YAMAHA_MC_getInputs starting with getStatus Function
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue start queuing
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue (musiccast.bad) - append to queue (at first) of device musiccast.bad "getStatus ":
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue calling YAMAHA_MC_HandleCmdQueue now
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + Es läuft kein Request mehr
2017.02.05 20:28:14 4: + Es gibt noch pending commands
2017.02.05 20:28:14 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - HandleCmdQueue no commands currently running, but queue has pending commands. preparing new request
2017.02.05 20:28:14 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - getting new request
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 0 (cmd: getStatus, arg: , data: 1, priority: 3, at_first: 1, not_before: 0)
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - choosed item 0 as next command
2017.02.05 20:28:14 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - got new request, try to get params of request
2017.02.05 20:28:14 4: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: new reuest has name musiccast.bad CMD getStatus Args
2017.02.05 20:28:14 3: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: cmd=getStatus starte httpRequest url => http://192.168.1.35:80/YamahaExtendedControl/v1/main/getStatus
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - send command "getStatus "
2017.02.05 20:28:14 4: YAMAHA_MC_getInputs Device is powered on, getting details now with getFeatures
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue start queuing
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue (musiccast.bad) - append to queue (at first) of device musiccast.bad "getFeatures ":
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue calling YAMAHA_MC_HandleCmdQueue now
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + Es gibt noch pending commands
2017.02.05 20:28:14 4: YAMAHA_MC_getInputs ready, leaving now
2017.02.05 20:28:14 4: YAMAHA_MC_GetStatus fetching ListInfos now
2017.02.05 20:28:14 4: YAMAHA_MC_getMenu starting getting Menu now
2017.02.05 20:28:14 4: YAMAHA_MC_getMenu Device is powered on, getting details now with getMenu
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue start queuing
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue (musiccast.bad) - append to queue of device musiccast.bad "getMenu ":
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue calling YAMAHA_MC_HandleCmdQueue now
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + Es gibt noch pending commands
2017.02.05 20:28:14 4: YAMAHA_MC_getMenu ready, leaving now
2017.02.05 20:28:14 4: YAMAHA_MC_GetStatus fetching getPlaybackStatus now
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue start queuing
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue (musiccast.bad) - append to queue of device musiccast.bad "getPlayInfo ":
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue calling YAMAHA_MC_HandleCmdQueue now
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + Es gibt noch pending commands
2017.02.05 20:28:14 4: YAMAHA_MC_GetStatus fetching getNetworkStatus now
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue start queuing
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue (musiccast.bad) - append to queue of device musiccast.bad "getNetworkStatus ":
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue calling YAMAHA_MC_HandleCmdQueue now
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + Es gibt noch pending commands
2017.02.05 20:28:14 4: YAMAHA_MC_GetStatus fetching getLocationInfo now
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue start queuing
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue (musiccast.bad) - append to queue of device musiccast.bad "getLocationInfo ":
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue calling YAMAHA_MC_HandleCmdQueue now
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + Es gibt noch pending commands
2017.02.05 20:28:14 4: YAMAHA_MC_GetStatus updating ListValues for cmd now
2017.02.05 20:28:14 5: YAMAHA_MC_UpdateLists rearranging possible inputs inputs:napster,spotify,juke,qobuz,airplay,mc_link,server,net_radio,bluetooth,usb,optical,aux
2017.02.05 20:28:14 5: YAMAHA_MC_UpdateLists current menu items:bookmarks,locations,genres,newstations,popularstations,podcasts,help
2017.02.05 20:28:14 5: YAMAHA_MC_UpdateLists new YAMAHA_MC_setCmdswithoutArgs List for cmds :
2017.02.05 20:28:14 5: $VAR1 = 'getMenu';
$VAR2 = '/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en';
$VAR3 = 'getStatus';
$VAR4 = '/v1/main/getStatus';
$VAR5 = 'getMenuItems';
$VAR6 = '/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en';
$VAR7 = 'input';
$VAR8 = '/v1/main/setInput?input=';
$VAR9 = 'statusRequest';
$VAR10 = '/v1/main/getStatus';
$VAR11 = 'prepareInputChange';
$VAR12 = '/v1/main/prepareInputChange?input=';
$VAR13 = 'off';
$VAR14 = '/v1/main/setPower?power=standby';
$VAR15 = 'on';
$VAR16 = '/v1/main/setPower?power=on';
$VAR17 = 'setAutoPowerStandby';
$VAR18 = '/v1/system/setAutoPowerStandby?enable=';
$VAR19 = 'getDeviceInfo';
$VAR20 = '/v1/system/getDeviceInfo';
$VAR21 = 'playback';
$VAR22 = '/v1/netusb/setPlayback?playback=';
$VAR23 = 'power';
$VAR24 = '/v1/main/setPower?power=';
$VAR25 = 'NetRadioNextFavChannel';
$VAR26 = 'batch_cmd';
$VAR27 = 'TurnFavNetRadioChannelOn';
$VAR28 = 'batch_cmd';
$VAR29 = 'getNetworkStatus';
$VAR30 = '/v1/system/getNetworkStatus';
$VAR31 = 'getFeatures';
$VAR32 = '/v1/system/getFeatures';
$VAR33 = 'selectMenuItem';
$VAR34 = '/v1/netusb/setListControl?list_id=main&type=select&selectMenu=';
$VAR35 = 'selectPlayMenu';
$VAR36 = '/v1/netusb/setListControl?list_id=main&type=play&index=';
$VAR37 = 'volumeDown';
$VAR38 = '/v1/main/setVolume?volume=';
$VAR39 = 'enableBluetooth';
$VAR40 = '/v1/system/setBluetoothTxSetting?enable=';
$VAR41 = 'NetRadioPrevFavChannel';
$VAR42 = 'batch_cmd';
$VAR43 = 'returnMenu';
$VAR44 = '/v1/netusb/setListControl?list_id=main&type=return';
$VAR45 = 'getLocationInfo';
$VAR46 = '/v1/system/getLocationInfo';
$VAR47 = 'volumeUp';
$VAR48 = '/v1/main/setVolume?volume=';
$VAR49 = 'selectPlayMenuItem';
$VAR50 = '/v1/netusb/setListControl?list_id=main&type=play&selectMenu=';
$VAR51 = 'getBluetoothInfo';
$VAR52 = '/v1/system/getBluetoothInfo';
$VAR53 = 'mute';
$VAR54 = '/v1/main/setMute?enable=';
$VAR55 = 'volume';
$VAR56 = '/v1/main/setVolume?volume=';
$VAR57 = 'getPlayInfo';
$VAR58 = '/v1/netusb/getPlayInfo';
$VAR59 = 'selectMenu';
$VAR60 = '/v1/netusb/setListControl?list_id=main&type=select&index=';
$VAR61 = 'navigateListMenu';
$VAR62 = 'batch_cmd';
$VAR63 = 'sleep';
$VAR64 = '/v1/main/setSleep?sleep=';

2017.02.05 20:28:14 5: YAMAHA_MC_UpdateLists returning now
2017.02.05 20:28:14 4: YAMAHA_MC_GetStatus updating Zones with getDeviceInfo now
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue start queuing
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue (musiccast.bad) - append to queue of device musiccast.bad "getDeviceInfo ":
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestQueue calling YAMAHA_MC_HandleCmdQueue now
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + Es gibt noch pending commands
2017.02.05 20:28:14 4: YAMAHA_MC_GetStatus device turned off, resetting Timer
2017.02.05 20:28:14 4: YAMAHA_MC: device_ musiccast.bad YAMAHA_MC_ResetTimer reset timer requested
2017.02.05 20:28:14 4: YAMAHA_MC: device_ musiccast.bad reset timer (on) in Seks 60
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse deleting http helper
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse data:
{"response_code":0,"power":"standby","sleep":0,"volume":70,"mute":false,"max_volume":161,"input":"net_radio","distribution_enable":true,"direct":false,"enhancer":true,"equalizer":{"mode":"manual","low":0,"mid":0,"high":6},"balance":0,"subwoofer_volume":0,"bass_extension":false,"link_control":"standard","link_audio_delay":"audio_sync_on","disable_flags":0}
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse cmd:
getStatus
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse args: 
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse argsEnde
2017.02.05 20:28:14 5: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse got json repsonse, following Dumper von result

2017.02.05 20:28:14 5: $VAR1 = 'direct';
$VAR2 = bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' );
$VAR3 = 'input';
$VAR4 = 'net_radio';
$VAR5 = 'max_volume';
$VAR6 = 161;
$VAR7 = 'power';
$VAR8 = 'standby';
$VAR9 = 'link_control';
$VAR10 = 'standard';
$VAR11 = 'disable_flags';
$VAR12 = 0;
$VAR13 = 'subwoofer_volume';
$VAR14 = 0;
$VAR15 = 'mute';
$VAR16 = $VAR2;
$VAR17 = 'volume';
$VAR18 = 70;
$VAR19 = 'equalizer';
$VAR20 = {
           'high' => 6,
           'mid' => 0,
           'mode' => 'manual',
           'low' => 0
         };
$VAR21 = 'distribution_enable';
$VAR22 = bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' );
$VAR23 = 'response_code';
$VAR24 = 0;
$VAR25 = 'enhancer';
$VAR26 = $VAR22;
$VAR27 = 'bass_extension';
$VAR28 = $VAR2;
$VAR29 = 'balance';
$VAR30 = 0;
$VAR31 = 'link_audio_delay';
$VAR32 = 'audio_sync_on';
$VAR33 = 'sleep';
$VAR34 = 0;

2017.02.05 20:28:14 3: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse ResponseCode =
0
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse Starte Handling fuer getStatus
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse Power off to Val standby
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse volume 15 to Val  70
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse max_volume 60 to Val  161
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParseinput unknown to Val  net_radio
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse mute false to Val 0
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse cmd first Val "power":"standby"
2017.02.05 20:28:14 4: YAMAHA_MC_Set start with cmd ?
2017.02.05 20:28:14 4: YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,juke,qobuz,airplay,mc_link,server,net_radio,bluetooth,usb,optical,aux
2017.02.05 20:28:14 4: YAMAHA_MC_Set cmd ? Helper MENUITEMS availablebookmarks,locations,genres,newstations,popularstations,podcasts,help
2017.02.05 20:28:14 4: YAMAHA_MC_Set unknown cmd not in List ? returning usage
2017.02.05 20:28:14 4: YAMAHA_MC_Set start with cmd ?
2017.02.05 20:28:14 4: YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,juke,qobuz,airplay,mc_link,server,net_radio,bluetooth,usb,optical,aux
2017.02.05 20:28:14 4: YAMAHA_MC_Set cmd ? Helper MENUITEMS availablebookmarks,locations,genres,newstations,popularstations,podcasts,help
2017.02.05 20:28:14 4: YAMAHA_MC_Set unknown cmd not in List ? returning usage
2017.02.05 20:28:14 4: YAMAHA_MC_Set start with cmd ?
2017.02.05 20:28:14 4: YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,juke,qobuz,airplay,mc_link,server,net_radio,bluetooth,usb,optical,aux
2017.02.05 20:28:14 4: YAMAHA_MC_Set cmd ? Helper MENUITEMS availablebookmarks,locations,genres,newstations,popularstations,podcasts,help
2017.02.05 20:28:14 4: YAMAHA_MC_Set unknown cmd not in List ? returning usage
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse Reading Values of equalizer

2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse- found equalizer low : 0
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse- found equalizer mid 0
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse- found equalizer high 6
2017.02.05 20:28:14 4: YAMAHA_MC_httpRequestParse: end of parse of cmd getStatus, calling YAMAHA_MC_GetStatus again, should i really?
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse end calling YAMAHA_MC_HandleCmdQueue again
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:14 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:14 4: + Es läuft kein Request mehr
2017.02.05 20:28:14 4: + Es gibt noch pending commands
2017.02.05 20:28:14 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - HandleCmdQueue no commands currently running, but queue has pending commands. preparing new request
2017.02.05 20:28:14 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - getting new request
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 0 (cmd: getFeatures, arg: , data: 1, priority: 3, at_first: 1, not_before: 0)
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 1 (cmd: getMenu, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 2 (cmd: getPlayInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 3 (cmd: getNetworkStatus, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 4 (cmd: getLocationInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 5 (cmd: getDeviceInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - choosed item 0 as next command
2017.02.05 20:28:14 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - got new request, try to get params of request
2017.02.05 20:28:14 4: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: new reuest has name musiccast.bad CMD getFeatures Args
2017.02.05 20:28:14 3: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: cmd=getFeatures starte httpRequest url => http://192.168.1.35:80/YamahaExtendedControl/v1/system/getFeatures
2017.02.05 20:28:14 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - send command "getFeatures "
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse deleting http helper
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse data:
{"response_code":0,"system":{"func_list":["wired_lan","wireless_lan","network_standby","network_standby_auto","bluetooth_standby","auto_power_standby","bluetooth_tx_setting","dimmer","airplay","disklavier_settings"],"zone_num":1,"input_list":[{"id":"napster","distribution_enable":true,"rename_enable":false,"account_enable":true,"play_info_type":"netusb"},{"id":"spotify","distribution_enable":true,"rename_enable":false,"account_enable":false,"play_info_type":"netusb"},{"id":"juke","distribution_enable":true,"rename_enable":false,"account_enable":true,"play_info_type":"netusb"},{"id":"qobuz","distribution_enable":true,"rename_enable":false,"account_enable":true,"play_info_type":"netusb"},{"id":"airplay","distribution_enable":false,"rename_enable":false,"account_enable":false,"play_info_type":"netusb"},{"id":"mc_link","distribution_enable":false,"rename_enable":true,"account_enable":false,"play_info_type":"netusb"},{"id":"server","distribution_enable":true,"rename_enable":true,"account_enable":false,"play_info_type":"netusb"},{"id":"net_radio","distribution_enable":true,"rename_enable":true,"account_enable":false,"play_info_type":"netusb"},{"id":"bluetooth","distribution_enable":true,"rename_enable":false,"account_enable":false,"play_info_type":"netusb"},{"id":"usb","distribution_enable":true,"rename_enable":true,"account_enable":false,"play_info_type":"netusb"},{"id":"optical","distribution_enable":true,"rename_enable":true,"account_enable":false,"play_info_type":"none"},{"id":"aux","distribution_enable":true,"rename_enable":true,"account_enable":false,"play_info_type":"none"}],"range_step":[{"id":"dimmer","min":0,"max":3,"step":1}],"ymap_list":["vtuner"],"web_control_url":"/sp/"},"zone":[{"id":"main","func_list":["power","sleep","volume","mute","direct","enhancer","equalizer","balance","subwoofer_volume","bass_extension","signal_info","prepare_input_change","link_control","link_audio_delay"],"input_list":["napster","spotify","juke","qobuz","airplay","mc_link","server","net_radio","bluetooth","usb","optical","aux"],"equalizer_mode_list":["manual","auto","bypass"],"link_control_list":["speed","standard","stability"],"link_audio_delay_list":["audio_sync_on","audio_sync_off"],"range_step":[{"id":"volume","min":0,"max":161,"step":1},{"id":"equalizer","min":-12,"max":12,"step":1},{"id":"balance","min":-12,"max":12,"step":1},{"id":"subwoofer_volume","min":-12,"max":12,"step":1}]}],"netusb":{"func_list":["recent_info","play_queue","mc_playlist"],"preset":{"num":40},"recent_info":{"num":40},"play_queue":{"size":200},"mc_playlist":{"size":200,"num":5},"vtuner_fver":"A"},"distribution":{"server_zone_list":["main"]}}
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse cmd:
getFeatures
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse args: 
2017.02.05 20:28:14 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse argsEnde
2017.02.05 20:28:14 5: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse got json repsonse, following Dumper von result

2017.02.05 20:28:15 5: $VAR1 = 'system';
$VAR2 = {
          'web_control_url' => '/sp/',
          'zone_num' => 1,
          'range_step' => [
                            {
                              'step' => 1,
                              'min' => 0,
                              'max' => 3,
                              'id' => 'dimmer'
                            }
                          ],
          'input_list' => [
                            {
                              'rename_enable' => bless( do{\(my $o = 0)}, 'JSON::PP::Boolean' ),
                              'play_info_type' => 'netusb',
                              'id' => 'napster',
                              'distribution_enable' => bless( do{\(my $o = 1)}, 'JSON::PP::Boolean' ),
                              'account_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'rename_enable'},
                              'play_info_type' => 'netusb',
                              'id' => 'spotify',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'rename_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'rename_enable'},
                              'play_info_type' => 'netusb',
                              'id' => 'juke',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'rename_enable'},
                              'play_info_type' => 'netusb',
                              'id' => 'qobuz',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'rename_enable'},
                              'play_info_type' => 'netusb',
                              'id' => 'airplay',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'rename_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'rename_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'play_info_type' => 'netusb',
                              'id' => 'mc_link',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'rename_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'rename_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'play_info_type' => 'netusb',
                              'id' => 'server',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'rename_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'play_info_type' => 'netusb',
                              'id' => 'net_radio',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'rename_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'rename_enable'},
                              'play_info_type' => 'netusb',
                              'id' => 'bluetooth',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'rename_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'play_info_type' => 'netusb',
                              'id' => 'usb',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'rename_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'play_info_type' => 'none',
                              'id' => 'optical',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'rename_enable'}
                            },
                            {
                              'rename_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'play_info_type' => 'none',
                              'id' => 'aux',
                              'distribution_enable' => $VAR2->{'input_list'}[0]{'distribution_enable'},
                              'account_enable' => $VAR2->{'input_list'}[0]{'rename_enable'}
                            }
                          ],
          'ymap_list' => [
                           'vtuner'
                         ],
          'func_list' => [
                           'wired_lan',
                           'wireless_lan',
                           'network_standby',
                           'network_standby_auto',
                           'bluetooth_standby',
                           'auto_power_standby',
                           'bluetooth_tx_setting',
                           'dimmer',
                           'airplay',
                           'disklavier_settings'
                         ]
        };
$VAR3 = 'zone';
$VAR4 = [
          {
            'link_control_list' => [
                                     'speed',
                                     'standard',
                                     'stability'
                                   ],
            'equalizer_mode_list' => [
                                       'manual',
                                       'auto',
                                       'bypass'
                                     ],
            'range_step' => [
                              {
                                'step' => 1,
                                'min' => 0,
                                'max' => 161,
                                'id' => 'volume'
                              },
                              {
                                'step' => 1,
                                'min' => -12,
                                'max' => 12,
                                'id' => 'equalizer'
                              },
                              {
                                'step' => 1,
                                'min' => -12,
                                'max' => 12,
                                'id' => 'balance'
                              },
                              {
                                'step' => 1,
                                'min' => -12,
                                'max' => 12,
                                'id' => 'subwoofer_volume'
                              }
                            ],
            'input_list' => [
                              'napster',
                              'spotify',
                              'juke',
                              'qobuz',
                              'airplay',
                              'mc_link',
                              'server',
                              'net_radio',
                              'bluetooth',
                              'usb',
                              'optical',
                              'aux'
                            ],
            'id' => 'main',
            'func_list' => [
                             'power',
                             'sleep',
                             'volume',
                             'mute',
                             'direct',
                             'enhancer',
                             'equalizer',
                             'balance',
                             'subwoofer_volume',
                             'bass_extension',
                             'signal_info',
                             'prepare_input_change',
                             'link_control',
                             'link_audio_delay'
                           ],
            'link_audio_delay_list' => [
                                         'audio_sync_on',
                                         'audio_sync_off'
                                       ]
          }
        ];
$VAR5 = 'netusb';
$VAR6 = {
          'recent_info' => {
                             'num' => 40
                           },
          'mc_playlist' => {
                             'num' => 5,
                             'size' => 200
                           },
          'vtuner_fver' => 'A',
          'play_queue' => {
                            'size' => 200
                          },
          'func_list' => [
                           'recent_info',
                           'play_queue',
                           'mc_playlist'
                         ],
          'preset' => {
                        'num' => 40
                      }
        };
$VAR7 = 'response_code';
$VAR8 = 0;
$VAR9 = 'distribution';
$VAR10 = {
           'server_zone_list' => [
                                   'main'
                                 ]
         };

2017.02.05 20:28:15 3: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse ResponseCode =
0
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse Start Handling for getFeatures
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse Start building list for inputs
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found first input: napster
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: spotify
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: juke
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: qobuz
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke|qobuz
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: airplay
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke|qobuz|airplay
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: mc_link
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke|qobuz|airplay|mc_link
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: server
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke|qobuz|airplay|mc_link|server
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: net_radio
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke|qobuz|airplay|mc_link|server|net_radio
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: bluetooth
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke|qobuz|airplay|mc_link|server|net_radio|bluetooth
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: usb
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke|qobuz|airplay|mc_link|server|net_radio|bluetooth|usb
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: optical
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke|qobuz|airplay|mc_link|server|net_radio|bluetooth|usb|optical
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of Inputs

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found next input: aux
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added input to helper: napster|spotify|juke|qobuz|airplay|mc_link|server|net_radio|bluetooth|usb|optical|aux
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) - checking available zones
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad SYAMAHA_MC_httpRequestParse starte Zerlegen List of ZOnes

2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - found first zone: main
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_httpRequestParse - added zone to helper: main
2017.02.05 20:28:15 4: YAMAHA_MC_httpRequestParse: end of parse of cmd getFeatures, calling YAMAHA_MC_GetStatus again, should i really?
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse end calling YAMAHA_MC_HandleCmdQueue again
2017.02.05 20:28:15 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:15 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:15 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:15 4: + Es läuft kein Request mehr
2017.02.05 20:28:15 4: + Es gibt noch pending commands
2017.02.05 20:28:15 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - HandleCmdQueue no commands currently running, but queue has pending commands. preparing new request
2017.02.05 20:28:15 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - getting new request
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 0 (cmd: getMenu, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 1 (cmd: getPlayInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 2 (cmd: getNetworkStatus, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 3 (cmd: getLocationInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 4 (cmd: getDeviceInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - choosed item 0 as next command
2017.02.05 20:28:15 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - got new request, try to get params of request
2017.02.05 20:28:15 4: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: new reuest has name musiccast.bad CMD getMenu Args
2017.02.05 20:28:15 3: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: cmd=getMenu starte httpRequest url => http://192.168.1.35:80/YamahaExtendedControl/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - send command "getMenu "
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse deleting http helper
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse data:
{"response_code":100}
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse cmd:
getMenu
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse args: 
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse argsEnde
2017.02.05 20:28:15 5: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse got json repsonse, following Dumper von result

2017.02.05 20:28:15 5: $VAR1 = 'response_code';
$VAR2 = 100;

2017.02.05 20:28:15 3: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse ResponseCode =
100
2017.02.05 20:28:15 4: YAMAHA_MC_Set start with cmd ?
2017.02.05 20:28:15 4: YAMAHA_MC_Set cmd ? Helper Inputs available napster,spotify,juke,qobuz,airplay,mc_link,server,net_radio,bluetooth,usb,optical,aux
2017.02.05 20:28:15 4: YAMAHA_MC_Set cmd ? Helper MENUITEMS availablebookmarks,locations,genres,newstations,popularstations,podcasts,help
2017.02.05 20:28:15 4: YAMAHA_MC_Set unknown cmd not in List ? returning usage
2017.02.05 20:28:15 4: YAMAHA_MC: musiccast.bad YAMAHA_MC_httpRequestParse end calling YAMAHA_MC_HandleCmdQueue again
2017.02.05 20:28:15 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:15 4: + YAMAHA_MC_HandleCmdQueue
2017.02.05 20:28:15 4: +++++++++++++++++++++++++++++++++++++++++++++++++++++
2017.02.05 20:28:15 4: + Es läuft kein Request mehr
2017.02.05 20:28:15 4: + Es gibt noch pending commands
2017.02.05 20:28:15 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - HandleCmdQueue no commands currently running, but queue has pending commands. preparing new request
2017.02.05 20:28:15 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - getting new request
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 0 (cmd: getPlayInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 1 (cmd: getNetworkStatus, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 2 (cmd: getLocationInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - checking cmd queue item: 3 (cmd: getDeviceInfo, arg: , data: 1, priority: 5, at_first: 0, not_before: 0)
2017.02.05 20:28:15 4: YAMAHA_MC (musiccast.bad) YAMAHA_MC_getNextRequestHash - choosed item 0 as next command
2017.02.05 20:28:15 5: YAMAHA_MC (musiccast.bad) YAMAHA_MC_HandleCmdQueue - got new request, try to get params of request
2017.02.05 20:28:15 4: YAMAHA_MC YAMAHA_MC_HandleCmdQueue: new reuest has name musiccast.bad CMD getPlayInfo Args


Ich hoffe Du kannst mirt dem LOG etwas anfangen.

Danke. LG, Sprudelverduenner
FHEM @ RaspberryPi 3, HMLAN, HMUART + HMRS485, Homematic, ESPEasy @ Sonoff / Shelly / ESP8266, ZigBee @ CC2531
Echo Dot, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12, LD382
FRITZ!Box 7590 AX, Mesh @ FRITZ!Repeater 2400, FRITZ!Fon, iPhone 13, iPad Air 5, AppleWatch 8

Leugi

Hallo Sprudelverduenner,

im Log finde ich nur ein Access-Error beim Lesen des Net_radio Menüs.
Hattest du das Gerät vorher eingeschaltet und auf input Net_radio stehen ?

Kannst du bitte prüfen, ob die Firmware aktuell und ob du vom Browser aus das Menu per URL auslesen kannst :

http://192.168.1.35:80/YamahaExtendedControl/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en

Manchmal hängt sich das Menü auch auf, dann versuche es mit einem

set musiccast.bad returnMenu

Gruss,
Stefan.

FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren

sprudelverduenner

#27
Hallo Leugi,

laut MusicCast APP ist die Firmware des WXA-50 aktuell.

Wenn ich die Adress http://192.168.1.35:80/YamahaExtendedControl/v1/netusb/getListInfo?input=net_radio&index=0&size=8&lang=en
a) mit dem Internet Explorer öffne, dann kommt die Frage, ob ich eine Datei getListInfo.json öffnen möchte.
b) mit dem Firefox öffne, dann kommt folgender Output:

{"response_code":0,"input":"net_radio","menu_layer":2,"max_line":8,"index":0,"playing_index":-1,"menu_name":"My__Favorites","list_info":[{"text":"WDR 2 Rheinland","thumbnail":"http:\/\/item.radio456.com:80\/007452\/logo\/logo-70556.jpg","attribute":1044},{"text":"1LIVE","thumbnail":"http:\/\/item.radio456.com:80\/007452\/logo\/logo-531.jpg","attribute":1044},{"text":"1980s.FM","thumbnail":"http:\/\/item.radio456.com:80\/007452\/logo\/logo-24712.jpg","attribute":1044},{"text":"SWR3","thumbnail":"http:\/\/item.radio456.com:80\/007452\/logo\/logo-530.jpg","attribute":1044},{"text":"Radio Euskirchen 106.9 FM","thumbnail":"http:\/\/item.radio456.com:80\/007452\/logo\/logo-21751.jpg","attribute":1044},{"text":"80s80s Depeche Mode","thumbnail":"http:\/\/item.radio456.com:80\/007452\/logo\/logo-80897.jpg","attribute":1044},{"text":"80s80s","thumbnail":"http:\/\/item.radio456.com:80\/007452\/logo\/logo-77440.jpg","attribute":1044},{"text":"RPR1 100.3 FM","thumbnail":"http:\/\/item.radio456.com:80\/007452\/logo\/logo-72897.jpg","attribute":1044}]}


Ein set musiccast.bad returnMenu hat keine Wirkung auf das Problem.

LG, Sprudelverduenner

Nachtrag: Der Power Status wird auch nicht richtig übertragen - mein Gerät ist aus und FHEM zeigt es als on an.
FHEM @ RaspberryPi 3, HMLAN, HMUART + HMRS485, Homematic, ESPEasy @ Sonoff / Shelly / ESP8266, ZigBee @ CC2531
Echo Dot, Dreambox, Yamaha MusicCast, Logitech Hub, LW-12, LD382
FRITZ!Box 7590 AX, Mesh @ FRITZ!Repeater 2400, FRITZ!Fon, iPhone 13, iPad Air 5, AppleWatch 8

enno

@ Leugi

Ich habe mein HTR-4068 gestartet und über die App den WX030 gekoppelt und dann beides wieder ausgeschaltet.

Jetzt kann ich HTR-4068 mit FHEM einschalten und mit folgenden Befehl den WX030 wieder koppeln. Ohne App.

set WX030 input mc_link

Leider kenne ich mit Wireshark nicht aus, aber vielleicht hilft ja die Beschreibung oben.
Einfacher FHEM Anwender auf Intel®NUC

Leugi

@Sprudelverduenner

wie ist der wxa-50 Musiccast.Bad angebunden per WLAN oder per Kabel ?
Kann es sein, dass die Verbindung hin und wieder abbricht ?
Funktionieren dei Funktionen Einschalten, Ausschalten, Lautsärke, Mute, etc. denn alle vezögert oder gar nicht ?

Kannst du mir noch ein List des Devices und ein Log mit Verbose 5 senden mit einigen cmd's wie on,off,volume, getMenu.
FHEM auf RaspPi 2, USB-CUL V3, div. HM Aktoren