NorthernMan54 / homebridge-yamaha-home

Homebridge plugin for my Yamaha Receiver optimized for use with the Home App and Alexa
26 stars 9 forks source link

Device not being added as an accessory #37

Closed alexgarden closed 4 years ago

alexgarden commented 4 years ago

I recently added a Yamaha WX-021 (MusicCast 20) as a wireless speaker for a new room in my house. All the other zones which are being driven of WXA-50's or RX-V685's are working as expected.

The device is being discovered: [5/22/2020, 11:03:15 AM] [yamaha-home] Possible Yamaha device discovered Bathroom [ '10.0.0.20', 'fe80::7add:12ff:fe15:5f91' ]

In the config, I'm making an explicit allowance for it: "zone_controllers_only_for": "Living, Kitchen, Main, Office, Master, Dining, Deck, Bathroom",

Despite that, no Zone Controller is assigned by the plugin, leading to no device accessory being created.

The WX-021 is adopted into the MusicCast network but is not a child of any other device.

Thoughts?

NorthernMan54 commented 4 years ago

This plugin uses the web site put out by the receiver to control it. Does your WX-021 have a web site similar to the receiver?

alexgarden commented 4 years ago

Yes it does. On my network, the WX-021 ("Bathroom") is at 10.0.0.20. If I open an HTTP connection to that address I see a web console with all the functionality of my other endpoints.

Additionally, the WX-021 shows up as a fully-qualified room in the MusicCast control app with it's own transport controls, etc.

In the log, it seems a device goes through three states:

  1. Possible Yamaha device discovered
  2. Found <device_type>
  3. Initializing platform accessory

In this case, the WX-021 only completes the first step. I piped the SysConfig call in setupFromService to the log and confirmed that for each of the other accessories I see a full information package, but for the WX-021 I see this:

