问题标签 [google-sdm-api]
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.
google-api - Google Device Access API 是否允许打开或关闭相机?或者打开或关闭通知?
查看Google Device Access API,我没有看到打开或关闭相机的命令。而且我也没有看到打开或关闭相机通知的命令。我在这里看到了相机特性,但也许其他地方有适用于任何类型设备的命令?
我错过了它,还是实际上没有提供此功能?
我曾希望我能够根据智能家居事件改进通知,而不是像现在这样严格的时间表......
google-api - 离开/回家模式
API 是否公开了将模式设置为 Away 或 Home 的功能?
我没有在 API 文档中看到这一点。我认为这个功能很重要,因为它现在只允许您关闭恒温器,还可以通过移动应用程序配置警报(我的设置是只在我离开时为我的 NestCams 发送警报)。
php - 当我使用 PHP curl 向 Google Nest 设备的 SDM API 发送命令时出现“收到无效的 JSON 有效负载”错误
我喜欢使用 SDM API 的命令功能。我必须在 PHP 中执行 Google 文档需要以下语法:
我的 PHP 代码如下所示:
此命令生成以下错误(我将事件 ID 替换为 XYZ):
我已经完成了以下测试:
Google 提供了一个终端功能,它允许我输入文档中描述的原始语法(见上文),而无需依赖 PHP Curl。
成功手动测试后,我使用我的 PHP 代码创建 RAW 数据:
和网址:
我手动将字符串复制到这个结构中:
然后我将以下代码复制粘贴到终端中并且它工作(敏感信息已删除):
所以错误必须来自我的卷曲代码:
google-api - Google 智能设备管理 API 调用中缺少恒温器设备
我的项目与谷歌的新(截至 10 月)SDM OAuth 方案相关联,我可以与https://smartdevicemanagement.googleapis.com/v1/enterprises/project-id/structures
.
我的巢门铃摄像头出现在 json 响应中:
但是恒温器没有出现在这里。我确实在 Nest 应用程序本身上看到了它,所以我很确定它都是链接的。我什至在收音机复选框中看到它。
未检测到设备时如何添加设备?这是一个帐户问题吗,我的恒温器不知何故卡在 Nest 旧版中,而其他一切都在新的 SDM 系统上?
google-api - 嵌套 sdm api:列出设备时的空响应
我在 stackoverflow 上问这个问题,因为据我所知,这是谷歌为这个 API 提供支持的唯一地方,尽管这似乎确实需要检查我的谷歌项目来确定问题。
无论如何,我已经多次按照信中的嵌套设备访问快速入门指南,从头到尾完成一个新项目,验证每一步都达到了描述的状态。在完成指南的最后,我可以在Partner Connections 列表中看到我的项目。当我查看开发人员控制台中的智能设备管理 API 页面时,为项目启用了 SDM API,以获取正确的项目。
如该指南中所述,手动执行 oauth2 流程会生成访问令牌。
但是,当我发出这样的设备列表调用时(如我链接到的快速入门指南中所述)
调用返回 200,但响应的全部内容如下:
当我查看合作伙伴连接页面时,我可以看到我已明确授予对我希望项目能够访问的设备的访问权限。请参阅 此合作伙伴连接页面的屏幕截图,表明我已允许访问我希望 API 能够看到的设备。
oauth2 的所有授权回调 URL 都是 https。
在这一点上,我已经花了多个晚上来抨击我的头。我在这里做错了什么?
python-3.x - Google SDM API(Nest 设备)的 Google PubSub 订阅者问题
所以,我被困住了。这可能很长,因为我想建立所有(或我所做的大部分)来达到这一点:
背景:想要为 Raspberry PI 创建一个应用程序,该应用程序可以访问和操作 Nest 设备套件(门铃、恒温器等)。我目前在笔记本电脑上的 Ubuntu VM 中执行此操作。
我做了什么:
- 按照谷歌提供的步骤创建了一个设备访问项目。
- 还创建了一个 GCP 项目(和上面不是一回事),以便能够设置 OAuth 和 Subscription 设置
- Device Access 项目使用来自 GCP 项目的 OAuth,即 Device Access 项目有一个引用 GCP 项目 OAuth 的字段
- 完成了设备访问项目步骤,通过浏览器页面授予权限,直到我创建和使用授权代码,我得到了我的第一个访问令牌。我能够执行 CURL 命令来检索 Nest 设备特征,甚至可以执行 RTSP url 来访问相机流。
所以我已经完成了一半,因为我可以通过使用 OAuth 访问令牌与设备(REST API)进行交互。但我想做的是能够对来自设备的事件做出反应,这需要 PubSub 交互性。这就是我卡住的地方
额外步骤:我还在 GCP 凭据中创建了一个服务帐户,因为我在文档中看到它可能是必需的,并且 googles 算法需要一个 GOOGLE_APPLICATION_CREDENTIALS 环境变量到一个带有服务帐户下载凭据的 json 文件。所以检查
- 在设置设备访问项目时,创建了一个 PubSub 主题。在 GCP 控制台中,我为 GCP 项目创建了相应的订阅,并手动将其引用到作为设备访问项目的一部分创建的主题(上述步骤)
- 文档中提到,当您第一次通过 REST API 与 OAuth 访问令牌进行交互时,pubsub 功能变得可用。注意:我可以从 GCP Console 中的 PubSub 订阅页面确认此“查看消息”。我能够“拉”消息并看到消息出现在订阅中。我知道通过拉取消息,我暂时阻止它们出现在其他队列中,但我想检查消息是否能够填充到订阅中。
好的。所以,不,我想编写代码来访问 pubsub 订阅并围绕对这些事件消息做出反应来创建我的应用程序(或其中的一部分)。这是我被困两天的地方。
我根据谷歌提供的方法创建了一个 python 脚本(我不介意包括 ID,因为这不是私有的)
输出如下:
上面的代码“卡住”了 60 秒,之后“后台线程没有退出”。并出现错误
我尝试了上面的几种变体,包括另一个使用(即“PIP INSTALL”ing)google-cloud-pubsub库的python脚本,但最终我尝试了以下,我从另一个解决方案中借用了我试图找出什么当它“卡住”时正在继续。
这立即导致以下“无效授权:找不到帐户”错误,该错误不断重复,直到我取消脚本...
有没有人知道为什么 Pubsub 模型不起作用,即使我已经遵循了所有可能的文档变体?我尝试更改凭据文件详细信息(只要我不使用服务帐户凭据,它就会给出明确定义的错误,因此这似乎不是问题。
任何帮助或提示将不胜感激。
google-api - SDM API 调用返回 Enterprise not found
我正在使用 google-api-nodesj-client 包调用 SDM API,并在尝试设置温度时收到 Enterprise not found 消息。
API 在 nest.enterprises.devices.executeCommand 调用上返回 404,并带有以下错误块:
消息:'企业企业/long-enterprise-id-here not found.',
域:'global',
原因:'notFound'
我在 SDM 文档中没有发现任何暗示此错误的内容。感觉像是 GCP 服务帐户配置问题,但我无法理解。
nest-device-access - 是否可以通过 SDM API 访问 Google Nest Doorbell Battery (2021)?
当我尝试授权我的帐户时,我已遵循此https://developers.google.com/nest/device-access/get-started出现错误:
无法访问合作伙伴
无法检索信息。请联系 Nest Api 以验证您的帐户是否已正确设置。您可能需要在 Google Home 应用设置中将开发者电子邮件地址添加为家庭成员。
我开始怀疑 Nest 的新 SDM API 不支持新的 Nest Doorbell。有人通过API成功访问门铃吗?
google-sdm-api - 新的 Nest Cam 从 SDM API 中消失了
我有一个新的 2021 Google Nest 摄像头(有线而非电池),它通过 SDM API 显示良好,但它突然消失了,只有我的门铃显示(旧的非电池型号)。我尝试重新创建我的应用程序,更改相机的名称,但似乎没有任何解决办法。我可以在 google home 应用程序中很好地查看相机,但是当我在 SDM API 中查找它时,就好像它甚至不存在一样。是否有一些权限设置可以更改?