added some rich logging

This commit is contained in:
John Lancaster
2024-03-03 14:54:11 -06:00
parent d8a9d3d83a
commit 215d47ea00
3 changed files with 97 additions and 79 deletions

View File

@@ -1,17 +1,21 @@
import json
from appdaemon.plugins.mqtt.mqttapi import Mqtt
from console import setup_logging
from room_control import RoomController
class Button(Mqtt):
async def initialize(self):
if self.args.get('rich', False):
setup_logging(self)
self.app: RoomController = await self.get_app(self.args['app'])
self.setup_buttons(self.args['button'])
def setup_buttons(self, buttons):
if isinstance(buttons, list):
for button in buttons:
for button in buttons:
self.setup_button(button)
else:
self.setup_button(buttons)
@@ -19,7 +23,7 @@ class Button(Mqtt):
def setup_button(self, name: str):
topic = f'zigbee2mqtt/{name}'
self.mqtt_subscribe(topic, namespace='mqtt')
self.listen_event(self.handle_button, "MQTT_MESSAGE", topic=topic, namespace='mqtt', button=name)
self.listen_event(self.handle_button, 'MQTT_MESSAGE', topic=topic, namespace='mqtt', button=name)
self.log(f'"{topic}" controls app {self.app.name}')
def handle_button(self, event_name, data, kwargs):
@@ -28,7 +32,7 @@ class Button(Mqtt):
action = payload['action']
except json.JSONDecodeError:
self.log(f'Error decoding JSON from {data["payload"]}', level='ERROR')
except KeyError as e:
except KeyError:
return
else:
if action != '':
@@ -38,12 +42,10 @@ class Button(Mqtt):
if action == 'single':
self.log(f' {action.upper()} '.center(50, '='))
state = self.get_state(self.args['ref_entity'])
kwargs = {
'kwargs': {'cause': f'button single click: toggle while {state}'}
}
kwargs = {'kwargs': {'cause': f'button single click: toggle while {state}'}}
if state == 'on':
self.app.deactivate(**kwargs)
else:
self.app.activate(**kwargs)
else:
pass
pass