wuub / rxv

Automation Library for Yamaha RX-V473, RX-V573, RX-V673, RX-V773 receivers
Other
111 stars 43 forks source link

RX V581 zone naming issue — no zone discovery #37

Open diplix opened 7 years ago

diplix commented 7 years ago

the rx v581 seems to have a strange naming pattern for it’s zone b:

<Menu Func="Unit" Title_1="System" YNC_Tag="System"> ... <Menu Func="Subunit" Title_1="Main Zone" YNC_Tag="Main_Zone"><Menu Func="Subunit" Title_1="Zone B" YNC_Tag="Main_Zone">

basically the YNC_Tag that is used by rxv to determine zones is the same for the main zone and zone b, they can only be identified by Title_1. for zone discovery to work for the rx v581 there’s probably adjustments to be made. i’d be glad to test those changes, if someone with better programing skills then myself would be willing to implement thise changes.

this is how the receiver describes itself: rx v581 desc.xml

diplix commented 7 years ago

of course changing zone discovery to Title_1 doesn’t help at all, since, i guess, addressing Zone B doesn’t really work. however yamaha themselfes figured out a way of displaying both zones and also addressing them separatly. this is a screenshot from the MusicCast app, that correctly identifies both zones of the RX V581 and let’s me turn off and on both separatly, while rxv displays both with exactly the same attributes. img_9666

bildschirmfoto 2017-02-08 um 09 29 31
diplix commented 7 years ago

i worked around the issue with two home assistant command line switches.

- platform: command_line
  switches:
    yamaha_zone_1_power:
      command_on: 'curl -d "<YAMAHA_AV cmd=\"PUT\"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone></YAMAHA_AV>" http://192.168.1.73/YamahaRemoteControl/ctrl'
      command_off: 'curl -d "<YAMAHA_AV cmd=\"PUT\"><Main_Zone><Power_Control><Power>Standby</Power></Power_Control></Main_Zone></YAMAHA_AV>" http://192.168.1.73/YamahaRemoteControl/ctrl'
      command_state: 'curl -d "<YAMAHA_AV cmd=\"GET\"><Main_Zone><Basic_Status>GetParam</Basic_Status></Main_Zone></YAMAHA_AV>"  http://192.168.1.73/YamahaRemoteControl/ctrl | xmllint --format --noent --xpath "//Power/text()" -'
      value_template: '{{ value == "On" }}'
      friendly_name: Yamaha Zone 1
    yamaha_zone_2_power:
      command_on: 'curl -d "<YAMAHA_AV cmd=\"PUT\"><Main_Zone><Power_Control><Zone_B_Power>On</Zone_B_Power></Power_Control></Main_Zone></YAMAHA_AV>" http://192.168.1.73/YamahaRemoteControl/ctrl'
      command_off: 'curl -d "<YAMAHA_AV cmd=\"PUT\"><Main_Zone><Power_Control><Zone_B_Power>Standby</Zone_B_Power></Power_Control></Main_Zone></YAMAHA_AV>" http://192.168.1.73/YamahaRemoteControl/ctrl'
      command_state: 'curl -d "<YAMAHA_AV cmd=\"GET\"><Main_Zone><Basic_Status>GetParam</Basic_Status></Main_Zone></YAMAHA_AV>"  http://192.168.1.73/YamahaRemoteControl/ctrl | xmllint --format --noent --xpath "//Zone_B_Power_Info/text()" -'
      value_template: '{{ value == "On" }}'
      friendly_name: Yamaha Zone 2