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

09 ноября 2018, 17:27

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

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

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

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

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

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

  2. После последнего подключенного 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-сети есть и не надо бояться приближающихся количественных ограничений. Если вы технический специалист и способны применить предложенные подходы, то бояться вам нечего. Можно достаточно гибко комбинировать варианты с роутерами и не торопиться перепрошивать координатор. Или же наплодить несколько сетей без особого труда.

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


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. Доволен Алексей (Lyosha.Dovolen)

    Весьма интересная статья

  2. Магомед Сападиев (Sapadiev)
    Магомед Сападиев (Sapadiev) 8 месяцев назад

    👍 очень познавательно и доходчиво! 

  3. Евгений Олейник (permadm)
    Евгений Олейник (permadm) 8 месяцев назад

    шикарный материал! 

  4. Олег Челбаев (sprut)
    Олег Челбаев (sprut) 8 месяцев назад

    Великолепная статья, просто шик!!!!

  5. Алексей Новосельцев (novo)
    Алексей Новосельцев (novo) отредактировано 8 месяцев назад

    Отличная идея с кнопкой для соседа :)))) и вот такие потребности рождают классные реализации, кто бы пару лет назад мог подумать, что для этого будет использоваться zigbee )))

    За статью огромное спасибо! Знания о зигби более систематизированы стали и появились новые хотелки.

  6. Алексей Новосельцев (novo)
    Алексей Новосельцев (novo) 8 месяцев назад

    Илья, подскажи, исходя из твоих знаний и опыта по зигби можно самому сделать роутер-ночник, например, так же просто как на базе ESP/Arduino/Z-Uno? Или DIY ZigBee-датчик с питанием от батарейки? 

    • Илья Киров (goofyk)
      Илья Киров (goofyk) 8 месяцев назад

      Сделать-то можно всё. Но не просто :)
      У меня есть только опыт с чипом cc2530. Для него прошивку можно сделать на основе примеров из Z-Stack. Но в отличие от скетчей Ардуино, примеры для cc2530 - это очень много кода и разобраться в нём лично мне - проблематично. Хотя и возможно.

      А еще, среда для разработки IAR Embedded Workbench for 8051 бесплатная только на 30 дней. Дальше сам думай :)

      Дальше можно попробовать с иным чипом - JN5168 от NXP, он чуть дороже, но для него среда разработки бесплатная и тоже есть примеры. Этот чип кажется более перспективным, на нем делают датчики xiaomi например. Но опыта с ним у меня пока нет.

  7. Илья Гитлин (iGitlin)
    Илья Гитлин (iGitlin) 8 месяцев назад

    Dresden elektroniks делает еще и чипы для создания своих устройств. Например чип на котором Raspbee и Conbee  имеет 256kB flash and 32kB RAM

    Но в этом году вышли новые чипы  deRFsamR21E-23S00   Storage: 4MBit SPI DataFlash for
    firmware updates over the air

    Powerful ARM Cortex-M0 + 32-bit microcontroller

    Support the latest ZigBee standard (ZigBee 3.0)
К списку статей

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Похожие статьи

04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
16 февраля 2019, 18:11
Как расширить zigbee сеть на базе Deconz за 350 рублей или как перейти с zigbee2mqtt на Deconz, не выбрасывая ваш стик CC2531.
18 апреля 2019, 09:07
Раньше, я был глуп и уверен, что zigbee-модули не услышат датчики на больших расстояниях. Я ошибался…
09 ноября 2018, 22:15
Подключаем Zigbee спрутстик к Home Assistant
26 августа 2018, 07:07
Подключаем к Athom Homey умную ZigBee лампу на примере на примере спорта Zemismart и простейший пример редактирования плагина для Homey с ресурса GitHub
25 января 2019, 15:04
Hassio в Docker - установка куда угодно включая Deconz
19 августа 2018, 07:08
Необходимо заполнить информацию для доставки стика и проверить работоспособность системы.
02 марта 2019, 09:41
Подклюяаем шлюз DeCONZ или Philips Hue к HomeKit через Homebridge