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 (Lyosha.Dovolen)
    Lyosha Dovolen (Lyosha.Dovolen) 11 месяцев назад

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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

LifeControl

+7 495 240-81-01
Промокод:
sprut10
Размер скидки:
10%
На весь ассортимент Lifecontrol

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

16 февраля 2019, 18:11
Как расширить zigbee сеть на базе Deconz за 350 рублей или как перейти с zigbee2mqtt на Deconz, не выбрасывая ваш стик CC2531.
04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
23 сентября 2019, 08:52
Node-RED - пошаговая инструкция для новичков.
18 апреля 2019, 09:07
Раньше, я был глуп и уверен, что zigbee-модули не услышат датчики на больших расстояниях. Я ошибался…
09 ноября 2018, 22:15
Подключаем Zigbee спрутстик к Home Assistant
19 октября 2019, 17:10
Что такое LoRa и зачем она нужна? Рассказ от заинтересовавшегося.
26 августа 2018, 07:07
Подключаем к Athom Homey умную ZigBee лампу на примере на примере спорта Zemismart и простейший пример редактирования плагина для Homey с ресурса GitHub
02 октября 2019, 15:35
Наигравшись с простым CC2531 и реле на CC2530, переходим на следующий уровень. Встречайте очередной краткий дайджест новостей русскоязычного DIY-сообщества Zigbee.
25 января 2019, 15:04
Hassio в Docker - установка куда угодно включая Deconz
01 августа 2019, 12:39
Рассмотрим и опишем основные комплексные решения для построения своего умного дома