Browse Source

删除智能按钮通知设备

locky 3 years ago
parent
commit
8460bb5a0f
1 changed files with 14 additions and 1 deletions
  1. 14 1
      Controller/SensorGateway/GatewayDeviceController.py

+ 14 - 1
Controller/SensorGateway/GatewayDeviceController.py

@@ -10,14 +10,15 @@ from django.db import transaction
 from django.db.models import Q
 from django.views.generic.base import View
 
+from Ansjer.config import SMART_SCENE_TOPIC_NAME
 from Controller.SensorGateway.EquipmentFamilyController import EquipmentFamilyView
 from Model.models import FamilyRoomDevice, FamilyRoom, GatewaySubDevice, Device_Info, UserFamily, FamilyMember, \
     UidSetModel, iotdeviceInfoModel, SmartScene
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
+from Service.CommonService import CommonService
 
 
-# 网关主页
 class GatewayDeviceView(View):
 
     def get(self, request, *args, **kwargs):
@@ -168,6 +169,18 @@ class GatewayDeviceView(View):
                     for item in sub_ids:
                         sub_id = int(item)
                         ids.append(sub_id)
+                        # 删除智能按钮通知设备
+                        sub_device_qs = GatewaySubDevice.objects.filter(id=sub_id).values('device_type',
+                                                                                          'device__serial_number',
+                                                                                          'src_addr')
+                        device_type = sub_device_qs[0]['device_type']
+                        if device_type == 216:
+                            serial_number = sub_device_qs[0]['device__serial_number']
+                            topic_name = SMART_SCENE_TOPIC_NAME.format(serial_number)
+                            msg = {
+                                'sos_delete': sub_device_qs[0]['src_addr']
+                            }
+                            CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
                     family_device_qs = FamilyRoomDevice.objects.filter(sub_device__in=ids)
                     if family_device_qs.exists():
                         family_device_qs.delete()