zigpy / zigpy-znp

TI CC2531, CC13x2, CC26x2 radio support for Zigpy and ZHA
GNU General Public License v3.0
146 stars 40 forks source link

Develco Products "ZigBee Wallplug HA SP2" unsupported frame #227

Closed galmok closed 12 months ago

galmok commented 12 months ago

I have two Wallplugs that triggers an exception in zigpy:

2023-10-08 05:02:02.396 ERROR (MainThread) [zigpy_znp.uart] Received an exception while passing frame to API: TransportFrame(payload=GeneralFrame(header=CommandHeader(id=0xB1, subsystem=Subsystem.ZDO, type=CommandType.AREQ), data=b'\x1F\x82\x84'))
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/zigpy_znp/types/commands.py", line 417, in from_frame
    params[param.name], data = param.type.deserialize(data)
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/zigpy/types/struct.py", line 302, in deserialize
    value, data = field.type.deserialize(data)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/zigpy/types/basic.py", line 193, in deserialize
    raise ValueError(f"Data is too short to contain {byte_size} bytes")
ValueError: Data is too short to contain 1 bytes

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/zigpy_znp/uart.py", line 72, in data_received
    self._api.frame_received(frame.payload)
  File "/usr/local/lib/python3.11/site-packages/zigpy_znp/api.py", line 830, in frame_received
    command = command_cls.from_frame(frame, align=self.nvram.align_structs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/zigpy_znp/types/commands.py", line 424, in from_frame
    raise ValueError(
ValueError: Frame data is truncated (parsed {'Src': 0x821F, 'Status': <Status.NOT_SUPPORTED: 132>}), required parameter remains: Param(name='Neighbors', type=<class 'zigpy.zdo.types.Neighbors'>, description='Neighbors', optional=False)

I don't know what these frames mean. The plugs seem to operate just fine, but once in a while send a frame that zigpy doesn't understand.