|
@@ -9,13 +9,14 @@ import time
|
|
|
|
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import SwitchInfo, SwitchDimmingSettings, SwitchChronopher, Device_Info, SceneLog
|
|
|
+from Model.models import SwitchInfo, SwitchDimmingSettings, SwitchChronopher, Device_Info, SceneLog, FamilyRoomDevice
|
|
|
from Service.CommonService import CommonService
|
|
|
from Object.ApschedulerObject import ApschedulerObject
|
|
|
from django.db import transaction
|
|
|
from Ansjer.config import LOGGER
|
|
|
|
|
|
APSCHEDULER_TOPIC_NAME = 'loocam/switch/time_scheduling/{}' # 排程主题
|
|
|
+RESET_SWITCH_TOPIC_NAME = 'loocam/smart-switch/{}' # 重置设备
|
|
|
|
|
|
|
|
|
class SmartSwitchView(View):
|
|
@@ -86,7 +87,6 @@ class SmartSwitchView(View):
|
|
|
"""
|
|
|
获取智能开关调光设置信息
|
|
|
@param request_dict: 请求参数
|
|
|
- @param user_id: 用戶user_id
|
|
|
@request_dict deviceId: 设备id
|
|
|
@param response: 响应对象
|
|
|
@return: response
|
|
@@ -458,15 +458,39 @@ class SmartSwitchView(View):
|
|
|
serial_number = request_dict.get('serialNumber', None)
|
|
|
if not serial_number:
|
|
|
return response.json(444, {'error param': 'serialNumber'})
|
|
|
- device_qs = Device_Info.objects.filter(serial_number=serial_number)
|
|
|
+ device_qs = Device_Info.objects.filter(serial_number=serial_number).values('id')
|
|
|
if not device_qs.exists():
|
|
|
return response.json(173)
|
|
|
- device_id_list = list(device_qs.values_list('id', flat=True))
|
|
|
+ device_id = device_qs[0]['device_id']
|
|
|
try:
|
|
|
# 删除智能开关数据
|
|
|
- SwitchDimmingSettings.objects.filter(device_id__in=device_id_list).delete()
|
|
|
- SwitchChronopher.objects.filter(device_id__in=device_id_list).delete()
|
|
|
- SceneLog.objects.filter(device_id__in=device_id_list).delete()
|
|
|
+ SwitchDimmingSettings.objects.filter(device_id=device_id).delete()
|
|
|
+ SwitchChronopher.objects.filter(device_id=device_id).delete()
|
|
|
+ SceneLog.objects.filter(device_id=device_id).delete()
|
|
|
+ FamilyRoomDevice.objects.filter(device_id=device_id).delete()
|
|
|
+ Device_Info.objects.filter(id=device_id).delete()
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def del_switch(device_id, serial_number):
|
|
|
+ """
|
|
|
+ 删除开关
|
|
|
+ @param device_id: 设备id
|
|
|
+ @param serial_number: 设备序列号
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ try:
|
|
|
+ SwitchDimmingSettings.objects.filter(device_id=device_id).delete()
|
|
|
+ SwitchChronopher.objects.filter(device_id=device_id).delete()
|
|
|
+ SceneLog.objects.filter(device_id=device_id).delete()
|
|
|
+ msg = {
|
|
|
+ "device_reset": 1 # 重置智能开关
|
|
|
+ }
|
|
|
+ topic_name = RESET_SWITCH_TOPIC_NAME.format(serial_number)
|
|
|
+ result = CommonService.req_publish_mqtt_msg(serial_number, topic_name, msg)
|
|
|
+ LOGGER.info('执行重置开关mqtt结果:{}'.format(result))
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
|
- return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|
|
|
+ LOGGER.info('error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
|