Zigbee кейсы – Подключить все! Делаем экстремально дешевый хаб для устройств ZigBee и Z-Wave — «Хакер»

ZigBee — протокол передачи данных

Наверное все представляют что такое Wi-Fi сеть, которая есть почти в каждой квартире. Есть устройство передатчик (роутер) и приемники (телефон, ноутбук и другие устройства), их связывает единая сеть, которая создается на роутере. Схематично это выглядит так:

Схема подключения Wi-Fi с устройствами Xiaomi

Такой тип сети называется «Звезда», из-за визуального сходства (Центральное устройство и лучи отходящее от него). Тут все кажется довольно просто.

Как вы можете заметить, на схеме присутствуют устройства из системы «Умный дом» от Xiaomi. Получается, что на протоколе Wi-Fi можно построить свою систему автоматизации? Ответ — да, можно.

А зачем тогда что-то придумывать?

Если вы обратите внимание на схему, то заметите, что все устройства либо подключаются к розетке, либо требуют частой зарядки. Тут во всей красе предстает главный минус Wi-Fi сети в системе умного дома, а именно высокое энергопотребление. И если для устройств питающихся от розетки это не страшно, то для устройств и датчиков работающих от батарейки — это смертельно. Согласитесь, зачем нужен датчик, в котором нужно каждый день заряжать аккумулятор?

Но ведь есть протокол передачи данных, с низким энергопотреблением, который нам давно известен и до сих пор активно используется. Вспомните фразу: «включи блютуз, я тебе перекину фотки.». Да, именно Bluetooth, который раньше использовался для передачи данных, а сейчас занял нишу подключения беспроводных аудио-устройств и гаджетов, так же применяется в системе «Умный дом». Чаще конечно идет в пару с Wi-Fi, но есть и устройства только с bluetooth, например чайник Mi Smart Kettle.

Xiaomi bluetooth mitu

Но и тут все не так гладко, как хотелось бы. Как и Wi-Fi, Bluetooth использует топологию «Звезда». А что в этом страшного? Ответ прост, малая дальность действия и низкая отказоустойчивость. Основное устройство необходимо размещать максимально по центру помещения, чтобы обеспечить связь со всеми устройствами. И если для квартиры это не так критично, то в частном доме просто не получится обеспечить постоянную связь между устройствами, находящимися на заметном удалении друг от друга. Для решения этой проблемы были внедрены Bluetooth шлюзы.

ZigBee

Логично, что нужен был протокол передачи данных с низким энергопотреблением и надежностью соединения. Поэтому еще в 2003 году была ратифицирована спецификация ZigBee. Основное отличие от Bluetooth — это топология «Mesh».

В ней подразумевается наличие 3 типов устройств:

  1. Координатор — головное устройство, которое создает сеть. В умном доме сяоми эту роль выполняет один из шлюзов.
  2. Роутер — устройство, которое имеет постоянное питание. Эту роль берут на себя выключатели и розетки.
  3. Конечные устройства — датчики и гаджеты работающие от батарейки.

На схеме умного дома Xiaomi протокол будет выглядеть так:

Xiaomi Связь устройств ZigBee

Ничего не понятно? Давайте попробуем разобраться.

У нас на схеме есть шлюз Gateway 2, он выполняет роль координатора. К нему, в приложении MiHome мы подключаем все остальные устройства. Как и в Wi-Fi и Bluetooth, только стрелочек тут заметно больше. Все это потому, что розетки и выключатели выполняют роль «Роутера», они принимают сигнал от головного устройства и транслируют его дальше по сети до конечных датчиков. Это позволяет масштабировать сети до уровня дома или даже большого производственного здания. А выход из строя одного из устройств-роутеров не скажется на работоспособности всей сети.

Сравнительная таблица характеристик этих протоколов связи:

Технология Wi-Fi Bluetooth ZigBee
Стандарт связи IEEE 802.11 IEEE 802.15.4 IEEE 802.15.4
Скорость передачи данных 300+ Мбит/с до 3 Мбит/с 250 Кбит/с
Энергопотребление Высокое Низкое Низкое
Частотный диапазон 2.4 Ггц 2.4 Ггц 2.4 Ггц
Поддержка IP +
Топология «звезда» «звезда» «mesh»

Из минусов можно отметить низкую скорость передачи данных — до 250 кбит/сек. Ради низкого энергопотребления, приходится чем то жертвовать, но это не критично для задач домашней автоматизации.

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

Значимость ZigBee в системе умного дома Xiaomi

На конец 2017 года, в системе Xiaomi 22 устройства, которые используют ZigBee протокол. Wi-Fi используют около 80, а блютуз около 25.

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

Если у вас появились вопросы, смело задавайте в комментариях.

До новых встреч!

Беспроводные сети ZigBee. Часть 1 [Вводная] / ЭФО corporate blog / Habr

Сейчас о концепции IoT («интернета вещей») говорят везде. Появляется «умная» бытовая техника, которая может подключиться к сети (Bluetooth/Wi-Fi) по беспроводному интерфейсу и начать рассылать уведомления о том, что задача по стирке/готовке еды/кипячению воды завершена и неплохо бы что-то с этим сделать. Большинство таких «умных» устройств получает питание непосредственно из электросети. Но как быть, если хочется получать информацию от беспроводного термометра и при этом не менять батарейку каждую неделю? Или иметь беспроводной выключатель с небольшим аккумулятором для которого не понадобится штробить стены? И хорошо бы объединить такие устройства в единую распределенную сеть, которой можно управлять удаленно и которая сама, основываясь на показаниях датчиков/извещателей/счетчиков, могла бы принимать какие-то решения.

Специально для решения таких задач была создана беспроводная технология ZigBee, о которой мы и начнем разговор.




Существует большое количество беспроводных технологий, каждая из которых имеет свои особенности. В таблице ниже рассмотрены беспроводные протоколы связи для частоты 2,4 ГГц.

Сравнительная таблица популярных беспроводных технологий




  1. Технология Wi-Fi
    Технология Wi-Fi создавалась в качестве замены проводного интерфейса Ethernet. Поэтому эта технология предлагает большие скорости передачи данных, но не позволяет разрабатывать узлы, работающие длительное время от источников питания малой емкости ввиду большого энергопотребления.
  2. Технология Bluetooth
    Технология Bluetooth с появлением стандарта 4.0 (Bluetooth Smart или Bluetooth Low Energy) стала гораздо привлекательней для разработчиков носимой электроники, так как энергопотребление по сравнению с предыдущими версиями сократилось в разы[1]. Но если стоит задача построения беспроводной малопотребляющей системы, которая будет охватывать несколько комнат или даже зданий, эта технология не подойдет, так как поддерживается только сетевая топология «звезда». Это же справедливо и для Wi-Fi.
  3. Технология ZigBee и Thread
    Технологии ZigBee и Thread изначально разрабатывались для создания надежных распределенных сетей датчиков и управляющих устройств с невысокими скоростями передачи данных. В этих технологиях реализована поддержка сетевой топологии «
    mesh
    », спящих и мобильных узлов, а также узлов, которые обеспечивают работу алгоритмов ретрансляции и самовосстановления. В таблице указана скорость 250 кбит/с — это максимальная пропускная способность сети. Полезная скорость будет порядка 30-40 кбит/с в пределах соседних узлов и 5-25 кбит/с при использовании ретрансляции. Основное отличие технологии Thread от ZigBee, что в ней добавлена поддержка IP-протокола, что упрощает интеграцию сетей Thread с сетевыми приложениями. Об особенностях технологии Thread мы поговорим в другой раз.



Про поддерживаемые сетевые топологии в предыдущей главе было сказано, но не было сказано про особенности. Рассмотрим такой пример:
«Звезда» vs. «Mesh»


В сетях Bluetooth и Wi-Fi сетевое взаимодействие идет через центральный шлюз. И если он выйдет из строя, то обмен данными станет невозможным.

Кроме этого отдельные узлы могут остаться без связи, если неожиданно возникла преграда на пути следования радиосигнала.

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




Теперь остановимся на структуре самой сети ZigBee и типах устройств, которые в ней могут быть.
Типовая структура сети ZigBee


Координатор — это узел, организовавший сеть. Именно он выбирает политику безопасности сети, разрешает или запрещает подключение к сети новых устройств, а также при наличии помех в радиоэфире инициирует процесс перевода всех устройств в сети на другой частотный канал.
Роутер — это узел, который имеет стационарное питание и следовательно может постоянно участвовать в работе сети. Координатор также является роутером. На узлах этого типа лежит ответственность по маршрутизации сетевого трафика. Роутеры постоянно поддерживают специальные таблицы маршрутизации, которые используются для прокладки оптимального маршрута и поиска нового, если вдруг какое-либо устройство вышло из строя. Например, роутерами в сети ZigBee могут быть умные розетки, блоки управления осветительными приборами или любое другое устройство, которое имеет подключение к сети электропитания.
Конечное устройство — это устройство, которое подключается к сети через родительский узел – роутер или координатор – и не участвует в маршрутизации трафика. Все общение с сетью для них ограничивается передачей пакетов на «родительский» узел либо считыванием поступивших данных с него же. «Родителем» для таких устройств может быть любой роутер или координатор. Конечные устройства большую часть времени находятся в спящем режиме и отправляют управляющее или информационное сообщение обычно только по определенному событию (нажатие кнопки выключателя, открытие окна или двери). Это позволяет им долго сохранять энергию встроенного источника питания. Примером конечных устройств в сетях ZigBee могут быть беспроводные выключатели, управляющие работой светильников и работающие от батареек, датчики протечки воды, датчики открытия/закрытия дверей. Стоит сказать, что конечные устройства делятся на 3 категории, каждая из которых имеет свои особенности, но о них в следующей части.