[5/23/2020, 7:36:20 AM] [yamaha-home] [SysConfig -> Bathroom -> null

So... It looks like in simpleCommands.js in the function getSystemConfig that this snippet results in an invalid polling result only from the WX-021:

var command = '<YAMAHA_AV cmd="GET"><System><Config>GetParam</Config></System></YAMAHA_AV>'; return this.SendXMLToReceiver(command).then(xml2js.parseStringAsync);

This is odd behavior because all the Yamaha native apps think of the WX-021 as a peer to all the other system devices.

Thoughts?

NorthernMan54 commented 4 years ago

The 'WX-021' doesn't support the API used by this plugin.

alexgarden commented 4 years ago

Aaaah... Thanks for letting me know.

Given Yamaha is moving in this direction, the logical next question is, "What API does the WX-??? family use?" They clearly have a full set of API controls as the MusicCast app treats this device in the same way as any other Yamaha device. It would be great if we were able to add API support for the new family of devices.

Thoughts?

.a


From: Northern Man notifications@github.com Sent: Sunday, May 24, 2020 5:17 PM To: NorthernMan54/homebridge-yamaha-home homebridge-yamaha-home@noreply.github.com Cc: alexgarden alex.garden@outlook.com; Author author@noreply.github.com Subject: Re: [NorthernMan54/homebridge-yamaha-home] Device not being added as an accessory (#37)

The 'WX-021' doesn't support the API used by this plugin.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FNorthernMan54%2Fhomebridge-yamaha-home%2Fissues%2F37%23issuecomment-633321768&data=02%7C01%7C%7Ccf0c21bc9afc4fc4bb5c08d80041013a%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259626470426763&sdata=f3DATCF3aDYck2%2BwNTVvtmZc5FCGq8YTfYo6UWYwLQs%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FADKWF3O6FLQ5NTBWICBF3LLRTG2JNANCNFSM4NIBU75A&data=02%7C01%7C%7Ccf0c21bc9afc4fc4bb5c08d80041013a%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259626470436757&sdata=SKAHemUmLTgV1CP3LC70K%2Bfqhy9HiwHsEyXQwcBgtcY%3D&reserved=0.

NorthernMan54 commented 4 years ago

Adding support would need a developer with access to the appropriate devices. If someone wants to submit this as a pull request I would gladly publish

On May 26, 2020, at 9:10 AM, alexgarden notifications@github.com wrote:

 Aaaah... Thanks for letting me know.

Given Yamaha is moving in this direction, the logical next question is, "What API does the WX-??? family use?" They clearly have a full set of API controls as the MusicCast app treats this device in the same way as any other Yamaha device. It would be great if we were able to add API support for the new family of devices.

Thoughts?

.a


From: Northern Man notifications@github.com Sent: Sunday, May 24, 2020 5:17 PM To: NorthernMan54/homebridge-yamaha-home homebridge-yamaha-home@noreply.github.com Cc: alexgarden alex.garden@outlook.com; Author author@noreply.github.com Subject: Re: [NorthernMan54/homebridge-yamaha-home] Device not being added as an accessory (#37)

The 'WX-021' doesn't support the API used by this plugin.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FNorthernMan54%2Fhomebridge-yamaha-home%2Fissues%2F37%23issuecomment-633321768&data=02%7C01%7C%7Ccf0c21bc9afc4fc4bb5c08d80041013a%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259626470426763&sdata=f3DATCF3aDYck2%2BwNTVvtmZc5FCGq8YTfYo6UWYwLQs%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FADKWF3O6FLQ5NTBWICBF3LLRTG2JNANCNFSM4NIBU75A&data=02%7C01%7C%7Ccf0c21bc9afc4fc4bb5c08d80041013a%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259626470436757&sdata=SKAHemUmLTgV1CP3LC70K%2Bfqhy9HiwHsEyXQwcBgtcY%3D&reserved=0. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

alexgarden commented 4 years ago

I have access to the devices. 😉 What do you need specifically? Assume just the HTTP controls? Are these published anywhere or do I need to sniff them?


From: Northern Man notifications@github.com Sent: Tuesday, May 26, 2020 8:11 AM To: NorthernMan54/homebridge-yamaha-home homebridge-yamaha-home@noreply.github.com Cc: alexgarden alex.garden@outlook.com; Author author@noreply.github.com Subject: Re: [NorthernMan54/homebridge-yamaha-home] Device not being added as an accessory (#37)

Adding support would need a developer with access to the appropriate devices. If someone wants to submit this as a pull request I would gladly publish

On May 26, 2020, at 9:10 AM, alexgarden notifications@github.com wrote:

 Aaaah... Thanks for letting me know.

Given Yamaha is moving in this direction, the logical next question is, "What API does the WX-??? family use?" They clearly have a full set of API controls as the MusicCast app treats this device in the same way as any other Yamaha device. It would be great if we were able to add API support for the new family of devices.

Thoughts?

.a


From: Northern Man notifications@github.com Sent: Sunday, May 24, 2020 5:17 PM To: NorthernMan54/homebridge-yamaha-home homebridge-yamaha-home@noreply.github.com Cc: alexgarden alex.garden@outlook.com; Author author@noreply.github.com Subject: Re: [NorthernMan54/homebridge-yamaha-home] Device not being added as an accessory (#37)

The 'WX-021' doesn't support the API used by this plugin.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FNorthernMan54%2Fhomebridge-yamaha-home%2Fissues%2F37%23issuecomment-633321768&data=02%7C01%7C%7Ccf0c21bc9afc4fc4bb5c08d80041013a%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259626470426763&sdata=f3DATCF3aDYck2%2BwNTVvtmZc5FCGq8YTfYo6UWYwLQs%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FADKWF3O6FLQ5NTBWICBF3LLRTG2JNANCNFSM4NIBU75A&data=02%7C01%7C%7Ccf0c21bc9afc4fc4bb5c08d80041013a%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637259626470436757&sdata=SKAHemUmLTgV1CP3LC70K%2Bfqhy9HiwHsEyXQwcBgtcY%3D&reserved=0. — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FNorthernMan54%2Fhomebridge-yamaha-home%2Fissues%2F37%23issuecomment-634087345&data=02%7C01%7C%7C47844f13ca484c16572008d8018720be%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637261027159759914&sdata=WRKWJJ1ofnWe2prxWjWG%2BGQJi4VGI%2B5LcAEPTYbXm0A%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FADKWF3JKQ6ZNPMIEVHKR7J3RTPL3VANCNFSM4NIBU75A&data=02%7C01%7C%7C47844f13ca484c16572008d8018720be%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637261027159769909&sdata=ZeQtoh9nv0wtufkz7OIOhFzFM9u2M8sj1rJiRPkTKec%3D&reserved=0.

alexgarden commented 4 years ago

I'm personally baffled as to why Yamaha would have these devices inaccessible via the API they use for the rest of their networked AV gear but who am I to question why.

Fortunately, there seems to be a workaround here. By installing the following two plugins you can effectively replicate the desired behavior:

  1. For device power, install Musiccast Tv. In my case, the only input I enumerate is "mc_link" as I'm using this room as a member of a housewide playgroup where I only need to turn it on and off and modify its volume depending on the scene I'm selecting.

  2. For device volume, install Yamaha MC3.

Fun fact: You can directly add the WX-021 to Homekit as a speaker BUT you are unable to modify it's status unless you're playing to it from iTunes (thanks, Apple) so that is a useless tease.

This issue can be closed, although the OCD part of me would sure love it if I could drop the two hack-plugin installs and use Yamaha Home for everything.