diff --git a/line_works/mqtt/client.py b/line_works/mqtt/client.py index 5b80a77..191ffee 100644 --- a/line_works/mqtt/client.py +++ b/line_works/mqtt/client.py @@ -86,7 +86,7 @@ async def __handle_binary_message(self, message: bytes) -> None: elif p.unique_id: self._unique_ids.append(p.unique_id) except PacketParseException as e: - logger.error("packet parse error", exc_info=e) + logger.debug("packet parse error", exc_info=e) logger.debug(f"{packet=}") diff --git a/line_works/mqtt/models/packet.py b/line_works/mqtt/models/packet.py index 48fec92..62c0dc0 100644 --- a/line_works/mqtt/models/packet.py +++ b/line_works/mqtt/models/packet.py @@ -57,7 +57,12 @@ def publish_payload(self) -> dict[str, Any]: qos = (self.flags & 0x06) >> 1 if qos > 0: if len(self.raw_payload) < pos + 2: - raise PacketParseException("Packet too short for QoS > 0") + raise PacketParseException( + "Packet too short for QoS > 0: " + f"expected at least {pos + 2} bytes, " + f"but got {len(self.raw_payload)} bytes. " + f"raw_payload: {self.raw_payload.hex()}" + ) pos += 2 payload = self.raw_payload[pos:].decode("utf-8")