Так как конечные устройства большую часть времени находятся в спящем режиме и просыпаются лишь для опроса родительского узла на наличие сообщений для себя, либо для передачи данных, то это позволяет экономно расходовать энергию батареечного источника питания. Опытные измерения энергопотребления для спящего конечного устройства на базе модуля ETRX357, о котором чуть позже, в различных режимах работы:


Схема включения для измерения тока потребления

Питание для модуля подавалось через резистор R1 с номиналом 10 Ом. Два щупа осциллографа были подключены до и после резистора. После чего с помощью функции вычитания на осциллографе фиксировалось падения напряжения на резисторе. После этого, используя закон Ома , можно вычислить ток потребления. Кроме того, так как время в активном режиме фиксируется, можно найти заряд, а уж потом и затрачиваемую мощность в Джоулях.


Передача зашифрованного пакета длинной 27 байт

Цикл передачи занимает 7,5 мс, потребляемая энергия при напряжении питания 3.3 В — 444,2 мкДж.
Обычная алкалиновая батарейка имеет запас мощности ~10.8 кДж. Этой энергии хватит на отправку 24 миллионов таких запросов. Если спящий узел будет посылать такое сообщение раз в 10 секунд, то это будет 8640 запросов в сутки. То есть теоретически, если не учитывать старение батарейки, её энергии хватит на ~2700 дней = 7 лет.


Опрос родительского узла

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


Цикл передачи занимает 3,2 мс, потребляемая энергия при напряжении питания 3.3 В — 184 мкДж.
Обычная алкалиновая батарейка имеет запас мощности ~10.8 кДж. Этой энергии хватит на отправку 60 миллионов таких запросов. Если спящий узел будет посылать такой запрос раз в 10 секунд, то это будет 8640 запросов в сутки. То есть теоретически, если не учитывать старение батарейки, её энергии хватит на ~6940 дней = 19 лет.




«Отлично, – подумает читатель. – ещё один проприетарный протокол с поддержкой mesh-топологии. Этим уже никого не удивишь». Однако, альянсом ZigBee за все те годы, что существует технология ZigBee, была проведена большая работа по стандартизации не только сетевого уровня, но и уровня приложения разрабатываемых устройств[2]. Имеется большая библиотека кластеров ZigBee (ZCL), описывающая свыше 200 устройств, таких как выключатели, блоки управления освещением, интерфейс для подключения датчиков, счетчиков и многое другое[3]. И для некоторых типов систем (системы домашней автоматизации, системы сбора показаний со счетчиков и др.) разработаны специальные профили, в которые входит целый набор стандартных устройств. Они позволяют беспроводным узлам различных производителей понимать друг друга на уровне приложения. Стандартный профиль описывает стандартные команды и поведения конкретного устройства, например, блока управления системой климат-контроля или блока управления светильником.


За что отвечают различные уровни в сетевой модели OSI
Пример взаимодействия устройств со стандартным профилем

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


  • у лампочки есть набор хранимых атрибутов (состояние — включена/выключена; уровень яркости)
  • выключатель может отправлять команды для изменения доступных атрибутов лампочки
  • при получении команды, лампочка принимает указанное состояние

В библиотеке кластеров указывается, какие атрибуты и команды являются обязательными для тех или иных устройств, а какие опциональными. Это позволяет реализовать стандартный интерфейс взаимодействия между ZigBee-устройствами.





Радиомодуль

Для быстрого старта, когда нет желания или возможности разбираться с программным стеком ZigBee, стоит обратить внимание на модули ETRX357. Все модули имеют встроенную прошивку от производителя, которая позволяет работать с аналоговой и цифровой периферией, а также с сетевыми функциями, с помощью набора AT-команд. Для начала работы с радиомодулем достаточно подключить линии питания и линии TxD и RxD последовательного интерфейса UART.


Пример AT-команд
Команда Описание
AT+PANSCAN Запуск сканирования на наличие ZigBee-сетей
AT+EN Создать сеть
AT+JN Присоединиться к сети
AT+DASSL Покинуть сеть
AT+DASSR Запрос удаленному узлу на выход из сети
ATSXX? Чтение содержимого регистра SXX

В стандартную прошивку входит также ряд функций, которые могут вызываться по прерыванию от порта ввода/вывода, таймера/счетчика или при определенных событиях – подключение к сети или инициализация радиомодуля. Пример доступных функций:


  • Переключение состояния порта ввода/вывода
  • Отправка информации на узел сбора данных о состоянии 16 цифровых выводов радиомодуля, оцифрованных данных от подключенных датчиков и информацию об уровене напряжения питания
  • Переход в активный режим или режим энергосбережения
  • Открытие «прозрачного канала» с другим устройством в сети

Пару слов о «прозрачном канале». При переходе в данный режим вся информация, поступающая по интерфейсу UART на радиомодуль транслируется на интерфейс UART другого радиомодуля. Данный канал является двунаправленным, а также наследует преимущества технологии ZigBee – при наличии роутеров в сети не будет происходить потери данных в таком канале связи так как все пакеты «прозрачного канала» будут в случае необходимости автоматически ретранслироваться. За счет этого можно организовать канал связи с предельной дальностью в несколько километров.


Программная реализация стека ZigBee


Если стандартных возможностей прошивки не хватает, то можно использовать реализацию программного стека ZigBee от компании Silicon Labs – Ember ZNet PRO. Так как модули выполнены на базе микросхемы EM357, то переход от стандартной прошивки к разработке собственного приложения потребует лишь приобретение программатора-отладчика ISA3 с помощью которого можно делать как внутрисхемную отладку устройства, так и отлаживать приложение на сетевом уровне.
Справа на рисунке показан пример того, как отображаются данные о пути следования пакета и его расшифровка.

Для упрощения процесса создания приложения предоставляется компоновщик приложений, который для выбранной конфигурации ZigBee-устройства генерирует каркас приложения и создает функции, в которых разработчик должен дописать требуемую логику приложения.
Все утилиты входят в программный пакет Simplicity Studio, куда также входит демонстрационная версия стека Ember ZNet PRO. Поэтому можно прямо сейчас скачать и посмотреть как это работает.


Инструкция для начала работы с генератором приложений

После того, как вы скачали и установили пакет Simplicity Studio, проверьте, установлено ли Wireless-расширение.



Нас интересует пакет Wireless Products



Выберите утилиту Application Builder



Далее выбираем фреймворк. Для ZigBee-приложений это будет ZCL Application Framework v2. Важно: необходимо установить галочку для отображения демонстрационных встроенных стеков.



Выбираем Internal Stack



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



Инструкция для начала работы с анализатором сетевого трафика


Надеюсь, что эта статья помогла понять основные особенности беспроводной технологии ZigBee и вы сможете прикинуть в каких приложениях можно её использовать. Сама технология является полностью открытой и все её спецификации доступны для скачивания с сайта альянса ZigBee. А стандартная библиотека кластеров – это настоящий язык взаимодействия между устройствами, которые окружают нас каждый день: устройства домашней автоматизации, системы безопасности, сенсорное оборудование и многое другое.
Если у вас возникнут вопросы, присылайте их мне на почту или пишите в комментариях.

P.S. Для тех, кто не смог осилить текст, есть возможность посмотреть вводные видео по технологии ZigBee.



Список используемой литературы

  1. Беспроводные сети ZigBee. Часть 1 [Вводная]
  2. Беспроводные сети ZigBee. Часть 2 [Работа с радиомодулями ETRX35X]

Сети ZigBee. Зачем и почему? / Habr


Чего «репу» чешешь?
На золотую рыбку другая сеть нужна!

Собственно, я собирался продолжить серию топиков, посвященных работе RTLS – системы позиционирования в реальном времени. А именно, рассказать о беспроводной инфраструктуре системы, основанной на сетях ZigBee. Но вдруг с удивлением обнаружил, что на Хабрахабре нет публикаций, посвященных стандарту IEEE 802.15.4 и спецификации ZigBee. Есть лишь немногочисленные упоминания, связанные с тем или иным приложением. Попытаюсь по мерее сил заполнить этот пробел.

В последнее время все большее распространение и значение приобретают беспроводные сенсорные сети. Сети, которые по своему назначению, параметрам, спецификациям существенно отличаются от сетей связи – WiFi, GSM, LTE и т.п. Среди прочих, используемых в сенсорных сетях, выделяется спецификация ZigBee – наиболее продвинутая надстройка к стандарту IEEE 802.15.4
В этом году исполнилось 10 лет со времени основания ZigBee альянса, а в октябре исполняется 5 лет с момента утверждения действующей в настоящее время спецификации ZigBee Pro Feature Set 2006. Так что публикацию можно считать юбилейной.

Желающих познакомиться с самоорганизующейся самовосстанавливающейся и не требующей специального частотного разрешения сенсорной сетью прошу под кат.

Начну с вынесенных в заголовок вопросов:

Зачем?

