diff --git a/zigpy_deconz/api.py b/zigpy_deconz/api.py index d1d54e8..975ed9c 100644 --- a/zigpy_deconz/api.py +++ b/zigpy_deconz/api.py @@ -23,6 +23,9 @@ Struct, ZigbeePacket, ) +from zigpy.zgp.types import ( + GPDataFrame, +) from zigpy.zdo.types import SimpleDescriptor from zigpy_deconz.exception import APIException, CommandError @@ -399,7 +402,7 @@ class Command(Struct): "status": Status, "frame_length": t.uint16_t, "payload_length": t.uint16_t, - "reserved": t.LongOctetString, + "gp_data_frame": GPDataFrame }, ), } @@ -690,6 +693,18 @@ async def _data_poller(self): status=rsp["status"], device_state=rsp["device_state"] ) + def _handle_zigbee_green_power( + self, + status: Status, + gp_data_frame: GPDataFrame + ) -> None: + if status == Status.SUCCESS: + asyncio.ensure_future( + self._app._greenpower.handle_received_green_power_frame(gp_data_frame), + loop=asyncio.get_running_loop() + ) + + def _handle_device_state_changed( self, status: t.Status,