deviceStatus.py 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. """
  5. import json
  6. import time
  7. import requests
  8. import uuid
  9. import logging
  10. from django.views.generic import TemplateView
  11. from django.shortcuts import render_to_response
  12. from django.http import JsonResponse
  13. from object.ResObject import ResObject
  14. import subprocess
  15. # from gevent.pool import Pool
  16. from model.models import UserModel,UidRtspModel
  17. from object.tkObject import tkObject
  18. from service.CommonService import CommonService
  19. from object.RedisObject import RedisObject
  20. from django.utils.decorators import method_decorator
  21. from django.views.decorators.csrf import csrf_exempt
  22. rtspServer = "rtsp.zositech.org,3.16.66.144"
  23. class deviceStatus(TemplateView):
  24. @method_decorator(csrf_exempt)
  25. def dispatch(self, *args, **kwargs):
  26. return super(deviceStatus, self).dispatch(*args, **kwargs)
  27. def post(self, request, *args, **kwargs):
  28. request.encoding = 'utf-8'
  29. operation = kwargs.get('operation')
  30. if operation == 'test':
  31. return JsonResponse({'res': '11'})
  32. def get(self, request, *args, **kwargs):
  33. request.encoding = 'utf-8'
  34. request_dict = request.GET
  35. operation = kwargs.get('operation')
  36. if operation == 'test':
  37. api_uri = 'https://api.amazonalexa.com/v3/events'
  38. messageId = str(uuid.uuid4())
  39. access_token = 'dEqVJw7g3wR4oXOTD6szvNebyKQEkCba'
  40. bearer_access_token = 'Bearer {access_token}'.format(access_token=access_token)
  41. headers = {'content-type': "application/json", 'Authorization': bearer_access_token}
  42. payload = {
  43. "event": {
  44. "header": {
  45. "namespace": "Alexa.Discovery",
  46. "name": "AddOrUpdateReport",
  47. "payloadVersion": "3",
  48. "messageId": messageId
  49. },
  50. "payload": {
  51. "endpoints": [
  52. {
  53. "endpointId": "HVTLKFJM6KDTAF9J111A",
  54. "manufacturerName": "Sample Manufacturer",
  55. "description": "Smart Light by Sample Manufacturer",
  56. "friendlyName": "Kitchen Light",
  57. "displayCategories": [
  58. "CAMERA"
  59. ],
  60. "capabilities": [
  61. {
  62. "type": "AlexaInterface",
  63. "interface": "Alexa.CameraStreamController",
  64. "version": "3",
  65. "cameraStreamConfigurations": [
  66. {
  67. "protocols": ["RTSP"],
  68. "resolutions": [{"width": 1280, "height": 720}],
  69. "authorizationTypes": ["NONE"],
  70. "videoCodecs": ["H264"],
  71. "audioCodecs": ["ACC"]
  72. }]
  73. },
  74. {
  75. "type": "AlexaInterface",
  76. "interface": "Alexa.MediaMetadata",
  77. "version": "3",
  78. "proactivelyReported": True,
  79. # "retrievable": True
  80. }
  81. ]
  82. }
  83. ],
  84. "scope": {
  85. "type": "BearerToken",
  86. "token": access_token
  87. }
  88. }
  89. }
  90. }
  91. response = requests.post(api_uri, data = payload, headers = headers)
  92. request_json = response.json()
  93. return JsonResponse({'res': request_json})