Во многих приложениях требуются беспроводные сети связи, не обладающие высокой скоростью передачи, но надежные, живучие (способные к самовосстановлению), простые в развертывании и эксплуатации. Важно также, чтобы оборудование таких сетей допускало длительную работу от автономных источников питания, имело низкую стоимость, и было компактным. Пример такого приложения – «умный дом».
Такому сочетанию требований еще 10 лет назад не отвечал ни один из сетевых стандартов, что и привело к созданию стандартов IEEE 802.15.4 и ZigBee, описывающих устойчивые масштабируемые многошаговые беспроводные сети, простые в развертывании и поддерживающие самые разные приложения.
Почему именно ZigBee?

Сети ZigBee, в отличие от других беспроводных сетей передачи данных, полностью удовлетворяют перечисленные выше требования, а именно:
а) благодаря ячеистой (mesh) топологии сети и использованию специальных алгоритмов маршрутизации сеть ZigBee обеспечивает самовосстановление и гарантированную доставку пакетов в случаях обрыва связи между отдельными узлами (появления препятствия), перегрузки или отказа какого-то элемента;
б) спецификация ZigBee предусматривает криптографическую защиту данных, передаваемых по беспроводным каналам, и гибкую политику безопасности;
в) устройства ZigBee отличаются низким электропотреблением, в особенности конечные устройства, для которых предусмотрен режим «сна», что позволяет этим устройствам работать до трех лет от одной обычной батарейки АА и даже ААА;
г) сеть ZigBee – самоорганизующаяся, ее структура задается параметрами профиля стека конфигуратора и формируется автоматически путем присоединения (повторного присоединения) к сети образующих ее устройств, что обеспечивает простоту развертывания и легкость масштабирования путем простого присоединения дополнительных устройств;
д) устройства ZigBee компактны и имеют относительно невысокую стоимость.
Связь в сети ZigBee осуществляется путем последовательной ретрансляции пакетов от узла источника до узла адресата. В сети ZigBee предусмотрено несколько альтернативных алгоритмов маршрутизации, выбор которых происходит автоматически.
Стандарт предусматривает возможность использования каналов в нескольких частотных диапазонах. Наибольшая скорость передачи и наилучшая помехоустойчивость достигается в диапазоне от 2,4 до 2,48 ГГц. В этом диапазоне предусмотрено 16 каналов по 5 МГц.
Цена, которую пришлось заплатить в сетях ZigBee за минимизацию энергопотребления, компактность и дешевизну – относительно низкая скорость передачи данных.
«Брутто» скорость (включая служебную информацию) составляет 250 кбит/c. Средняя скорость передачи полезных данных, в зависимости от загрузки сети и числа ретрансляций, составляет от 5 до 40 кбит/с.
Расстояние между рабочими станциями сети составляет десятки метров внутри помещений и сотни метров на открытом воздухе. За счет ретрансляций покрываемая сетью зона может быть весьма значительной: до нескольких тысяч квадратных метров в помещении и до нескольких гектар на открытом пространстве. Более того, сеть ZigBee в любой момент может быть расширена добавлением новых элементов или наоборот разбита на несколько зон простым назначением соответствующего числа новых конфигураторов сети. Это бывает полезно для снижения нагрузки и соответственно повышения скорости передачи данных.
Немного истории

Альянс ZigBee был учрежден в 2002 году. Сейчас в него входят более 300 компаний. Цель альянса – разработка эффективных протоколов беспроводной сети и обеспечение совместимости устройств разных производителей. Первые стандарты «родились» в 2003 году и активно совершенствовались и расширялись.
Была внедрена стохастическая адресация, механизмы маршрутизации Many-to-One и Source Routing, а также возможность выявления асимметричных связей, что повысило эффективность сетей ZigBee для ряда специфических приложений.
Разработаны стандартные профили приложений и библиотека стандартных кластеров. Это существенно упростило разработку приложений, облегчило и ускорило внедрение новых решений с использованием аппаратуры разных производителей.
Введен ряд новых механизмов, повышающих защищенность и надежность сети.
Предусмотрен автоматический переход на «чистый» частотный канал при возникновении помех.
Действующая спецификация ZigBee Pro Feature Set 2006 принята в октябре 2007 г.
Устройства ZigBee

Сети ZigBee строятся из базовых станций трех основных типов: координаторов, маршрутизаторов и конечных устройств.
Координатор запускает сеть и управляет ею. Он формирует сеть, выполняет функции центра управления сетью и доверительного центра (trust-центра) – устанавливает политику безопасности, задает настройки в процессе присоединения устройств к сети, ведает ключами безопасности.
Маршрутизатор транслирует пакеты, осуществляет динамическую маршрутизацию, восстанавливает маршруты при перегрузках в сети или отказе какого-либо устройства. При формировании сети маршрутизаторы присоединяются к координатору или другим маршрутизаторам, и могут присоединять дочерние устройства – маршрутизаторы и конечные устройства. Маршрутизаторы работают в непрерывном режиме, имеют стационарное питание и могут обслуживать «спящие» устройства. Маршрутизатор может обслуживать до 32 спящих устройств.
Конечное устройство может принимать и отправлять пакеты, но не занимается их трансляцией и маршрутизацией. Конечные устройства могут подключаться к координатору или маршрутизатору, но не могут иметь дочерних устройств.
Конечные устройства могут переводиться в спящий режим для экономии заряда аккумуляторов. Именно конечные устройства имеют дело с датчиками, локальными контроллерами и исполнительными механизмами.
Формирование сети

Сеть ZigBee – самоорганизующаяся, и ее работа начинается с формирования. Устройство, назначенное при проектировании координатором персональной сети (PAN координатор), определяет канал, свободный от помех, и ожидает запросов на подключение.
Устройства, пытающиеся присоединиться к сети, рассылают широковещательный запрос. Пока PAN координатор – единственное устройство в сети, отвечает на запрос и предоставляет присоединение к сети только он. В дальнейшем присоединение к сети могут предоставлять также присоединившиеся к сети маршрутизаторы.
Устройство, получившее ответ на широковещательный запрос, обменивается с присоединяющим устройством сообщениями, чтобы определить возможность присоединения. Возможность определяется способностью присоединяющего маршрутизатора обслужить новые устройства в дополнение к ранее подключенным.
Вступление в сеть (присоединение)
Существует два способа присоединения: МАС ассоциация и повторное сетевое присоединение (NWK rejoin).
МАС ассоциация
МАС ассоциация доступна любому устройству ZigBee и осуществляется на МАС уровне. Механизм МАС ассоциации следующий:
Устройство, позволяющее присоединиться к нему, выставляет на МАС уровне разрешение на присоединение.
Устройство, вступающее в сеть, выставляет на МАС уровне запрос на присоединение и передает широковещательный запрос маячка.
Получив маячок от устройств, готовых подключить присоединяемое устройство, последнее определяет, в какую сеть и к какому устройству оно желает присоединиться, и выставляет на МАС уровне требование о вступлении с флажком «повторное присоединение» в значении FALSE.
Затем вступающее устройство направляет на выбранное для присоединения устройство запрос присоединения и получает ответ с присвоенным ему сетевым адресом.
При МАС ассоциации данные передаются не зашифрованными, поэтому МАС ассоциация не является безопасной.
Повторное сетевое присоединение Повторное сетевое присоединение вопреки названию может применяться и при первичном присоединении. Оно выполняется на сетевом уровне. При этом, если вступающее устройство знает текущий сетевой ключ, обмен пакетами может быть безопасным. Ключ может быть получен, например, при настройке.
При повторном подключении присоединяющееся устройство выставляет на сетевом уровне запрос присоединения и обменивается с подключающим устройством пакетами «запрос присоединения» – «ответ на запрос присоединения».
Динамика сети
Кроме случаев присоединения новых устройств структура сети меняется и в случаях, когда устройства покидают сеть и повторно присоединяться в других местах (это происходит, например, в случае перезагрузки устройства).
На рисунке ниже – пример переподключения. Устройство с адресом «0E3B» переподключается как «097D», а затем как «0260». Каждый раз оно присоединяется к другому маршрутизатору и получает адрес из имеющегося в распоряжении присоединяющего маршрутизатора диапазона адресов.

Переподключение конечного устройства в древовидной сети

Сетевые протоколы

Протоколы, регламентированные стандартами IEEE 802.15.4 и ZigBee 2007 Specification, обеспечивают формирование и функционирование беспроводной сенсорной сети.
Стандарт IEEE 802.15.4 определяет физический и MAC уровни, а спецификация ZigBee определяет сетевой уровень и уровень приложений. На рисунке показан стек протоколов ZigBee.

Стек протоколов ZigBee

Прошу извинить, но на этом месте я в связи с поздним временем вынужден прерваться. Описание стека протоколов можно посмотреть здесь: http://www.rtlsnet.ru/technology/view/3.

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

Базовый набор для умного дома Xiaomi

Здравствуйте друзья

В этом обзоре я бы хотел немного вернутся к истокам построения системы умный дом на основе устройств Xiaomi, рассказать про то, с чего начинать и как работают датчики ZigBee

Где купить?

Gearbest  Banggood  Aliexpress  JD.ru 

Вступление

Моя система умного дома начала свой новый виток развития — а именно разделение на 2 части, по «зонам». Для этой цели я в очередной раз докупил различных гаджетов и еще один одноплатный ПК для программной части. Горка Xiaomi устройств из последней посылки:

Обо всем я обязательно расскажу в своих дальнейших обзорах, а сегодня я хотел бы остановится на базовом комплекте Xiaomi — состоящем из шлюза, двух датчиков открытия и беспроводной кнопки:

