问题标签 [google-smart-home]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
actions-on-google - 智能家居的智能家居测试套件对我的 Google Home 没有任何作用
我正试图让我的智能家居行动获得认证,但它多年来一直处于审查之中。我已经意识到文档说要做测试套件,所以我正在尝试。我也向支持部门发送了一封电子邮件,但尚未回复。
关于测试套件,我已经正确输入了 userAgentId 和 json 键,并且进展良好。当我开始测试时,问题就出现了。每个话语都会被读出到我的 Google Home。Google Home 唤醒“Ok Google”,但在那之后什么也没做,我的所有测试都失败了。
这些错误也不是很有帮助,我得到了类似的东西:
我检查了我的服务器,但履行 url 没有得到任何东西。如果我说与测试对 Google Home 所做的完全相同的事情,那么它工作得非常好。我应该做些什么?我不知道我做错了什么。我的项目 ID 是 myhomie-smart-hvac
actions-on-google - 无法编辑 Google 智能家居操作示例调用
我想编辑显示在操作目录中的示例调用,但在我的目录信息部分中找不到示例调用部分。我只能找到简短的描述和完整的描述。但是在 action 目录中,在标题“ASK YOUR ASSISTANT”下有很多示例调用,但并非所有调用都是相关的。我该如何编辑它们?
actions-on-google - 恒温器的智能家居操作设置“模式”未反映在 UI 中
我有一个带恒温器的智能家居动作。可用的模式是“开”“关”“热”“冷”。加热和冷却工作正常。只是开/关模式无法正常工作。
当我选择“关闭”模式时,它会继续显示 UI,就好像它仍处于加热/冷却模式一样,如下面的屏幕截图所示:
https://photos.app.goo.gl/snG1hGR4y9Jb7uTi8
但是,如果我查看其他制造商(如 Zen)提供的其他恒温器,它会正确显示关闭模式 UI:
https://photos.app.goo.gl/VfeY75Bf12FLuTiaA
我可以确认 Nest 恒温器也能正确显示。我只是想知道我做错了什么。我已验证我的主图已使用如下所示的模式正确更新:
https://photos.app.goo.gl/FNvcftibihxL8uFM8
我什至尝试设置一个未记录的名为 activethermostatmode 的隐藏字段。另外,如果您无法在下拉菜单中选择“开启”模式以在 google home 应用程序中选择恒温器模式,那么它是什么意思。
oauth-2.0 - Google Smart Home Actions 将设备“[测试] ACTION 已链接”添加到即时“出了点问题。再试一次'
我正在创建一个新的 Google 智能家居 Action,第一步是创建一个 OAuth 2.0 服务器用于帐户链接。
https://developers.google.com/actions/identity/oauth2?oauth=code&hl=ko&refresh=1
我已经按照 Auth 代码 UP UNTIL 'start the authentication flow' 下的 Google 文档中的所有步骤进行操作。我不知道这是否是必需的或者这段代码会去哪里,但这是一个不同的话题。
但是,我的身份验证页面出现错误。链接是通过我的 iPhone 的 Google Home 应用程序完成的,目前它具有生成的 [test] 前缀。当我单击 [test] MYAPP 时,服务会一直运行到重定向正确为止。网页关闭并通知我“MYAPP 已链接”。一旦此通知消失,就会出现一个新通知“出现问题。重试”出现。
之后随时单击 [test] MYAPP 进行链接会导致一个空白网页显示“现在已链接帐户”,但 MYAPP 不会移动到 Google Home 应用程序的“已链接”部分。
https://developers.google.com/actions/smarthome/develop/error-logging
检查日志后,我最初几天都收到“OPEN_AUTH_FAILURE”。现在,我收到“BACKEND_FAILURE”。
你下一步怎么做?我该如何调试呢?
actions-on-google - 为什么例程不支持打开/关闭恒温器的功能?
如果我想让一组恒温器在早上打开并在下午关闭,我希望通过例行程序来做到这一点。但是,在调节温控器的管理例程页面中,您只能更改设定温度。我将如何使用例行程序打开/关闭恒温器?我是否需要添加 OnOff 特征才能让它显示出来?
或者,我可以使用例程的添加操作部分并使其执行“打开本的恒温器”。这可能行得通,但如果我有 5 个恒温器怎么办,这似乎不是可行的方法。有没有办法在一个命令中控制多个恒温器?例如。打开 bens 温控器、kates 温控器和卧室温控器。
actions-on-google - 谷歌智能家居中的令牌交换请求出错
我正在关注此Google 文档以使用 oauth 进行帐户链接。在令牌交换请求项中,我收到了下面的 JSON,如预期的那样:
我的回答是:
但我在 iOS 的 Google 助理应用程序中收到“出了点问题,请稍后再试”错误。在堆栈驱动程序中,我收到错误:
actions-on-google - 多个谷歌用户使用同一帐户时的谷歌智能家居操作
我们为我们的云解决方案实施了智能家居操作,它允许我们控制我们的恒温器。此外,实现了报告状态功能,但在下一个案例中我们遇到了麻烦:
案子:
使用 Google 帐户userA@gmail.com登录到 Google Home 应用程序的用户 A通过我们的智能操作使用帐户 user@ourcompany.com 执行链接过程(授权)- >所有设备都正确同步到他
使用 Google 帐户anotherUserB@gmail.com登录到 Google Home 应用程序的用户B通过我们的智能操作使用与用户A相同的帐户执行链接过程(授权):user@ourcompany.com -> 所有设备也同步到他正确。
在我们的后端,两次触发用户user@ourcompany.com的SYNC请求, 因为他们都使用相同的帐户进行链接。触发SYNC请求后,我们开始发送 Google Report State 事件。在当前步骤,一切正常。
但是,例如,如果UserA取消链接他的帐户 -> Google 发送DISCONNECT意图,并且正如文档中所说,我们应该停止发送报告状态事件。这里有一个问题:用户B仍然有 user@ourcompany.com 的关联帐户,如果我们停止发送报告状态事件,用户 B 将收到不正确的数据。
在这种情况下我们应该怎么做?如何正确处理?我们什么时候应该停止发送报告状态事件?
actions-on-google - 为什么智能家居测试套件会失败?
我试图为我的测试电视设备运行智能家居测试套件。Traits onOff 适用于 Google Home 和 Google Assistant。但是,如果我为同一设备运行测试套件。
按照链接中给出的说明进行操作: https ://developers.google.com/actions/smarthome/develop/testing-submitting
我收到以下错误:AssertionError:预期状态包括:{“on”:true},实际状态:{}:预期 false 为 true Ok Google。打开媒体室电视(手动)‣ AssertionError: expected false to be true
附加信息:报告状态也已实施。但是 onOff 特征没有实现。
actions-on-google - 操作审批流程是否需要请求同步功能
我们开发了一个 Google Smart Home 操作,并希望将其发送给审批流程。在过去三个月中,Google 更改了测试标准并发布了一个自动化测试,用于在提交https://smarthome-test-suite.appspot.com/之前验证您的操作。现在我看到测试的功能之一是请求同步功能。是否可以在不实施请求同步的情况下通过 Google 验证流程?
actions-on-google - 请求同步始终返回 404:“错误:未找到请求的实体。”
我很难实现 requestSync。它总是返回
我使用 Node.js/Express 作为后端。与 Google Home 应用程序的链接/取消链接以及我的操作也有效。确实是 requestSync 部分失败了。
我找到的最接近的票是这张,虽然不完全相同 。
我尝试过的事情
agentUserId 是一个字符串,但如果我传递一个数字,它会返回 400,并显示消息“'agent_user_id' 的值无效”。
尝试发送 agent_user_id 而不是 agentUserId,这将返回 404,与我发送 agentUserId 时相同的错误
- 尝试删除正文的“async:true”部分。没有注意到有什么不同。
- 在同步期间,对 agentUserId 的值进行硬编码,以消除我发送错误的可能性。我在 requestSync 期间使用了相同的 agentUserId,但失败了。
- 尝试在 google home 应用中多次链接/取消链接
- 另一个需要注意的有趣的事情:当从谷歌控制台上的操作中打开“测试套件”时,我输入了相同的 agentUserId + 服务帐户密钥,它很好地注册了它:我能够看到我的设备正确列出。这让我相信我的 agentUserId 是正确的(这可能是一个错误的假设)
- 我 100% 确定 HomeGraph 已启用,因为我可以在控制台的 HomeGraph API 部分的“概述”部分中看到图表上的数据。
这就是 curl 的样子(与示例相同)
(在这种情况下,我的 agentUserId 为 1)
这就是它在代码中的样子:
不管我做什么,结果总是:
我不知道在哪里可以找到这个问题。任何指针都会有所帮助。谢谢