|
@@ -111,7 +111,7 @@ class SmartSceneView(View):
|
|
|
|
|
|
if device_type != SENSOR_TYPE['smart_button']: # 非智能按钮只返回网关
|
|
|
res = [cls.get_gateway_data(device_id)]
|
|
|
- else: # 智能按钮返回网关,门磁和人体传感器(如果存在)
|
|
|
+ else: # 智能按钮返回网关,门磁和人体传感器(如果存在)
|
|
|
gateway_data = cls.get_gateway_data(device_id)
|
|
|
sub_device_qs = GatewaySubDevice.objects.filter(
|
|
|
Q(device_id=device_id) & Q(device_type=SENSOR_TYPE['door_magnet']) | Q(
|
|
@@ -373,8 +373,26 @@ 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')
|
|
|
- return response.json(0, list(smart_scene_qs))
|
|
|
+ smart_scene_qs = smart_scene_qs.values('id', 'scene_name', 'is_enable', 'device_id', 'sub_device_id')
|
|
|
+ smart_scene_list = []
|
|
|
+ for item in smart_scene_qs:
|
|
|
+ smart_scene_dict = {
|
|
|
+ 'id': item['id'],
|
|
|
+ 'scene_name': item['scene_name'],
|
|
|
+ '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')
|
|
|
+ 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:
|
|
|
+ device_qs = GatewaySubDevice.objects.filter(id=item['sub_device_id']).values('device_type',
|
|
|
+ 'nickname')
|
|
|
+ smart_scene_dict['device_type'] = device_qs[0]['device_type'] if device_qs.exists() else ''
|
|
|
+ smart_scene_dict['device_nickname'] = device_qs[0]['nickname'] if device_qs.exists() else ''
|
|
|
+ smart_scene_list.append(smart_scene_dict)
|
|
|
+ return response.json(0, smart_scene_list)
|
|
|
except Exception as e:
|
|
|
return response.json(500, repr(e))
|
|
|
|