Skip to content

Commit

Permalink
Add some additional logging to client (#337)
Browse files Browse the repository at this point in the history
  • Loading branch information
marcelveldt committed Jun 27, 2023
1 parent beb3d64 commit d3f8967
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 13 deletions.
23 changes: 20 additions & 3 deletions matter_server/client/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -386,7 +386,6 @@ def _handle_incoming_message(self, msg: MessageType) -> None:

# handle EventMessage
if isinstance(msg, EventMessage):
self.logger.debug("Received event: %s", msg.event)
self._handle_event_message(msg)
return

Expand All @@ -407,29 +406,41 @@ def _handle_event_message(self, msg: EventMessage) -> None:
event = EventType.NODE_ADDED
node = MatterNode(node_data)
self._nodes[node.node_id] = node
self.logger.debug("New node added: %s", node.node_id)
else:
event = EventType.NODE_UPDATED
node.update(node_data)
self.logger.debug("Node updated: %s", node.node_id)
self._signal_event(event, data=node, node_id=node.node_id)
return
if msg.event == EventType.NODE_REMOVED:
node_id = msg.data
self.logger.debug("Node removed: %s", node_id)
self._signal_event(EventType.NODE_REMOVED, data=node_id, node_id=node_id)
# cleanup node only after signalling subscribers
self._nodes.pop(node_id, None)
return
if msg.event == EventType.ENDPOINT_REMOVED:
node_id = msg.data["node_id"]
endpoint_id = msg.data["endpoint_id"]
self.logger.debug("Endpoint removed: %s/%s", node_id, endpoint_id)
self._signal_event(
EventType.ENDPOINT_REMOVED, data=msg.data, node_id=node_id
)
# cleanup endpoint only after signalling subscribers
if node := self._nodes.get(node_id):
node.endpoints.pop(msg.data["endpoint_id"], None)
node.endpoints.pop(endpoint_id, None)
return
if msg.event == EventType.ATTRIBUTE_UPDATED:
# data is tuple[node_id, attribute_path, new_value]
node_id, attribute_path, new_value = msg.data
if self.logger.isEnabledFor(logging.DEBUG):
self.logger.debug(
"Attribute updated: Node: %s - Attribute: %s - New value: %s",
node_id,
attribute_path,
new_value,
)
self._nodes[node_id].update_attribute(attribute_path, new_value)
self._signal_event(
EventType.ATTRIBUTE_UPDATED,
Expand All @@ -438,7 +449,13 @@ def _handle_event_message(self, msg: EventMessage) -> None:
attribute_path=attribute_path,
)
return
# TODO: handle any other events ?
if msg.event == EventType.ENDPOINT_ADDED:
node_id = msg.data["node_id"]
endpoint_id = msg.data["endpoint_id"]
self.logger.debug("Endpoint added: %s/%s", node_id, endpoint_id)
# simply forward all other events as-is
if self.logger.isEnabledFor(logging.DEBUG):
self.logger.debug("Received event: %s", msg)
self._signal_event(msg.event, msg.data)

def _signal_event(
Expand Down
14 changes: 4 additions & 10 deletions matter_server/client/connection.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,11 +130,8 @@ async def receive_message_or_raise(self) -> MessageType:
except ValueError as err:
raise InvalidMessage("Received invalid JSON.") from err

if LOGGER.isEnabledFor(logging.DEBUG):
if VERBOSE_LOGGER:
LOGGER.debug("Received message:\n%s\n", pprint.pformat(ws_msg))
else:
LOGGER.debug("Received message: %s ...", ws_msg.data[:50])
if VERBOSE_LOGGER and LOGGER.isEnabledFor(logging.DEBUG):
LOGGER.debug("Received message:\n%s\n", pprint.pformat(ws_msg))

return msg

Expand All @@ -147,11 +144,8 @@ async def send_message(self, message: CommandMessage) -> None:
if not self.connected:
raise NotConnected

if LOGGER.isEnabledFor(logging.DEBUG):
if VERBOSE_LOGGER:
LOGGER.debug("Publishing message:\n%s\n", pprint.pformat(message))
else:
LOGGER.debug("Publishing message: %s", message)
if VERBOSE_LOGGER and LOGGER.isEnabledFor(logging.DEBUG):
LOGGER.debug("Publishing message:\n%s\n", pprint.pformat(message))

assert self._ws_client
assert isinstance(message, CommandMessage)
Expand Down

0 comments on commit d3f8967

Please sign in to comment.