diff --git a/app.py b/app.py index 1abc6b2..a73fcca 100644 --- a/app.py +++ b/app.py @@ -23,6 +23,7 @@ class Yamaha: self._cur_senario = None 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/params', self.handle_volume_params) self._client.subscribe_callback('yamaha/cmnd/power', self.handle_power) @@ -73,6 +74,10 @@ class Yamaha: 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): r = self.request(Zone().get_status('main')) msg = { @@ -102,4 +107,6 @@ class Yamaha: self.request(Zone().set_power('main', 'standby')) 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)