|
@@ -185,7 +185,7 @@ class SmartSwitchView(View):
|
|
|
'endTime': item['end_time'],
|
|
|
'actionsType': item['actions_type'],
|
|
|
'actions': item['actions'],
|
|
|
- 'slowOpenOrCloseSpeed': item['slow_open_or_close_speed'],
|
|
|
+ 'slowSpeed': item['slow_speed'],
|
|
|
'repeat': item['repeat'],
|
|
|
'isExecute': item['is_execute'],
|
|
|
})
|
|
@@ -296,29 +296,33 @@ class SmartSwitchView(View):
|
|
|
'slow_time': slow_speed
|
|
|
}
|
|
|
else:
|
|
|
- return response.json(444, {'param': 'timeTypeRadio'})
|
|
|
+ return response.json(444, {'param': 'actionsType'})
|
|
|
|
|
|
time_str = datetime.datetime.fromtimestamp(int(time_point))
|
|
|
celery_obj.creat_crontab_task(tz, task_id, MQTT_TASK, time_str.minute,
|
|
|
- time_str.hour, repeat, args=[serial_number, topic_name, msg, task_id])
|
|
|
+ time_str.hour, repeat,
|
|
|
+ args=[serial_number, topic_name, msg, task_id, 1, device_id,
|
|
|
+ json.dumps(scheduler_data)])
|
|
|
else: # 时间段任务
|
|
|
start_hour = int(start_time / 60 // 60)
|
|
|
start_minute = int(start_time / 60 % 60)
|
|
|
end_hour = int(end_time / 60 // 60)
|
|
|
end_minute = int(end_time / 60 % 60)
|
|
|
- if actions == '1':
|
|
|
+ if actions_type == '1':
|
|
|
begin_task_id = 'switchscheduler_{}_1'.format(scheduler_id) # 开始任务id
|
|
|
end_task_id = 'switchscheduler_{}_2'.format(scheduler_id) # 结束任务id
|
|
|
msg = {"task_id": scheduler_id,
|
|
|
"device_switch": int(actions)}
|
|
|
celery_obj.creat_crontab_task(tz, begin_task_id, MQTT_TASK, start_minute, start_hour, repeat,
|
|
|
- args=[serial_number, topic_name, msg, begin_task_id])
|
|
|
+ args=[serial_number, topic_name, msg, begin_task_id, 1,
|
|
|
+ device_id, json.dumps(scheduler_data)])
|
|
|
msg = {"task_id": scheduler_id,
|
|
|
"device_switch": 0 if int(actions) == 1 else 1}
|
|
|
celery_obj.creat_crontab_task(tz, end_task_id, MQTT_TASK, end_minute, end_hour, repeat,
|
|
|
- args=[serial_number, topic_name, msg, end_task_id])
|
|
|
+ args=[serial_number, topic_name, msg, end_task_id, 1,
|
|
|
+ device_id, json.dumps(scheduler_data)])
|
|
|
|
|
|
- elif actions == '3': # 间隔任务
|
|
|
+ elif actions_type == '3': # 间隔任务
|
|
|
minute = int(actions)
|
|
|
task_id = 'switchscheduler_{}'.format(scheduler_id) # 开始任务id
|
|
|
msg = {"task_id": scheduler_id,
|
|
@@ -330,7 +334,10 @@ class SmartSwitchView(View):
|
|
|
hour = '{}-{}'.format(start_hour, end_hour)
|
|
|
minute = '*/{}'.format(minute)
|
|
|
celery_obj.creat_crontab_task(tz, task_id, MQTT_TASK, minute, hour, repeat,
|
|
|
- args=[serial_number, topic_name, msg, task_id])
|
|
|
+ args=[serial_number, topic_name, msg, task_id, 1,
|
|
|
+ device_id, json.dumps(scheduler_data)])
|
|
|
+ else:
|
|
|
+ return response.json(444, {'param': 'actionsType'})
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
@@ -382,7 +389,7 @@ class SmartSwitchView(View):
|
|
|
scheduler_id = request_dict.get('schedulerId', None)
|
|
|
|
|
|
if not scheduler_id:
|
|
|
- return response.json(444, {'error param': 'deviceId or chronopherId'})
|
|
|
+ return response.json(444, {'error param': 'deviceId or schedulerId'})
|
|
|
try:
|
|
|
delete_flag = SwitchScheduler.objects.filter(device_id=device_id, id=scheduler_id).delete()
|
|
|
if not delete_flag[0]:
|
|
@@ -427,7 +434,6 @@ class SmartSwitchView(View):
|
|
|
添加/编辑计时器
|
|
|
@param request_dict: 请求参数
|
|
|
@request_dict deviceId: 设备id
|
|
|
- @request_dict chronopherId: 排程计划id
|
|
|
@request_dict CountdownTime: 倒计时时间(秒)
|
|
|
@request_dict timePointDeviceWillDoing: 设备将会
|
|
|
@request_dict timerStatus: 计时器状态
|
|
@@ -474,9 +480,10 @@ class SmartSwitchView(View):
|
|
|
return response.json(0)
|
|
|
redis_obj.set_hash_data(key, redis_dict)
|
|
|
redis_obj.set_expire(key, countdown_time)
|
|
|
- msg = {'device_switch': actions, 'implement_time': implement_time, 'task_id': task_id}
|
|
|
+ msg = {'device_switch': actions, 'task_id': task_id}
|
|
|
celery_obj.creat_clocked_task(task_id, MQTT_TASK, implement_time, tz,
|
|
|
- args=[serial_number, topic_name, msg, task_id])
|
|
|
+ args=[serial_number, topic_name, msg, task_id, 2,
|
|
|
+ device_id, json.dumps(redis_dict)])
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
@@ -494,15 +501,16 @@ class SmartSwitchView(View):
|
|
|
@return: response
|
|
|
"""
|
|
|
serial_number = request_dict.get('serial_number', None)
|
|
|
+ event_type = request_dict.get('event_type', None)
|
|
|
scheduler_id = request_dict.get('task_id', None)
|
|
|
operate_status = request_dict.get('status', None)
|
|
|
switch_status = request_dict.get('switch_status', None)
|
|
|
+ send_time = request_dict.get('send_time', None)
|
|
|
implement_time = request_dict.get('implement_time', None)
|
|
|
- brightness = request_dict.get('brightness', None)
|
|
|
|
|
|
- if not all([serial_number, scheduler_id, operate_status, switch_status, implement_time, brightness]):
|
|
|
+ if not all([serial_number, scheduler_id, operate_status, switch_status, implement_time]):
|
|
|
return response.json(444, {
|
|
|
- 'error param': 'serial_number, task_id, status, switch_status, implement_time, brightness'})
|
|
|
+ 'error param': 'serial_number, task_id, status, switch_status, implement_time'})
|
|
|
device_qs = Device_Info.objects.filter(serial_number=serial_number).values('id')
|
|
|
if not device_qs.exists():
|
|
|
return response.json(173)
|
|
@@ -519,17 +527,27 @@ class SmartSwitchView(View):
|
|
|
return response.json(173)
|
|
|
try:
|
|
|
scene_log = {
|
|
|
- 'scene_id': chronopher_id,
|
|
|
- 'device_id': device_id,
|
|
|
- 'tasks': json.dumps(scheduler_qs[0]),
|
|
|
'status': operate_status,
|
|
|
'created_time': implement_time,
|
|
|
}
|
|
|
- scene_qs = SceneLog.objects.filter(created_time=implement_time, device_id=device_id,
|
|
|
- scene_id=chronopher_id)
|
|
|
- if not scene_qs.exists():
|
|
|
+ if event_type == '1': # 排程任务
|
|
|
+ scene_qs = SceneLog.objects.filter(created_time=send_time, device_id=device_id, scene_id=scheduler_id)
|
|
|
+ tasks = json.dumps(scheduler_qs[0])
|
|
|
+ scene_id = scheduler_id
|
|
|
+ elif event_type == '2': # 计时器任务
|
|
|
+ scene_qs = SceneLog.objects.filter(created_time=send_time, device_id=device_id, scene_name=scheduler_id)
|
|
|
+ tasks = json.dumps({'timePoint': int(send_time), 'actions': int(switch_status)})
|
|
|
+ scene_id = 0
|
|
|
+ else:
|
|
|
+ return response.json(444, {'error param': 'event_type'})
|
|
|
+ if scene_qs.exists():
|
|
|
+ scene_qs.update(**scene_log)
|
|
|
+ else:
|
|
|
+ scene_log['tasks'] = tasks
|
|
|
+ scene_log['scene_id'] = scene_id
|
|
|
+ scene_log['scene_name'] = scene_id
|
|
|
+ scene_log['device_id'] = device_id
|
|
|
SceneLog.objects.create(**scene_log)
|
|
|
-
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
print(e)
|