Ver Fonte

修改创建/编辑场景sensor_type==-1时下发的数据

locky há 2 anos atrás
pai
commit
e728d7590d
1 ficheiros alterados com 43 adições e 37 exclusões
  1. 43 37
      Controller/SensorGateway/SmartSceneController.py

+ 43 - 37
Controller/SensorGateway/SmartSceneController.py

@@ -319,28 +319,31 @@ class SmartSceneView(View):
                 msg['scene_id'] = smart_scene_qs.id
                 task_list = []
                 for task in tasks_list:
+                    sensor_type = int(task['device_type'])
                     task_temp = {
-                        'sensor_type': int(task['device_type']),
-                        'sensor_action': int(task['event_type'])
+                        'sensor_type': sensor_type
                     }
+                    if sensor_type != -1:   # 不为-1时需要其他数据
+                        task_temp['sensor_action'] = int(task['event_type'])
+
+                        # 延时
+                        if 'delay_time' in task and task['delay_time'] != 0:
+                            task_temp['sensor_delay'] = task['delay_time']
+
+                        # 子设备返回长地址
+                        sub_device_id = task.get('subDeviceId', None)
+                        if sub_device_id:
+                            sub_device_qs = GatewaySubDevice.objects.filter(id=sub_device_id).values('ieee_addr').first()
+                            task_temp['sensor_ieee_addr'] = sub_device_qs['ieee_addr']
+                        # 网关添加报警类型数据
+                        else:
+                            task_temp['voice_type'] = task.get('voice_type')
+                            task_temp['voice_id'] = task.get('voice_id')
+                            task_temp['count'] = task.get('count')
+                            task_temp['delay_time'] = task.get('delay_time')
+                            task_temp['duration'] = task.get('duration')
+                            task_temp['value_type'] = task.get('value_type')
 
-                    # 延时
-                    if 'delay_time' in task and task['delay_time'] != 0:
-                        task_temp['sensor_delay'] = task['delay_time']
-
-                    # 子设备返回长地址
-                    sub_device_id = task.get('subDeviceId', None)
-                    if sub_device_id:
-                        sub_device_qs = GatewaySubDevice.objects.filter(id=sub_device_id).values('ieee_addr').first()
-                        task_temp['sensor_ieee_addr'] = sub_device_qs['ieee_addr']
-                    # 网关添加报警类型数据
-                    else:
-                        task_temp['voice_type'] = task.get('voice_type')
-                        task_temp['voice_id'] = task.get('voice_id')
-                        task_temp['count'] = task.get('count')
-                        task_temp['delay_time'] = task.get('delay_time')
-                        task_temp['duration'] = task.get('duration')
-                        task_temp['value_type'] = task.get('value_type')
                     task_list.append(task_temp)
 
                 msg['task'] = task_list
@@ -649,28 +652,31 @@ class SmartSceneView(View):
 
             task_list = []
             for task in tasks_list:
+                sensor_type = int(task['device_type'])
                 task_temp = {
-                    'sensor_type': int(task['device_type']),
-                    'sensor_action': int(task['event_type'])
+                    'sensor_type': sensor_type
                 }
+                if sensor_type != -1:   # 不为-1时需要其他数据
+                    task_temp['sensor_action'] = int(task['event_type'])
 
-                # 延时
-                if 'delay_time' in task and task['delay_time'] != 0:
-                    task_temp['sensor_delay'] = task['delay_time']
+                    # 延时
+                    if 'delay_time' in task and task['delay_time'] != 0:
+                        task_temp['sensor_delay'] = task['delay_time']
+
+                    # 子设备返回长地址
+                    task_sub_device_id = task.get('subDeviceId', None)
+                    if task_sub_device_id:
+                        sub_device_qs = GatewaySubDevice.objects.filter(id=task_sub_device_id).values('ieee_addr').first()
+                        task_temp['sensor_ieee_addr'] = sub_device_qs['ieee_addr']
+                    # 网关添加报警类型数据
+                    else:
+                        task_temp['voice_type'] = task.get('voice_type')
+                        task_temp['voice_id'] = task.get('voice_id')
+                        task_temp['count'] = task.get('count')
+                        task_temp['delay_time'] = task.get('delay_time')
+                        task_temp['duration'] = task.get('duration')
+                        task_temp['value_type'] = task.get('value_type')
 
-                # 子设备返回长地址
-                task_sub_device_id = task.get('subDeviceId', None)
-                if task_sub_device_id:
-                    sub_device_qs = GatewaySubDevice.objects.filter(id=task_sub_device_id).values('ieee_addr').first()
-                    task_temp['sensor_ieee_addr'] = sub_device_qs['ieee_addr']
-                # 网关添加报警类型数据
-                else:
-                    task_temp['voice_type'] = task.get('voice_type')
-                    task_temp['voice_id'] = task.get('voice_id')
-                    task_temp['count'] = task.get('count')
-                    task_temp['delay_time'] = task.get('delay_time')
-                    task_temp['duration'] = task.get('duration')
-                    task_temp['value_type'] = task.get('value_type')
                 task_list.append(task_temp)
 
             msg['task'] = task_list