Explorar o código

新增唤醒设备接口

locky %!s(int64=4) %!d(string=hai) anos
pai
achega
54eab9a08a
Modificáronse 2 ficheiros con 41 adicións e 3 borrados
  1. 1 0
      azoauth/urls.py
  2. 40 3
      controller/index.py

+ 1 - 0
azoauth/urls.py

@@ -39,6 +39,7 @@ urlpatterns = [
     #查询存储alexa连接数
     path('distribution/select', distribution.selectConnectNum.as_view()),       #查询连接数并返回url
     path('distribution/storage', distribution.storageConnectNum.as_view()),       #存储连接数
+    path('oa2/powerController', index.powerController.as_view()),       # 唤醒/休眠设备
 
     #跟设备状态到alexa网关.
     url(r'^deviceStatus/(?P<operation>.*)$', deviceStatus.deviceStatus.as_view()),

+ 40 - 3
controller/index.py

@@ -570,8 +570,45 @@ def loadBalancingServer(request):
     return JsonResponse({'msg': 'The number of people online is :%s'%res1, 'code': 0})
 
 
+class powerController(TemplateView):
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = request.POST
+        return self.power_controller(request_dict)
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = request.GET
+        return self.power_controller(request_dict)
 
+    def power_controller(self, request_dict):
+        uid = request_dict.get('uid', '')
+        access_token = request_dict.get('access_token', '')
+        app_name = request_dict.get('app_name', 'zosi smart')
+        power_controller = request_dict.get('power_controller', '')
+
+        user_qs = UserModel.objects.filter(access_token=access_token)
+        if not user_qs.exists():
+            return JsonResponse({'错误': '用户数据不存在'})
+
+        ur_qs = UidRtspModel.objects.filter(uid=uid).values('uid', 'nick', 'rtsp_url', 'password', 'region')
+        if not ur_qs.exists():
+            return JsonResponse({'错误': 'uid数据不存在'})
+
+        logger = logging.getLogger('django')
+        logger.info('{} 唤醒设备 {}'.format(app_name, uid))
+        # 请求MQTT发布消息
+        url = '{}/iot/requestPublishMessage'.format(SERVER_PREFIX_TEST)    # 测试服务器
+        requests_data = {'UID': uid, 'MSG': power_controller}   # TurnOn, TurnOff
+        r = requests.post(url, requests_data)
+        if r.status_code != 200:
+            return JsonResponse({'错误': '请求响应异常'})
+
+        res = r.json()
+        logger.info('请求MQTT发布消息返回状态: {}'.format(res['result_code']))
+        if res['result_code'] != 0:
+            logger.info('请求MQTT下发指令失败')
+            return JsonResponse({'错误': '请求MQTT下发指令失败'})
+        else:
+            logger.info('请求MQTT下发指令成功')
 
-'''
-[{"endpointId":1,"manufacturerName":"zosi smart","manufacturerId":"zosi-ACCC8E5E7513","modelName":"P1425-LE","friendlyName":"Camera VVDHCV","description":"Camera VVDHCV","resolutions":[{"width":1280,"height":720}],"videoCodecs":["H264"],"audioCodecs":["ACC"],"protocols":["RTSP"],"authorizationTypes":["NONE"],"uri":"rtsp://rtsp.zositech.xyz:8554/WVZsWkVTRU5XUWxsRVMwWk5TbEpYUVRFeE1VRT1p"},{"endpointId":2,"manufacturerName":"zosi smart","manufacturerId":"zosi-ACCC8E5E7513","modelName":"P1425-LE","friendlyName":"Camera 5N6ZW8","description":"Camera 5N6ZW8","resolutions":[{"width":1280,"height":720}],"videoCodecs":["H264"],"audioCodecs":["ACC"],"protocols":["RTSP"],"authorizationTypes":["NONE"],"uri":"rtsp://rtsp.zositech.xyz:8554/Rk5VNDJXbGM0TnpSSE5rRXpOMWMwTmpFeE1VRT1D"},{"endpointId":3,"manufacturerName":"zosi smart","manufacturerId":"zosi-ACCC8E5E7513","modelName":"P1425-LE","friendlyName":"Camera T3SLCA","description":"Camera T3SLCA","resolutions":[{"width":1280,"height":720}],"videoCodecs":["H264"],"audioCodecs":["ACC"],"protocols":["RTSP"],"authorizationTypes":["NONE"],"uri":"rtsp://rtsp.zositech.xyz:8554/b1ZETlRURU5CU0VvNVVERktTRmxDTkRFeE1VRT1X"}]
-'''