Содержание
Здравствуйте друзья
В этом обзоре я бы хотел немного вернутся к истокам построения системы умный дом на основе устройств Xiaomi, рассказать про то, с чего начинать и как работают датчики ZigBee
Где купить?
Вступление
Моя система умного дома начала свой новый виток развития — а именно разделение на 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, и покажу, при помощи каких устройств и программ перехватывать его сигнал для изучения.
INFO
Мои коллеги из GS Labs занимаются разработками, связанными с умным домом, что позволило мне вблизи познакомиться с безопасностью ZigBee. На этот опыт я и буду опираться, когда речь зайдет о практике.
Почему ZigBee?
Конечно, этот протокол не нов — стандарт появился еще в 2003 году. Сегодня есть более современные аналоги вроде LoRaWAN и RPMA, но ZigBee продолжает быть популярным. Почему? Взгляни на картинку.
Помимо дальности и скорости здесь учтена стоимость. И сразу видно, что ZigBee отлично сбалансирован и при невысокой цене дает приемлемые дальность действия и скорость передачи данных. Вряд ли тебе понадобится стримить видео в 4K на выключатель, а чтобы что-то сделать издалека, обычно используется подключенный к интернету хаб. Вот и получается, что ZigBee не сильно бьет по карману при создании умного дома и покрывает основные нужды.
К тому же более новые протоколы могут таить неприятные сюрпризы. Например, в разговорах о LoRa я уже несколько раз слышал от интеграторов, что при большом количестве устройств в сети могут начаться чудеса. Говорят, что на опрос сотни девайсов может уйти около часа.
WWW
Об опыте использования LoRaWAN можешь прочесть в статье на «Хабрахабре».
Основные понятия
Топология сети может быть одной из следующих:
- звезда;
- кластерное дерево;
- стильный-модный-молодежный вариант — mesh.
Координатор (он же FFD) — это самый главный узел. Он создает сеть, выбирает, на каком канале общаться, может выступать как «центр доверия» (trust center). Роутеры — устройства уже чуть попроще. Они служат зачастую ретрансляторами сообщений от конечных устройств. Конечные устройства (end device) — то, что мы объединяем в сеть, то есть выключатели, лампочки, датчики движения и прочие гаджеты.
А теперь открываем официальную спецификацию ZigBee. Там нас почти сразу встречает вот такая интересная картинка.
Но пусть она тебя не пугает, потому что к концу статьи ты поймешь, что в реальности все немного проще! 🙂
PHY
Итак, начнем изучение с PHY, физического уровня, и будем подниматься вверх по слоям.
INFO
Мы будем говорить о ZigBee, но ZigBee базируется на IEEE 802.15.4. Причем этот же стандарт взят за основу для WirelessHART и для ISA100.11a.
ZigBee, а точнее, IEEE 802.15.4 может работать в трех частотных диапазонах.
И, как ты можешь заметить, если выбрать для него частоту 2,4 ГГц, то Wi-Fi и ZigBee могут начать мешать друг другу. Для уменьшения перекрестных помех между Wi-Fi и ZigBee лучше выбирать следующие каналы.
Что не может не радовать, в стандарте есть такое понятие, как ED — Energy Detection. Эта фича используется в координаторе умного дома, чтобы он выбирал канал, где меньше всего помех.
Общий вид посылки для PHY имеет следующий вид.
Если у тебя дома завалялся SDR и ты желаешь контролировать каждый-прекаждый битик в модуляции OQPSK, то тебе поможет вот эта схема.
Этот вид модуляции как раз и применяется на частоте 2,4 ГГц. А мы тем временем идем дальше выше по стеку протоколов, и нас ждет уровень MAC.
MAC
Общий вид MAC-фреймов представлен ниже.
Как видишь, Frame Control отвечает за тип пакета данных (Beacon, Ack, Cmd, Data), тип адресации, а также наличие шифрования.
Теперь поговорим о каждом фрейме данных чуть подробнее.
Data Frame — один из самых простых фреймов. В нем передаются данные протоколов, которые работают поверх IEEE 802.15.4. Получается, что ты можешь взять за основу IEEE 802.15.4 и разработать протокол для своих нужд.
ACK Frame — фрейм подтверждения. Увы, мы живем в неидеальном мире, где бывает много помех, а при передаче по радиоканалу тем более. Поэтому необходимо подтверждать принятые данные.
Здесь Sequence Number указывает на то, какой фрейм из пришедших ранее мы подтверждаем.
MAC Cmd frame в той или иной степени отвечает за «организацию сети» на уровне 802.15.4.
Ниже представлены команды, которые могут тебе встретиться.
FFD — Full-function Device — это координатор сети, та самая главная «железка», которая организовывает сеть ZigBee.
RFD — Reduced-function Device — не столь важное устройство, как координатор, выполняет функции роутера при пересылке пакетов.
Beacon frame — об этом фрейме стоит поговорить подробнее.
Так как мы передаем данные по радиоканалу и у нас есть несколько устройств, эти устройства должны как-то определять, в какой момент можно передавать данные, а когда занята несущая и стоит подождать. Поэтому в сетях ZigBee/IEEE 802.15.4 есть два способа передачи данных: режимы Beacon и NonBeacon.
Для передачи данных в режиме NonBeacon используется так называемый unslotted CSMA-CA channel access mechanism. По моему опыту, он используется редко.
Наиболее частый случай — использование режима Beacon. В этом случае координатор отправляет так называемые маячки (beacons), на основе которых остальные устройства синхронизируются и передают данные.
Общий вид передачи данных в этом режиме представлен ниже.
Во фрейме Beacon указывается, сколько будет slotted CSMA-CA, будет ли доступ без конкуренции и последует ли Inactive portion — время, когда конечные устройства смогут со спокойной совестью уйти в спячку для продления работы от батарейки.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»← Ранее Check Point: ботнет Echobot начал широкомасштабные атаки на умные устройстваДалее → Свежую уязвимость в vBulletin уже используют ботнеты
Что такое ZigBee протокол в системе «умный дом» Xiaomi?
У многих устройств и датчиков умного дома Xiaomi мы видим приписку ZigBee, что это за зверь, какие плюсы и минусы он несет, я постараюсь разобрать в этой статье.
Наверное, все представляют что такое Wi-Fi сеть, которая есть почти в каждой квартире. Есть устройство передатчик (роутер) и приемники (телефон, ноутбук и другие устройства), их связывает единая сеть, которая создается на уровне роутера. Схематично это выглядит так:
Такой тип сети называется «Звезда», из-за визуального сходства (Центральное устройство и лучи отходящее от него). Тут все кажется довольно просто.
Как вы можете заметить, на схеме присутствуют устройства из системы «Умный дом» от Xiaomi. Получается, что на протоколе Wi-Fi можно построить свою систему автоматизации? Ответ — да, можно.
А зачем тогда что-то придумывать?
Если вы обратите внимание на схему, то заметите, что все устройства либо подключаются к розетке, либо требуют частой зарядки. Тут во всей красе предстает главный минус Wi-Fi сети, а именно высокое энергопотребление. И если для устройств питающихся от розетки это не страшно, то для устройств и датчиков работающих от батарейки — это смертельно. Согласитесь, зачем нужен датчик, в котором нужно каждый день заряжать аккумулятор?
Но ведь есть протокол передачи данных, с низким энергопотреблением, который нам давно известен и до сих пор активно используется. Вспомните фразу: «включи блютуз, я тебе перекину фотки.». Да, именно Bluetooth, который раньше использовался для передачи данных, а сейчас занял нишу подключения беспроводных аудио-устройств и гаджетов, так же применяется в системе «Умный дом». Чаще конечно идет в пару с Wi-Fi, но есть и устройства только с bluetooth, например чайник Mi Smart Kettle.
Но и тут все не так гладко, как хотелось бы. Как и Wi-Fi, Bluetooth использует топологию «Звезда». А что в этом страшного? Ответ прост, малая дальность действия и низкая отказоустойчивость. Основное устройство необходимо размещать максимально по центру помещения, чтобы обеспечить связь со всеми устройствами. И если для квартиры это не так критично, то в частном доме просто не получится обеспечить постоянную связь между устройствами, находящимися на заметном удалении друг от друга. Для решения этой проблемы были внедрены Bluetooth шлюзы. И постепенно развивается система Mesh, для которой выпустили специальные лампочки.
ZigBee
Логично, что нужен был протокол передачи данных с низким энергопотреблением и надежностью соединения. Поэтому еще в 2003 году была ратифицирована спецификация ZigBee. Основное отличие от Bluetooth — это топология «Mesh».
В ней подразумевается наличие 3 типов устройств:
- Координатор — головное устройство, которое создает сеть. В умном доме сяоми эту роль выполняет один из шлюзов.
- Роутер — устройство, которое имеет постоянное питание. Эту роль берут на себя выключатели и розетки.
- Конечные устройства — датчики и гаджеты работающие от батарейки.
На схеме умного дома Xiaomi протокол будет выглядеть так:
Ничего не понятно? Давайте попробуем разобраться.
У нас на схеме есть шлюз 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» | «звезда», «mesh» | «звезда», «mesh» |
Из минусов можно отметить низкую скорость передачи данных — до 250 кбит/сек. Ради низкого энергопотребления, приходится чем то жертвовать, но это не критично для задач домашней автоматизации.
Обратите внимание, если в вашей системе 2 шлюза, то это будет 2 разных, независимых ZigBee сети только в случае недосягаемости. А так второй и последующий шлюз подхватывает сеть первого. Но если вдруг один из шлюзов умрет, то датчики можно переподключить к другому.
Значимость ZigBee в системе умного дома Xiaomi
На конец 2017 года, в системе Xiaomi 22 устройства, которые используют ZigBee протокол. Wi-Fi используют около 80, а блютуз около 25.
Да, самая маленькая доля устройств, но стоит отметить, что ZigBee устройства предназначены именно для автоматизации жилища, и их доля в вашей системе скорее будет доминировать.
Если у вас появились вопросы, смело задавайте в комментариях.
До новых встреч!
Используемые источники:
- https://www.ixbt.com/live/kvazis/bazovyy-nabor-dlya-umnogo-doma-xiaomi—shlyuz-i-datchiki-zigbee-osnovy-raboty.html
- https://xakep.ru/2019/09/30/zigbee-exploits/
- https://xiaomi-smarthome.ru/zigbee/