В момент покупки, по отдельности стоимость шлюза составляла — $29, датчиков открытия около $10 и кнопки $7. Легко посчитать, что в комплекте получалась — кнопка в подарок. Даже в данный момент — когда на датчики открытия  идет флешсейл — по $8, все равно цена такого комплекта по отдельности — получается на несколько долларов дороже. Так что покупка вполне оправдана.

Зачем нужен шлюз, теория, ZigBee

Перейдем к теоретической части. Какая основная задача шлюза Xiaomi ?

Как можно догадаться из названия — шлюз — устройство должно быть «мостиком» между чем-то. В роли «чего-то» — выступают беспроводные интерфейсы — всем знакомый wi-fi и менее известный zigbee. Вот как раз с последним и возникает множество вопросов, которые мне задают в комментариях к моим обзорам и видео.

ZigBee — это самостоятельный сетевой протокол, разработанный для безопасной передачи данных при небольших скоростях и характеризующийся крайне низким энергопотреблением. Этим он выгодно отличается от Wi-Fi и даже весьма экономного Bluetooth 4+. Одного миниатюрного элемента питания типа CR2032 — хватит вам примерно на год работы! 

А главной особенностью ZigBee, является то, что при крайне низком энергопотреблении, она поддерживает не только простые структуры типа точка-точка (как Bluetooth) или звезда как Wi-Fi — но и сложные самоорганизующиеся и самовосстанавливающиеся ячеистые сети, с  ретрансляцией и маршрутизацией сообщений. 

Как это выглядит ?

Представим себе простую ситуацию — один шлюз и несколько датчиков:

Это классическая сети типа «звезда» — где центральным устройством является шлюз, который и отвечает с сбор и обработку команд от датчиков, и обратную отправку команд управления. Напрямую датчики между собой не «контактируют» и отключения шлюза — ведет к отключению всех управляемых им датчиков. 

Такая схема напоминает работу обычной домашней Wi-Fi сети — где вместо шлюза — роутер, а вместо датчиков — ноутбуки, планшеты телефоны. 

В принципе такая схема — одна из самых распространенных, и неплохо себя зарекомендовала. Однако есть нюанс. Если между шлюзом и датчиками находятся пара-тройка стен, особенно из железобетона, то мощности слабеньких передатчиков — запросто может не хватать. И это будет выражаться в периодическом «отваливании» датчиков, либо просто их неспособности работать в нужном месте. 

И тут самое время вспомнить о особенностях протокола ZigBee — самоорганизация и ретрансляция. В роли такого ретранслятора выступает смарт розетка — естественно ZigBee версия, версия  Wi-Fi тут не подойдет. 

В такой схеме, розетка выступит ретранслятором сигнала датчиков, что позволит им работать на удалении от шлюза. Эта схема проверена мной лично, и действительно работает. Кстати могу с уверенностью сказать что настенный выключатели Aqara — без 0 линии не работают как ретрансляторы. Про встраиваемую розетку и выключатели с 0 — пока не уверен.

Топология сети — изменяется автоматически, вам достаточно лишь включить в сеть розетку, подключенную к этому же самому шлюзу. При этом состояние реле — которое подает / отключает 220 для внешнего потребителя — значения не имеет. 

Каким устройствам нужен шлюз?

Так же часто спрашивают меня в комментариях к обзорам — тут надо шлюз, а тут ? 

Шлюз однозначно нужен всем беспроводным датчикам — движения, открытия, кнопкам, утечки газа, воды, дыма. Нет проводов — 100 % ZigBee (мы говорим про устройства для умного дома Xiaomi). 

Кроме них по ZigBee работают упоминаемые выше смарт — розетки (но у них есть брат близнец с Wi-Fi — это самостоятельное устройство), проводные и беспроводные выключатели и встраиваемая розетка Aqara, и двигатель для штор от того же бренда.

Им нужен шлюз — без шлюза они работать не будут. Ни с MiHome ни с Domoticz ни через малинку. Однозначно нет — только через шлюз и точка. Так как ZigBee — это аппаратный протокол.

Все остальное — светильники Yeelight, Philips, чайники, очистители, удлинители, ИК базы — в большинстве работают через Wi-Fi, в некоторых случаях через Bluetooth. В любом случае, шлюз для работы им не нужен.

Шлюз Xiaomi Multifunctional Gateway

Теперь, когда мы немного разобрались в теории функционирования — перейдем непосредственно к обзору. Шлюз представляет собой «шайбу» из белого пластика, диаметром 8 см

И толщиной в 3,5 см

Вилка — Type I — применяемая в Китае, Австралии и Новой Зеландии. Использовать в наших розетках либо через переходник, либо применять удлинители с универсальными розетками — те же Xiaomi

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

По торцевой части шлюза проходит полоска из полупрозрачного пластика — это RGBW подсветка.

Первое включение, подключение

После включения, шлюз рассказывает стишок на китайском языке 🙂 приветливо моргает подсветкой, переходя в режим сопряжения

Процесс подключения — стандартный. Приложение MiHome обнаруживает новое устройство в зоне досягаемости, предлагает его подключить. Выбираем свою домашнюю Wi-Fi сеть и вуаля — готово.

После этого шлюз, при необходимости затянет одно-два обновления прошивки. 

Плагин управления имеет довольно много различных окон. Основное — это окно управления подсветкой шлюза, где устанавливается цвет и яркость свечения. Впоследствии, после добавления датчиков — в этом эе окне появится панель управления с выключателями и розетками и список датчиков — условий (температуры, движения, открытия, и т.д.) 

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

Третье окно — содержит в себе список подключенных подустройств. В этом окне можно их удалять и добавлять.

Пройдемся по настройкам. 

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

В меню автоматической работы подсветки, можно включить режим ночника — свет будет автоматом включаться в темноте, добавить триггер — например датчик движения, по которому будет включатся подсветка, время работы этого триггера и длительность работы подсветки. 

Так же можно включать свет просто по таймеру.

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

В режиме дверного звонка — настраивается условие срабатывания — например нажатие на беспроводную кнопку, настроить тип и громкость звонка, а так же настроить отправку сообщения на управляющий гаджет — например смартфон, на котором установлено приложение Mi Home

Режим будильника — очень похож на режим освещения по таймеру, только там включается не свет а звук. Так же этот режим интересен тем, что здесь можно выбирать не только предустановленные мелодии но и закачивать свои mp3 треки. Для того чтобы шлюз воспроизводил и с нормальной скоростью следует кодировать их в 256 кбит

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

Датчик открытия окон и дверей

Датчик состоит из двух частей — основная собственно сам датчик и магнит. Магнит при приближении к основному датчику замыкает контакты геркона — что дает возможность фиксировать состояния — открыто и закрыто.

Кроме датчика в комплекте идет запасной двусторонний скотч, для наклейки датчика на поверхность — дверь или окно

Датчик легко разбирается, и модифицируется — за счет того, что триггером срабатывания является состояние контактов. В одном из своих прошлых обзоров я рассказывал как сделать из него датчик протечки воды.

Подключаем датчик к шлюзу через вкладку Devices нажав кнопку внизу — add subdevice. Далее следуя подсказкам мастера подключения, при помощи скрепки (идет в комплекте к шлюзу) удерживаем нажатой кнопку сопряжения на датчике, до трехкратного мигания светодиода. После чего останется только выбрать комнату расположения и иконку датчика.

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

При использовании в смарт сценариях, датчик выступает условием сценария и имеет три варианта триггеров — открытие, закрытие и открытие более 1 минуты. 

В одном сценарии можно объединять датчики подключенные к разным шлюзам, но в таком случае эти сценарии будут работать только при наличии интернета. Если участники сценария подключены к одному шлюзу, либо например действием сценария является включение умного светильника Yeelight или Philips — сценарий будет работать и без подключения к интернет.

 

Беспроводная кнопка

Пришло время к последнему участнику комплекта — беспроводной кнопке. Это один из самых дешевых и удобных датчиков системы умный дом Xiaomi

В комплекте к ней так же идет запасной двусторонний скотч, и для ее настройки вам понадобится скрепка.

Диаметр кнопки — 5 см, вся ее фронтальная поверхность — это плоскость нажима, в отличии от кнопки Aqara — про которую я недавно рассказывал, где нажимная поверхность находится в центре квадратной кнопки.

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

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

Окно настроек — подобно описанному у датчика открытия (у датчика движения например или кубика — такие же), с двумя вкладками — перечень сценариев и лог срабатываний.

Кнопка предлагает к использованию в условиях сценариев три действия — однократное нажатие, двойной клик и длинный клик.

Пример простого сценария — на включение и выключения потолочного светильника Philips. 

В основном окне плагина шлюза — появляются добавленные нами датчики, и в окне автоматизации — составленный сценарий.

Вывод

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

Видео версия обзора у меня в этот раз получилась более чем на полчаса. Основной смысл вы уже прочитали (если читали) более подробно — можно посмотреть здесь

Спасибо за внимание, надеюсь обзор был полезен.

Умный дом — теория и реализация на базе протокола ZigBee

ZigBee.png
В предыдущих статьях мы рассматривали стандарты KNX, 1-WIRE и X10 — их общей особенностью было то, что устройства в сети подключались к друг другу преимущественно с помощью проводов. Протокол ZigBee же рассчитан на беспроводное подключение устройств в сети друг к другу — это удобнее, однако накладывает свои ограничения на размер сети и скорость передачи данных.

