IoT и MQTT: датчик молчит или показывает не то
Датчик температуры может ломаться тихо: брокер работает, а значения нет или оно давно вышло за норму. Монитор MQTT подписывается на топик и проверяет само значение.
Что проверяется
- Брокер доступен и принимает подключение (MQTT 3.1.1, mqtt на 1883 или mqtts с TLS на 8883).
- Логин, права и Client ID прошли: отказ в CONNACK — тоже падение, с причиной.
- В топике есть сообщение до таймаута. Тишина означает, что устройство молчит.
- Значение в допустимом диапазоне: в алерте указано, на сколько вышло, например «31,4 выше максимума 30 (на 1,4)».
- Значение равно ожидаемому, например online, без учёта регистра.
Значение внутри JSON
Если устройство шлёт JSON, укажите путь к полю: data.temp или sensors.0.t. Без пути проверяется вся нагрузка сообщения целиком.
Режим «только свежие сообщения»
Брокер хранит последнее retained-значение и отдаёт его даже за мёртвое устройство. В этом режиме монитор пропускает сохранённое значение и ждёт новое. Без него выключенный датчик неделями выглядел бы живым.
С чем работает
С любым брокером MQTT 3.1.1 с публичным адресом: Mosquitto, EMQX, брокеры Wiren Board, Zigbee2MQTT и Home Assistant. Для своего удостоверяющего центра проверку сертификата можно отключить. Пароль брокера хранится зашифрованным и в браузер не возвращается.