【问题标题】:How does Action on Google Smart Home API works Asynchronously?Google Smart Home API 上的操作如何异步工作?
【发布时间】:2018-11-29 08:51:59
【问题描述】:

我最近在 Amazon Alexa 上为智能家居技能 API 开发了一个项目,我们使用异步方法进行开发。在 Alexa 中,有事件网关以异步方式进行后调用和延迟响应以保持事件网关打开。我知道 Action on Google 有主页。 HomeGraph 和 EventGateway 的工作方式和我想知道的一样吗? 我还想知道如何使 Google 上的操作异步执行? 根据我的理解,我需要为此目的对 Homegraph 进行后期调用。

【问题讨论】:

    标签: actions-on-google google-smart-home smarthomeskill


    【解决方案1】:

    是的,一旦状态完全改变,您就可以对主页图进行 POST。

    对于某些类型的设备,可能需要一段时间才能完成,您可以返回带有 PENDING 的执行响应:

    {
      "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
      "payload": {
        "commands": [{
          "ids": ["123"],
          "status": "PENDING",
          "states": {
            "on": false,
            "online": true
          }
        }]
      }
    }
    

    稍后,一旦状态正确,您就可以使用Report State API:

    {
      "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf",
      "agentUserId": "1234",
      "payload": {
        "devices": {
          "states": {
            "123": {
              "on": true
            },
          }
        }
      }
    }
    

    【讨论】:

    • 因此,据我了解,待定状态将使主页图保持打开状态,一旦在终端设备上执行驱动,我们就可以发送报告状态。好的所以这可以为所有特征完成,这个报告状态应该从合作伙伴云或网络钩子发送?只是有点混乱。
    • 您应该尽快从 webhook 返回待处理的响应。任务完成后,您可以通过云报告状态。
    • 谢谢,如果是查询意图,则没有状态响应。所以在那种情况下,我怎样才能使查询意图异步。是否有任何超时,例如 HomeGraph 没有在该时间内从云端收到报告,它应该触发错误?
    • 另外,先生,我尝试了上面的响应,但未决 { "requestId": "ff36a3cc-ec34-11e6-b1a0-64510650abcf", "payload": { "commands": [{ "ids": [ "123"], "status": "PENDING", "states": { "on": false, "online": true } }] } } 但它正在开火,让我打开灯,然后给我状态。是否必须启用 HomeGraph 才能使此状态从 GCP 挂起,或者它在不启用的情况下工作。因为我还没有启用 HomeGraph。
    • 将状态添加为待处理后,它仍在工作,而不是等待从我的制造商云中触发任何内容
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2021-08-24
    相关资源
    最近更新 更多