ZigBee является протоколом верхнего уровня, базирующемся на беспроводном стандарте IEEE 802.15.4. Стандарт IEEE 802.15.4 был создан в 2003 году и обеспечивает низкую скорость передачи данных в совокупности с очень длительным временем автономной работы (месяцы и даже годы) и низкой сложностью устройств — то есть идеально подходит для создания умного дома по принципу «один раз настроил и забыл». Протокол ZigBee разрабатывает организация ZigBee Alliance, которая и представила его в 2004 году. Еще через год спецификации первой версии протокола были согласованы и стали создаваться продукты, поддерживающие этот протокол. ZigBee постоянно дорабатывался, и новые версии выходили в 2006, 2007 и 2012 годах. И хотя официально все версии протокола должны быть совместимыми, на практике в одной сети лучше использовать устройства только одной версии протокола. С учетом того, что сейчас на рынке в основном продаются устройства, созданные под последнюю версию протокола — особых проблем с этим нет.

Типы устройств и профилей протокола ZigBee
ZigBee-для-максимального-управления-умным-домом-1.jpg
Разумеется, ZigBee используется не только для домашней автоматизации — сеть может использоваться в промышленном контроле, встроенных датчиках, сборе медицинских данных, оповещении о вторжении или задымлении, строительстве и т.д. Всего можно выделить четыре основных профиля:

  • Домашняя автоматизация — рациональное освещение, продвинутый температурный контроль, охрана и безопасность, фильмы и музыка, датчики воды, энергии, задымления.
  • Мобильные службы — мобильная оплата, мониторинг, контроль и охрана.
  • Коммерческое строительство — мониторинг энергии, HVAC, света, контроль доступа.
  • Промышленное оборудование — контроль процессов, промышленных устройств, управление энергией и имуществом.
Устройства разных профилей не совместимы друг с другом — то есть к примеру устройства для домашней автоматизацией (с пометкой Home Automation) нельзя использовать в одной сети с устройствами для мобильных служб (Telecom Services). Однако все устройства для домашней автоматизации разумеется работают в одной сети, так что проблем это не вызывает.

В 2007 году, при очередном апдейте протокола, были представлены две реализации стандарта — ZigBee и ZigBee Pro. Для умного дома в основном используется последний, однако некоторые производители опускают приставку Pro, что приводит к очередной путанице. В 2009 году был представлен стандарт ZigBee RF4CE (Radio Frequency for Consumer Electronics — радиочастоты для потребительской электроники) — он создан для дистанционного управления бытовой техникой, такой как телевизоры и музыкальные центры: пульты с поддержкой ZigBee RF4CE передают данные по радиоканалу, а потому они предоставляют больше возможностей. И, разумеется, устройства с поддержкой RF4CE опять же могли не работать в сети с другими устройствами для протокола ZigBee.

С учетом всего вышесказанного — для создания полностью рабочей сети на протоколе ZigBee крайне желательно использовать устройства одного производителя, выпущенные для одной версии протокола (лучше самой новой) и только для профиля Home Automation. 

ZigBeeCollage.jpg

В сети ZigBee устройства подразделяются на три категории:
  • Координатор ZigBee (ZC) — наиболее ответственное устройство, формирует пути древа сети и может связываться с другими сетями. В каждой сети есть один координатор ZigBee — он запускает сеть, хранит информацию о ней, выступает как доверенный центр и хранит ключи безопасности.
  • Маршрутизатор ZigBee (ZR) — устройство, которое выполняет функцию передачи данных между удаленными друг от друга устройствами в сети ZigBee.
  • Конечное устройство ZigBee (ZED) — собственно сам датчик или выключатель. Его функциональная нагруженность позволяет ему обмениваться информацией с материнским узлом (или координатором, или с маршрутизатором), но он не может передавать данные с других устройств. Такое отношение позволяет узлу львиную часть времени пребывать в спящем состоянии, что позволяет экономить энергоресурс батарей. ZED требует минимальное количество памяти, и поэтому может быть дешевле в производстве, чем ZR или ZC.

Технические характеристики протокола

К счастью, несмотря на некоторые несовместимости в различных версиях протокола, основные технические характеристики остаются прежними. В Европе сеть работает на частоте в 868 МГц, в США и ряде других стран — 915 МГц. Так же по всему миру (и в России) сеть работает на частоте 2.4 ГГц — на такой частоте обеспечивается максимальная скорость в 250 кбит/с, однако дальнобойность оставляет желать лучшего — она, как и у Wi-Fi на этой частоте, не превышает 10-15 метров (но для квартиры этого, разумеется, вполне хватает). Максимальная выходная мощность при этом составляет 0 дБм (1 мВт).

В реализации протокола от 2012 года появилась возможность создавать устройства, способные обходиться без постоянного источника питания. Энергию для передачи сигнала такие устройства получают, например, от нажатия кнопки на них — то есть энергопотребление ничтожно мало, к тому же такие устройства практически моментально подключаются к сети.

Устройство ZigBee может активироваться (то есть переходить от спящего режима к активному) за 15 миллисекунд или меньше, и с учетом того, что большую часть времени оно находится в спящем режиме, батареек хватает на очень продолжительное время (официально — до двух лет, однако цифра меняется от производителя к производителю).

Топология сети ZigBee — ячеистая, то есть данные в сети передаются по цепочке от одного устройства (обычно маршрутизатора) к другому:

82556cc0ee63fa071f126dd132be70d6.jpg

На практике это приводит к высокой отказоустойчивости сети — при выходе из строя одного устройства сеть продолжает функционировать. ZigBee использует 16-битную адресацию, то есть один ZC (координатор) может работать с 65 536 устройствами. К тому же создателями протокола добавлена возможность использования нескольких сетей ZigBee вместе, поэтому в теории количество устройств практически не ограничено. 

В итоге ZigBee получился с одной стороны достаточно развитым (быстро работает, легко настраивается, хорошая отказоустойчивость), но с другой — достаточно сырым: производители устройств так и не договорились о 100% совместимости девайсов. Так что для создания умного дома в рамках одной квартиры с несколькими десятками устройств такой протокол вполне подходит, для большего лучше присмотреться к другим протоколам.

ZigBee — Википедия

ZigBee
Zigbeelogo.jpg
Уровень (по модели OSI) начиная с канального (DLC)
Создан в 2003
Назначение протокола Беспроводная связь между устройствами с низким потреблением, с возможностью выстраивания ячеистой топологии сети
Спецификация IEEE 802.15.4
Разработчик ZigBee Alliance

ZigBee — спецификация сетевых протоколов верхнего уровня — уровня приложений APS (англ. application support sublayer) и сетевого уровня NWK, — использующих сервисы нижних уровней — уровня управления доступом к среде MAC и физического уровня PHY, регламентированных стандартом IEEE 802.15.4. ZigBee и IEEE 802.15.4 описывают беспроводные персональные вычислительные сети (WPAN). Спецификация ZigBee ориентирована на приложения, требующие гарантированной безопасной передачи данных при относительно небольших скоростях и возможности длительной работы сетевых устройств от автономных источников питания (батарей).

Zigbeelogo.jpg

Основная особенность технологии ZigBee заключается в том, что она при малом энергопотреблении поддерживает не только простые топологии сети («точка-точка», «дерево» и «звезда»), но и самоорганизующуюся и самовосстанавливающуюся ячеистую (mesh) топологию с ретрансляцией и маршрутизацией сообщений. Кроме того, спецификация ZigBee содержит возможность выбора алгоритма маршрутизации, в зависимости от требований приложения и состояния сети, механизм стандартизации приложений — профили приложений, библиотека стандартных кластеров, конечные точки, привязки, гибкий механизм безопасности, а также обеспечивает простоту развертывания, обслуживания и модернизации.

Основными областями применения технологии ZigBee являются беспроводные сенсорные сети, автоматизация жилья («Умный дом» и «Интеллектуальное здание»), медицинское оборудование, системы промышленного мониторинга и управления, а также бытовая электроника и «периферия» персональных компьютеров.

Способность к самоорганизации и самовосстановлению, ячеистая (mesh-) топология, защищённость, высокая помехоустойчивость, низкое энергопотребление и отсутствие необходимости получения частотного разрешения делают ZigBee-сеть подходящей основой для беспроводной инфраструктуры систем позиционирования в режиме реального времени (RTLS).

ZigBee — стандарт для набора высокоуровневых протоколов связи, использующих небольшие, маломощные цифровые трансиверы, основанный на стандарте IEEE 802.15.4-2006 для беспроводных персональных сетей, таких как, например, беспроводные наушники, соединённые с мобильными телефонами посредством радиоволн коротковолнового диапазона. Технология определяется спецификацией ZigBee, разработанной с намерением быть проще и дешевле, чем остальные персональные сети, такие как Bluetooth. ZigBee предназначен для радиочастотных устройств, где необходима длительная работа от батареек и безопасность передачи данных по сети.

Альянс ZigBee является органом, обеспечивающим и публикующим стандарты ZigBee[1], он также публикует профили приложений, что позволяет производителям изначальной комплектации создавать совместимые продукты. Текущий список профилей приложений, опубликованных, или уже находящихся в работе:

  • Домашняя автоматизация
  • Рациональное использование энергии (ZigBee Smart Energy 1.0/2.0)
  • Автоматизация коммерческого строительства
  • Телекоммуникационные приложения
  • Персональный, домашний и больничный уход
  • Игрушки

