Как отслеживать историю и группу подключенных устройств AWS IOT по теневому состоянию / атрибуту

Учитывая, что у меня есть устройства xK, каждое из них подключается к IoT AWS, и у каждого из них есть атрибуты / теневые состояния для их группировки.

Пример теневого устройства: { "factory": "factoryA", "pipeInstalledVersion: "1.5.6" }

Какой самый простой способ мониторинга этих устройств в групповом режиме (на основе состояния тени)

Например, я хочу знать, сколько устройств подключено на заводе А в 11:05, 15:30, 20:50. Я также хочу знать, что pipeInstalledVersion устройства имеют в определенный интервал времени (например, каждые 5 минут). Я также хочу знать, например, если на заводе А в 09:00 подключено менее X устройств, а затем отправить предупреждение.

В AWS IoT есть панель мониторинга для подключенных устройств, но нет способа сгруппировать ее по теневому состоянию / атрибуту

Я изучал аналитику AWS IoT, но похоже, что существуют некоторые ограничения. Рекомендуемая платформа QuickSight для визуализации данных имеет ограниченный период автоматического обновления (я полагаю, 1 час), хотя базовый набор данных можно обновлять каждые ~5 минут. - Набор данных будет отображать данные только в том случае, если устройство IOT передало данные за это время. Что если устройство IOT подключено, но оно не передает данные в этот период времени? Это будет так, как будто это не связано.

0 ответов

Индексирование флота обеспечивает возможность мощного поиска по вашему парку устройств с использованием атрибутов Thing и состояния Thing Shadow.

Совместите это с AWS Lambda, и вы сами составите график поиска по своему парку, который можно сочетать с любым количеством действий AWS (например, записывать метрику CloudWatch, масштабировать EC2 и т. Д.).

Примеры запросов индексации парка:

connectivity.connected:true

возвращает все подключенные в данный момент объекты.

connectivity.connected:true AND shadow.reported.model:A 

возвращает все Вещи, подключенные в данный момент и имеющие определенное состояние тени.

aws iot get-cardinality --aggregation-field "connectivity.connected" --query-string "*"

Чтобы найти количество подключенных устройств одновременно. (запросы агрегирования)

Другие вопросы по тегам