Мне нужно получить достоверное состояние устройств IoT.
Теперь у меня есть Lambda, подключенный к SELECT * FROM '$aws/events/presence/#'
событиям в IoT.
Но я не могу получить надежный статус устройства в случаекогда подключенное устройство было отключено и подключено обратно в течение ~ 40 секунд.Результат этого сценария - события в следующем порядке: 1. Подключено - вскоре после повторного подключения устройства 2. Отключено - через ~ 40 секунд.
Похоже, сообщение disconnected
не сбрасывается, когда устройствов любом случае подключился обратно и отправил сигнал после истечения времени ожидания подключения.
Я нашел обходной путь - запрос подключения устройства из AWS_Things
индекса IoT.На самом деле, я также получаю предыдущее состояние подключения, но у него есть поле метки времени.Затем я просто сравниваю текущую метку события.time с меткой времени индекса и, если она превышает 30 секунд, я молча отбрасываю событие disconnected
.Но этот подход ненадежен, потому что я все еще могу получить неправильное поведение при более быстром переключении устройства - с интервалом 5 секунд.Это неприемлемо для моего проекта.
Возможно ли использовать события IoT для решения моей проблемы?Я не хотел бы идти в опрос устройства индекса ..