Сотрудничество между IEEE 802.15.4 и ZigBee подобно тому, что было между IEEE 802.11 и альянсом Wi-Fi. Спецификация ZigBee 1.0 была ратифицирована 14 декабря 2004 и доступна для членов альянса ZigBee. 30 октября 2007 г., была размещена спецификация ZigBee 2007. О первом профиле приложения — «Домашняя автоматизация» ZigBee, было объявлено 2 ноября 2007. ZigBee работает в промышленных, научных и медицинских (ISM-диапазон) радиодиапазонах: 868 МГц в Европе, 915 МГц в США и в Австралии, и 2.4 ГГц в большинстве стран в мире (под большинством юрисдикций стран мира). Как правило, в продаже имеются чипы ZigBee, являющиеся объединёнными радио- и микроконтроллерами с размером Flash-памяти от 60К до 128К таких производителей, как Jennic JN5148, Freescale MC13213, Ember EM250, Texas Instruments CC2430, Samsung Electro-Mechanics ZBS240 и Atmel ATmega128RFA1. Радиомодуль также можно использовать отдельно с любым процессором и микроконтроллером. Как правило, производители радиомодулей предлагают также стек программного обеспечения ZigBee, хотя доступны и другие независимые стеки.

Так как ZigBee может активироваться (то есть переходить от спящего режима к активному) за 15 миллисекунд или меньше, задержка отклика устройства может быть очень низкой, особенно по сравнению с Bluetooth, для которого задержка, образующаяся при переходе от спящего режима к активному, обычно достигает трёх секунд.[2] Так как ZigBee большую часть времени находится в спящем режиме, уровень потребления энергии может быть очень низким, благодаря чему достигается длительная работа от батарей.

Первый выпуск стека сейчас известен под названием ZigBee 2004. Второй выпуск стека называется ZigBee 2006, и, в основном, заменяет структуру MSG/KVP, использующуюся в ZigBee 2004 вместе с «библиотекой кластеров». Стек 2004 года сейчас более или менее вышел из употребления. Реализация ZigBee 2007 в настоящее время является текущей, она содержит два профиля стека, профиль стека № 1 (который называют просто ZigBee) для домашнего и мелкого коммерческого использования, и профиль стека № 2 (который называют ZigBee Pro). ZigBee Pro предлагает больше функций, таких как широковещание, маршрутизацию вида «многие-к-одному» и высокую безопасность с использованием симметричного ключа (SKKE), в то время как ZigBee (профиль стека № 1) занимает меньше места в оперативной и Flash-памяти. Оба профиля позволяют развернуть полномасштабную сеть с ячеистой топологией и работают со всеми профилями приложений ZigBee.

ZigBee 2007 полностью совместим с устройствами ZigBee 2006. Устройство ZigBee 2007 может подключаться и работать с сетью ZigBee 2006, и наоборот. В связи с наличием различий в опциях маршрутизации, устройства ZigBee Pro могут быть только конечными устройствами (ZEDs) сетей ZigBee 2006, и наоборот, устройства ZigBee 2006 и ZigBee 2007 могут быть только конечными устройствами в сети ZigBee Pro. При этом приложения, которые запускаются на устройствах, работают одинаково, независимо от реализации профиля стека.

Протоколы ZigBee разработаны для использования во встроенных приложениях, требующих низкую скорость передачи данных и низкое энергопотребление. Цель ZigBee — это создание недорогой, самоорганизующейся сети с ячеистой топологией предназначенной для решения широкого круга задач. Сеть может использоваться в промышленном контроле, встроенных датчиках, сборе медицинских данных, оповещении о вторжении или задымлении, строительной и домашней автоматизации и т. д. Созданная в итоге сеть потребляет очень мало энергии — индивидуальные устройства согласно данным сертификации ZigBee позволяют энергобатареям работать два года.[3].
Типовые области приложения:[4]

  • Домашние развлечения и контроль — рациональное освещение, продвинутый температурный контроль, охрана и безопасность, фильмы и музыка.
  • Домашнее оповещение — датчики воды и энергии, мониторинг энергии, датчики задымления и пожара, рациональные датчики доступа и переговоров.
  • Мобильные службы — мобильные оплата, мониторинг и контроль, охрана и контроль доступа, охрана здоровья и телепомощь.
  • Коммерческое строительство — мониторинг энергии, HVAC, света, контроль доступа.
  • Промышленное оборудование — контроль процессов, промышленных устройств, управление энергией и имуществом.

Существуют три различных типа устройств ZigBee.

  • Координатор ZigBee (ZC) — наиболее ответственное устройство, формирует пути древа сети и может связываться с другими сетями. В каждой сети есть один координатор ZigBee. Он и запускает сеть от начала. Он хранит информацию о сети, выступает как доверенный центр и хранит ключи безопасности.
  • Маршрутизатор ZigBee (ZR) — Маршрутизатор может выступать в качестве промежуточного маршрутизатора, передавая данные с других устройств. Он также может запускать функцию приложения.
  • Конечное устройство ZigBee (ZED) — его функциональная нагруженность позволяет ему обмениваться информацией с материнским узлом (или координатором, или с маршрутизатором), он не может передавать данные с других устройств. Такое отношение позволяет узлу львиную часть времени пребывать в спящем состоянии, что позволяет экономить энергоресурс батарей. ZED требует минимальное количество памяти, и поэтому может быть дешевле в производстве, чем ZR или ZC.

Протоколы построены на недавно разработанном алгоритме AODV (протокол динамической маршрутизации для мобильных ad-hoc сетей (MANET) и других беспроводных сетей) и NeuRFon предназначенными для образования ad-hoc сетей (децентрализованная беспроводная сеть, образованная случайными абонентами) или узлов. В большинстве случаев сеть является скоплением скоплений. Она также может принимать форму сети или одиночного скопления. Текущие профили получаются из протоколов ZigBee поддерживают сети со включёнными или с отключёнными маячками.

В сетях с отключёнными маячками (где порядок маячков составляет 15) используется механизм доступа к каналам. В этом типе сети маршрутизаторы ZigBee обычно поддерживают свои приёмники включёнными продолжительно, что требует более мощной энергоподдержки. Однако это позволяет разнородным сетям, в которых некоторые устройства продолжительно принимают, пока другие только передают, в то время, когда определяются внешние сигналы. Типичный пример разнородной сети — это беспроводной ламповый выключатель. Узел ZigBee в лампе может принимать постоянно, с того времени как он подключён к общему питанию, в то время как ключ, соединяющий лампу с батареей, остаётся в спящем режиме, пока выключатель отключён. Затем ключ переходит в активный режим, посылает лампе команду, ожидая подтверждения, и возвращается в спящее состояние. В таких сетях узел лампы должен быть, по меньшей мере, маршрутизатором ZigBee, если не координатором, узел ключа, обычно, это конечное устройство ZigBee.

В сетях с маячками специальные узлы сети, маршрутизаторы ZigBee, передают периодические маячки, чтобы подтвердить своё присутствие на других узлах сети. Узлы могут находиться в спящем состоянии между маячками, что снижает их скважность и увеличивает жизнь батареек. Интервалы маячков могут различаться от 15.36 мс до 15.36 мс * 214 = 251.65824 с для скорости в 250 kbit/s, от 24 мс до 24 мс * 214 = 393.216 с для скорости в 40 kbit/s и от 48 мс до 48 мс * 214 = 786.432 с для 20 kbit/s. Однако низкая скважность операций (сигналов) вместе с длинными интервалами маячков требует точного распределения времени, что может войти в противоречие с требованием низкой стоимости изделия.

В общем, протоколы ZigBee снижают время включения радиопередатчиков и сокращают энергопотребление. В маячковых сетях узлы должны быть активными только во время осуществления маячком передачи. В безмаячковых сетях расход энергии решительно асимметричен, некоторые устройства всегда активны, в то время как другие проводят большую часть своего времени в спящем режиме. Устройства ZigBee должны быть совместимы со стандартом IEEE 802.15.4-2003 беспроводных персональных сетей (исключая профиль 2.0 «рационального использования энергии»). Стандарт определяет нижние слои протокола — физический слой (PHY), и контроль доступа (MAC) часть ссылки на слой данных (DLL). Этот стандарт определяет работу на частотах 2.4 ГГц (в мире, не лицензированная частота), 915 МГц (Американский континент) и 868 МГц (Европа) диапазон ISM. На частоте 2.4 ГГц есть 16 каналов ZigBee, каждый канал требует ширины диапазона в 5 МГц. Основная частота для каждого канала может быть рассчитана как FC = (2405 + 5 * (ch — 11)) МГц, где ch = 11, 12, …, 26.

Радио используют широкополосную модуляцию с прямым расширением спектра которая управляется цифровым потоком в модуляторе. Двоичная фазовая манипуляция используется на полосах в 868 и 915 МГц, а офсетная квадратурная фазовая манипуляция передающая по 2 бита в символе используется на полосе 2,4 ГГц. В чистом виде, при передаче через воздух скорость передачи данных составляет 250 кбит/с для каждого канала в диапазоне 2.4 ГГц, 40 кбит/с для каждого канала в диапазоне 915 МГц и 20 кбит/с в диапазоне 868 МГц. Расстояние передачи от 10 до 75 метров и свыше 1500 метров для Zigbee pro, хотя оно сильно зависит от отдельного оборудования. Максимальная выходная мощность радио в основном составляет 0 дБм (1 мВт).

