AWS 读取 greengrass 设备的 IoT Thing 连接状态

AWS read IoT Thing connectivity state of greengrass devices

我是 AWS IoT 的新手,想知道如何获取我的物品连接状态。

我读过 managing indexes 并且相信这就是我要找的东西。

但是在我的架构中,我有 IoT Greengrass 核心,它是一个物理链接到 AWS 云的边缘设备,以及通过蓝牙连接到这个边缘设备并且我在 AWS IoT 中创建的 Greengrass 设备物联网也是如此。 (Greengrass 核心和 Greengrass 设备的物联网事物)

我相信一旦 Edge 设备连接到 AWS,它在 AWS_Things 索引中的连接状态将是更新为“true”。但是那些没有直接连接到 AWS 而是通过边缘设备连接的物联网设备呢?他们的连接状态也会更新吗?它是如何工作的?

或者当涉及到这些不直接连接到 AWS IoT 云平台的 IoT 事物时,我应该为连接状态使用影子属性吗?

所以我会通过以下两种方式之一来做到这一点:

一个是属性,如果只针对 connected/disconnected 状态,可能是最好的 "proper" 方式。

另一种方法是让 Greengrass 设备在后台本地查询 BT 连接设备,可能是通过 bt-device -l(来自 bluez-tools apt 包)。一旦检测到它不再附加,您可以发布关于单独主题的警报。这种方法的好处是您可以定期查询电池状态或其他属性,并在此特定主题下发布,即:

IoTDevice1/BTDevice1/running True

IoTDevice1/BTDevice1/battery 80%

等等

关于获取 GG* 设备的状态,我建议如下:

  • 物理 GG 设备通过本地 Lambda 函数与 GG 核心通信,一旦核心从给定设备获取状态,Lambda 函数(从核心运行)设置 AWS 云中物联网事物的状态平台.

*GG : 格林格拉斯