Google 智能家居 API 上的操作如何异步工作?
How does Action on Google Smart Home API works Asynchronously?
我最近在 Amazon Alexa 上开发了一个智能家居技能项目API,我们使用异步方法进行开发。在 Alexa 中有事件网关使 post 异步调用和延迟响应以保持事件网关打开。我知道 Google 上的 Action 有主页。 HomeGraph 和 EventGateway 的工作方式与我想知道的一样吗?
我还想知道如何使 Google 上的操作异步执行?
根据我的理解,我需要为此目的对 Homegraph 进行 post 调用。
是的,一旦状态完全改变,您可以POST到主页图。
对于某些类型的设备,可能需要一段时间才能完成,您可以 return 一个带有 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
},
}
}
}
}
我最近在 Amazon Alexa 上开发了一个智能家居技能项目API,我们使用异步方法进行开发。在 Alexa 中有事件网关使 post 异步调用和延迟响应以保持事件网关打开。我知道 Google 上的 Action 有主页。 HomeGraph 和 EventGateway 的工作方式与我想知道的一样吗? 我还想知道如何使 Google 上的操作异步执行? 根据我的理解,我需要为此目的对 Homegraph 进行 post 调用。
是的,一旦状态完全改变,您可以POST到主页图。
对于某些类型的设备,可能需要一段时间才能完成,您可以 return 一个带有 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
},
}
}
}
}