В приложении ПушОк есть экран «Карта Zigbee»: кружки, линии между ними, числа на линиях. Выглядит понятно, но вопросов по нему нам приходит много. Почему у одной линии два разных числа? Почему датчик на карте связан со шлюзом, а сам молчит? Почему на карточке устройства одно число, а на карте другое? Плохо это — 40 — или нормально?
Мы решили написать к карте нормальную справку и быстро поняли, что и сами знали про неё не всё. Пара вещей стала сюрпризом даже для нас. Самый большой: числа на разных линиях часто вообще нельзя сравнивать между собой. Казалось бы, 200 больше, чем 80, — но эти два числа могли посчитать разные устройства, каждое в своих «попугаях». Об этом ниже — подробно, потому что на этом спотыкаются почти все, и мы тоже.
Теперь ответы на эти вопросы живут прямо на карте: кнопка «?» вверху экрана открывает справку. Эта статья — та же справка, только развёрнутая и с картинками покрупнее. Схемы нарисованы так же, как сама карта, чтобы их было легко сопоставить с тем, что вы видите у себя.
Коротко
- Линия между кружками значит, что эти устройства слышат друг друга. У роутеров это не обязательно путь, по которому идут данные.
- Число у конца линии показывает, как этот узел слышит соседа: от 0 до 255, больше — лучше.
- Числа приблизительные: у разных производителей свои шкалы, а у батарейных датчиков они обновляются редко.
- Сравнивать между собой можно только числа, которые измерил один и тот же узел — например, числа у шлюза на всех его линиях.
- Карта — снимок, собранный в какой-то момент. Чтобы собрать её заново, нажмите кнопку «Обновить» вверху экрана.
- Линия на карте не гарантирует, что устройство сейчас работает, а её отсутствие — что не работает. Это видно на карточке устройства.
Дальше — подробно.
Что на карте

Шлюз — центр сети, через него приложение говорит со всеми устройствами.
Роутеры — устройства с питанием от сети: розетки, реле, лампы, многие выключатели. Они не только работают сами, но и передают дальше сообщения других устройств, поэтому их ещё называют ретрансляторами.
Устройства на батарейках — датчики, кнопки — большую часть времени спят, чтобы беречь батарейку, и чужие сообщения не передают.
Линия соединяет два узла, если хотя бы один из них сообщил, что слышит другого. У роутеров линий обычно много — это все соседи, которых они слышат. У батарейного устройства линия обычно одна: к его «родителю», шлюзу или роутеру, через который оно работает.
Подробнее о том, как устроена такая сеть и зачем в ней роутеры, мы писали в статье «Меш-сеть и зона покрытия».
Числа на линии
На линии показано качество связи — в Zigbee его называют LQI. Это число от 0 до 255: чем больше, тем увереннее узлы слышат друг друга.
Шлюз слышит розетку на 70, розетка слышит шлюз на 160.
Каждое число стоит у того узла, который его измерил. Число у шлюза — как шлюз слышит розетку, число у розетки — как розетка слышит шлюз.
Числа почти всегда разные, и это нормально. У узлов разные чипы, и каждый считает по своей шкале (об этом ниже). Передатчики у них разной мощности. А помехи бывают сильнее с одной стороны: если рядом с розеткой стоит Wi-Fi роутер, ей слышно хуже, чем шлюзу.
Если число одно. Значит, о связи сообщил только один из узлов: батарейные устройства на опрос карты обычно не отвечают. Если линия совсем короткая, оба числа стоят посередине через «/», и левое относится к левому узлу.
Шлюз со старой прошивкой показывает одно число посередине — лучшее из двух. Чтобы видеть оба, обновите прошивку шлюза.
Какое число считать хорошим
Ориентиры ниже — для чисел, которые измерил наш шлюз: это число у шлюза на концах его линий и число на карточке устройства. Остальные устройства считают по своим шкалам, и мерить их этими порогами не стоит.

