Skip to content

Very basic CLI written in Go that can communicate with a Yamaha WXA-50 amplifier.

License

Notifications You must be signed in to change notification settings

gilbsgilbs/YamahaWXA50RemoteControl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

YamahaWXA50RemoteControl

Very basic CLI written in Go that can communicate with a Yamaha WXA-50 amplifier.

It just fulfills my very basic needs. I may or may not improve it over time depending on how my needs change.

Usage

  1. Configure your network so that your amplifier gets a static IP address lease.
  2. Create a config file in $HOME/.config/wxa50/config.yml:
    endpoint: http://<IP address of the amplifier>
    
    Note: You can omit this config file, but you'll have to set the --endpoint flag each time you use the CLI.
  3. Get usage information by running the main file.

What's done?

  • Power on/off
  • Increase/Decrease/Get volume
  • Mute/Unmute/Toggle mute
  • Get/Change current audio source (aka Input Selection)

How's it done?

This project uses Cobra for CLI interactions.

Apart from this document, I didn't find any API documentation. I didn't test the API routes provided in the document because reverse engineering isn't hard at all in this case and seems like it would allow more improvements in the future. Just go on the HTTP endpoint of the amplifier and sniff the packets through wireshark, or even simpler, using the "Network" tab in the Developer Console of any modern browser.

TODO

  • Add more features
  • Check if it works with more Yamaha devices
  • First personal project written in Go, style could probably be improved
  • Maybe some basic regression tests (mocking the server isn't really interesting)

About

Very basic CLI written in Go that can communicate with a Yamaha WXA-50 amplifier.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages