Add senario/available and fix cmnd/power

This commit is contained in:
Nicolas Duhamel 2021-01-05 20:12:30 +01:00
parent c444cb6c9b
commit 51486518b4

9
app.py
View File

@ -23,6 +23,7 @@ class Yamaha:
self._cur_senario = None self._cur_senario = None
self._client.subscribe_callback('yamaha/cmnd/senario', self.handle_senario) self._client.subscribe_callback('yamaha/cmnd/senario', self.handle_senario)
self._client.subscribe_callback('yamaha/cmnd/senario/available', self.handle_senario_available)
self._client.subscribe_callback('yamaha/cmnd/volume', self.handle_volume) self._client.subscribe_callback('yamaha/cmnd/volume', self.handle_volume)
self._client.subscribe_callback('yamaha/cmnd/volume/params', self.handle_volume_params) self._client.subscribe_callback('yamaha/cmnd/volume/params', self.handle_volume_params)
self._client.subscribe_callback('yamaha/cmnd/power', self.handle_power) self._client.subscribe_callback('yamaha/cmnd/power', self.handle_power)
@ -73,6 +74,10 @@ class Yamaha:
self._client.publish('yamaha/stat/senario', senario_name) self._client.publish('yamaha/stat/senario', senario_name)
def handle_senario_available(self, client, userdata, msg):
self._client.publish('yamaha/stat/senario/available',
json.dumps([s.__name__.lower() for s in self.available_senarios]))
def handle_volume_params(self, client, userdata, msg): def handle_volume_params(self, client, userdata, msg):
r = self.request(Zone().get_status('main')) r = self.request(Zone().get_status('main'))
msg = { msg = {
@ -102,4 +107,6 @@ class Yamaha:
self.request(Zone().set_power('main', 'standby')) self.request(Zone().set_power('main', 'standby'))
r = self.request(Zone().get_status('main')) r = self.request(Zone().get_status('main'))
self._client.publish('yamaha/stat/power', r['power']) state = r['power']
state = 'off' if state == 'standby' else state
self._client.publish('yamaha/stat/power', state)