- Больше 80 — хорошая связь.
- 30–80 — рабочая: обычно всё доходит с первого раза.
- 10–30 — слабая: сообщения могут теряться и доходить с повторами, команды выполняться с задержкой.
- Меньше 10 — на грани, связь может пропадать.
Это ориентиры, а не правило. Если устройство работает без сбоев, низкое число само по себе не повод что-то менять.
И ещё одна деталь: шлюз ловит сигнал и слабее, чем показывает шкала. Очень слабые сообщения он засчитывает как 0, но часто всё равно их принимает.
У каждого производителя свои «попугаи»
Это тот самый сюрприз из начала статьи. Глядя на карту, очень хочется сравнить две линии: тут 80, там 200 — значит, вторая связь намного лучше. Мы и сами так делали, пока не стали разбираться.
Два датчика на одинаковом расстоянии от шлюза.
Оказалось, что стандарт Zigbee говорит про LQI только одно: больше — значит лучше. А как именно его считать, решает производитель Zigbee-стека — чипа и его прошивки. Кто-то отталкивается от уровня сигнала, кто-то от того, сколько ошибок было при приёме, и у каждого своя шкала. Поэтому при одинаковом расстоянии устройство одной марки может показать 80, а другой — 200. Даже шлюзы ПушОк разных моделей считают немного по-разному.
Отсюда простое правило: сравнивать можно только числа, которые измерил один и тот же узел. На карте это удобно: каждое число стоит у того, кто его измерил. Возьмите шлюз. Числа у его концов линий — это то, как шлюз слышит каждого соседа, и все они посчитаны по одной шкале. Их сравнивать можно: если у шлюза одна линия на 95, а другая на 30, второго соседа он действительно слышит хуже.
Синие числа у шлюза посчитаны по одной шкале, их можно сравнивать. Серые числа на другом конце каждое устройство посчитало по-своему.
А вот числа на другом конце линий каждое устройство рапортует так, как считает нужным. 210 у марки А и 75 у марки Б ничего не говорят о том, кто из них слышит шлюз лучше: может быть, марка Б просто считает скромнее.
Совет. Сравнивайте между собой числа одного узла — например, все числа у шлюза. А числа одного устройства сравнивайте во времени: до и после перестановки, днём и вечером.
Это среднее, и оно обновляется не сразу
Число на карте обычно сглажено по нескольким последним сообщениям, которые узел получил от соседа. Шлюз, например, каждый раз берёт середину между прежним числом и новым. Поэтому число может «гулять» от сообщения к сообщению и не сразу показывает перемены.
Роутеры переговариваются между собой примерно раз в 15 секунд, поэтому числа между ними свежие. Батарейное устройство выходит на связь, только когда ему есть что сообщить или по своему расписанию — иногда раз в час и реже. Его число может оставаться прежним часами.
Карта — это снимок. При открытии экрана шлюз показывает последнюю собранную карту, а она может быть старой — например, собранной ещё до того, как вы переставили розетку. Чтобы собрать карту заново, нажмите «Обновить» вверху экрана. Шлюз опрашивает устройства по очереди, поэтому сбор занимает время. Спящие устройства на опрос обычно не отвечают, и о них рассказывает их «родитель».
Линия есть, а устройство может не работать

Узел может часами, а иногда и дольше, помнить соседей, которые пропали. Если у датчика села батарейка или розетку выдернули из сети, линия к ним может остаться на карте с прежним числом.
Работает ли устройство, карта не скажет. Откройте список устройств: значок часов на карточке показывает, сколько времени назад устройство последний раз было на связи, а значения рядом — что оно сообщило.
Линии нет, а устройство работает

