
Комментарии 60
У меня четыре zigbee-сети в доме – две на хабах Philips Hue, одна на хабе SmartThings (не используется сейчас, просто живёт), одна на брелке на HA. Разумеется все по разным каналам разнесены. Дом трёхэтажный, часть лпч с зигбёй живёт в саду, Hue. На филипсовских хабах под 50 лпч на каждом, на HA около 25 разнообразного (датчики, кнопки и икеевские бп tradfri для лпч).
В общем долго я этот зоопарк и строил и приводил в порядок.
По опыту – что сильно ломает, так это невнятные китайские девайсы с непонятными контроллерами и непонятной прошивкой. Валят всю сеть только так. Даже когда через них маршрутизация не строится (уж не знаю как у них это получается). Самое отвратительное что было – лампочки Innr. Некий полубренд претендующий под что-то приличное, но по сути китай китаем. Заменил их все на филипсы и икею, и всё заработало идеально.
Та же фигня с китайскими кнопками и платами с релюшками. Сразу в помойку, если нервы дороги.
Тут я вам отвечу, что состав производителей в моей сети очень широк и часть устройств отрабатывали реально очень плохо(штуки 2 которые очень выделялись). Через них старались не подключать соседние устройства. Так что да - производитель и способность маршрутизировать точно ключевой фактор.
Спасибо за статью. Пригодится в аргументации в спорах, почему на черновой стадии ремонда лучше всё таки тянуть провода =)
Перестроение сети в древовидную структуру с распределением нагрузки по роутерам позволило снизить нагрузку на координатор и улучшить устойчивость маршрутизации.
Не очень понятно как вы это делали. Спариванием от роутера? У меня устройства мигрируют по сети по своей воле и им глубоко пофиг, от чего их спаривали, у кого lq выше, туда и приползут.
В первую очередь необходимо контролировать нагрузку на систему и избегать ситуаций, когда обработка данных становится узким местом.
Т.е. захлебнулся контроллер WB?
Поддержу предыдущего оратора по поводу невнятных устройств, особенно роутеров и выключателей в сети.
Да, можно в z2m указать конкретное устройство-роутер через которое планируем подключать. Но по наблюдениям версия старая v2.5.1 пыталась всячески игнорировать пожелания, тогда как в новой все строилось именно так как планировали. Отмечу что "автоматическая" перепривязка устройств происходит после полной потери устройства из сети, но более точно ответить не смогу, поскольку плотно не занимался этим. Кстати из этого вытекает интересный факт, после полного отключения того же контроллера-адаптера сеть перестроится как ей хочется(надо уточнить) и положение адаптера в географическом центре остается единственным важным фактором при перестройке.
Да, процесс перекладки топиков из формата wb в z2m сожрал все ресурсы что были.
Ответил выше)
Да, можно в z2m указать конкретное устройство-роутер через которое планируем подключать.
Это именно стартовая точка. Ну по крайней мере у меня так работает. Если я подключаю термодатчик от координатора, но при этом рядом есть роутер с лучшим LQI, то устройство простроит обе связи почти одновременно. Если после этого условия изменятся, то оно переползет чисто на роутер.
Отмечу что "автоматическая" перепривязка устройств происходит после полной потери устройства из сети, но более точно ответить не смогу, поскольку плотно не занимался этим. Кстати из этого вытекает интересный факт, после полного отключения того же контроллера-адаптера сеть перестроится как ей хочется(надо уточнить) и положение адаптера в географическом центре остается единственным важным фактором при перестройке.
У меня нет, батарейные устройства плавают без "полной потери из сети" (это когда переспаривать приходится?).

