Статья

Zigbee. Когда раZмер имеет Zначение

Очень часто от пользователей, кто только начинает знакомиться с сетью Zigbee, можно услышать вопросы: "а сколько Zigbee-устройств потянет малина?", "я купил стик с антенной, который бьет на 2 км, но он даже на 20м не работает, как быть?"

Сегодня я попытаюсь приоткрыть завесу тайны ответов на эти вопросы - расскажу свой опыт и знания о масштабировании Zigbee-сети.

Надеюсь, начальные знания о Zigbee-терминах у вас уже есть. Будем много идей и мало конкретики. Поэтому, поехали!

Суть проблемы

Со временем, многие пользователи Zigbee-устройств начинают испытывать зуд в труднодоступных местах от следующих проблем:

Все ближайшие к zigbee-координатору закутки уже забиты датчиками и надо расположить новую кнопку достаточно далеко от координатора, чтобы сосед по даче мог сигнализировать вам, что "стол накрыт, а жена ушла по делам".

После последнего подключенного Zigbee-устройства, начались какие-то заморочки с первыми устройствами. А потянет ли координатор еще одну кнопку?

Т.е. можно выделить потребность масштабирования сети в связи с увеличением зоны, которую надо покрыть Zigbee-сетью и в связи с увеличением количества подключаемых устройств.

Проблемы количественного и территориального масштабирования на самом деле очень похожи и поэтому решаются примерно одинаково.

1. Меш вам в помощь

Как вы знаете, в сети Zigbee кроме координатора, есть 2 вида устройств: роутеры и конечные устройства. Именно благодаря роутерам создаются узлы сети, которые и позволяют наращивать протяженность сети и количество ее элементов.

Роутерами обычно являются устройства, подключенные к постоянному питанию (например к сети 220в). Именно это позволяет таким устройствам не спать, а бодрствовать и осуществлять трансляцию сигналов между участниками сети. И еще это позволяет не экономить на энергии для сигналов - в большинстве случаев, дальность распространения сигнала от роутера гораздо больше.

Благодаря роутерам, конечные устройства (датчики, кнопки) можно располагать рядом с ними в радиусе их действия. Для работы датчиков через роутер, они должны быть сопряжены с роутером, а не с координатором.

Роутеры способны образовывать цепочки из нескольких роутеров и меш (сети узлов), позволяя расширять покрытие Zigbee-сети.

Таким образом, для возможности расположить датчик далеко от координатора, нужно между датчиком и координатором выстроить цепочку роутеров.

Имейте ввиду, что датчики на батарейках имеют очень ограниченную дальность распространения сигнала (например, у датчиков xiaomi радиус примерно 10-15м в помещении), т.к. он у них слабый. И какая бы мощная антенна не стояла на координаторе или роутере, датчик не сможет "докричаться" до него на больших расстояниях.

Но можно сделать роутер с такой антенной, который сможет общаться с координатором на большом расстоянии, а уже датчик привязать к этому роутеру.

Уже есть примеры таких роутеров.

2. Больше устройств, не всегда лучше

Сколько zigbee-устройств можно привязать к одному координатору?
Ответом будет тоже вопрос: а какая у вас структура сети и какой координатор?

Однозначно сказать нельзя, если только производитель не указал это в документации.

Для примера возьмем координатор на чипе TI cc2530/cc2531. Именно на этом чипе работает известный многим "колобок" Athom Homey, "спрутстик" или открытый проект zigbee2mqtt.

Одним из недостатков этого чипа является ограниченный размер оперативной памяти (8Кб). И именно поэтому, обычная прошивка имеет ограничение на 15 напрямую подключенных устройств (соседей). Но если мы подключим любое устройство Zigbee-роутер, то подключая остальные устройства через него сможем увеличить общее количество устройств еще на 15. И так для каждого дополнительного роутера. Тут приходит еще одно ограничение - 6 роутеров. А с ростом количества устройств нужно выделять больше размер буфера данных...

Все подобные ограничения задаются параметрами прошивки, и соответственно разные прошивки имеют разные параметры. Поэтому, в случае необходимости большого количества устройств, можно собрать прошивку с соответствующими параметрами, но пожертвовав каким-либо другим функционалом. Разбираться в хитросплетениях этих параметров то еще "удовольствие". Именно поэтому, нет прошивки с максимальными значениями для этих параметров, а есть разные варианты прошивок.

И это еще сейчас в прошивках для cc253* используется старый стек Zigbee Z-Stack 1.2.2, а уже есть новый Z-Stack 3.0. На нем более эффективно сделано управление памятью (позволит больше устройств подключить). Но пока прошивки с новым стиком не приживаются - надо адаптировать код к работе с ними.

Но это касалось чипа TI cc2530/cc2531. На смену этому чипу уже давно пришел обновленный чип cc2538 (до 32Кб памяти). А на смену этому чипу уже есть cc2650 дополнительно с BLE (до 80К памяти) и его уже заменил CC2652R... Но эти чипы дороже старого проверенного cc2530 и не так доступны.

А еще есть deConz ConBee со своими чипами и прошивками - у них с количеством обслуживаемых устройств всё гораздо лучше (заявлено до 200 устройств).

3. Не сетью единой

И вот когда мы уже не можем применить первые два варианта масштабирования, то мы просто решаем поднять еще одну сеть Zigbee - еще один координатор. Тут единственная сложность - приобрести еще один координатор (привет Homey!).

Zigbee-сети должны отличаться Panid (идентификатором сети). А если они территориально будут располагаться в одном месте, то можно сменить и номер канала.

Остается только объединить данные этих сетей в одной системе. Тут всё зависит от используемого программного обеспечения.

В случае использования zigbee-стика в качестве координатора - достаточно воткнуть еще один стик в сервер и добавить его в используемое ПО (если оно позволяет использовать несколько координаторов).

Если сеть поднимается территориально далеко, то можно использовать небольшой компьютер (аля малина/апельсина) и передавать данные по ethernet/wifi сети используя mqtt протокол (для zigbee2mqtt) или настроив multihost (для ioBroker).

А еще можно собрать шлюз wifi-zigbee на базе esp8266 (или ethernet-шлюз на базе adruino), и координатора на чипе cc2530 подключенным по UART и уже этот шлюз завести через TCP-порт.

Заключение

Как видите, варианты масштабирования Zigbee-сети есть и не надо бояться приближающихся количественных ограничений. Если вы технический специалист и способны применить предложенные подходы, то бояться вам нечего. Можно достаточно гибко комбинировать варианты с роутерами и не торопиться перепрошивать координатор. Или же наплодить несколько сетей без особого труда.

Выход всегда есть и дорогу осилит идущий!


Вернуться назад

Устройства


Xiaomi

Door and Window Sensor

(25 отзывов)

Athom Homey

Homey

(6 отзывов)

Texas Instruments

ZigBee Stick CC2530


Texas Instruments

USB Stick CC2531

(14 отзывов)

Texas Instruments

USB Stick CC2538

(1 отзыв)

Texas Instruments

USB Stick CC2650


Phoscon

deCONZ Conbee

(3 отзыва)

Raspberry Pi

Raspberry Pi 4

(16 отзывов)

Espressif Systems

ESP8266

(1 отзыв)

Вернуться назад