Контроль Zigbee‑mesh без гадания: логи, метрики и алерты

Мониторинг Zigbee‑сети строится просто: нормальные логи + базовые метрики доступности/«молчания» + контроль нагрузки + несколько алертов, а карту связей используйте как подсказку для диагностики, а не как «истину». Это позволяет поймать деградацию до массовых unavailable.

Оглавление

Логирование без лишнего шума

Задача логов — быстро ответить на вопросы «что сломалось?» и «когда началось?». Держите в логах постоянно:

  • перезапуски сервиса и переподключения координатора (USB/UART);
  • ошибки интервью/пейринга;
  • таймауты, ошибки доставки, проблемы маршрутизации;
  • массовые изменения доступности устройств.

А debug включайте временно (10–30 минут) на время расследования и обязательно с ротацией файлов.

Постоянный debug часто превращается в «шумовую атаку» на диск/БД и усложняет поиск реальных причин. Для постоянной эксплуатации достаточно info/warn + ротация + выборочные фильтры.

Карта связей: как читать и чему не верить

Карта mesh полезна для трёх вещей:

  1. найти роутеры (питаются от сети) и проверить, что они реально участвуют в маршрутизации;
  2. увидеть «узкие места», когда много устройств висит на одном родителе;
  3. проверить гипотезу «в этой зоне не хватает роутера».

Почему карта часто «неполная»:

  • батарейные end‑devices спят и не всегда отдают данные так, как ожидает визуализация;
  • маршруты динамические: сегодня устройство «за роутером A», завтра — «за роутером B», и это нормально.

Используйте карту как навигацию для выезда «в поле» (перенос роутера, смена места координатора, проверка помех), а алерты стройте по метрикам доступности и задержек.

Метрики качества: минимум, который реально помогает

LQI/RSSI полезны как тренд, но редко являются единственным объяснением проблем. Для раннего предупреждения обычно важнее другое:

1) Доступность (availability)
Показывает, что устройство вообще «в сети».

2) «Молчание» (staleness / last_seen age)
Сколько времени нет сообщений от устройства. Это ловит проблемы раньше, чем статус успеет стать offline.

3) Нагрузка (сообщения/сек и всплески репортинга)
Резкий рост потока сообщений часто означает шторм: слишком частые отчёты, неудачная автоматизация, устройство «залипло» и спамит.

4) Ошибки доставки/таймауты (из логов)
Если ошибок становится больше, сеть деградирует даже при «зелёной» карте.

Минимальный набор метрик и стартовые пороги

Что контролироватьЗачемСтартовый порог
Offline устройствловит реальные отказы> 0 для критичных, либо > 20% сети
Stalenessловит «подвисания» и плохой роутинг> 2× ожидаемого интервала репорта
Ошибки/таймауты в логахранний сигнал деградации> N событий за 5–10 минут
Msg rate (поток сообщений)выявляет шторм и перегрузрост в 3–5× от базовой линии
Перезапуски сервиса/координаторапроблемы питания/USB/ПО> 1 в час или стабильно ежедневно

Алерты: готовые правила по приоритетам

P1 (срочно):

  • координатор/интеграция недоступны или сервис упал;
  • MQTT недоступен (если стек завязан на него);
  • массовый offline: например, более 20% устройств одновременно.

P2 (деградация):

  • staleness у критичных устройств (протечки/замки/отопление) выше порога;
  • рост ошибок/таймаутов в логах;
  • резкий скачок msg rate (шторм репортинга).

P3 (ухудшение радио/топологии):

  • устойчивое падение LQI/RSSI у роутеров/ключевых узлов;
  • частые перепривязки/смена родителя (если ваш стек это отражает).

Делайте алерты по принципу «порог + длительность»: например, staleness > X в течение 10 минут. Разовые провалы — это нормальный шум mesh.

Частые ошибки

  • Включить все диагностические сенсоры (LQI/RSSI) навсегда. Часто это раздувает историю и не даёт пользы. Включайте точечно: роутеры + проблемные зоны.
  • Алертить по карте связей. Карта — подсказка, а не поток телеметрии. Лучше availability/staleness/ошибки/нагрузка.
  • Игнорировать транспорт координатора. Питание, USB‑переподключения, расположение рядом с источниками помех часто важнее «настроек сети».
  • Лечить всё сменой канала. Сначала проверьте шторм сообщений, перезапуски координатора и конкретные «шумные» устройства.

FAQ

Почему устройство online, но команды выполняются с задержкой?
Обычно виноваты ретраи из‑за помех, перегрузка сети (слишком частые отчёты), неудачный родитель/роутер или проблемы транспорта координатора (USB/питание).

Почему на карте нет части устройств?
Часть end‑devices спит и не участвует в опросах так, как ожидает визуализация. Кроме того, маршруты динамические и «идеальной» карты в каждый момент времени не существует.

Есть ли «нормальные значения» LQI/RSSI?
Универсальных — нет: шкалы и поведение зависят от железа и условий. Полезнее зафиксировать свой базовый уровень и алертить на устойчивое ухудшение тренда, а не на одно число.