Вот текущая карта одной подсети. Все устройства подключались к координатору. Физически дийрузовское реле висит рядом с координатором, у координатора есть внешняя антенна а у реле нет, но какого-то хрена теромдатчики с координатора сползли.Уличный датчик висит на стене, на расстоянии 4 метра от дийруза и координатора через деревянную стену, на расстоянии 12 метров через полметра кирпича и 40 см бетона от реле в новом доме.
И это еще фигня. У меня есть объект на 360 датчиков и 30 роутеров в 4 подсетях, там блуждания датчиков похожи на пятнашки.
Интересно, что никто не упомянул binding, который можно настроить в z2m дополнительно с координатором. Он будет работать даже если координатор недоступен, а в случае с выключателем на батарейке и Икеевскими рулонными шторам на аккумуляторе, работает и при отсутствии электричества. Удивили китайские реле, которые работают с bind, но не Aqara SSM-U01, который не смог. При этом не будет задержек, т.к. трафик не идет через координатор и автоматизации.
А можно дропнуть z2m и пользовать ZHA :) ( Относительно ) недавно вышел ZBT-2 + у меня одно устройство не работало нормально в z2m - перешёл поменяв в том числе и Dongle Plus E. 50+ устройств, но эфир довольно пустой - вроде пока норм.
3 сети zegbee, 2mqtt, zha, hue. В каждой по 200+ устройств. 3 этажа 5 камер дошкольных с обработкой картинки через НА
У соседей zha 100 устройв.
Zha и 2mqtt потом сама раскидало конечные устройства по маршрутизаторам, я просто по привычке, все подключал полок основного свистка. Т.е. не загонялся.
В зверинце есть супер ноунейм китайцы.
Всё отлично. ;)
Создал не один умный дом, все на распберри и сонофф свистках. Таких проблем как вы не испытывал.
Тут очень важным отличием является используемый софт (zha vs z2m), а также взаимное расположение устройств. Также использовал сонофф адаптер + распбери. Ксати, вспомнил что некоторые китайцы, в частности мои датчики движения, очень часто шлют сообщения, интересно есть ли возможность указать что только по изменению статуса движения необходимо отправлять сообщение? Это вполне может влиять на пропускную способность.
Zigbee — это самоорганизующаяся mesh‑сеть:
координатор не управляет маршрутизацией
устройства сами выбирают родителя
решения принимаются по:
уровню сигнала (LQI / RSSI)
задержке
стабильности
таблицам маршрутизации
➡️ Поэтому в Роутере нет и не может быть переключателей типа
“подключать это устройство напрямую к координатору”
Координатор не управляет маршрутизацией, согласен, но он включает режим сопряжения и указывает какое устройство именно будет входить в этот режим. Может вы знаете как именно принимается решение о перестройке, у меня информация что только при полном отсутствии сети и ее возобновлении. Соответственно перезапуск адаптера/софта/устройства пересоберет сеть, связанную с этим устройством.
На самом деле, я бы этого не делал вообще. Самый правильный вариант:
настроить оптимальное разделение WI-FI и Zigbee
Wi-FI Canal Zigbee canal
1 - 15,20,25
6 - 20,25
11 - 15,25
Если Wi-Fi использует 40 MГч (широкий канал):
Лучше перевести Wi-Fi на 5 ГГц (если возможно), a Zigbee оставить на канале 25.
И я бы не увеличивал мощность передатчика координатора. Вы пытаетесь перекричать всех, когда в комнате и так шумно. В результате вас слышно где-то далеко, где слышать не надо, и не слышно близко.
50 устройств не так много. у меня примерно суммарно так же, но большая часть работает через отдельные экосистемы Philips Hue/Aqara/GoogleHome. Но у меня еще вдобавок thread есть, что так же добавляет сложности.
ОТ конкретной реализации так же сильно много зависит. От IKEA мне прилось отказаться совсем. Зато Philips - прямо эталон. Но да, стоит как крыло от боинга.

