|
@@ -432,7 +432,8 @@ class SmartSceneView(View):
|
|
|
smart_scene_qs = SmartScene.objects.filter(user_id=user_id, sub_device_id=sub_device_id)
|
|
|
if not smart_scene_qs.exists():
|
|
|
return response.json(173)
|
|
|
- smart_scene_qs = smart_scene_qs.values('id', 'scene_name', 'is_enable', 'device_id', 'sub_device_id')
|
|
|
+ smart_scene_qs = smart_scene_qs.values(
|
|
|
+ 'id', 'scene_name', 'is_enable', 'device_id', 'sub_device_id', 'tasks')
|
|
|
smart_scene_list = []
|
|
|
for item in smart_scene_qs:
|
|
|
smart_scene_dict = {
|
|
@@ -441,8 +442,17 @@ class SmartSceneView(View):
|
|
|
'is_enable': item['is_enable']
|
|
|
}
|
|
|
if item['device_id']:
|
|
|
- device_qs = Device_Info.objects.filter(id=item['device_id'], userID=user_id).values('NickName',
|
|
|
- 'Type')
|
|
|
+ data = {
|
|
|
+ 'userID': user_id
|
|
|
+ }
|
|
|
+ # 如果最后一个任务执行的设备是插座,返回插座数据,否则返回网关数据
|
|
|
+ tasks_list = eval(item['tasks'])
|
|
|
+ last_task = tasks_list[-1:]
|
|
|
+ if int(last_task['device_type']) == DEVICE_TYPE['socket']:
|
|
|
+ data['serial_number'] = last_task['serial_number']
|
|
|
+ else:
|
|
|
+ data['id'] = item['device_id']
|
|
|
+ device_qs = Device_Info.objects.filter(**data).values('NickName', 'Type')
|
|
|
smart_scene_dict['device_type'] = device_qs[0]['Type'] if device_qs.exists() else ''
|
|
|
smart_scene_dict['device_nickname'] = device_qs[0]['NickName'] if device_qs.exists() else ''
|
|
|
else:
|