Google Cloud IoT 核心配置和命令

Google Cloud IoT Core Config and Commands

使用 Google Cloud IoT Core 平台后,它似乎是围绕着将配置向下发送到设备并从中接收状态的想法构建的。

Google 自己的文档建议使用该方法,而不是围绕向下发送命令(作为配置)和获取响应(作为状态)构建。

但是在文档的最后他们展示了一个例子。

我很难理解如何支持这两种方法?我可以看到它的设计方式的好处,但我也在努力理解如何使用配置这样的值和结果的习惯用法与设备对话。

有人实施了 command/response 流程吗?是否可以订阅状态主题以在我自己的应用程序中检索设备状态?

根据以下澄清评论进行编辑:

我们有一个测试版功能,我们称之为 "Commands",它将执行您所说的重启。因此,配置消息(用于持久性配置,您希望将 startup/connect 上的设备发送到 IoT 核心)和用于启动并忘记的命令(如重启消息)的组合可以实现您所说的。当前状态有点棘手,因为你可以有一个回调机制,你可以发送一个命令来询问,并在事件/通道上监听响应,或者让设备报告状态(/state/MQTT 主题)并且只是询问 IoT Core 的管理 SDK 而不是设备。

Commands 刚刚进入公测,您现在应该可以访问它了。如果您从命令行使用 gcloud SDK,则需要执行 gcloud components update 然后 gcloud beta iot devices --help 将显示命令组。如果您使用的是控制台,当您向下钻取到单个设备时,您现在应该会在顶部栏的 "Update Configuration" 旁边看到 "Send Command"。

旧答案:作为回答的尝试,这听起来不像是使用状态主题,您 could/should 只需使用标准 /events/ 主题并订阅 Pub/Sub 设备主题改为进入?

这实际上取决于我们在保持状态机同步方面所讨论的设备的数量和数量。

在不知道你具体实现了什么的情况下,我可能会做一些事情,比如发送配置,从设备响应 /events/ 主题,并有一个云功能来跟踪 Pub/Sub 主题和使用设备状态更新 Firestore 实例之类的东西,而不是使用 /state/ 主题。特别是如果你正在做一些事情来直接响应设备的状态报告。

向设备发送命令

要向设备发送命令,您需要使用 sendCommandToDevice API call

从设备接收命令

要从设备接收命令,请订阅 /devices/<your-device-d>/commands/# 主题。

完整示例最终将发布到 Google Cloud IoT Core 示例存储库: