【发布时间】:2020-07-09 01:14:11
【问题描述】:
我正在实现一个具有 OnOff 和 Volume 特征的媒体远程设备。 报告状态负载如下所示:
{
"requestId": "947aa603-1bfe-4bff-bac0-a50101da419d",
"agentUserId": "13",
"payload": {
"devices": {
"states": {
"71dbbc93-73c6-46d1-80b0-d988dd8b0835_1": {
"on": true,
"online": true,
"currentVolume": 25,
"isMuted": false
}
}
}
}
}
响应为 200 OK,此数据:{"requestId": "947aa603-1bfe-4bff-bac0-a50101da419d"}
willReportState 在 SYNC 响应中也设置为 true。 requestSync 工作正常。
我遇到以下问题:
- 报告状态仪表板有一个用于我的设备的空状态缓存。
- 测试套件返回以下错误,表明没有状态:“AssertionError:预期包含的状态:{“currentVolume”:5},实际状态:{}:预期的假为真”
有人知道这里出了什么问题吗?
【问题讨论】:
-
payload 看起来是正确的,所以如果你得到一个成功的响应,你应该能够在 Home Graph 中看到内容。您能否确认在每个场景(报告状态调用、报告状态仪表板、测试套件)中使用的服务帐户凭据是否相同?
-
@Devunwired 是的,服务帐户凭据和 agentUserId 相同。我对那个测试套件并不完全清楚,仪表板都正确地找到了设备,只是状态丢失了。
-
原来我们只有在开发帐户是 G Suite 帐户时才会遇到这个问题。使用标准的 Gmail 帐户状态报告可以正常工作。是否需要为 G Suite 帐号设置一组权限?
-
你能澄清你的意思吗?您的意思是您链接到 agentUserId 的用户帐户是 Gmail 帐户,还是该 Gmail 帐户用于创建 HomeGraph API 凭据?
-
用于创建 HomeGraph API 凭据的帐户是 GSuite 帐户。
标签: state actions-on-google google-home google-smart-home assistant