|
@@ -58,6 +58,8 @@ class SmartSocketView(View):
|
|
|
return self.save_power_statistics(request_dict, ResponseObject('cn'))
|
|
|
elif operation == 'reset': # 设备复位
|
|
|
return self.socket_reset(request_dict, ResponseObject('cn'))
|
|
|
+ elif operation == 'alexa-socket-switch': # 新增alexa智能开关
|
|
|
+ return self.alexa_socket_switch(request_dict, ResponseObject('cn'))
|
|
|
token_code, user_id, response = CommonService \
|
|
|
.verify_token_get_user_id(request_dict, request)
|
|
|
if token_code != 0:
|
|
@@ -468,7 +470,8 @@ class SmartSocketView(View):
|
|
|
'power',
|
|
|
'created_time')
|
|
|
# 当天使用电量
|
|
|
- data['electricityToday'] = round(today_socket_power_qs[0]['electricity'], 1) if today_socket_power_qs.exists() else 0
|
|
|
+ data['electricityToday'] = round(today_socket_power_qs[0]['electricity'],
|
|
|
+ 1) if today_socket_power_qs.exists() else 0
|
|
|
# 当天累计时长
|
|
|
data['accumulated_time'] = today_socket_power_qs[0][
|
|
|
'accumulated_time'] if today_socket_power_qs.exists() else 0
|
|
@@ -812,4 +815,30 @@ class SmartSocketView(View):
|
|
|
})
|
|
|
return response.json(0, schedule_date_list)
|
|
|
except Exception as e:
|
|
|
- return response.json(500, repr(e))
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+ @classmethod
|
|
|
+ def alexa_socket_switch(cls, request_dict, response):
|
|
|
+ """
|
|
|
+ alexa智能开关
|
|
|
+ @request_dict serialNumber: 设备序列号
|
|
|
+ @request_dict status: 开关状态
|
|
|
+ @param request_dict: 请求参数
|
|
|
+ @param response: 响应对象
|
|
|
+ @return: response
|
|
|
+ """
|
|
|
+ serialNumber = request_dict.get('serial_number', None)
|
|
|
+ status = request_dict.get('power_controller', None)
|
|
|
+ if not all([serialNumber, status]):
|
|
|
+ return response.json(444)
|
|
|
+ # 同步数据库并下发MQTT消息到插座设备
|
|
|
+ try:
|
|
|
+ socket_info_qs = SocketInfo.objects.get(serial_number=serialNumber)
|
|
|
+ device_id = socket_info_qs.device_id
|
|
|
+ result = cls.save_socket_switch(device_id, serialNumber, int(status))
|
|
|
+ if not result:
|
|
|
+ return response.json(177)
|
|
|
+ return response.json(0)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|