Automation Library for Yamaha receivers
Use pip:
$ pip install rxv
or
$ pip install --use-wheel rxv
The easiest way to start using is to let SSDP find all available receivers. In most cases rxv module will manage to obtain locations of local compatible devices:
>>> import rxv
>>> receivers = rxv.find()
>>> print(receivers)
[<RXV model_name="RX-V473" ctrl_url="http://192.168.1.116:80/YamahaRemoteControl/ctrl" at 0x2c1c1d0>]
>>> rx = receivers[0]
>>> rx.on = True
>>> rx.volume
-51.0
>>> rx.inputs()
{'AUDIO': None,
'HDMI1': None,
'HDMI2': None,
(...)
'iPod (USB)': 'iPod_USB'}
>>> rx.input
"NET RADIO"
>>> rx.input = "HDMI1"
>>> rx.input
"HDMI1"
>>> rx.is_playback_supported()
False
>>> rx.input = "AirPlay"
>>> rx.is_playback_supported()
True
>>> from rxv import PlaybackSupport
>>> (rx.get_playback_support() & PlaybackSupport.PLAY) != 0
True
>>> rx.play()
>>> rx.next()
>>> rx.outputs
{'hdmi2': 'off', 'hdmi1': 'on'}
>>> rx.enable_output('hdmi2', True)
>>> rx.enable_output('hdmi1', False)
>>> rx.outputs
{'hdmi2': 'on', 'hdmi1': 'off'}
If SSDP causes you some problems, ctrl_url can be provided by hand.:
>>> rx = rxv.RXV("http://192.168.1.116:80/YamahaRemoteControl/ctrl", "RX-V473")
BSD