Базовый режим доступа к каналу «контроль несущей частоты, многократный доступ/избежание коллизий кадров» (CSMA/CA- вероятностный сетевой протокол канального (МАС) уровня). То есть перед тем как узлы начинают передачу по пути обмена информацией для людей, они кратко проверяются, что ни один из них не ведёт передачу перед началом общей работы. Существуют три знаменитые исключения для работы CSMA. Маячки посылаются за предусмотренный промежуток времени и CSMA не используется. Подтверждения посланий также не используют CSMA. Наконец устройства в маячковых ориентированных сетях, которые имеют низкую скрытность в требованиях режима реального времени могут также использовать слоты гарантированного времени., которые по определению не используют CSMA.

3 марта 2009 концерн RF4CE (Радиочастоты для бытовой электроники) согласился работать с альянсом ZigBee для совместного распространения стандартизированной спецификации, предназначенной для радиочастотного дистанционного управления. ZigBee RF4CE был разработан для широкого употребления в дистанционно управляемой аудио/видео продукции, такой как телевизоры и телеприставки. Это обещает множество преимуществ по сравнению с существующими техническими решениями для дистанционного управления, включая расширение связей, повышение надежности работы, расширенные возможности и гибкость, совместимость, и ухода от барьера прямой видимости[5].

Программное и аппаратное обеспечение[править | править код]

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

Хотя радиопередатчики сами по себе недороги, процесс квалификации ZigBee включает в себя полную проверку требований на физическом уровне. Такая подробная доводка физического уровня имеет многочисленные преимущества, так как все радиомодули, полученные из этого набора полупроводниковых элементов, будут обладать теми же RF-характеристиками. С другой стороны, если физический уровень будет не сертифицирован, неправильное функционирование может уменьшить длительность работы батарей в других устройствах, включённых в сеть ZigBee. Там где другие протоколы могут скрывать плохую чувствительность или другие скрытые проблемы, что проявляется в искажённой уменьшенной реакции ZigBee радио имеют жёсткие инженерные ограничения, касающиеся как энергопитания так и широты диапазона. Таким образом, радио проходят испытания сертифицированными лабораториями с указаниями пункта 6 из 802.15.4-2006 стандарта. Существуют решения, объединяющие микроконтроллер и радиопередатчик в одном корпусе, например микроконтроллеры серии STM32W от компании STMicroelectronics.

Спецификация ZigBee доступна для широкой публики при условиях некоммерческого использования.[6] Входной уровень членства в альянсе ZigBee, называемый Adopter, обеспечивает доступ к ещё не опубликованным спецификациям и разрешает создавать продукты для коммерческого использования спецификации. Регистрация в ходе использования спецификации ZigBee требует от коммерческого разработчика присоединения к альянсу ZigBee. «Ни одна часть этой спецификации не может быть использована для производства продуктов или продажи без членства в альянсе ZigBee.» Происходят ежегодные конфликты по поводу оплаты с общей публичной лицензией GNU. Согласно пункту 2-b: «Вы должны быть уверены в том, что любая работа, которую вы распространяете или публикуете, если вся эта работа или её часть содержит программу или извлечёна из программы или из любой её части, вся эта работа должна быть лицензирована как целое без передачи третьим лицам, согласно условиям данной лицензии». С тех пор как лицензия GPL не делает различий между коммерческим и некоммерческим использованием невозможно выполнить лицензирование стека ZigBee согласно GPL или совместить выполнение ZigBee с лицензионным кодом GPL. Требование к разработчику присоединиться к альянсу ZigBee также вступает в конфликт с другими лицензиями свободного программного обеспечения[7].

Россия[править | править код]

Применение сетей ZigBee в Российской Федерации в частотном диапазоне 2400-2483,5 МГц не требует получения частотных разрешений и дополнительных согласований[8] (Решение ГКРЧ при Мининформсвязи России от 07.05.2007 № 07-20-03-001), решения ГКРЧ постоянно обновляются, решение от 07.05.2007 № 07-20-03-001 давно претерпело несколько раз изменения, однако смысл остается близко подобным[9].

  • Сети, образованные по протоколу ZigBee, начали рассматриваться с 1998, когда многие установщики осознали, что протоколы WiFi и Bluetooth стали неподходящими для многих приложений. В частности, многие инженеры увидели необходимость в самоорганизуемых ad-hoc сетях.
  • Стандарт IEEE 802.15.4 был создан в мае 2003.
  • Летом 2003 главный поставщик ячеистых сетей Philips Semiconductors прекратил инвестиции. Однако Philips Lighting продолжил участие со стороны данной корпорации, которая осталась покровителем (промоутером) в составе совета директоров альянса ZigBee.
  • О создании альянса ZigBee было объявлено в 2004. В следующем году число его членов удвоилось и выросло до более чем 100 компаний в 22 странах. К апрелю 2005 число участников достигло более 150 компаний и к декабрю 2005 до 200 компаний.
  • Спецификации ZigBee были ратифицированы 14 декабря 2004.
  • Альянс ZigBee объявляет о доступности для общественности Спецификации 1.0 13 июня 2005 года (известный сейчас как спецификация ZigBee 2004).
  • Альянс ZigBee объявляет о завершении и немедленной готовности членов расширенной версии стандарта ZigBee сентября 2006, известной сейчас как спецификация ZigBee 2006.
  • В течение последнего квартала 2007 года расширенная спецификация ZigBee — ZigBee Pro Feature Set была завершена[10].

Имя бренда происходит от поведения медовых пчёл после возвращения их в улей.

  • Z-Wave — беспроводной протокол связи для домашней автоматизации более популярный в США

Беспроводные устройства Xiaomi в умном доме ioBroker / ioBroker corporate blog / Habr

Приветствую всех любителей домашней автоматизации. Решил поделиться опытом использования беспроводных Xiaomi устройств с интерфейсом ZigBee. Я, честно говоря, против применения любых беспроводных устройств в любой автоматизации, от серьезных АСУТП больших объектов до малой автоматики типа охранно-пожарной сигнализации или умного дома, но… Решения Xiaomi подкупили дешевизной, доступностью, отличным дизайном и множеством положительных отзывов от пользователей, решил попробовать.

Этот пост следует воспринимать, как пошаговую инструкцию для интеграции ZigBee устройств в инфраструктуру умного дома. Описанное здесь ни в коем случае не является аксиомой и можно найти много других способов подключения ZigBee устройств. Если всё же пропускать детальное описание, то можно составить впечатление о сложности или легкости объединения устройств от разных производителей в одну локальную платформу на примере ZigBee и ioBroker (о нём чуть позже). Я расскажу в этой статье, как подключить устройства к умному дому, отобразить информацию с них на планшете или просто в браузере и отправить сообщения через телеграм о смене состояния устройств. Если я вас заинтересовал, то прошу под кат.

По замыслу производителя Xiaomi, пользователи должны использовать родное приложение с облачным подключением и Wi-Fi шлюз для устройств ZigBee. Однако уже давно известен способ активации режима разработчика в приложении для получения управляющего токена. Таким образом внутри локальной сети можно общаться со шлюзом, что и позволяет проделать драйвер mihome, который идет в составе ioBroker.

ioBroker — это открытая платформа для IoT, в том числе для построения систем типа «умный дом». Что такое ioBroker можно почитать в предыдущей статье.

Сейчас мой умный дом «крутится» на ARM-плате Cubietruck с некоторым «обвесом» в виде жесткого диска на 80Гб, аккумуляторной батарей на 5000мАч, USB-мастера сети 1-wire, USB-RS485 преобразователя для опроса устройств по протоколу modbus. ОС Armbian установлена на жесткий диск с переносом корневого раздела, на карте памяти microSD остался только загрузчик.

Своё знакомство с беспроводными устройствами Xiaomi я начал с покупки датчиков температуры и влажности. На тот момент была единственная возможность их интеграции — драйвер mihome, который упоминался выше.

Драйвер mihome

Добавить драйвер в систему очень просто, нужно кликнуть на кнопке “+” в списке доступных драйверов и наблюдать процесс установки.

Установку и первоначальную настройку родного Android-приложения Mi Home описывать не буду, можно посмотреть на странице github драйвера или в интернете. Итак, режим разработчика активирован, токен получен, настраиваем адаптер mihome, сохраняем и запускаем, если он не был запущен.

В дереве объектов должен появиться шлюз Xiaomi и подключенные в приложении Mi Home устройства.

Далее можно настроить только что созданные объекты. К примеру, хранение истории датчиков температуры и влажности. Я использую для исторических данных драйвер SQL с настройкой на БД SQLite.

Настройка хранения истории переменной производится в окне объектов системы: нужно в иерархии объектов добраться до самой переменной и нажать справа кнопку с гаечным ключом. На вкладке «Настройки» у меня по сенсорам активировано хранение истории — только изменения переменной.

Другие настройки:

  • минимальный интервал 10 секунд — если переменная будет изменяться чаще, то запись в БД будет игнорироваться
  • запись значений каждые 300 секунд (5 минут) — если переменная не изменяется более 5 минут, в БД все равно запишется текущее значение
  • тип значения — число
  • срок хранения — 1 год

Добавление новых устройств происходит через родное приложение. Т.е. надо осуществить сопряжение нового девайса со шлюзом согласно прилагаемой инструкции и после этого он автоматически появится в списке объектов ioBroker.

Драйвер zigbee

Мне было неудобно пользоваться родным приложением Xiaomi, тем более что надо покупать шлюз с китайским штекером, который в моем случае, кроме как для общения с устройствами, ни для чего не пригодился. Да, его можно использовать как подсветку-ночник или задействовать в каких то сценариях датчик освещенности. В интернете можно найти инструкции как «скормить» шлюзу плейлист для воспроизведения собственных радиостанций, но у меня ничего из этого не прижилось. Плюс к этому, не давала покоя мысль, что мои данные куда-то утекают, где-то обрабатываются и хранятся.

