首页 > 解决方案 > 报告状态时遇到内部错误

问题描述

我正在尝试电视设备类型,但在向 Google 发送响应时收到“遇到内部错误”。

当我homegraph.devices.reportStateAndNotification使用以下有效负载时

{
   "requestId":"f7549700-aedf-433f-b558-53804c19b7b6",
   "agentUserId":"61895a84e5dcfc75b21b5c43",
   "payload":{
      "devices":{
         "states":{
            "6192275c26ab9a11a26cdcfb":{
               "online":true,
               "on":true,
               "currentInput":"hdmi_1",
               "playbackState":"STOP",
               "currentVolume":0,
               "isMuted":false
            }
         }
      }
   }
}

出现以下错误。

Error: Internal error encountered.
 at Gaxios._request (/xxxx/api/node_modules/gaxios/build/src/gaxios.js:86:23)
 at runMicrotasks (<anonymous>)
 at processTicksAndRejections (internal/process/task_queues.js:95:5)
 at async JWT.requestAsync (/var/www/sinric_pro/api/node_modules/google-auth-library/build/src/auth/oauth2client.js:349:18)

我检查了谷歌云控制台中的日志,也找不到任何错误报告。希望有人能指出我为什么

同步响应:

{
   "status":200,
   "headers":{
      "content-type":"application/json;charset=utf-8"
   },
   "body":{
      "requestId":"2275190106898401713",
      "payload":{
         "agentUserId":"61895a84e5dcfc75b21b5c43",
         "devices":[
            {
               "id":"6192275c26ab9a11a26cdcfb",
               "type":"action.devices.types.TV",
               "traits":[
                  "action.devices.traits.OnOff",
                  "action.devices.traits.InputSelector",
                  "action.devices.traits.Channel",
                  "action.devices.traits.TransportControl",
                  "action.devices.traits.Volume"
               ],
               "name":{
                  "defaultNames":[
                     "TV"
                  ],
                  "name":"TV",
                  "nicknames":[
                     "TV"
                  ]
               },
               "willReportState":true,
               "roomHint":"Living Room",
               "deviceInfo":{
                  "manufacturer":"Sinric Pro",
                  "model":"SinricPro television",
                  "hwVersion":"1.0",
                  "swVersion":"1.0"
               },
               "attributes":{
                  "transportControlSupportedCommands":[
                     "NEXT",
                     "PREVIOUS",
                     "PAUSE",
                     "STOP",
                     "RESUME",
                     "CAPTION_CONTROL"
                  ],
                  "availableApplications":[
                     {
                        "key":"youtube",
                        "names":[
                           {
                              "name_synonym":[
                                 "Youtube",
                                 "Youtube_en"
                              ],
                              "lang":"en"
                           }
                        ]
                     },
                     {
                        "key":"netflix",
                        "names":[
                           {
                              "name_synonym":[
                                 "NetFlix",
                                 "netflix_en"
                              ],
                              "lang":"en"
                           }
                        ]
                     }
                  ],
                  "availableInputs":[
                     {
                        "key":"hdmi1",
                        "names":[
                           {
                              "name_synonym":[
                                 "HDMI 1",
                                 "DVD player"
                              ],
                              "lang":"en"
                           }
                        ]
                     },
                     {
                        "key":"hdmi_2",
                        "names":[
                           {
                              "name_synonym":[
                                 "HDMI 2",
                                 "TV"
                              ],
                              "lang":"en"
                           }
                        ]
                     }
                  ],
                  "availableChannels":[
                     {
                        "key":"ktvu2",
                        "names":[
                           "Fox",
                           "KTVU"
                        ],
                        "number":"2"
                     },
                     {
                        "key":"abc1",
                        "names":[
                           "ABC",
                           "ABC East"
                        ],
                        "number":"702.4-11"
                     }
                  ],
                  "orderedInputs":false,
                  "volumeMaxLevel":100,
                  "volumeCanMuteAndUnmute":true,
                  "volumeDefaultPercentage":6,
                  "levelStepSize":2,
                  "commandOnlyVolume":false,
                  "supportActivityState":false,
                  "supportPlaybackState":true
               }
            }
         ]
      }
   }
}

询问:

"inputs": [
    {
      "intent": "action.devices.QUERY",
      "payload": {
        "devices": [
          {
            "id": "6192275c26ab9a11a26cdcfb"
          }
        ]
      }
    }
  ],
  "requestId": "6671070061963216968"
}

查询响应:

{
  "status": 200,
  "headers": {
    "content-type": "application/json;charset=utf-8"
  },
  "body": {
    "requestId": "6671070061963216968",
    "payload": {
      "devices": {
        "6192275c26ab9a11a26cdcfb": {
          "status": "SUCCESS",
          "online": false,
          "on": false,
          "currentInput": "hdmi_1",
          "playbackState": "STOP",
          "currentVolume": 0,
          "isMuted": false
        }
      }
    }
  }
}

标签: actions-on-googlegoogle-homegoogle-smart-home

解决方案


当您尝试访问的 Web 服务器以某种方式配置错误,导致它无法正确响应您要求它执行的操作时,就会发生内部错误。使用外部库有时也会导致像这个错误这样的内部错误,

错误:遇到内部错误。

在 Gaxios._request (/xxxx/api/node_modules/gaxios/build/src/gaxios.js:86:23)

在 runMicrotasks ()

您可以使用 curl 或 postman 之类的工具来确保发送的内容是正确的,因为看起来当前状态并未报告给 HomeGraph API。请按照链接https://developers.google.com/assistant/smarthome/develop/report-state?hl=en中的步骤正确报告状态并更新 HomeGraph API


推荐阅读