Zigbee это какой-то хаос, а не сеть. В квартире в бетонными 0.5м стенами вообще нереально чтобы сеть выстроилась и не разваливалась. Как и автор думал, что достаточное количество устройств -роутеров решит проблему, но нет, стабильности никакой, то устройство отрабатывает мгновенно находясь в метре от координатора, то три секунды отклик. Нажимаешь кнопку и постоянно ловить себя на мысли "отработает или нет". Ужасный способ автоматизации. Жаль, что ничего более стабильного при таком энергопотреблении так и не появилось. На мой взгляд эта их история с "самоопределением" прям заваливает всю стабильность.
"Вы просто не умеете их готовить" (ц)
У меня и дом с толстыми кирпичными стенами, и многие устройства живут в саду, и до самых дальних метров 30 от дома. И прекрасно всё себе работает и не отваливается.
Берите нормальный хаб и нормальные девайсы.
В проделанной мною работе очень часто не хватало метрик, это было основной загвоздкой что отталкивает большинство интеграторов. Все сравнивал наблюдением, только после работ написал программу которая подписывается на все топики от z2m и выводит linkquality по устройствам в таблице, может пригодится:
Я часто слышу, что в частном доме всё отлично работает у людей, а в МЖД проблемы из-за кучи помех wifi 2.4. Мне кажется исключительно в этом дело.
Отчасти может быть (и да, на 2,4 ж не только вайфай, хотя понятно что от него шума больше всего). Но у нас тоже точек по дому было разбросано (естественно все по разным каналам сидят), и у соседей есть, и даже публичный вайфай во дворе добивает.
Z-wave можно попробовать, датчиков-кнопков на нём море, но он на 800мГц живёт, заодно и стены лучше будет пробивать. У меня, если что, тоже работает (Ring на нём живёт), и тоже никаких проблем.
Жаль, что ничего более стабильного при таком энергопотреблении так и не появилось.
Много лет существует Eaton xComfort, который работает на 868.3 Mhz (лучше чем 2.4 GHz проникает через стены и диапазон не так загружен как 433 MHz). Энергопотребление - батарейки в выключателе рассчитаны на 10 лет работы. Используя MRF (софт для конфигурации) можно вручную указать роутинг сообщений. Есть подтверждение доставки сообщений и т.д. Сказка…. Только протокол проприетарный и возможно имеет проблемы с безопасностью.
сыпЛется
О, спасибо ребята! Благодаря таким интеграторам у нас постоянные заказы на проекты.
Это же надо додуматься использовать wirenboard (проводная система автоматизации) и повесить на него аж 50 беспроводных устройств в квартире! Я даже не говорю про то, что родные координаторы и ПО для zigbee у вайрена хорошо так отстает по версиям. Уверен сверху еще sprut hub поставили для счастья.
Рад что благодаря мне вы успешный интегратор)
Давайте взглянем на следующее:
Слышал что адаптер wb не самое надежное решение, исходя из этого выбрал сонофф, НО еще нигде не видел точного сравнения двух адаптеров. Слышал позитивные отзывы об адаптере jethome, да и сам в целом был доволен им, только на неюольших инсталляциях
Сам выбор контроллера wb или raspberry pi не имеет никакого значения, нужна была железка с портом usb. Более важным в ходе работ оказался тип монтажа, rpi можно поставить на стол)
С версиями ПО z2m согласен, одной из ошибок было установка не с гита. По поводу адаптера, слышал что обновление на вб помогает, но не в моем случае, к сожалению.
спрутхаб тоже не имеет значение во всем этом тесте, поскольку использовался только в рамках mqtt
Надеюсь вы поделитесь опытом и подскажите какие решения более релевантны.
Конечно поделюсь.
1. Дело не в производителях координаторов, а в используемых чипах. Адаптер в WB сделан на уже сильно устаревшем чипе Ti CC2652. На этом же чипе Sonoff делали координаторы Dongle P. Новые прошивки я на него уже давно не видел. Почему это важно? Пример: у Aqara есть хорошие датчики температуры и влажности (которые без экранчика). Так вот столкнулись с ситуацией когда координатор Sonoff Dongle E ( на более новом чипе EFR32) на старой прошивке мог такой датчик подключить, но не видел показания температуры. Проблема решались более свежей прошивкой контроллера.
2. Контроллер Zigbee очень чувствителен к месту установки. Как показала практика, металлическая дверь распред. шкафа, где обычно установлен WB снижает качество приема. Так же на качество приема влияет сам ПК в который подключен координатор. Его необходимо выносить на USB удлинителе подальше от прочего оборудования, а еще лучше использовать координаторы с PoE питанием и выбирать его расположение в рамках проекта без привязки к распред шкафу или серверной стойке. Так же во время проекта можно заложить не один, а несколько координаторов в разных частях объекта.
Не забывайте, что Zigbee сеть должна быть настроена на максимально свободные от WiFi частоты. Тут, кстати, тоже есть нюанс. Не все Zigbee устройства умеют работать на разных диапазонах. Есть залоченые на какой то один канал, к примеру, 11 или 15.
Важен так же правильный выбор zigbee устройств. Сталкивался с несколькими термостатами, которые просто засоряли сеть постоянными сообщениями и, как следствие, появлялись задержки в работе всей сети. В этом случае помогает либо прошивка устройства на альтернативную доработанную прошивку или замена устройства. Тут важно понимать, что настройка в z2m только помогает не спамить в mqtt и никак не влияет на саму сеть zigbee.
3. ПО z2m в репозиториях WB отстает от релизной ветки оригинального z2m. В целом это не проблема, но об этом нужно знать.
4. Использование Raspberri Pi в проекте плохая идея. Дело в том, что у нее часто выходят из строя карты памяти. В сети есть много вариантов подключения к ней SSD диска, решающее эту проблему, но тогда стоимость такого решения легко может превысить NUC подобные ПК на полноценных платформах той же intel.
В итоге, если уж приходится использовать Zigbee, то ставим один или несколько координаторов с питанием PoE, к примеру, Sonoff Dongle M. Каждый в режиме координатора, а не усилителя и работающего каждый со своим z2m. Эта схема позволяет обеспечить правильное покрытие сигналом всех устройств и в то же время увеличить отказоустойчивость системы, позволяя зарезервировать контроллер на котором крутятся контейнеры z2m. Так же, в отличие от wb модуля, в дальнейшем такие координаторы можно относительно легко заменить на новые модели.
И да, мы стараемся не использовать беспроводные устройства там, где можно сделать проводное управление. Это сильно снижает количество бессонных ночей :)
Дело в том, что у нее часто выходят из строя карты памяти.
это вопрос отдельных статей которые уже давным давно написаны.
Спасибо за детальный ответ, прослеживается большой опыт в интеграции беспроводных решений!
Поддержка современных адаптеров действительно важный критерий, с этой стороны вполне объясняется как поддержка устройств(хотя считал что софт работающий с адаптером решает эту задачу, юудто проткоол один и гораздо реже обновляется, ну лан), так и производительность в том числе.
Тут с вами согласен, но по наблюдениям шкафчик открыт или закрыт, выносная антенна или без нее, не было практически никакой разницы, возможно в других инсталляциях это было бы юолее весомым фактором, например если контроллер в щитовой, то зигби там и останется). У вас есть на примете координаторы с poe питанием? С выбором устройств тоже подностью согласен
Да
Очень интересная архитектуру вы выбираете при наладке, у вас разные сети зигби на разных каналах, разбросанные по разным частям объекта, объединены одной железкой с N usb портов и внутри крутятся несколько z2m, видимо вы на этом собаку съели. По рпи, то он на ссд.
Тут все зависит от клиента так или иначе.
По п.4 Мы используем не usb, а lan координаторы с питанием по PoE. Схема следующая: контроллер с n контейнерами z2m -> PoE роутер-> n lan координаторов. Канал для всей zigbee можно использовать один и тот же, важнее чтобы wifi на него влиял минимально.
Пример lan координатора Sonoff Dongle M
2.нормальная антенна добавляет, но немного.
4.USB не нужен, ethernet координаторы же, в общей ethernet сети. Как вариант - в wifi сети, если проводов нет. XZG умеет одновременно и зигби и вайфай.
Вместо того чтобы подключать все устройства напрямую к координатору с включённым режимом «разрешить всё», мы перешли к древовидной структуре сети. Ближайшие к координатору устройства подключались напрямую, а остальные — через них. По сути, на каждую комнату выделялось один–два роутера, связанные с координатором, а остальные устройства в помещении уже цеплялись к ним. Это позволило разгрузить координатор и сделать сеть более устойчивой, поскольку координатор имеет ограниченное количество прямых подключений и таблиц маршрутизации.
Это так не работает. Нет, при первоначальном вводе в сеть устройства в z2m можно выбрать конкретный роутер. Но через некоторое время сеть перестроится так, что он вашей привязки не останется и следа. Нельзя привязать устройство к конкретному роутеру, оно само в процессе работы сети решит, где ему лучше ...
Да, спасибо. Подскажите у вас есть понимание как этот механизм работает? Я считал что только полное отсоединение от текущего родителя сети запускает этот процесс.
Да, спасибо. Подскажите у вас есть понимание как этот механизм работает? Я считал что только полное отсоединение от текущего родителя сети запускает этот процесс.
Когда батарейному устройству А надо отправить пакет, он отправляет rreq - запрос всем ближайшим устройствам с адресом куда надо отправить пакет - (до координатора или в биндинг), назовем это устройство Б. Если у принявшего В есть свежий маршрут до конечной точки, он отправляет широковещательный ответ, все соседи записывают "хочешь попасть в Б, попроси передать В". Каждому пакету в памяти присваивается lqi - попугай, показывающий надежность маршрута. Каждый новый пакет может вызвать перестроение маршрута. Разница по времени между пакетами может быть часы или даже дни.
Несколько снижают очарование происходящего пи...ца роутеры, которые обмениваются пакетами сильно чаще, соответственно их таблицы немножко стабильней, зато ветвистей.
Крч, "непредсказуемая траектория" - это как раз про зигби. Чисто теоретически это должно обеспечить построение маршрута на слабых или зашумленных линиях с динамичными изменениями. Практически - лучше пользоваться проводами, от лукавого все эти забавы.
Я не большой специалист, но по тому, что я наблюдаю иногда в снифере, маршрут меняется в процессе работы сети ...
Ниже jaha33 посоветовал инструкцию для сниффинга, может у вас есть своя, чем вы пользуетесь?
Zboss sniffer, который запускает Wireshark.
А, ну и вот такой модуль - https://ali.click/z0b361g
А, вот еще. Это что за зверь такой :))
группы(логической, не z2m-группы)
В z2m есть функционал группы устройств, не разбирался с его работой. А под логической имел ввиду объединение устройств в сценарной машине по триггеру например.
А вы попробуйте группы в z2m (хотя это не группы z2m, это группы в стандарте). Не нужно в сценариях все объединять. Можно просто команду в группу отправить и все. А если "командное" устройство правильно работает с группами, то достаточно его просто в группу добавить. И все будет работать.
А сниффером почему не посмотрели что там у вас происходит?
Утилита tshark сможет смотреть что приходит с адаптера? или вы что-то другое имеете ввиду? Я написал программу которая фиксирует в эксельке linkquality всех приходящих сообщений по мктт, но это уже после работ, т.е. весь анализ построен на наблюдении.
https://github.com/Palmyra-debug/ZigLQ
Можно взять платку на ESP32 с поддержкой ZB (C6 или H2), прошить и настроить согласно гайду:
2. Developing with ESP Zigbee SDK - ESP32 - — ESP Zigbee SDK latest documentation
Тогда в Wireshark можно видеть все, что происходит в сети ZB на вашем канале, там будет видно и LQI и RSSI, и откуда куда идут пакеты, кто спамит в сеть, кто отваливается и перезаходит и т.д.
Большое спасибо! Обязательно проверю, а плата тут становится координатором или роутером, какая роль в сети?
Никакой роли не будет, плата будет слушать эфир и перекидывать zb пакеты в wireshark. Он уже это дело парсит и показывает.
Но чтобы начать хоть как то понимать что там отображается, надо как минимум почитать статью про устройство zb на хакере.
Полет пчелы. Как работают сети ZigBee и как искать уязвимости в них — Хакер
Просто восхитительно. zigbee работает по сути как черный ящик с at-командами который должен делать все самостоятельно (взялся за гуж). Но он умудряется заdossить этими командами целый не слабый комп на линуксе (WB) что пришлось ставить еще более мощный комп. Скрипты на sh и py - что могло пойти не так :D
По опыту на сетях более серьезного размера (200+) результаты следующие :
1. Используем только стек EFR. Он гораздо гибче (и дальше будет понятно почему это важно).
2. Расположение координатора - в какой-то мере важно, но не совсем так. Координатору важно, чтоб рядом с ним было 2-3 хороших роутера, чтоб всё не шло на координатор. Но с другой стороны, если рядом с координатором стоит только один роутер (у меня так было - координатор в щитке, там же стоит счетчик) - роутер может стать единственным next-hop координатора и весь трафик тогда пойдет через него, если роутер так себе, то это приведет к проблемам.
3. binding и спаривание. С кем вы спарили устройство не влияет на то с кем устройство будет работать. через 15-30 минут сеть перестраивается и устройство может выбрать любой parent router. Но, если вы настроите биндинг с желаемым роутером - совсем не обязательно "по делу", можно какой-нибудь genBasic биндить, то тем самым повысите вероятность, что parent будет тот который хотите.
4. Память и прошивки. Современные железки - очень мощные и могут держать большие таблицы. Но прошивки для этих железок такие, буд-то авторы прошивок сетей больше чем на 15-20 устройств не видели. Берите прошивку для EFR и подгоняйте под ваши размеры сети. Например так : https://github.com/AlexMKX/silabs-firmware-builder/blob/sonoff-zigbee-dongle-e-mega-router/manifests/sonoff/sonoff_zbdonglee_mega_router.yaml
5. Репитеры. Мантры вроде : Лампочки IKEA - хорошие репитеры, поставьте больше мощных репитеров - не больше чем мантры. Репитеры - нужны хорошие и это факт. Хорошие репитеры это не какие-то лампочки/розетки правильных брендов. Хороший репитер - это тот же ZB DongleE или SMLight с прошивкой под вашу сеть (в большинстве случаев просто с мощной прошивкой).
Диагностика сети. Даже в хорошо спроектированной сети кто-то будет дурить и ломать всю сеть. Может быть из-за брака. Возьмите хорошего агента (GPT/Opus) включите дебаг логи в z2m. Пусть сеть поработает, выделите проблемы которые вам мешают жить и отправьте его в логи разобраться - какой перент портит всю картину.
Я не совсем понял эти фразы:
"Шаг первый — пересборка топологии сети." и "и заново перестроили сеть, соблюдая древовидную структуру". Если вы имели ввиду привязку через конкретный роутер - то это минут на 5-20, потом все перестроится без вашего желания и участия. Или там "более глубокий" смысл: 15 розеток (реле) в коридоре, и 2 в гостиной, несмотря на физическое сопротивление клиента, с аргументом - "так надо"?
Кстати, еще хозяйке на заметку по поводу количества роутеров и организации сети. По опыту, максимальное число прыжков до координатора -хопов. Стандарт вроде говорит про десятки, но на практике 3-5 это уже много. У меня был опыт попытки построения цепочки в многоэтажке - на каждом этаже было по роутеру, от них по 2 роутера в крылья подъезда, и там уже эндпоинты, 3 хопа стабильно, дальше - как получится.
Там проблема с джойном начинается. Тк на джойн пакеты жёсткие тайминги. Поэтому все и пишут - джойнть лучше возле координатора.
Потом работать должно. Вот правда лаги жуткие.
Не могу понять, конкретно в чем проблема? Если я правильно понимаю, роутеру достаточно один раз подключиться к сети и он ее уже помнит. Он же просто так не будет перезаходить в сеть
Реджойны бывают это нормально.
Когда устройство заходит в сеть, то z2m его джойнит по квиркам. Итог - устройство показывается джойненым, но само оно в это не верит и может выйти само.
Вторая проблема, если устройство теряет сеть на 10-15 минут, то оно может начать джойн заново для поиска новой сети либо лучшего роутера.
Почему Zigbee “сыплется”: опыт диагностики и оптимизации сети