Browse Source

场景数据增加no_device_task

locky 1 year ago
parent
commit
40cf71f166
1 changed files with 6 additions and 3 deletions
  1. 6 3
      Controller/SensorGateway/SmartSceneController.py

+ 6 - 3
Controller/SensorGateway/SmartSceneController.py

@@ -1098,7 +1098,7 @@ class SmartSceneView(View):
         task_list = []
         scene_task_list = []
         total_delay_time = 0
-        no_device_task = False
+        no_device_task = True
         is_last_task = False
         tasks_len = len(tasks_list)
 
@@ -1115,7 +1115,6 @@ class SmartSceneView(View):
             # 处理插座数据
             # 不用添加到设备的任务列表,添加到mqtt任务列表
             if sensor_type == DEVICE_TYPE['socket']:
-                no_device_task = True
                 serial_number = task['serial_number']
                 event_type = int(task['event_type'])
                 delay_time = task['delay_time']
@@ -1129,6 +1128,7 @@ class SmartSceneView(View):
                 # 如果条件为设置时间,创建定时任务
                 if is_set_time:
                     smart_scene_id = 0
+                    # 无设备任务,且是最后一个任务,需要通过scene_id上报场景日志
                     if no_device_task and is_last_task:
                         smart_scene_id = scene_id
                     task_temp['task_id'] = cls.create_aps_job(
@@ -1136,6 +1136,7 @@ class SmartSceneView(View):
                         smart_scene_id)
                 scene_task_list.append(task_temp)
             else:
+                no_device_task = False
                 task_temp = {
                     'sensor_type': sensor_type,
                     'sensor_delay': 0
@@ -1168,7 +1169,8 @@ class SmartSceneView(View):
         if scene_task_list:
             scene_data = {
                 'condition': condition,
-                'task_list': scene_task_list
+                'task_list': scene_task_list,
+                'no_device_task': no_device_task
             }
 
         return task_list, scene_data
@@ -1465,6 +1467,7 @@ class SmartSceneView(View):
         else:
             now_time = int(time.time())
             time_stamp = scene_data_dict['condition']['time_dict']['time_stamp']
+            # 恢复定时任务
             if time_stamp > now_time:
                 for time_task in time_task_list:
                     task_id = time_task.get('task_id')