|
@@ -306,7 +306,7 @@ class GatewayView(View):
|
|
|
return response.json(444)
|
|
|
|
|
|
smart_scene_qs = SmartScene.objects.filter(id=scene_id).values('scene_name', 'conditions', 'tasks', 'device_id',
|
|
|
- 'sub_device_id', 'user_id')
|
|
|
+ 'sub_device_id', 'user_id', 'scene_data')
|
|
|
if not smart_scene_qs.exists():
|
|
|
return response.json(173)
|
|
|
|
|
@@ -316,6 +316,7 @@ class GatewayView(View):
|
|
|
sub_device_id = smart_scene_qs[0]['sub_device_id']
|
|
|
n_time = int(time.time())
|
|
|
user_id = smart_scene_qs[0]['user_id']
|
|
|
+ scene_data = smart_scene_qs[0]['scene_data']
|
|
|
if sub_device_id:
|
|
|
gateway_sub_device_qs = GatewaySubDevice.objects.filter(id=sub_device_id).values('nickname')
|
|
|
nickname = gateway_sub_device_qs[0]['nickname'] if gateway_sub_device_qs.exists() else ''
|
|
@@ -335,6 +336,15 @@ class GatewayView(View):
|
|
|
|
|
|
try:
|
|
|
SceneLog.objects.create(**log_dict)
|
|
|
+ # 如果是一次性场景,关闭场景
|
|
|
+ if scene_data:
|
|
|
+ scene_data_dict = eval(scene_data)
|
|
|
+ condition = scene_data_dict.get('condition')
|
|
|
+ if condition:
|
|
|
+ time_type = condition.get('time')
|
|
|
+ if time_type == 'date':
|
|
|
+ smart_scene_qs.update(is_enable=False)
|
|
|
+
|
|
|
# 推送日志
|
|
|
gateway_push_qs = GatewayPush.objects.filter(user_id=user_id, logout=False). \
|
|
|
values('user_id', 'app_bundle_id', 'app_type', 'push_type', 'token_val', 'm_code', 'lang', 'm_code',
|