Как работает умный дом Xiaomi Mijia
Здравствуйте друзья
В этой статье я хочу поделится информацией об устройствах умного дома Xiaomi, которые работают по беспроводному протоколу ZigBee.
Вступление
К написанию этой статьи меня подтолкнули многочисленные вопросы к моим обзорам и видео — нужен ли шлюз Xiaomi к светильникам, увлажнителю, можно ли напрямую подключить датчик температуры и влажности к телефону и т.д. В свое время я снял два больших видео по теме, но видимо тема себя еще не исчерпала.
Где купить
Обычно в своих обзорах в этом месте я оставляю ссылки на магазины с обозреваемым товаром, но в данном случае — я буду затрагивать много различных устройств и поэтому дам ссылку на большую сводную таблицу, которую я постоянно пополняю. В этой таблице содержится информация по всем устройствам умного дома, с ссылками на магазины, обзоры и видео. Но кроме умного дома, остальные вкладки таблицы содержат аналогичные данные по всей экосистеме Xiaomi. Предложения по таблице тоже можете писать в комментариях к этой статье.
Таблица по экосистеме Xiaomi
Что такое ZigBee
ZigBee — это спецификация беспроводной сенсорной сети, которая является надстройкой к стандарту IEEE 802.15.4. Если проще — это отдельная сеть, такая как Bluetooth, Wi-Fi, LTE etc. И тут содержится ответ на вопрос — можно ли подключить / управлять напрямую с смартфона ZigBee датчиками — нет, так как в смартфоне физически нет этого интерфейса.
Почему именно ZigBee ?
Для стабильной работы датчиков умного дома, необходима была надежная, способная к самовосстановлению и простая в развертывании беспроводная сеть — при этом высокая пропускная способность здесь не имеет существенного значения. Вторым важным фактором является то, что оборудование, которое работает в такой сети — должно быть способно на длительное автономное питание. Zigbee — полностью соответствует всем этим условиям, благодаря ячеистой топологии она обеспечивает самовосстановление и гарантированную доставку пакетов, имеет криптографическую защиту и, наконец, имеет высокую автономность работы — например с моей системе имеются датчики движения, причем расположенные в проходных местах, которые работают более 1,5 лет на одном элементе питания (плоская 3В «таблетка»).
Шлюз Smart Home Multifunctional Gateway
Для того, чтобы иметь возможность взаимодействовать с ZigBee устройствами, необходим шлюз — устройство физически имеющее интерфейс ZigBee и второй интерфейс — Wi-Fi для подключения в домашнюю сеть. Некоторые называют его — «хаб», концентратор, логику понять можно, ведь к нему может подключаться множество устройств, но все же основное его предназначение — это трансляция пакетов между ZigBee и Wi-Fi интерфейсами.
Кому интересна более подробная информация, по тексту статьи буду оставлять ссылки на видео по теме.
Самым распространенным является круглый шлюз Mi / Mijia, кроме своей основной задачи он может выполнять роль LED светильника, онлайн радио, сирены сигнализации, дверного звонка и будильника. Кроме этого он оборудован датчиком освещения, который можно использовать в сценариях.
Шлюз от Aqara, он может быть квадратным как в видео ниже, или круглым. Вместо LED подсветки он оборудован всенаправленным ИК передатчиком и 16 А разъемом Type I — для тройной китайской вилки. Он позиционируется как компаньон для кондиционера, управляя им через ИК и считая энергопотребление через разъем розетки. Реле в розетке не предусмотрено, только энергомонитор. В принципе через ИК можно управлять любым другим устройством.
Альтернативой может служить и гибрид шлюза с IP камерой от Aqara, хотя вариант, по моему мнению, довольно спорный — как зверь «морская свинка», но к морю и к свиньям отношения не имеющий.
Датчики умного дома подключаются непосредственно к шлюзу, при этом не имеет значения производитель — mijia работает с aqara, aqara с mijia. Что касается максимального количества датчиков на одном шлюзе — то есть информация о 30 устройствах, есть свидетельства о 50+ устройствах. Лично у меня, в среднем, около 25 устройств на каждый шлюз, которых у меня 4. Каждый из шлюзов, которые находятся в разных точках квартиры, управляет пулом датчиков расположенных в непосредственной близости от него. Здесь содержится еще один ответ на часто задаваемый вопрос — второй шлюз не расширяет покрытие первого, он работает как самостоятельное устройство со своими датчиками. Датчики управляемые разными шлюзами — прекрасно взаимодействуют друг с другом.
Датчики
Какие датчики работают по протоколу ZigBee? Очевидно — те, которые не имеют стационарного питания от сети — исключение составляет разве что Bluetooth датчик температуры и влажности да датчики ухода за растениями, хотя возможно ассортимент и расширится.
Кроме них, в системе УД Xiaomi, по протоколу ZigBee работают все типы настенных выключателей, встраиваемая розетка Aqara, один из видов накладных розеток, привод для штор, умный дверной замок.
Датчики можно условно разделить на два типа — сигнальный и исполнительный. К сигнальным относятся те датчики, которые являются условиями сценариев и они не предусматривают удаленного управления. Кратко пройдемся по ним :
Беспроводные кнопки
По формфактору бывают круглые mijia, поддерживает три условия — клик, двойной клик и длинный клик.
И квадратные от Aqara — есть два варианта, с поддержкой только двух условий клик и дабл клик, и трех — аналогично mijia
Датчик движения
Очень востребованный и нужный датчик, именно он позволят автоматизировать задачи типа включения и выключения света по обнаружению или отсутствию движения и подобные им. Так же производится mi/mijia и aqara. Mi/mijia имеет условия — обнаружение движения и 5 условий по отсутствию движения — через 2,5,10,20 и 30 минут
Датчик от Aqara более продвинутый — он имеет шарнирную ножку, позволяющая устанавливать датчик под нужным углом, кроме этого он оборудован датчиком освещения, что добавляет к нему дополнительное условие — движение в темноте. Благодаря этому можно сделать сценарии зависящие и от уровня освещения в помещении.
Куб-контролер
Необычный и многофункциональный датчик, в качестве условий у него — поворот кубика на 90 и 180 градусов, тряска, двойной удар по столу, сдвиг, вращение — для плавных регулировок например яркости светильника. Это кстати единственный контролер УД с плавными регулировками. В альтернативных системах еще имеются условия — взмах и подбрасывание в воздухе. Здесь тоже есть варианты от mi/mijia и aqara, но последний куб еще не попал ко мне на обзор, поэтому ссылка только на первый.
Датчики открытия
Тоже ходовой и простой датчик, состоящий из двух частей — собственно датчика и магнита. В датчике имеется геркон, который замыкается / размыкается при приближении/удалении магнита. Одна часть датчика прикрепляется например на стену, вторая — на окно/дверь. Версии от mijia и aqara здесь отличаются только формой. Скругленный у mi/mijia
И прямоугольный у Aqara
Принцип работы — замыкание и размыкание, позволяют легко переработать этот датчик, просто подпаяв два провода. Например можно вывести провода на обычную кнопку дверного звонка, сделав его «умным», либо, как в видео ниже — сделать из него датчик протечки — все зависит от ваших нужд и фантазии.
Датчики утечки воды, дыма и газа
Раз уж коснулись этой темы, то стоит вспомнить про «заводской» датчик протечки воды (на момент моей модификации датчика открытия, его еще не было). Он имеет два условия — протечка обнаружена и протечка устранена. Кроме самого факта обнаружения протечки воды, можно сделать сценарий, который будет управлять питанием привода автоматического крана — тем самым моментально перекрывать воду в доме, что позволит избежать дорогостоящего ремонта. Производит только aqara
А в содружестве с известным брендом Honeywell, mijia выпустила датчики, обнаруживающие в воздухе дым и газ. Полагаю что важность этих датчиков понятна и так. При срабатывании (не дай бог) кроме того что они начнут громко пищать, к вам на смартфон тут же придет уведомление.
Датчики температуры и влажности
Совершенно незаменимыми для климат контроля — являются датчики температуры и влажности. Они могут являться условиями для работы увлажнителей воздуха, кондиционеров, нагревательных приборов. В сочетании с датчиками открытия — могут быть созданы сценарии учитывающие кроме климатических параметров — еще и статус окон — открыты или закрыты. Датчики от mi/mijia традиционно имеют круглую форму
А aqara — квадратную, причем кроме температуры и влажности измеряют еще и атмосферное давление.
Розетки
Кроме своих основных задач — включение и выключение нагрузки и энергомониторинг, розетки работающие по стандарту ZigBee выполняют важную роль повторителей сигнала. Ведь, по сути, имеющие доступ к стационарному питанию устройства, не очень нуждаются в супер экономичном интерфейсе. Если расстояние между шлюзом и датчиком слишком велико для стабильной работы — то расположенная между ними розетка, естественно подключенная к этому же шлюзу, будет работать как ретранслятор. При этом статус самой розетки вкл/выкл — не важен, она должна быть онлайн (подключена к сети питания).
Версия от mi/mijia — выполнена в виде накладной розетки
Версия от Aqara — встраиваемая
Настенные выключатели
Их производит только аqara, аналогов у mi/mijia — нет. Выключатели бывают на 1 и 2 клавиши, кроме этого их можно разделить на 3 типа
Беспроводные — по сути это аналог беспроводной кнопки, только в виде выключателя. Версия с 1 клавишей имеет только одно условие — клик, на 2 клавиши — три, клик правой, левой и одновременный клик двумя клавишами. Позиционируются как повторители проводных выключателей, но могут использоваться совершенно в любых сценариях.
Выключатели с разрывом фазы — наиболее применимые в наших широтах, по той причине что не требуют нулевой линии, которой обычно нет в наших коробках для выключателей. Имеет 1 контакт для входящей фазы, и в зависимости от количества клавиш 1 или 2 контакта для исходящей фазы. Батарейки не имеет, питания достаточно получаемого от тока протекающего через нагрузку — для работы нужно, чтобы хотя-бы один из исходящих контактов был подключен к нагрузке.
Интересен тем, что в плагине управления можно отключить связку — нажатие клавиши/срабатывание реле выключателя. Т.е. может использоваться и для логических сценариев — например правая клавиша физически рвет фазу и отключает обычную лампу, вторая — логически отключает умный светильник. Устройство может работать и как условие сценариев — аналогично беспроводной версии, и действием — включение/выключение реле. Удобно использовать и с умными светильниками — реле постоянно замкнуто, напряжение на светильник подается он в онлайне. Управление — логическое по клавише, но в случае его зависания — редко но бывает, можно, без особых трудностей, через плагин выключателя его обесточить и включить — тем самым перегрузив.
Максимальная нагрузка такого выключателя — до 800 Ватт
И, последний вариант — выключатели с нулевой линией. По сути — те же розетки, только с прямым подключением проводов. Мощность в 2,5 кВт (макс 10А при 250 В) — позволяет ему управлять мощными нагрузками, вроде бойлера или электрорадиатора. Использовать вместо обычных выключателей — проблематично, из за необходимости нулевой линии, а вот запитать от него тот-же бойлер и запрограммировать автоматическую работу — очень легко. Кроме этого выключатель ведет мониторинг энергопотребления.
По основным датчикам системы УД — я пожалуй закончу, привод штор, умный замок, сиденье дял унитаза в рамках этой статьи рассматривать не будем. В качестве завершения дам ссылку еще на один общий видеообзор по ответам на вопросы и примерам сценариев —
Вопросы — задавайте в комментариях, постараюсь ответить. Спасибо за внимание!
Zigbee. Когда раZмер имеет Zначение
Сколько zigbee-устройств можно привязать к одному координатору?
Ответом будет тоже вопрос: а какая у вас структура сети и какой координатор?
Однозначно сказать нельзя, если только производитель не указал это в документации.
Для примера возьмем координатор на чипе TI cc2530/cc2531. Именно на этом чипе работает известный многим «колобок» Athom Homey, «спрутстик» или открытый проект zigbee2mqtt.
Одним из недостатков этого чипа является ограниченный размер оперативной памяти (8Кб). И именно поэтому, обычная прошивка имеет ограничение на 15 напрямую подключенных устройств (соседей). Но если мы подключим любое устройство Zigbee-роутер, то подключая остальные устройства через него сможем увеличить общее количество устройств еще на 15. И так для каждого дополнительного роутера. Тут приходит еще одно ограничение — 6 роутеров. А с ростом количества устройств нужно выделять больше размер буфера данных…
Все подобные ограничения задаются параметрами прошивки, и соответственно разные прошивки имеют разные параметры. Поэтому, в случае необходимости большого количества устройств, можно собрать прошивку с соответствующими параметрами, но пожертвовав каким-либо другим функционалом. Разбираться в хитросплетениях этих параметров то еще «удовольствие». Именно поэтому, нет прошивки с максимальными значениями для этих параметров, а есть разные варианты прошивок.
И это еще сейчас в прошивках для cc253* используется старый стек Zigbee Z-Stack 1.2.2, а уже есть новый Z-Stack 3.0. На нем более эффективно сделано управление памятью (позволит больше устройств подключить). Но пока прошивки с новым стиком не приживаются — надо адаптировать код к работе с ними.
Но это касалось чипа TI cc2530/cc2531. На смену этому чипу уже давно пришел обновленный чип cc2538 (до 32Кб памяти). А на смену этому чипу уже есть cc2650 дополнительно с BLE (до 80К памяти) и его уже заменил CC2652R… Но эти чипы дороже старого проверенного cc2530 и не так доступны.
А еще есть deConz ConBee со своими чипами и прошивками — у них с количеством обслуживаемых устройств всё гораздо лучше (заявлено до 200 устройств).
основные отличия от технологии Wi-Fi и Bluetooth
Просмотров: 376
В последнее время широкую популярность получили системы «Умный дом».
С помощью этих многофункциональных комплексов можно автоматизировать большинство процессов в доме: включение/отключение электричества, контроль температуры, управление работой систем отопления, поддержка безопасности, слежение за утечками воды, газа и прочее.
Для управления системой «Умный дом», которая включает различные сенсоры и датчики используется микропроцессорный контроллер.
Поддерживать связь между всеми устройствами, чтобы система корректно функционировала можно с помощью проводных или беспроводных технологий.
Проводные линии – это уже вчерашний день, которые уступили место беспроводным средствам обмена информацией.
Проводные имеют существенный недостаток – это потребность в прокладывании большого количества кабелей, что ведет за собой вынужденный, и достаточно дорогостоящий, ремонт. Иное дело обстоит, когда используется беспроводная технология Zigbee, о которой и пойдет речь ниже.
Особенности технологии Zigbee
Протокол Zigbee относится к протоколам беспроводной связи, которые по своему действию похожи на известные стандарты связи Bluetooth или Wi-Fi.
Этот протокол разработан специально, чтобы поддерживать связь между устройствами, входящими в систему «Умный дом», а также для поддержки интернета вещей.
Благодаря новому стандарту функциональные узлы «Умного дома» поддерживают взаимосвязь между собой.
Принцип действия протокола ZigBee
Отличительной чертой нового стандарта является то, что беспроводная связь осуществляется на частотах, которые не требуют разрешения на использование.
Как и Wi-Fi, Zigbee использует частотный диапазон 2,4 ГГц, который не требует разрешений для передачи данных этим беспроводным каналом. Благодаря этому упрощается процесс развертывания и настройки «Умного дома», а также снижаются эксплуатационные затраты на связь.
Система Zigbee владеет ячеистой топологией и использует специальные алгоритмы маршрутизации, которые отличаются от других алгоритмов беспроводной связи.
Благодаря этому увеличивается надежность таких систем беспроводной передачи данных и расширяются возможности самовосстановления при потере взаимосвязи между отдельным устройствами. Кроме этого, устройства Zigbee для беспроводной связи имеет невысокую стоимость, они компактны и просты в развертывании и использовании.
Отличия Zigbee от Wi-Fi и Bluetooth
На первый взгляд стандарт Zigbee очень похож на те, которые используют Wi-Fi и Bluetooth, но есть ряд отличий, благодаря которым он более выгодный для использования в системе «Умный дом».
Скорость
До того момента, как был разработан стандарт Zigbee в системах «Умный дом» для связи между устройствами использовали стандарт Bluetooth. Радиус действия для этих протоколов почти одинаковый, но в отличие от Zigbee, Bluetooth имеет достаточно большие временные задержки.
График сравнения скорости и дальности передачи беспроводных технологий
Передача сигнала может выполняться с задержкой до нескольких секунд, что достаточно много. В то же время, новая технология Zigbee обеспечивает задержку передачи не более 30 мс. Этот интервал намного меньше, того, который распознает человек, поэтому все процессы, происходящие в системе «Умный дом» для человека кажутся реализуемыми моментально.
Энергопотребление
Еще одним преимуществом, которым владеет шлюз Zigbee и другие устройства – это минимальное энергопотребление, которое удалось реализовать за счет использования режима «сна».
Он активируется сразу же, как только устройство перестает использоваться на некоторое время. Также снижению потребления энергии способствовало и более низкая пропускная способность модулей Zigbee.
Для них она составляет 250 Кбит/с, в то время как для устройств, работающих по технологии Wi-Fi, она равна 300…1000 Мбит/с. В большой пропускной способности системна «Умного дома» попросту не нуждается, поскольку нет необходимости передавать большие объемы информации.
Благодаря этому устройства Zigbee настолько экономны, что могут функционировать от одной обычной батарейки на протяжении нескольких месяцев.
Количество устройств
Еще одним преимуществом Zigbee-технологии является возможность подключения большого количества устройств. Wi-Fi – подключения попросту не выдерживают нагрузок при работе с большим числом активных устройств.
Возможные подключаемые устройства к Умному дому по протоколу ZigBee
Обычный Wi-Fi роутер только в теории может поддерживать до сотни устройств, а на практике он начинает зависать и нестабильно функционировать уже при подключении к нему 2-3 десятков устройств.
Что касается Zigbee-сетей, то одна сеть может успешно работать с тысячами устройств, исключая любые проблемы с подключениями, а это как раз тот вариант, который подходит для систем «Умный дом».
Топология
Одним из ключевых преимуществ Zigbee сетей является их структура. Она построена с применением ячеистой топологии, в то время как Wi-Fi использует структуру звезды, когда все соединения идут через центральный роутер.
В этой структуре, если происходит потеря соединения между одним из устройств и роутером, оно уже не сможет передать данные к другим узлам сети, поскольку между ними нет прямого соединения. Если же из строя выйдет роутер, то передача данных полностью будет заблокирована, что вызовет полную неработоспособность системы.
Схема подключения Умного дома в помещении
Что касается ячеистой структуры, то она лишена этих недостатков, поскольку взаимосвязь между устройствами выполняется напрямую. Даже если одно из устройств сломается, то все остальные смогут обмениваться между собой информацией.
Цена
Что касается стоимости, то цена Zigbee-модулей существенно ниже Wi-Fi устройств. Благодаря этому системы для «Умного дома» будут иметь меньшую стоимость, нежели комплекты с Wi-Fi передавачами.
Умный дом с применением Zigbee
Создание системы «Умного дома» с поддержкой Zigbee практические такое же, как и для обычных систем.
В первоначальную очередь оно предусматривает составление детального плана, какие устройства и где будут использоваться для автоматизации процессов в доме.
После этого можно приступать к выбору оборудования. Правда, на этом этапе нужно учитывать один нюанс.
Дело в том, что не все устройства, поддерживающие протокол Zigbee, могут работать в одной системе, как это характерно для Wi-Fi приборов. Устройства разных производителей не совместимы между собой, несмотря на то, что используют одну и ту же технологию Zigbee.
Например, Zigbee выключатель производителя «А» не сможет включить Zigbee лампочку производителя «Б», если производитель «А» не включил поддержку устройств производителя «Б». Поэтому следует аккуратно выбирать используемые модули и устройства. Оптимально, если все они будут одного и тоже производителя.
Основные устройства сетей Zigbee
Основным устройством, которое формирует сетевую структуру Zigbee-сети для «Умного дома», является координатор ZigBee.
Для каждой системы умного дома есть один такой координатор. Он позволяет развернуть сетевую топологию, поддерживать связь с другими сетями, хранить настройки сетевой конфигурации, ключи безопасности и прочее.
Координатор ZigBee
Следующим устройством сети является маршрутизатор. С помощью этой платформы обеспечивается обмен информацией между удаленными друг от друга устройствами умного дома.
В качестве периферийных устройств системы «Умного дома» выступают различные датчики и исполнительные устройства. Они могут передавать данные к маршрутизатору, координатору или на другие исполнительные устройства. При отсутствии активности все периферийные устройства пребывают в «спящем режиме», что позволяет существенно снижать потребление электроэнергии.
Поддерживаемые датчики и модули
На сегодня предлагается много разных Zigbee устройств умного дома. Это может быть Zigbee розетка, выключатель, лампочка, датчик движения, сенсоры контроля температуры, давления, влажности, датчики утечки воды, газа и многое другое.
Еще одним ключевым модулем системы Zigbee Умный дом является хаб (сетевой мост) или шлюз, который позволит обеспечить подключение системы умного дома к глобальной информационной сети интернет. Благодаря этому у пользователя появятся широкие возможности управления работой системы «Умный дом» удаленно.
Наличие разного рода приложений для смартфонов и компьютеров позволят получать непрерывную информацию о состоянии всех систем в доме и при потребности, проводить их управление или настройку.
Выключатели с реле для Умного дома по протоколу ZigBee
Сетевой мост играет роль координатора Zigbee-сети, поэтому постоянно должен находиться в активном состоянии, чтобы иметь возможность в любое время принять сигнал от исполнительных устройств и датчиков.
Чтобы подключить его к интернету можно использовать беспроводную связь Wi-Fi с домашним роутером или воспользоваться традиционной проводной линией, которая связывает хаб с роутером.
Поскольку не все устройства разных производителей совместимы между собой, нужно чтобы и хаб был одного производителя, что и другие функциональные модули Zigbee-сети.
Заключение
Zigbee технология позволила решить много проблем «Умного дома». Благодаря ее внедрению автоматизация систем, обслуживающих дом или квартиру стала существенно проще и дешевле.
Наличие разных Zigbee датчиков позволит построить многофункциональные системы, которыми можно будет управлять с любой точки, где есть доступ к интернету.
Пользователи могут заказывать для своего дома готовые комплекты, а могут проектировать системы самостоятельно, приобретая нужные устройства и модули.
Второй вариант представляет более широкие возможности и позволяет максимально адаптировать систему «Умный дом» к условиям конкретного объекта.
Видео: Выставка электроники CEE 2017 Украина — умный дом от Zigbee и Z-Wave
Спецификация ZigBee. Безопасность / Habr
Концепция безопасности ZigBee основана на взаимном доверии…
Как отмечалось ранее в моих посвященных сетям ZigBee топиках и статье, отличительной чертой сетей ZigBee является гарантированная, устойчивая к помехам, многолучевому затуханию, различным сбоям и отказам передача данных.
К этому следует добавить: не только гарантированная, но и безопасная передача, что важно для многих критических приложений.
Нетрудно представить, к чему может привести несанкционированное вмешательство в работу системы управления техпроцессом или системы охраны.
Вместе с тем, в менее критических приложениях должна существовать возможность снижения цены устройств за счет некоторого снижения требований к уровню безопасности.
Именно такой подход реализуется в модели безопасности ZigBee, которой посвящен этот топик.
Основным механизмом обеспечения конфиденциальности в сетях ZigBee является надлежащая защита всех ключевых данных. А основой безопасности – доверительные отношения, которые обязательны как на стадии первоначальной установки ключей, так и в процессе обработки информации, касающейся безопасности. То есть, обмен данными должен производиться только между доверяемыми сторонами. Этот подход последовательно пронизывает всю иерархию обмена данными.
Спецификация ZigBee регламентирует безопасность на уровнях NWK и APS и опирается на базовую структуру безопасности, регламентированную стандартом IEEE 802.15.4. Безопасность приложений обеспечивается посредством профилей приложений (стек протоколов можно посмотреть здесь).
Ключи являются краеугольным камнем архитектуры безопасности ZigBee. Их защита имеет первостепенное значение, и ключи никогда не должны передаваться по не защищенным каналам. Кратковременное (и единственное) исключение из этого правила имеет место только в момент присоединения к сети ранее не настроенного устройства.
Спецификация ZigBee предусматривает особые меры безопасности, поскольку создаваемые в том или ином случае сети могут оказаться физически доступными для внешних устройств, а конкретные рабочие среды могут быть непредсказуемы. Более того, различные приложения, запускаемые одновременно и использующие для связи один и тот же трансивер, должны быть взаимно доверенными, поскольку из соображений стоимости модель не предусматривает брандмауэра между объектами приложений.
В стеке протокола различные слои не разделены криптографически, поэтому политика доступа обязательна и требует правильного проектирования. Открытая модель доверия внутри устройства позволяет разделение ключа, что особенно уменьшает потенциальную стоимость устройства.
Тем не менее, слой, который создает фрейм, отвечает за его безопасность. Если существует риск появления вредоносных устройств, вся полезная нагрузка на создающем ее слое должна шифроваться, чтобы несанкционированный трафик мог быть немедленно отсечен. Исключением, как уже упоминалось, является передача новому присоединяемому устройству сетевого ключа, который передает ему уровень единой безопасности сети.
Архитектура безопасности
Система безопасности в соответствии со спецификацией ZigBee основана на 128-битном AES алгоритме. Предусмотренные спецификацией ZigBee службы безопасности определяют создание ключей, управление устройствами и защиту данных.
ZigBee использует 128-битные ключи для реализации механизмов безопасности. Ключ может быть ассоциирован либо с сетью (и использоваться уровнями ZigBee и MAC подуровнем) либо с каналом связи. Ключ может быть получен путем предварительной установки, соглашения или передачи. Создание ключей канала связи основано на использовании главного ключа, который контролирует соответствие ключей канала связи. Первоначальный главный ключ должен быть получен через безопасную среду (передачей или предварительной установкой), так как безопасность всей сети зависит от него. Главный ключ и ключи каналов связи видны только на уровне приложений. Различные сервисы используют различные вариации ключа канала связи во избежание утечки и риска для безопасности.
Распределение ключей является одной из наиболее важных функций безопасности сети. В защищенной сети назначается одно специальное устройство, которому другие устройства доверяют распределение ключей безопасности – центр управления безопасностью. В идеале каждое устройство в сети должно иметь предварительно загруженные адрес центра управления безопасностью и первоначальный главный ключ. Приложения без особых требований к безопасности могут использовать сетевой ключ, передаваемый центром управления безопасностью через не защищенный на момент передачи канал.
Таким образом центр управления безопасностью поддерживает ключ сети и обеспечивает безопасность точка-точка. Устройства будут принимать только сообщения, зашифрованные с использованием ключа, предоставленного центром управления безопасностью, за исключением первоначального главного ключа.
Подуровень MAC способен устанавливать надежную связь с соседним устройством. Как правило, он использует уровень безопасности, определяемый верхними уровнями.
Сетевой уровень управляет маршрутизацией, обрабатывает полученные сообщения и может направлять запросы. Исходящие фреймы будут использовать ключ соответствующего канала связи согласно маршрутизации, если он доступен; в противном случае для защиты полезной нагрузки от внешних устройств будет использоваться сетевой ключ.
Уровень приложений устанавливает ключи и оказывает транспортные услуги как объекту устройства (ZDO), так и приложениям. Он отвечает также за распространение сообщений об изменениях в устройствах внутри сети, которые могут исходить как от самих устройств (например, простое изменение статуса), так и от центра управления безопасностью (который может сообщить, что определенное устройство удаляется из сети). Уровень также маршрутизирует запросы устройств центра управления безопасностью и обновления сетевого ключа от центра управления безопасностью всем устройствам.
Объект устройства ZDO поддерживает политики безопасности устройства.
Центр управления безопасностью
Ключевым элементом концепции безопасности ZigBee является Центр управления безопасностью.
На этапе формирования или реконфигурации сети центр управления безопасностью разрешает или запрещает присоединение к сети новых устройств.
Центр управления безопасностью может периодически обновлять ключ сети и переходить на новый ключ. Сначала он транслирует новый ключ, зашифрованный с помощью старого ключа сети. Затем сообщает всем устройствам о переходе на новый ключ.
Обычно центром управления безопасностью по совместительству является координатор сети, но это может быть и выделенное устройство.
Центр управления играет следующие роли в обеспечении безопасности:
б) поддерживает и распространяет сетевые ключи,
в) обеспечивает безопасность взаимодействия устройств.
Типы ключей
ZigBee использует три типа ключей для управления безопасностью:
а) главный ключ,
б) сетевой ключ и
в) ключ канала связи.
Главный ключ
Этот ключ не используется для шифрования. Он используется как разделяемый двумя устройствами секретный код при выполнении устройствами процедуры генерации ключа канала связи.
Главные ключи, создаваемые центром управления безопасностью, называются главными ключами центра безопасности, все другие ключи называются основными ключами уровня приложений.
Сетевые ключи
Эти ключи обеспечивают безопасность сетевого уровня. Сетевой ключ имеет каждое устройство в сети ZigBee.
По беспроводным каналам сетевые ключи высокой безопасности должны пересылаться только в зашифрованном виде. Стандартные сетевые ключи могут пересылаться как в зашифрованном, так и в не зашифрованном виде.
Ключи каналов связи
Эти ключи обеспечивают безопасную одноадресную передачу сообщений между двумя устройствами на уровне приложений.
Режим стандартной безопасности
В режиме стандартной безопасности перечень устройств, главные ключи, ключи каналов связи и сетевые ключи можно хранить как в центре управления безопасностью, так и в самих устройствах. Центр управления безопасностью, тем не менее, отвечает за поддержание стандартного сетевого ключа и контролирует политику приема в сеть. В этом режиме требования к ресурсам памяти центра управления безопасностью гораздо ниже, чем для режима повышенной безопасности.
Режим повышенной безопасности
В режиме повышенной безопасности центр управления безопасностью хранит перечень устройств, главные ключи, ключи каналов связи и сетевые ключи, необходимые для контроля и применения политики обновления сетевых ключей и доступа в сеть. В этом режиме по мере роста количества устройств в сети быстро возрастает необходимый центру управления безопасностью объем памяти.
Zigbee для самых маленьких. Пост номер 1 / Habr
Около месяца назад попали в мое распоряжение модули Atmel ATZB-S1-256-3-0-C основанные на чипе ATmega256RFR2 объединяющим в себе 2.4Mhz трансивер, микроконтроллер AVX на 256 килобайт памяти и даже чип-антенну. Атмель обещали в свою очередь out of the box поддержку Zigbee для этих модулей и было принято решение строить наш mesh именно на них.
Если кто не понял то при помощи этих модулей можно относительно просто построить IoT меш сеть добавляя к модулям лишь кнопочки, лампочки, сенсоры и батарейки. Основной микропроцессор уже на месте, даже с осцилятором из трансивера.
Звучит довольно просто, не так ли? На практике все оказалось намного прозаичнее. Основной проблемой оказалась недооценка технологической сложности атмелевского стека Zigbee, самого стандарта Zigbee, ну и переоценка собственных возможностей. Дело в том что сам я давно не програмировал на C, давно перешел на Matlab и Python, все указатели и другие средства управления ресурсами и процессами давно положил в тумбочку и выкинул ключ. Ну что-же… в мире ембеддед меня ждало много приятных неожиданностей.
Закатал я короче рукава, расчехлил модули, припаял батарейки, установил AtmelStudio, сел программировать, встал через три дня с пониманием того, что я до сих пор ни во что не врубаюсь. Ощущение неприятное, но делать нечего, проект сам себя не закончит и надо что-то делать. Первым шагом к исправлению ошибки был переход на другой микроконтроллер который тоже присутствовал в проекте — STM32 на который была уйма туториалов в интернете и который позволил мне более плавно влиться в мир embedded. Про STM32 я тоже написал подобную серию постов которая как мне кажется довольно подробно описывает работу с этим микроконтроллером для совсем начинающих. Данная серия постов — «Zigbee для самых маленьких» будет относительно продвинутой по сравнению с серией про STM32 как мне кажется, но все же я постараюсь разжевывать и представлять материал достаточно структурировано что-бы получилось, как можно более доступно и можно было повторить эксперимент дома.
Стандарт Zigbee
В этой части мы попробуем разобраться что же такое Zigbee. Рассмотрим стандарт в общих чертах, посмотрим что такое Zigbee application profiles, clusters и endpoints. В следующей части углубимся в технические подробности фрэйма, и безопасности в Zigbee (можно даже и не читать пока, а вернуться когда они понадобятся). После ознакомления с протоколом перейдем непосредственно к модулям Atmel и программированию.
Вступление
Итак, Who is Mr. Zigbee?
Во первых. ZigBee — спецификация сетевых протоколов верхнего уровня — уровня приложений APS (англ. application support sublayer) и сетевого уровня NWK, — использующих сервисы нижних уровней — уровня управления доступом к среде MAC и физического уровня PHY, регламентированных стандартом IEEE 802.15.4.
Если по-простому то Википедия по-моему очень емко выразилась на счет этого: «Сотрудничество между IEEE 802.15.4 и ZigBee подобно тому, что было между IEEE 802.11 и альянсом Wi-Fi».
А если разжевать, то все вместе работает примерно так:
APS(Zigbee) <—> NWK(Zigbee) <—> MAC(IEEE 802.15.4) <—> PHY(IEEE 802.15.4)
1. PHY — physical layer. Физический уровень. Отвечает за передачу и прием битов нашим трансивером.
2. MAC — media access control. Подуровень управления доступом к среде. Для простоты запоминания можно сосредоточиться на механизме адресации. Все слышали про MAC адрес вот именно в этом подуровне он и появляется. Подуровень ответственный за то что бы бит был послан или принят не просто так, а по определенному адресу в сети.
3. NWK — network layer. Уровень управления сетью. Ответственный за передачу пакетов в сети — включает протоколы переадресации, раутинга и т.д.
4. APS — application support sublayer. Команды вызываемые непосредственно из приложения для пересылки в сети.
Во вторых. Zigbee так же включает в себя (из важных для понимания вещей) механизм стандартизации приложений включающий профили приложений и библиотеки стандартных кластеров. (Запомните этот твит!)
Механизм стандартизации приложений
Из этой части мы должны вынести несколько основных понятий:
- Zigbee application profiles
- Endpoints
- ZCL — clusters
- Server-clent separation
Итак начнем мы с профилей. Профиль аппликации Zigbee это прежде всего такой класс который объединяет разные устройства в одну область применения. Например в Zigbee существуют следующие стандартные профили:
Profile ID Profile Name
0101 Industrial Plant Monitoring (IPM)
0104 Home Automation (HA)
0105 Commercial Building Automation (CBA)
0107 Telecom Applications (TA)
0108 Personal Home & Hospital Care (PHHC)
0109 Advanced Metering Initiative (AMI)
Профили прежде всего нужны для того что бы устройства одного производителя работали с устройствами другого производителя в общей области применения. Интересно то, что устройства могут быть мультипрофильными и какая то лампочка может быть например сертифицирована и как (HA) и как (CBA). Профили не ограничиваются стандартными и производитель устройств может придумывать свои собственные. Также сообщения в Zigbee передаются внутри одного профиля с помощью profile id — то есть области применения разграничены не только в коде, в сертификации, логически и но и на канале связи.
В стандартных профилях придуманы стандартные типы устройств например для (HA) существуют следующие осветительные устройства:
Важно заметить что данное разделение является функциональным а не физическим то есть одна встраиваемая панель управления может быть одновременно и «Dimmer Switch» и «On/Off Light Switch». Как же ей это удается? С помощью концепции называющийся endpoints. В нашем железном-устройстве мы можем «зарегистрировать» несколько endpoints каждый из которых будет заниматься своим делом и даже не не будет знать про остальных. Таким образом совмещаются несколько устройств виртуальных на одном физическом.
Ну и на сладкое, Zigbee предоставляет специальные библиотеки ZCL — кластеры которые должны здорово помогать нам имплементировать различные устройства. Кластеры являются функциональными кирпичиками осуществляющими некие простые функции из которых можно создать целое рабочее устройство. Например стандартное устройство называющееся «Dimmer Switch» использует библиотеки/кластеры:
Но что это? Это самолет! Нет это птица! Нет это супермэн разграничение на сервер и клиент. Последнее основное понятие которое мы затронем сегодня это разграничение на сервер/клиент в коде и функционале устройства. Сервер это обычно то куда складывается информация/команды а клиент это тот кто посылает, таким образом «Dimmer Switch» он в основном клиент (посылает команды) а лампочка — сервер (выполняет команды). Заметим так же что у того же устройства «Dimmer Switch» есть и серверная сторона отвечающая видимо за настройку идентификации в этом самом выключателе. Почти все стандартные устройства имеют что-то на обоих частях и на серверной и на клиентской. Так же заметим из примера выше, что кластеры могут иметь как серверный так и клиентский функционал.
Все это разграничение и стандартизация по идее должны здорово помогать в разработке программного обеспечения.
Пример:
Завод изготовитель Zingbao ltd выпускает для Philips ltd систему состоящую из лампочки, датчика движения и интернет портала для них. Эта система конечно же работает и сертифицирована как Zigbee (HA). Это кстати значит что лампочка в системе умеет делать то что должно делать устройство Colour Dimmable Light (HA), а именно принимать команды цвета и свето-силы, датчик должен уметь делать то что положено Occupancy Sensor (HA) и т.д. Поэтому все части системы содержат код данного профиля Согласно своей функции. Далее лампочки с датчиками и выходом в интернет от Philips поставляются в офис крупной интернет компании Booble. Заметив это, предприимчивые китайские хакеры пишут свой Zigbee профиль «I want to know your secrets» (IWNYS) и договариваются с Zigbao ltd или ее сотрудником на внеочередной апдейт системы. После апдейта датчики движения кроме индикации движения начинают передавать еще и разговоры (благо датчик основан на микрофоне, а в прошивку добавлено новое устройство «Spy senor» опирающееся на хакерские кластеры «Big boss detector», «Speech transmitter», «Secret encoder» и конечно зарегистрированное как дополнительный endpoint в датчике движения) из офиса начальника Booble через профиль (IWNYS) без какой либо связи с (HA). Вот так например стандартный (HA) может отлично уживаться с фирменным профилем (IWNYS). Ну и для полноты примера, система отлично работает с лампочками от Osram так же сертифицированными как (HA) и установленными в Booble.
Ну вот вроде и все на сегодня. Напоминаю что в следующей части мы пройдемся по технической части протокола — по строению фрэйма и по настройкам и осуществлению безопасности. Если кому будет скучно эту часть можно пока пропустить. В последующих частях мы перейдем непосредственно к запуску Zigbee на модулях ATmega и разбору Atmel bitcloud SDK — пакету для работы с Zigbee и модулями ATmega.
Сетевая инфраструктура систем РТЛС / Habr
Прежде чем продолжить обсуждение основных черт сетей ZigBee хочу вставить небольшую ремарку.То, о чем я писал в предыдущем топике и собираюсь продолжить в этом, относится к утвержденному в 2007 году стандарту ZigBee Pro Feature Set 2006. Эта спецификация уже содержит все основные черты, делающие сети ZigBee наиболее предпочтительным вариантом при создании сенсорных сетей различного назначения, а именно:
1) самоорганизация и самовосстановление,
2) структурная гибкость – возможность создания разных по топологии сетей – звезда, дерево, ячеистая (mesh) сеть,
3) возможность выбора алгоритмов маршрутизации, в зависимости от требований приложения,
4) механизм стандартизации приложений – профили приложений, кластеры, конечные точки, привязки,
5) гибкий механизм безопасности,
6) низкое энергопотребление,
7) простота развертывания, обслуживания и модернизации.
Но это не значит, что жизнь остановилась.
Еще в 2008 году, чтобы обеспечить функционирование домовой сети (Home Area Network – HAN) на основе IP альянс ZigBee начал работу над расширением своего стандарта – профилем Smart Energy 2.0. Профиль предполагает поддержку любого транспортного уровня на основе IP-совместимых стандартов, включая ZigBee IP и другие технологии передачи – как радиочастотные, так и по силовой электропроводке – Power Line Carier (PLC).
Профиль обеспечивает взаимодействие между ZigBee и другими сетевыми технологиями. Альянс ZigBee занимается разработкой сетевого уровня Интернет протокола (IP), называемого ZigBee IP и базирующегося на технологии 6LoWPAN (IPv6 по низкоэнергетическим беспроводным персональным сетям). Публичное обсуждение последней рабочей версии (draft 0.9) профиля Smart Energy 2.0 завершилось 25 августа 2012 года. Выход финальной версии ожидается в ближайшее время.
Но уже сейчас выпускается множество сетевых устройств, поддерживающих ZigBee IP, например:
Шлюз ZigBee – Ethernet
Шлюз ZigBee – WiFi – Ethernet
ZigBee – USB Adapter/
Шлюз ZigBee – Ethernet + CSS интерфейс RTLS
Относительно большие габариты устройства объясняются тем, что оно выполнено в пыле и влагозащищенном корпусе и имеет встроенный источник бесперебойного питания на 8 часов работы. Интерфейс Ethernet может быть электрическим или оптическим – по выбору. Подробнее здесь: www.rtlsnet.ru/products/product/4.
Кстати, Smart Energy — отнюдь не единственное расширение этого быстро развивающегося стандарта, можно найти еще много интересных тем, относящихся к сетям ZigBee, но пока «вернемся к нашим баранам». Продолжим обсуждение основополагающих черт ZigBee с того места, на котором остановились – со стека протоколов. Рисунок повторяю:
Стек протоколов ZigBee
Стек протоколов ZigBee
Стек протоколов ZigBee предусматривает четыре уровня: APL – уровень приложений, NWK – сетевой уровень, MAC – уровень доступа к среде и PHY – физический уровень. Как обычно, вышестоящие протоколы пользуются услугами нижестоящих.
Уровень приложений и сетевой уровень регламентируются спецификацией ZigBee, нижние уровни – MAC и PHY регламентируются IEEE 802.15.4.
Уровень приложений APL включает Ферму приложений (Application Framework), Объект устройства ZigBee (ZDО) и подуровень поддержки приложений (APS).
Ферма приложений описывает порядок создания профилей и определяет стандартные типы данных, дескрипторы, форматы кадров и значения пар ключей, а также включает объекты приложений (их в устройстве может быть до 240).
Объекты приложений – программные модули, которые управляют устройствами ZigBee в конечных точках. Подробнее об этом поговорим, когда будем рассматривать профили приложений, конечные точки, кластеры и привязки.
Объект устройства ZigBee (ZigBee Device Object – ZDO) определяет, какую роль играет в сети ZigBee устройство: координатора, маршрутизатора или конечного устройства. ZDO
инициирует запросы присоединения и отвечает на них, а также устанавливает безопасную связь между устройствами.
План управления ZDО (ZDО Management Plane) поддерживает связь ZDО с подуровнями APS и NWK, позволяет ZDО обрабатывать запросы приложений на доступ к сети и обеспечивает безопасность.
Подуровень поддержки приложений (Application Support Sublayer – APS). Отвечает за предоставление данных приложениям, управляет сетевыми присоединениями и хранит данные о присоединениях в таблице.
Поставщик услуг безопасности (Security Service Provider – SSP) конфигурируется объектом устройства и обеспечивает механизмы безопасности для использующих шифрование уровней – NWK и APS.
Сетевой уровень (Network Layer – NWK) обрабатывает сетевые адреса и маршрутизацию по вызовам MAC уровня. Кроме того NWK запускает сеть, если устройство – координатор; присваивает сетевые адреса; добавляет и удаляет сетевые устройства; маршрутизирует сообщения; применяет политику безопасности; осуществляет поиск маршрутов.
Уровень управления доступом к среде (Medium Access Control Layer – MAC) обеспечивает надежную связь с соседями, помогает разрешать коллизии и повышать эффективность. Уровень отвечает за ассемблирование и декомпозицию пакетов данных.
Физический уровень (Physical Layer – PHY) обеспечивает радио интерфейс. Физический уровень включает два уровня, работающих в разных частотных диапазонах. Один уровень покрывает диапазоны 868 МГц для Европы и 915 МГц для США и Австралии. Второй работает на частоте 2,4 ГГц и применяется практически во всем мире.
Точки доступа
Связь между элементами стека протоколов ZigBee осуществляется через точки доступа к услугам (service access point – SAP), как показано на рисунке.
Профиль стека
Профиль стека задает параметры сети – ее тип (топологию), размеры, поддерживаемые алгоритмы маршрутизации, службы приложений, размеры таблиц маршрутизации и привязки приложений, параметры безопасности и т.д. Профиль стека конкретной ZigBee сети программируется проектировщиком сети (администратором), исходя из специфики применения.
Например, топология сети определяется тремя параметрами: максимальной глубиной сети (nwkMaxDepth), максимальным количеством дочерних связей маршрутизатора (nwkMaxChildren), и максимальным количеством связей с дочерними маршрутизаторами (nwkMaxRouters). Точная структура сети ZigBee зависит от расположения устройств и прохождения радиоволн в момент формирования сети и поэтому не может быть однозначно предопределена. Но упомянутые параметры профиля стека накладывают на структуру сети определенные ограничения.
Например, если в конкретном приложении устройства должны физически располагаться в линию (вдоль конвейера или опор ЛЭП), достаточно присвоить параметрам значения nwkMaxChildren=1 и nwkMaxRouters=1, чтобы получить линейную структуру. Значения nwkMaxDepth > 1, и nwkMaxRouters > 0 дадут древовидную структуру, а nwkMaxDepth=1 и nwkMaxRouters=0 – звезду.
Ячеистая сеть
В ячеистой (mesh) сети каждый маршрутизатор связан как минимум с двумя другими и может транслировать сообщения непосредственных соседей по заданному маршруту. На рисунке 3 показан пример ячеистой сети, состоящей из координатора, пяти маршрутизаторов и трех конечных устройств.
В ячеистой сети каждое из устройств может связываться с любым другим устройством либо напрямую, либо через промежуточные устройства, то есть с помощью «многошаговой» (multi-hop) связи.
Возможность многошаговой передачи помогает поддерживать живучесть (самовосстановление) сети. Если какое-то устройство отказывает, оказывается недоступным из-за помех или просто перезагружается, пакеты маршрутизируются через оставшиеся устройства.
Ячеистая сеть ZigBee
Маршрутизация в сетях ZigBee
В сетях ZigBee применяется несколько алгоритмов маршрутизации. Выбор разрешенных алгоритмов программируется в профиле стека, в зависимости от назначения сети. Выбор конкретного алгоритма из числа разрешенных происходит автоматически, в зависимости от состояния сети и текущих условий.
Алгоритм «Ad hoc On Demand Distance Vector» (AODV) является основным в сетях ZigBee. Поиск маршрута от «источник» (И) к «адресату» (А) в этом случае происходит так (проиллюстрировано рисунками):
Шаг 1 – источник оправляет широковещательный «запрос маршрута к А».
Шаг 2 – каждое устройство, получившее запрос маршрута, вносит запись в свою таблицу маршрутизации и транслирует запрос, включив в полезную нагрузку свою запись. В записи указывается «логическое расстояние» от отправителя запроса до его получателя. «Логическое расстояние» (ЛР) учитывает качество связи между отправителем и получателем запроса. Следующие устройства, получив ретранслированный запрос, добавляют в пакет свою запись и транслируют его дальше. «Логическое расстояние» с каждым шагом увеличивается. Так продолжается пока запрос не дойдет до адресата А. В mesh сети запрос доходит до адресата многими путями. Очевидно, что записанные в запросах «логические расстояния» оказываются различными.
Шаг 3 – адресат А отправляет ответ устройству, от которого пришел пакет с минимальным «логическим расстоянием». Это устройство поступает с пакетом так же, и так далее, пока ответ не дойдет до источника И. Ответ будет возвращаться по оптимальному (с минимальным «логическим расстоянием») пути, ранее пройденному запросом.
Шаг 4 – ответ, возвращаясь по оптимальному пути, формирует таблицу прямого маршрута передачи пакетов от источника И до адресата А.
Описанный алгоритм универсален и позволяет выбирать оптимальные маршруты. Однако для его реализации требуется значительный объем памяти устройств для хранения таблиц маршрутов. Кроме того, для поиска маршрутов в разветвленных сетях необходим значительный сетевой трафик.
Поэтому в ZigBee сетях реализован альтернативный алгоритм, позволяющий экономить память. Алгоритм основан на том, что сетевые адреса в ZigBee распределяются иерархически. Устройства, не наделенные возможностью маршрутизации по алгоритму AODV, и устройства, у которых исчерпаны возможности маршрутизации, могут использовать иерархическую маршрутизацию – менее эффективную, но вполне практичную.
Иерархическая маршрутизация
При формировании ZigBee сети координатор, а затем присоединенные маршрутизаторы присваивают диапазоны адресов дочерним устройствам в иерархическом порядке. В результате каждое устройство может определить, принадлежит ли адрес получателя пересылаемого пакета к какой либо из его «дочерних» ветвей или находится в другой части сети. Соответственно, устройство может передать пакет к дочернему устройству, в диапазон адресов которого входит адрес получателя, либо «вверх».
Для примера на рисунке ниже пакет отправляется источником И адресату А. Однако, в отличие от рассмотренного выше случая, устройству 4 не хватает памяти для маршрутной таблицы. Не зная оптимального маршрута к адресату А, устройство 4 использует иерархическую маршрутизацию и направляет пакет «вверх» – на устройство 2. Далее пакет передается на координатор К, который отправляет его адресату А.
Иерархическая маршрутизация простота и не требует памяти для роутинговой таблицы. Это позволяет недорогим устройствам, не хранящим таблицы маршрутизации, участвовать в ZigBee сети. Недостаток этого алгоритма – в удлинении пути пакета даже при наличии прямой связи между источником и адресатом.
Иерархическая маршрутизация
Маршрутизация к агрегатору (Many to one)
Во многих приложениях беспроводных сетей существует устройство – агрегатор, собирающее данные с остальных сетевых устройств. Для экономии трафика спецификация ZigBee PRO предусматривает специальный широковещательный запрос маршрута. Направленный агрегатором, такой запрос позволяет создать в роутинговых таблицах всех маршрутизаторов сети записи с агрегатором в качестве получателя.
Явная маршрутизация.
При явной маршрутизации весь путь пакета указывается отправителем непосредственно в пакете. Для экономии маршрут в пакете может быть указан частично.
Явная маршрутизация позволяет пересылать пакеты через ряд недорогих устройств, не хранящих таблицы маршрутизации, но снижает полезную нагрузку, поэтому длина маршрута при явной маршрутизации ограничивается пятью узлами.
На этом пока остановлюсь. В следующем топике расскажу еще о профилях приложений, кластерах, конечных точках, привязках, а также немного о механизмах безопасности.
Базовый набор для умного дома Xiaomi
Здравствуйте друзьяВ этом обзоре я бы хотел немного вернутся к истокам построения системы умный дом на основе устройств Xiaomi, рассказать про то, с чего начинать и как работают датчики ZigBee
Вступление
Моя система умного дома начала свой новый виток развития — а именно разделение на 2 части, по «зонам». Для этой цели я в очередной раз докупил различных гаджетов и еще один одноплатный ПК для программной части. Горка Xiaomi устройств из последней посылки:Прикладываю скрин оплаты
Дополнительная информация
Обо всем я обязательно расскажу в своих дальнейших обзорах, а сегодня я хотел бы остановится на базовом комплекте Xiaomi — состоящем из шлюза, двух датчиков открытия и беспроводной кнопки:
На момент покупки (как и написания обзора) цена за комплект — $49.99
В момент покупки, по отдельности стоимость шлюза составляла — $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.
В основном окне плагина шлюза — появляются добавленные нами датчики, и в окне автоматизации — составленный сценарий.
Вывод
На этом я буду заканчивать, надеюсь я не сильно утомил читателей. Очень надеюсь что мне получилось в этом обзоре ответить на, по крайней мере некоторые вопросы касательно функционирования датчиков умного дома.Видео версия обзора у меня в этот раз получилась более чем на полчаса. Основной смысл вы уже прочитали (если читали) более подробно — можно посмотреть здесь
Спасибо за внимание, надеюсь обзор был полезен.