Skip to content

[Bug]: Xiaomi parsing error #1504

@Fulch

Description

@Fulch

What happened?

Home Assistant logs 2 separate errors for Xiaomi sensors
HA Core 2025.9.3
Ble Monitor 13.10.1

Sensor type

MJYD02YL Night Light or XMOSB01S Occupancy Sensor

Relevant log output

This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/ble_monitor/ble_parser/xiaomi.py:865
integration: Passive BLE monitor (documentation, issues)
First occurred: 18 September 2025 at 22:12:34 (34 occurrences)
Last logged: 08:40:43

Error doing job: Fatal error: protocol.data_received() call failed. (None)
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 1019, in _read_ready__data_received
    self._protocol.data_received(data)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aioblescan/aioblescan.py", line 1855, in data_received
    self.process(packet)
    ~~~~~~~~~~~~^^^^^^^^
  File "/config/custom_components/ble_monitor/__init__.py", line 598, in process_hci_events
    sensor_msg, tracker_msg = self.ble_parser.parse_raw_data(data)
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/config/custom_components/ble_monitor/ble_parser/__init__.py", line 175, in parse_raw_data
    sensor_data, tracker_data = self.parse_advertisement(
                                ~~~~~~~~~~~~~~~~~~~~~~~~^
        mac,
        ^^^^
    ...<5 lines>...
        man_spec_data_list
        ^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/config/custom_components/ble_monitor/ble_parser/__init__.py", line 264, in parse_advertisement
    sensor_data = parse_xiaomi(self, service_data, mac)
  File "/config/custom_components/ble_monitor/ble_parser/xiaomi.py", line 1590, in parse_xiaomi
    result.update(resfunc(dobject))
                  ~~~~~~~^^^^^^^^^
  File "/config/custom_components/ble_monitor/ble_parser/xiaomi.py", line 865, in obj4852
    (duration,) = struct.unpack("<I", xobj)
                  ~~~~~~~~~~~~~^^^^^^^^^^^^
struct.error: unpack requires a buffer of 4 bytes

This error originated from a custom integration.

Logger: homeassistant
Source: custom_components/ble_monitor/ble_parser/xiaomi.py:859
integration: Passive BLE monitor (documentation, issues)
First occurred: 18 September 2025 at 17:52:30 (26 occurrences)
Last logged: 08:43:21

Error doing job: Fatal error: protocol.data_received() call failed. (None)
Traceback (most recent call last):
  File "/usr/local/lib/python3.13/asyncio/selector_events.py", line 1019, in _read_ready__data_received
    self._protocol.data_received(data)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/usr/local/lib/python3.13/site-packages/aioblescan/aioblescan.py", line 1855, in data_received
    self.process(packet)
    ~~~~~~~~~~~~^^^^^^^^
  File "/config/custom_components/ble_monitor/__init__.py", line 598, in process_hci_events
    sensor_msg, tracker_msg = self.ble_parser.parse_raw_data(data)
                              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^
  File "/config/custom_components/ble_monitor/ble_parser/__init__.py", line 175, in parse_raw_data
    sensor_data, tracker_data = self.parse_advertisement(
                                ~~~~~~~~~~~~~~~~~~~~~~~~^
        mac,
        ^^^^
    ...<5 lines>...
        man_spec_data_list
        ^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/config/custom_components/ble_monitor/ble_parser/__init__.py", line 264, in parse_advertisement
    sensor_data = parse_xiaomi(self, service_data, mac)
  File "/config/custom_components/ble_monitor/ble_parser/xiaomi.py", line 1590, in parse_xiaomi
    result.update(resfunc(dobject))
                  ~~~~~~~^^^^^^^^^
  File "/config/custom_components/ble_monitor/ble_parser/xiaomi.py", line 859, in obj4851
    (duration,) = struct.unpack("<I", xobj)
                  ~~~~~~~~~~~~~^^^^^^^^^^^^
struct.error: unpack requires a buffer of 4 bytes

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions