Google Cloud IoT Core Config and Commands



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

Google自己的文档建议使用这种方法,而不是围绕发送命令(作为配置(和返回响应(作为状态(进行构建。

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

我正在努力理解如何支持这两种方法?我可以看到它的设计方式的好处,但我也在努力理解如何使用像配置这样的值和结果成语与设备交谈。

有没有人实现命令/响应流?是否可以订阅状态主题以在我自己的应用程序中检索设备的状态?

根据下面的澄清注释进行编辑:

我们有一个测试版功能,我们称之为"命令",它将重新启动您正在谈论的重新启动。因此,配置消息(对于要在启动/连接到 IoT Core 时发送设备的持久配置(和用于触发和忘记的命令(如重启消息(的组合可以完成你所说的事情。当前状态有点棘手,因为你可以有一个回调机制,在其中发送命令来询问,并侦听事件/通道的响应,或者让设备报告状态(/状态/MQTT 主题(并只询问 IoT Core 的管理员 SDK 而不是设备。

命令刚刚开放测试版,您现在应该可以访问它。如果您从命令行使用 gcloud SDK,则需要执行gcloud components update,然后gcloud beta iot devices --help将显示命令组。如果您使用的是控制台,则当您向下钻取到单个设备时,您现在应该会在顶部栏上的"更新配置"旁边看到"发送命令"。

旧答案:作为回答的尝试,听起来您可以/应该使用标准的/events/主题并订阅设备进入的 Pub/Sub 主题,而不是使用状态主题?

这实际上取决于我们正在谈论的设备的数量和数量,以保持状态机同步。

在不知道具体实现什么的情况下,我可能会做一些事情,比如发送配置,从/events/主题上的设备响应,并有一个云函数来跟踪 Pub/Sub 主题并使用设备的状态更新类似 Firestore 实例的内容,而不是使用/state/主题。特别是当您正在执行某些操作以直接响应设备的状态报告时。

将命令发送到设备

若要将命令发送到设备,需要使用 sendCommandToDevice API 调用。

从设备接收命令

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

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

  • 爪哇岛
  • 节点JS

最新更新