|
@@ -15,7 +15,7 @@ from urllib.parse import urlencode
|
|
from object.ResObject import ResObject
|
|
from object.ResObject import ResObject
|
|
import subprocess
|
|
import subprocess
|
|
# from gevent.pool import Pool
|
|
# from gevent.pool import Pool
|
|
-from model.models import UserModel,UidRtspModel
|
|
|
|
|
|
+from model.models import UserModel, UidRtspModel, SwitchModel
|
|
from object.ResponseObject import ResponseObject
|
|
from object.ResponseObject import ResponseObject
|
|
from object.tkObject import tkObject
|
|
from object.tkObject import tkObject
|
|
from service.CommonService import CommonService
|
|
from service.CommonService import CommonService
|
|
@@ -61,6 +61,9 @@ class deviceStatus(TemplateView):
|
|
return self.delete(request_dict)
|
|
return self.delete(request_dict)
|
|
if operation == 'stopPush':
|
|
if operation == 'stopPush':
|
|
return self.notifiesDeviceStopPush(request_dict, response)
|
|
return self.notifiesDeviceStopPush(request_dict, response)
|
|
|
|
+ if operation == 'stateReport':
|
|
|
|
+ return self.StateReport(request_dict)
|
|
|
|
+
|
|
|
|
|
|
def saveAccessToken(self, request_dict):
|
|
def saveAccessToken(self, request_dict):
|
|
token = request_dict.get("token", '')
|
|
token = request_dict.get("token", '')
|
|
@@ -329,6 +332,66 @@ class deviceStatus(TemplateView):
|
|
except Exception as e:
|
|
except Exception as e:
|
|
logger.info('--------添加/更新设备信息V2异常--------: {}'.format(repr(e)))
|
|
logger.info('--------添加/更新设备信息V2异常--------: {}'.format(repr(e)))
|
|
|
|
|
|
|
|
+ # 向alexa事件网关发送更新设备操作V2接口
|
|
|
|
+ def StateReport(self, request_dict):
|
|
|
|
+ logger = logging.getLogger('django')
|
|
|
|
+ logger.info('--------alexa智能插座状态上报--------')
|
|
|
|
+
|
|
|
|
+ serial_number = request_dict.get("serial_number", None)
|
|
|
|
+ access_token = request_dict.get("access_token", None)
|
|
|
|
+ logger.info('请求参数: {}'.format(request_dict))
|
|
|
|
+
|
|
|
|
+ response = ResObject()
|
|
|
|
+ if not all([serial_number, access_token]):
|
|
|
|
+ return response.json(10, res={'msg': 'Parameter error'})
|
|
|
|
+ user_qs = UserModel.objects.filter(access_token=access_token)
|
|
|
|
+ if not user_qs.exists():
|
|
|
|
+ return response.json(10, res={'msg': '用户数据不存在'})
|
|
|
|
+ user_id = user_qs.first().userID
|
|
|
|
+ now_time = int(time.time())
|
|
|
|
+ try:
|
|
|
|
+ auth_request_url = '{}/oalexa/stateReport'.format(SERVER_PREFIX)
|
|
|
|
+ requests_data = {'serial_number': serial_number, 'alexa_user_id': user_id}
|
|
|
|
+ res = requests.post(url=auth_request_url, data=requests_data)
|
|
|
|
+ res_json = res.json()
|
|
|
|
+ logger.info('正式服务器响应: {}'.format(res_json))
|
|
|
|
+
|
|
|
|
+ # 添加测试服务器测试
|
|
|
|
+ if res_json['result_code'] != 0:
|
|
|
|
+ auth_request_url = '{}/oalexa/stateReport'.format(SERVER_PREFIX_TEST)
|
|
|
|
+ res = requests.post(url=auth_request_url, data=requests_data)
|
|
|
|
+ res_json = res.json()
|
|
|
|
+
|
|
|
|
+ logger.info('请求服务器url: {}'.format(auth_request_url))
|
|
|
|
+ logger.info('服务器响应: {}'.format(res_json))
|
|
|
|
+ if res_json['result_code'] != 0:
|
|
|
|
+ return response.json(10, res={'msg': 'error'})
|
|
|
|
+ nick_name = res_json['nick_name']
|
|
|
|
+ power_state = res_json['power_state']
|
|
|
|
+ region = res_json['region']
|
|
|
|
+ switch_qs = SwitchModel.objects.filter(serial_number=serial_number, userID=user_id)
|
|
|
|
+ if switch_qs.exists():
|
|
|
|
+ switch_qs.update(nick=nick_name, updTime=now_time, region=region)
|
|
|
|
+ else:
|
|
|
|
+ switch = {
|
|
|
|
+ 'nick': nick_name,
|
|
|
|
+ 'serial_number': serial_number,
|
|
|
|
+ 'userID': user_id,
|
|
|
|
+ 'addTime': now_time,
|
|
|
|
+ 'updTime': now_time,
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ SwitchModel.objects.create(**switch)
|
|
|
|
+ if power_state == 0:
|
|
|
|
+ res = {'state': 'OFF'}
|
|
|
|
+ else:
|
|
|
|
+ res = {'state': 'ON'}
|
|
|
|
+ return response.json(0, res=res)
|
|
|
|
+ except Exception as e:
|
|
|
|
+ logger.info('--------上传插座状态异常--------: {}'.format(repr(e)))
|
|
|
|
+ return response.json(10, res={'msg': '上报状态异常'})
|
|
|
|
+
|
|
|
|
+
|
|
def append_endpoint(self, data_list, channel):
|
|
def append_endpoint(self, data_list, channel):
|
|
# 组织 endpoints 数据
|
|
# 组织 endpoints 数据
|
|
endpoints = []
|
|
endpoints = []
|