|
@@ -9,11 +9,9 @@ import json
|
|
|
import os
|
|
|
import threading
|
|
|
import time
|
|
|
-
|
|
|
from django.views import View
|
|
|
|
|
|
-from Model.models import SwitchInfo, SwitchDimmingSettings, SwitchChronopher, Device_Info, SceneLog, FamilyRoomDevice, \
|
|
|
- iotdeviceInfoModel
|
|
|
+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
|
|
@@ -297,9 +295,6 @@ class SmartSwitchView(View):
|
|
|
# 设置定时任务
|
|
|
serial_number = device_qs[0]['serial_number']
|
|
|
topic_name = APSCHEDULER_TOPIC_NAME.format(serial_number)
|
|
|
- endpoint, token, signature = SmartSwitchView.get_mqtt(serial_number)
|
|
|
- if not all([endpoint, token, signature]):
|
|
|
- return response.json(173)
|
|
|
if time_type_radio == 1:
|
|
|
task_id = 'switchchronopher_{}'.format(chronopher_id)
|
|
|
if time_point_device_will_doing in ['0', '1']: # 开启或关闭
|
|
@@ -316,8 +311,6 @@ class SmartSwitchView(View):
|
|
|
'slowTime': slow_open_or_close_speed
|
|
|
}
|
|
|
time_str = datetime.datetime.fromtimestamp(int(time_point))
|
|
|
- # apscheduler_obj.create_cron_job('server:send_mqtt', task_id, repeat, time_str.hour,
|
|
|
- # time_str.minute, [topic_name, msg, endpoint, token, signature])
|
|
|
apscheduler_obj.create_cron_job(SmartSwitchView.send_mqtt, task_id, repeat, time_str.hour,
|
|
|
time_str.minute, [serial_number, topic_name, msg, task_id])
|
|
|
else:
|
|
@@ -398,20 +391,6 @@ class SmartSwitchView(View):
|
|
|
int(time.time()), task_id,
|
|
|
threading.get_ident(), os.getpid()))
|
|
|
|
|
|
- @staticmethod
|
|
|
- def get_mqtt(identification_code):
|
|
|
- if identification_code.endswith('11L'):
|
|
|
- thing_name = 'LC_' + identification_code
|
|
|
- else:
|
|
|
- thing_name = 'Ansjer_Device_' + identification_code
|
|
|
- iot = iotdeviceInfoModel.objects.filter(thing_name=thing_name).values('endpoint', 'token_iot_number')
|
|
|
- if not iot.exists():
|
|
|
- return None, None, None
|
|
|
- endpoint = iot[0]['endpoint']
|
|
|
- token = iot[0]['token_iot_number']
|
|
|
- signature = CommonService.rsa_sign(token) # Token签名
|
|
|
- return endpoint, token, signature
|
|
|
-
|
|
|
@staticmethod
|
|
|
def create_log(request_dict, response):
|
|
|
"""
|
|
@@ -502,7 +481,14 @@ class SmartSwitchView(View):
|
|
|
try:
|
|
|
# 删除智能开关数据
|
|
|
SwitchDimmingSettings.objects.filter(device_id=device_id).delete()
|
|
|
- SwitchChronopher.objects.filter(device_id=device_id).delete()
|
|
|
+ chronopher_qs = SwitchChronopher.objects.filter(device_id=device_id)
|
|
|
+ if chronopher_qs.exists():
|
|
|
+ chronopher_id = chronopher_qs[0].id
|
|
|
+ apscheduler_obj = ApschedulerObject()
|
|
|
+ apscheduler_obj.del_job('switchchronopher_{}'.format(chronopher_id)) # 删除定时任务
|
|
|
+ apscheduler_obj.del_job('switchchronopher_{}_1'.format(chronopher_id))
|
|
|
+ apscheduler_obj.del_job('switchchronopher_{}_2'.format(chronopher_id))
|
|
|
+ chronopher_qs.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()
|
|
@@ -520,7 +506,14 @@ class SmartSwitchView(View):
|
|
|
"""
|
|
|
try:
|
|
|
SwitchDimmingSettings.objects.filter(device_id=device_id).delete()
|
|
|
- SwitchChronopher.objects.filter(device_id=device_id).delete()
|
|
|
+ chronopher_qs = SwitchChronopher.objects.filter(device_id=device_id)
|
|
|
+ if chronopher_qs.exists():
|
|
|
+ chronopher_id = chronopher_qs[0].id
|
|
|
+ apscheduler_obj = ApschedulerObject()
|
|
|
+ apscheduler_obj.del_job('switchchronopher_{}'.format(chronopher_id)) # 删除定时任务
|
|
|
+ apscheduler_obj.del_job('switchchronopher_{}_1'.format(chronopher_id))
|
|
|
+ apscheduler_obj.del_job('switchchronopher_{}_2'.format(chronopher_id))
|
|
|
+ chronopher_qs.delete()
|
|
|
SceneLog.objects.filter(device_id=device_id).delete()
|
|
|
msg = {
|
|
|
"device_reset": 1 # 重置智能开关
|