소스 검색

网关删除设备后重置设备

peng 2 년 전
부모
커밋
69e33dbec7
1개의 변경된 파일22개의 추가작업 그리고 1개의 파일을 삭제
  1. 22 1
      Controller/SensorGateway/GatewayDeviceController.py

+ 22 - 1
Controller/SensorGateway/GatewayDeviceController.py

@@ -202,6 +202,7 @@ class GatewayDeviceView(View):
                             ieee_addr_list = gateway_qs.values_list('ieee_addr', flat=True)
                             topic_name = SUB_DEVICE_TOPIC.format(serial_number)
                             for ieee_addr in ieee_addr_list:
+                                # 删除设备
                                 msg = {
                                     'zigbee': 'delete',
                                     'ieee': ieee_addr
@@ -212,6 +213,16 @@ class GatewayDeviceView(View):
                                 except AssertionError:
                                     return response.json(10044)
                                 time.sleep(0.3)
+                                # 重置设备
+                                msg = {
+                                    'zigbee': 'recover',
+                                }
+                                success = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
+                                try:
+                                    assert success
+                                except AssertionError:
+                                    return response.json(10044)
+                                time.sleep(0.3)
 
                         else:
                             smart_scene_qs = SmartScene.objects.filter(device_id=device_id)
@@ -250,6 +261,7 @@ class GatewayDeviceView(View):
                     ieee_addr_list = gateway_sub_device_qs.values_list('ieee_addr', flat=True)
                     topic_name = SUB_DEVICE_TOPIC.format(serial_number)
                     for ieee_addr in ieee_addr_list:
+                        # 删除设备
                         msg = {
                             'zigbee': 'delete',
                             'ieee': ieee_addr
@@ -260,7 +272,16 @@ class GatewayDeviceView(View):
                         except AssertionError:
                             return response.json(10044)
                         time.sleep(0.3)
-
+                        # 重置设备
+                        msg = {
+                            'zigbee': 'recover',
+                        }
+                        success = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
+                        try:
+                            assert success
+                        except AssertionError:
+                            return response.json(10044)
+                        time.sleep(0.3)
                     # 删除场景,下发MQTT通知设备
                     smart_scene_qs = SmartScene.objects.filter(sub_device_id__in=sub_id_list)
                     if smart_scene_qs.exists():