Бывает и наоборот: устройство работает, а линии к нему на карте нет. Карта собирается из ответов устройств на опрос, и ответ может не прийти:
- роутер был занят или его ответ потерялся по дороге — тогда пропадут и все линии, о которых он должен был рассказать;
- батарейные устройства на опрос не отвечают сами, о них рассказывает «родитель», и если не ответил он, устройство останется без линий;
- устройство, которое только что подключилось или нашло новый путь, может появиться в списках соседей не сразу.
Что делать. Посмотрите на карточку: если устройство недавно было на связи, с ним всё в порядке. Чтобы проверить карту, соберите её заново кнопкой «Обновить» — пропавшая линия часто появляется со второго раза.
Почему на карточке другое число
Датчик работает через розетку: на его карточке 150 — связь розетки со шлюзом.
Значок сигнала на карточке устройства показывает качество последнего сообщения, которое дошло до шлюза. Если устройство работает через роутер, шлюз слышит не само устройство, а этот роутер, и число на карточке будет про связь роутера со шлюзом. Поэтому у нескольких датчиков за одной розеткой на карточках похожие числа.
Связь самого датчика с роутером видна на карте. К тому же на карточке — одно последнее сообщение, а на карте — среднее, и сняты они в разное время, так что совпадать эти числа и не должны.
Роутеры и путь сообщений
У лампы два пути до шлюза: через розетку или через реле. Каким идти, сеть решает сама и может переключиться.
Сообщение до шлюза может пройти через один или несколько роутеров. Путь сеть выбирает сама, по качеству связи и по тому, кто доступен сейчас. Если роутеров несколько, путь может меняться — например, когда один из них выключили или рядом появились помехи.
Батарейное устройство говорит только через своего «родителя» — шлюз или роутер, к которому оно подключилось, а дальше путь выбирают роутеры. Родителя устройство выбирает при подключении. Если родитель пропал, большинство устройств через некоторое время находят нового, но некоторые (например, часть датчиков Xiaomi и Aqara) так и остаются без связи, пока их не подключить заново. И к новому роутеру поближе уже подключённое устройство само не перейдёт.
Галочка «Скрыть соединения между роутерами» убирает лишние линии между роутерами: у каждого остаётся связь со шлюзом или хотя бы одна с другим роутером. Карту так проще читать.
Громкий — не значит хороший
Тут стоит сказать, как именно батарейное устройство выбирает «родителя». Только по радио: кого слышно громче и кто ближе к шлюзу, тот и победил. И выбирает каждый раз с чистого листа, ничего не помня о прошлом опыте.
Беда в том, что громкий роутер — не обязательно хороший. Нам попадались роутеры, которые исправно подтверждают, что приняли сообщение, а дальше оно никуда не уходит. Попадались и такие, что время от времени просто «забывают» подключённое к ним устройство. Датчик долго не может достучаться до шлюза, переподключается — и выбирает тот же самый роутер, ведь он по-прежнему громче всех. На карте при этом всё выглядит прекрасно: линия на месте, числа высокие.
Поэтому в наших батарейных устройствах мы добавляем оценку родителя. Устройство запоминает роутеры, которые его подвели, и при следующем подключении отдаёт предпочтение другим. Это не чёрный список: если подвёдший роутер единственный в зоне досягаемости, устройство всё равно к нему подключится. А роутер, который потом исправно работает, постепенно возвращает себе репутацию.
Как это устроено и почему простые решения тут не работают — расскажем в отдельной статье.
Как улучшить связь
- Добавьте роутер — розетку, реле или лампу от сети — между шлюзом и дальними устройствами. Уже подключённые батарейные устройства начнут работать через него только после того, как их подключить заново. Если розетки на нужном месте нет — на участке, в теплице, между домом и баней, — для этого есть автономный ретранслятор POK004 на солнечной панели.
- Не обесточивайте роутеры обычным выключателем: устройства, которые шли через них, потеряют связь, пока не найдут другой путь. Умную лампу лучше выключать из приложения.
- Подключайте устройство рядом со шлюзом, так подключение точно пройдёт, а потом ставьте его на место. Роутер сам найдёт новый путь. Батарейному устройству на новом месте может понадобиться несколько минут, чтобы найти нового «родителя»; если оно так и не вышло на связь, нажмите на нём кнопку, чтобы разбудить. Если на месте связь у него слабая, а рядом есть роутер, подключите устройство заново прямо там — тогда его «родителем» станет ближний роутер.
- Поставьте шлюз открыто и повыше, не в металлический шкаф и не вплотную к Wi-Fi роутеру, микроволновке, компьютеру с подключёнными флешками или внешними дисками: они создают помехи на той же частоте.
- Металл, зеркала, аквариумы и бетонные стены сильно ослабляют сигнал.
- После перестановки дайте сети несколько минут, потом обновите карту.
- Устройство стало терять связь? Сначала проверьте батарейку: на слабой батарейке оно чаще не может достучаться.
Если устройство регулярно пропадает, а батарейка в порядке, загляните в статью «Почему в Zigbee „устройство постоянно отваливается“ и как это исправить» — там разобраны причины и по шагам, что с ними делать.
Итог
Карта Zigbee — хороший инструмент, чтобы понять, как устроена ваша сеть: кто через кого работает, где связь тонкая и куда стоит добавить роутер. Но это снимок с приблизительными числами, а не прибор. Работает ли конкретное устройство прямо сейчас, честнее всего скажет его карточка: когда оно последний раз выходило на связь и что сообщило.