Эх сурвалжийг харах

修改alexa通知设备推流的mqtt主题名和内容

locky 3 жил өмнө
parent
commit
48f4700e2a

+ 9 - 7
Controller/IotCoreController.py

@@ -230,7 +230,7 @@ class IotCoreView(View):
             print(e)
             return response.json(500, repr(e))
 
-    def clear_Iot_Cerm(self, userID, request_dict, response):
+    def clear_Iot_Cerm(self, request_dict, response):
         serial_number = request_dict.get('serial_number', None)
 
         if serial_number:
@@ -246,9 +246,9 @@ class IotCoreView(View):
     def request_publish_message(self, request_dict, response, request):
         # Alexa请求IoT Core下发MQTT消息通知设备开始或停止推流,或唤醒设备
         UID = request_dict.get('UID', None)
-        MSG = request_dict.get('MSG', None)
-
-        if not all([UID, MSG]):
+        rtsp = request_dict.get('rtsp', None)
+        enable = request_dict.get('rtsp', '1')
+        if not all([UID, rtsp]):
             return response.json(444)
 
         try:
@@ -270,8 +270,7 @@ class IotCoreView(View):
             endpoint = iot[0]['endpoint']
             Token = iot[0]['token_iot_number']
             # Token = '297a601b3925e04daab5a60280650e09'
-            topic_suffix = '_power_topic' if 'Turn' in MSG else '_rtsp_topic'
-            topic_name = thing_name + topic_suffix  # MQTT主题
+            topic_name = 'ansjer/generic/' + thing_name  # MQTT主题名
 
             # api doc: https://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/http.html
             # url: https://IoT_data_endpoint/topics/url_encoded_topic_name?qos=1
@@ -281,7 +280,10 @@ class IotCoreView(View):
             signature = CommonService.rsa_sign(Token)  # Token签名
             headers = {'x-amz-customauthorizer-name': authorizer_name, 'Token': Token,
                        'x-amz-customauthorizer-signature': signature}
-            params = {'command': MSG}
+            params = {
+                'alexaRtspCommand': rtsp,
+                'enable': enable
+            }
             r = requests.post(url=url, headers=headers, json=params, timeout=2)
             if r.status_code == 200:
                 res = r.json()