Один из активных пользователей платформы ioBroker нашел в интернете библиотеку zigbee-shepherd на node.js, в которой было упоминание о подключении устройств Xiaomi. На её базе был написан драйвер для ioBroker, причем автор этого драйвера не ограничился только устройствами Xiaomi, список поддерживаемых устройств постоянно дополняется и доступен на github странице проекта.

В качестве координатора сети предполагается использовать недорогие готовые устройства на базе чипов CC25хх от TI. Можно купить готовые ZigBee-модули как с подключением по USB и встроенной антенной, так и модели подороже-посерьезнее: с внешней антенной, усилителем, подключением через UART.

Для работы с драйвером, надо только сменить прошивку. Таким образом получается, что для работы этого драйвера не нужен дорогостоящий шлюз, не нужны сети Wi-Fi. «Точкой входа» является координатор — устройство на базе чипа СС25хх со специальной прошивкой. Через координатор происходит непосредственное общение zigbee-устройств и системы «Умный дом», а также привязка новых устройств.

В качестве координатора я использую готовую плату на базе чипа СС2530 с внешней антенной, которую подключил к серверу через UART.

Для прошивки устройства был куплен специальный дебагер SmartRF04EB, порт microUSB которого я подключил к компьютеру, а модуль ZigBee подключил с помощью проводков для отладки по схеме:

СС2530 Плата SmartRF04EB
P22 DC
P21 DD
RST RESET
GND GND
VCC 3.3V

На странице github проекта качаем прошивку (именно для этого устройства файл называется CC2530ZNP-Pro-Secure_LinkKeyJoin.hex) и программу для прошивки (flash-programmer), после установки которой в систему добавляются нужные драйвера.
При подключении платы-дебагера в USB-порт компьютера в программе сразу отобразится подключенное устройство. Нужно только указать путь к файлу-прошивке и нажать кнопку “Perform Actions”

ZigBee-модуль портами P03 (Rx) и Р02 (Tx) подключен в UART4 (в ОС как ttyS4) платы cubietruck, питание 3V3, GND взял на соседних pin. Для устойчивой работы еще надо порты P20, P4, P5 самого координатора подтянуть к земле. Как писал выше, я использую ОС Armbian, порт UART активируется очень просто, с помощью команды armbian-config в разделе SystemHardware нужно активировать нужный порт и перезагрузить систему.

Драйвер zigbee добавляется из админки одним кликом.

В моем случае координатор подключен в порт /dev/ttyS4 (как писал выше), указываем его в настройках.

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

Итак, для примера добавим кнопку Xiaomi (серия Mijia), для этого нажимаем зеленую кнопку в настройках драйвера и, следуя инструкции, сначала зажимаем кнопку сопряжения на тыльной стороне скрепкой, пока не начнет мигать светодиод, затем кликаем этой кнопкой примерно раз в 2 секунды, видим прогресс сопряжения.

Квартира у меня не большая, со всеми устройствами связь стабильная, даже с датчиком открытия двери на лестничной площадке (ЖБ стена в 100мм и расстояние 5м по прямой). Проблемы начались, когда я решил добавить датчик температуры и влажности уличного воздуха, который установил на наружней стене дома со стороны утепленной лоджии. Сигнал слабого датчика, который к тому же находился на улице, не добивал до шкафа автоматики. Решить проблему можно просто — надо добавить роутер в состав сети ZigBee и расположить его ближе к датчику. Некоторые беспроводные устройства, к примеру, розетка Xiaomi могут работать в качестве роутера, но у меня не было подобных устройств. Покупать дорогую розетку или управляемую лампочку только для “проброса” данных от датчика на улице я не хотел. Как оказалось, для тех же оконечных девайсов на базе чипа СС25хх есть специальная прошивка, которая позволяет их использовать как роутер в системе. В итоге я добавил роутер на базе чипа СС2531 с подключением USB. Подробно на процессе прошивки останавливаться не буду, схему и сам файл прошивки можно найти на странице github проекта.

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

Процесс добавления роутера в систему прост: нажимаем кнопку сопряжения в драйвере и на включенном роутере несколько раз нажимаем кнопку S2, пока устройства не соединятся.

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

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

Убедимся что датчик правильно подключился — посмотрим карту сети.

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

Функционал некоторых устройств Xiaomi через этот адаптер даже немного больше, чем через родное приложение и драйвер mihome. В будущем хочу расширить немного сеть и попробовать новые устройства, в частности умный привод для штор и сенсор-кубик.

Драйвер Material

Данные мы получили, исполнительные механизмы привязали, что теперь с ними делать? Для начала давайте отобразим в красивом интерфейсе. У меня есть большой проект в драйвере VIS, который существует в нескольких версиях под разные разрешения, но там материала достаточно на отдельную статью. Возможно она будет следующей.

Для простого и быстрого вывода на экран данных и управления различными устройствами, я использую драйвер material. Установка как обычно в пару кликов. Плитки интерфейса отображают данные исходя из настроек категорий, которые добавляются в одноименном окне админки интерфейса. Список категорий ограничен только фантазией, я использую схему «комната-функция», по ним и происходит группировка. Добавил все комнаты (кухня, коридор, комната, балкон и т.п.) и функции (освещение, датчики, системные и т.п.).

Теперь в окне настройки объектов системы, нужно для переменных, которые будут выводиться на экран, указать комнату, функцию и назначить роль (для правильного отображения). Пример — комнатный настенный датчик температуры и влажности Xiaomi, подключенный через Bluetooth.

Исходя из этих настроек, плитка будет выводить на экран данные, подтянется иконка, и у объектов определенного типа будет доступно управление.

Пример 1. Вывод всей информации по одной категории — функции. Освещение во всей квартире.

Пример 2. Вывод всей информации по комнате — Ванная комната.

Пример 3. Вольтаж и уровень разряда батарей всех беспроводных устройств Xiaomi.

Этот драйвер у меня работает для локального управления системой с мобильного телефона, стационарного планшета на стене. Иногда я подключаюсь через VPN. Для управления и просмотра состояний удаленно, получения уведомлений, я использую драйвер telegram.

Драйвер Telegram

Установку уже описывать не буду, сразу пробежимся по настройкам. Я использую режим работы через периодический опрос (по-умолчанию 300мс) и соединение через прокси-сервер. Чтобы получить token, нужно немного «пообщаться» с создателем ботов — BotFather. Процесс простой — находите поиском этого бота, даете команду на создание нового, указываете его уникальное имя и ключ ваш, указываем его в настройках драйвера и, для безопасности, обязательно указываем пароль «приветствия». Его ваш бот будет спрашивать при общении с новым пользователем.

Теперь нужно настроить кейсы общения через бота. Для этого можно использовать драйвер text2command или JavaScript. Так исторически сложилось, что я использую JavaScript как в виде текста, так и блоками Blockly. Установка драйвера JS не должна вызвать трудностей, настройка в данном кейсе не нужна. После установки и запуска нужно включить отображение меню для создания и редактирования скриптов.

Пример 1. Оповещения.

Для начала давайте попробуем отправить уведомление об открытии, к примеру, входной двери. У меня стоит датчик-геркон беспроводной Xiaomi на входной двери. Мониторю как жена гуляет с мелким пока я на работе. Создадим новый скрипт в группе common.

Укажем что будет «рисовать» в blockly и назовем «telegram_bot».

В группе «События» возьмем блок реакции на изменение переменной и перетащим на рабочее поле.

Далее выберем ID объекта на который подписываемся, вставим проверку объекта через «если» — «иначе если» на значение true/false. В итоге должно получится примерно следующее.

Отлично, теперь бежим, открываем дверь — закрываем дверь и видим сообщения в telegram.

Пример 2. Управление освещением через меню.
Пример посложнее, сделаем управление освещением кнопками меню в telegram. Здесь уже придется немного покодить, т.е. при создании скрипта нужно выбрать JS. Задача примерно такая: сделать кнопки в виде меню с выводом статуса светильников сразу в текст подписи кнопок. Еще постараться сделать так, чтобы при нажатии на кнопку, состояние освещения инвертировалось и статус тут же обновлялся в тексте кнопки появлением/исчезновением лампочки. Плюс к тому, если меню уже запущено и вручную клавишей включили/выключили свет, нужно чтобы меню также обновлялось со статусами светильников.
Код содержит комментарии и отнсительно не сложный:

В итоге должно получиться примерно так:

Заключение

Статья получилась длинной, но надеюсь полезной, и может она облегчит некоторым пользователям жизнь или сподвигнет кого-нибудь на создание своего умного дома.
На данный момент моя система умного дома на базе ioBroker «крутится» уже 4 года и я вполне ей доволен. К ней кроме ZigBee ещё подключено несколько самодельных контроллеров по MQTT и HTTP для управления освещением, вентиляцией и прочими системами, сеть температурных датчиков по шине 1-wire, устройство мониторинга параметров электросети по шине RS485 и протоколу modbus RTU и много чего еще.

В моей копилке решений для умного дома накопилось много идей, хотя, наверное их надо воспринимать скорее, как копилка проблем для умного дома (те кто в теме поймут, о чём я). Оставляйте свои пожелания в комментариях, чтобы помочь мне определиться с темой следующей статьи.

Добавить комментарий

Ваш адрес email не будет опубликован.