Производитель оборудования Z-Wave
40,25
рейтинг
20 декабря 2012 в 23:09

Немного о технологии Z-Wave из песочницы tutorial

В данной статье хотелось бы осветить немного внутренностей протокола Z-Wave. Учитывая, что владелец протокола компания Sigma Designs (поглотившая Zensys) просит подписывать NDA перед раскрытием особенностей реализации, а часть вообще никому не показывает, подробных данных а сети не найти. Я не собираюсь рассказывать здесь слишком много, чтобы не нарушить подписанный NDA. Надеюсь, и данная информация окажется полезной и сподвигнет кого-нибудь занятся разработкой собственных железок на этом протоколе. Итак, начнём!


Что такое Z-Wave?


Z-Wave — это распространённый радио протокол передачи данных, предназначенный для домашней автоматизации. Характерной особенностью Z-Wave является стандартизация от физического уровня, до уровня приложения. Т.е. протокол покрывает все уровни OSI классификации, что позволяет обеспечивать совместимость устройств разных производителей при создании гетерогенных сетей.

Что позволяет делать технология Z-Wave?


  • Управление освещением (реле/диммеры), шторами, рольставнями и воротами
  • Управление жалюзи и другими моторами (10-230 В)
  • Включение/выключение любых нагрузок до 3.5 кВт (модуль в розетку или встраиваемое реле)
  • Дистанционное управление с ПДУ
  • Управление обогревом (электрические тёплые полы с защитой от перегрева, электро котлы и радиаторы, термостаты для водяных клапанов радиаторов)
  • Управление кондиционерами (через ИК интерфейс имитируя пульт)
  • Детектирование тревожных событий (датчики движения, открытия двери/окна, протечки, сухие контакты)
  • Мониторинг состояния (датчики температуры, влажности, освещённости)
  • Управление A/V аппаратурой (по протоколу Z-Wave или через ИК интерфейс имитируя пульт)
  • Связь с любым программным обеспечением через ПК контроллер
  • Сбор данных со счётчиков

Какие задачи лучше всего решает Z-Wave?


Протокол Z-Wave был разработан для квартир и небольших домов. Обычно такие системы содержать от 5 до 100 устройств. Основная особенность Z-Wave состоит в том, что он относится к формату «сделай сам» (DIY), т.е. установку и настройку системы владелец жилья может сделать самостоятельно. Протокол разрабатывался специально для управления такими устройствами как свет, жалюзи, ворота, термостаты и другими путём передачи коротких команд, требующих небольшого энергопотребления. Типичные небольшие задачи, решаемые при помощи Z-Wave — это установка проходных выключателей, перенос выключателей на более удобный уровень, дистанционное управление воротами и жалюзи, включение света по датчикам движения. Все эти задачи не требуют перекладывания проводов. Существуют и более сложные проекты автоматизации квартир, не уступающие по сложности промышленным системам автоматизации.

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


Пройдёмся по всем уровням модели OSI (кроме отсутствующего представительного) и опишем основные характеристики Z-Wave.

Физический уровень

Передача данных осуществляется на частоте 869.0 МГц (Россия), 868.42 МГц (Европа, страны CEPT, Китай, Сингапур, ОАЭ, ЮАР), 908.42 МГц (США, Мексика), 921.42 МГц (Австралия, Бразилия, Новая Зеландия), 919.8 МГц (Гонконг), 865.2 МГц (Индия), 868.2 МГц (Малайзия), Япония (951-956 и 922-926 МГц). Модуляция FSK (частотная манипуляция). Скорость передачи: 42 кбит/с, 100 кбит/с и 9.6 кбит/с (для совместимостью со старыми устройствами). Скважность не более 1%. Предельная мощность передачи 1 мВт.

Канальный уровень

Используются пакеты с контролем целостности данных (контрольная сумма) и адресацией получателя и отправителя. В качестве получателя может использоваться multicast адрес или broadcast (в этом случае пакет принимается всеми участниками сети с включенным радио-модулем).

Сетевой уровень

Протокол Z-Wave определяет алгоритм маршрутизации, позволяющий передавать данные между устройствами вне прямой видимости. Все постоянно работающие узлы сети (бывают ещё спящие и «часто слушающие» узлы) могу участвовать в пересылке пакетов между другими участниками сети. Z-Wave использует механизм Source Routing, т.е. маршрут следования определяется отправителем. Broadcast и multicast пакеты не маршрутизируются. При невозможности найти нужный узел по маршрутам, записанным в памяти, существует механизм поиска узла по всей сети путём посылки специального пакета Explorer Frame (см. ниже) всем узлам сети. После успешного нахождения узла новый маршрут записывается отправителем в память для последующего использования.

Транспортный уровень

На данном уровне Z-Wave гарантирует подтверждение доставки и повторную отправку в случае, если пакет не был доставлен до получателя. Каждый узел, участвующий в пересылке, подтверждает факт получения сообщения. Для уменьшения загрузки эфира в Z-Wave используется механизм «молчаливых подтверждений»: узел (А), передавший пакет следующему узлу (Б) на пути следования пакета не ждёт подтверждения от него, а видит, что Б отправил пакет дальше узлу С и воспринимает это как факт подтверждения успешной пересылки пакета от А к Б. Получив пакет, конечный узел передаёт назад подтверждения доставки, которое путешествует назад тем же маршрутом до исходного отправителя. Таким образом отправитель всегда знает, дошёл ли пакет до точки назначения или нет.

Сеансовый уровень

Используется только при использовании шифрования, где определяются короткие сеансы с одноразовым ключом.

Прикладной уровень

Z-Wave также определяет алгоритм интерпретации получаемых на прикладном уровне команд. Данный уровень описан набором Классов Команд (Command Classes). Для некоторых Классов существует несколько вариантов интерпретации команд, которые зависят от Класса Устройства (Device Class), определяющего тип устройства.

С 2012 года физический и канальный уровни протокола Z-Wave вошли в стандарт ITU-T G.9959 (рекомендации сектора стандартизации электросвязи Международного союза электросвязи).

Уровни от транспортного до канального реализованы в программном коде Sigma Designs и поставляются в прекомпилированном виде (в комплекте SDK). С одной стороны проприетарный код — это минус, но в закрытости данного протокола есть и свои плюсы: ни один производитель не может изменить нижние уровни протокола, что позволяет легче обеспечивать совместимость — все устройства основаны на одном хорошо отлаженном коде.

Все команды в Z-Wave предельно компактно упакованы. Это нужно для уменьшения размера пакета, что положительно влияет на занимаемое в эфире время, а также на уменьшение потерь при передаче. Z-Wave предназначен для передачи коротких команд без открытия сессии, т.е. совсем не подходит для потоковой передачи потоковых данных. Максимальный полезный размер передаваемых данных составляет 46 байт (размер данных прикладного уровня без шифрования).

Решение на одном чипе


Теоретически реализовать протокол Z-Wave можно было бы на любом железе, но и здесь производитель протокола Sigma Designs (ранее Zensys, вошедшая в структуру Sigma Designs) предлагают собственное решение.

imageВсе устройства Z-Wave основаны на чипах одной серии от двух производителей (Sigma Designs и Mitsumi). Данные микросхемы доступны в двух вариантах: собственно чип и модуль, содержащий минимальный необходимый набор компонентов для роботы радио-модуля. Для многих устройств ещё может понадобиться дополнительно микросхема энергонезависимой памяти EEPROM, однако она не является обязательным компонентом. Чипы семейства Z-Wave — это ZW0201, более новый и 100% совместимый с предыдущим ZW0301, SD3402. На их базе сделаны модули ZM2102, ZM3102, ZM4101 и ZM4102. Все упомянутые чипы основаны на ядре Inventra, совместимом с Intel 8051.

Чипы ZW0201 и ZW0301 имеют 2 Кб ОЗУ, 32 Кб ПЗУ, встроенные аппаратные SPI, UART, TRIAC, WUT, GPT, WatchDog, четыре 12-битных АЦП, ШИМ (PWM), 2 входа прерываний, а также Digital I/O ноги.

Четвёртое поколение чипов SD3402 имеет 16 Кб ОЗУ, 64 Кб ПЗУ, 64 байта NVRAM, встроенные аппаратные SPI, UART, TRIAC, WUT, GPT, WatchDog, USB, IR-контроллер с обучающей функцией, аппаратный шифровальный модуль AES 128 бит, сканер 128 кнопок.

Sigma Designs анонсировала выход следующего 5 поколения чипов на первый квартал 2013 года.

Стоит отметить, что каждое следующее поколение чипов отличается не только увеличенным набором встроенных аппаратных средств, но и меньшим энергопотреблением. Например, самый популярный модуль ZM3102 потребляет 36 мА в режиме отправки данных, 23 мА в режиме приёма и всего 2.5 мкА в режиме сна.

Более подробную информацию о чипах и модулях можно получить на сайте Sigma Designs.

Большинство устройств Z-Wave не содержат больше никаких микроконтроллеров, кроме модуля Z-Wave от Sigma Desgins и EEPROM (опционально). Это существенно упрощает разработку новых устройств и уменьшает их себестоимость.

Типы узлов


Выше мы уже упоминали о наличии маршрутизации в протоколе. Здесь стоит отвлечься и рассказать о разных типах узлов в Z-Wave.

Портативный контроллер (Portable Controller)

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

Статический контроллер (Static Controller)

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

Дочернее устройство (Slave)

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

Дочернее маршрутизирующее устройство (Routing Slave)

Устройство, способное хранить до 4 маршрутов для 5 узлов (так называемые «обратные маршруты»). Эти устройства могут инициировать отправку данных (отправлять непрошенные пакеты — unsolicited packets), а также могут быть спящими или «часто слушающими». Типичное применение: датчики, исполнители, неподвижные пульты управления (датчик движения, кнопка включения на батарейках).

Продвинутое дочернее маршрутизирующее устройство (Routing Enhanced Slave)

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

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

Контроллеры (как статические, так и портативные) могут иметь разные роли в сети:

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

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

Построение сети и сосуществование нескольких сетей


Сеть Z-Wave определяется уникальным параметром Home ID (генерируется при создании сети генератором случайных чисел с шумом от радиоприёмника в качестве источника случайных числе или назначается Sigma Designs для старых контроллеров). На одной территории может сосуществовать несколько сетей Z-Wave с разными Home ID. При этом они не будут друг друга видеть и друг с другом взаимодействовать. Благодаря обязательному требованию скважности (не более 1% времени находится в состоянии передачи), эти сети не будут друг другу мешать.

У каждого узла в сети есть свой уникальный Node ID, который присваивается первичным контроллером при включении устройства в сеть. Также при включении в сеть включаемое устройство запоминает Home ID первичного контроллера для дальнейшего общения. Сеть может содержать до 232 устройств.

Включение происходит переводом контроллера в специальный режим Включения (Inclusion mode; обычно какой-то специальной кнопкой или комбинацией клавиш), а включаемого устройства в режим Обучения (Learn mode; обычно одинарным или тройным нажатием на кнопку). При этом контроллер и включаемое устройство должны находиться в прямой видимости. Многие современные (версии протокола 4.5x или 6.x) постоянно питающиеся (не спящие) устройства первые 3-5 минут после включения в сеть электропитания самостоятельно переходят в специальный режим обучения (Network Wide Inclusion, NWI), если они ещё не включены в сеть. При этом условие нахождения в прямой видимости уже не требуется. Это позволяет достаточно легко включать в сеть новые устройства, не бегая по дому.

Исключение из сети происходит аналогично: контроллер переводится в режим Исключения (Exclusion mode), а дочерний узел в режим Обучения. После исключения Node ID и Home ID устройства сбросятся на 0 (для контроллеров NodeID сбросится на 1, а HomeID на заводское значение). Большинство устройств при исключении сбросит и все остальные пользовательские настройки на заводские значения.

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

Контроллеры и дочерние устройства включаются в сеть и исключаются из неё одинаковым образом.

При включение в сеть первичный контроллер получает информацию о типе включённого узла и его NIF (см. далее).

Работа от батареек


Большой плюс протокола Z-Wave — это возможность для устройств работать на батарейках. Существует два типа устройств, работающих от батареек:

Спящие. Такие устройства не будут участвовать в маршрутизации сети как ретранслятор, но сами могут использовать другие узлы для передачи своих пакетов. Оповещение о пробуждении, периоды просыпания и уход в сон регулируются Классом Команд Wakeup, т.е. на уровне приложения. Проснувшись, эти устройства сообщают, о своём пробуждении, ждут команд от других устройств сети, после чего засыпают назад. Чем раньше устройство уснёт, тем меньше будет израсходовано заряда батареек. При правильном управлении такими устройствами, они могут прожить на одном комплекте батареек год и более. Портативные контроллеры тоже являются спящими устройствами.

Часто слушающие (FLiRS = Frequently Listening Routing Slave) — это устройства просыпающиеся раз в 0.25 или 1 секунду на короткое время (несколько миллисекунд) для того, чтобы проверить, нет ли в эфире специального пакета «проснись» (wake up beam). Такой пакет им посылают другие устройства перед тем, как начать общение с ними. Данный пакет длится 0.25 или 1 секунду соответственно, занимает эфир на всё это время, и позволяет часто спящему устройству, ненадолго проснувшись, увидеть, что для него есть пакет. Увидев пакет «проснись», оно полноценно просыпается, принимает предназначенные для него данные, обрабатывает их, возможно, посылает ответ, после чего засыпает назад. Такой механизм позволяет создавать устройства, доступ к которым должен всегда, но возможности провести сеть электропитания к месту их установки нет возможности. Типичный пример таких устройств: дверные замки, сирены.

Command Classes (Классы Команд)


Все данные уровня приложения передаются в виде коротких пакетов следующего вида:
Command Class ID
Command ID
специфические данные для команды

Сначала идёт Класс Команды, потом команда в этом классе, далее данные специфичные для этой команды. Благодаря строгому стандарту, описывающему Классы Команд, устройства разных производителей могут понимать друг друга без каких-либо проблем.

Приведём пример популярных классов и опишем из назначение.
Basic — самый популярный класс, позволяющий устройствам разного типа быть совместимыми на минимальном уровне. Например, выключатель умеет посылать команды Включить/Выключить, которые диммер и реле будут интерпретировать как включение/выключение света, термостат как переход между режимами нормальный/энергосберегающий, а устройство управления жалюзи как ход/остановка движения ставней.
  • Switch Binary / Switch Multilevel — используются для управления освещением (реле/диммер), а также для управления моторами (для ставней или ворот).
  • Sensor Binary / Sensor Multilevel — для бинарного датчика (открытия двери, протечки, дыма, движения) и многопозиционного датчика (температуры, освещённости, влажности).
  • Meter — используется для снятия показаний и сброса накопленных значений счётчиков.
  • Association — позволяет устанавливать связи между устройствами. Например, на устройстве есть 3 кнопки. Для них есть 3 соответствующие кнопкам группы ассоциаций. При нажатии на кнопку посылаются команды Basic Set Включить соответствующей группе. Класс Association используется для ведения списка узлов в этой группе. Такой подход позволяет просто и эффективно настраивать прямые взаимосвязи между устройствами сети.
  • Configuration — позволяет менять некоторые заложенные производителем параметры устройств. Например, скорость диммирования света или чувствительность датчика движения.
  • Battery — позволяет запрашивать заряд батареек устройств.
  • Wakeup — для управление параметрами просыпания спящих устройств.
  • MultiChannel — используется для адресации к конкретной компоненте сложного устройства, состоящего из нескольких элементов. Обычные Классы Команд (Basic, Switch/Sensor Binary/Multilevel, Meter) инкапсулируются в команду данного класса с указанием номера элемента. Например, устройство может содержать два реле или три датчика (температуры, влажности и движения).


Список поддерживаемых устройством Классов Команд содержится в пакете NIF (Node Information Frame — пакет описания устройства). Благодаря ему можно определить Класс Устройства (Device Class, см. ниже) и список возможностей устройства. Этот пакет приходи первичному контроллеру при включении устройства в сеть, а также при нажатии один или три раза на кнопку (у большинства устройств, см. документацию к конкретному устройству).

Device Classes


Каждое устройство характеризуется своим функциональным типом (Классом Устройства, Device Class). Каждый класс определяет обязательные Классы Команд, поддерживаемые устройством, и способы интерпретации их команд. Например, команды класса команд Basic могут совершенно по-разному интерпретироваться для различных классов устройств: для двухпозиционного реле Basic Set 0 выключает, 1-99 или 255 включают, в то время как для термостата могут интерпретироваться как температура в единицах или 1/10 градусов Цельсия, т.е. от 0 до 255 или от 0 до 25.5 градусов, соответственно. Все остальные Классы Команд чётко прописаны вплоть интерпретации каждой команды.

Надёжность


Z-Wave — это ячеистая сеть (mesh network), где каждый узел знает окружающие его узлы и может направлять через них пакеты. Использование маршрутизации позволяет успешно преодолевать препятствия между узлами, не позволяющие им общаться напрямую. Однако перестановки мебели и другие изменения в обстановке, а также выход из строя одного узла могут привести к появлению нерабочих маршрутов. Для этого их нужно периодически обновлять. Первичный контроллер может это делать профилактически раз в неделю или по запросу пользователя.

Но в протоколе Z-Wave есть и другое средство для замены нерабочих маршрутов рабочими, появившееся в версии протокола 4.5. Если узел не смог достучаться до точки назначения, он посылает всем соседям специальный пакет Explore Frame. Те в свою очередь распространяют его дальше по сети, пока какой-нибудь узел не скажет, что искомый узел нашёлся у него в прямой видимости. Таким образом отправитель найдёт новый маршрут и запомнит его в своих таблицах. Данный метод менее экономный, чем централизованное обновление маршрутов всей сети: для обхода умершего узла требуется, чтобы каждый узел обновил каждый маршрут, идущий через нерабочий, путём посылки Explorer Frame. Кроме того, использование Explorer Frame занимает около 0.5-1 секунды, и на это время сеть забивается этими пакетами.

На пути следования может содержаться до 4 узлов передатчиков. Учитывая предельные расстояния между устройствами 10-30 метров в прямой видимости (зависит от антенн), можно сказать, что предельная дальность доставки пакета — 40-120 метров. Естественно при прохождении перекрытий и стен мощность сигнала существенно падает, что приводит и к уменьшению дальности передачи. На практике 4 этажный дом с общей площадью в 500 квадратных метров — это предел одной сети протокола Z-Wave с качественной передачей данных.

Вывод простой: обновляйте маршруты после изменения топологии сети и перестановок мебели или используйте только устройства, основанные на версиях протокола 4.5x и 6.x.

Связь с ПК


Естественно при создании хоть сколько-нибудь достойной автоматизации встаёт вопрос о связи с ПО, работающем на ПК. Существует несколько программных комплексов для этой цели:
  • Z-Wave.Me Z-Way (универсальное ПО для Unix/Linux/Mac OS X/Windows с движком автоматизации и простым GUI, поставляется только B2B)
  • Mi Casa Verde Vera (с движком автоматизации и простым GUI, работает на роутерах под клоном OpenWRT, продаётся в виде коробки-роутера)
  • Fibaro Home Center (с движком автоматизации и простым GUI, работает собственном железе от Fibaro, продаётся в виде коробки)
  • Z-Wave.Me Z-Way.C (библиотека C для работы со стеком Z-Wave под Unix/Linux/Mac OS X/Windows, поставляется только B2B, но скоро появится недорогое расширение для Raspberry Pi)
  • OpenZWave (библиотека C++ для работы с Z-Wave под Unix/Linux/Mac OS X/(возможно)Windows, Open Source)
  • HomeSeer (под Windows, платный)
  • Z-Command (под Windows, платный)
  • LinuxMCE (ОС на базе Linux для медиа-центров)

Кроме того, есть облачный сервис:


Создание новых устройств


Sigma Designs продаёт не только чипы, но и DevKit — набор плат для прототипирования новых устройств. Считающие себя крутыми могут сразу делать прототипы на голых модулях ZM3102. Кроме того, для создания устройств Z-Wave вам понадобится SDK (Software Development Kit) от той же Sigma Desgins, которая имплементирует протокол Z-Wave вплоть до транспортного уровня включительно. Это сильно упрощает работу разработчиков, которым лишь нужно освоить этот API (с документацией на 500 страницах) и написать весь «пользовательский» код, реализующий прикладной уровень и поведение самого устройства (кнопки, экранчик, светодиоды и т.д.). Стоимость DevKit с SDK составляет $3000.

В добавок к этом понадобится компилятор C51 от компании Keil (ныне принадлежит ARM). Ещё где-то $3000. И много-много терпения и навыков характерных для разработки emdedded устройств.

Безопасность


Естественно, будучи радио протоколом, Z-Wave достаточно легко прослушивается (ну, мы-то знаем, что на всю страну осталось совсем мало способных радиолюбителей :) Взломать можно любую систему — вопрос денег и времени. Став разработчиком железа, купив SDK и обретя много знаний можно сделать и не такое! Но учитывая, что это система домашней автоматизации света и климата, не думаю, что кому-то придёт в голову потратить пару сотен тысяч рублей на взлом вашей автоматизации. Лом стóит сильно дешевле!

Но и здесь есть ответ параноикам: в Z-Wave есть полноценное шифрование AES с длиной ключа 128 бит. Естественно, шифрование накладывает свои ограничения: оно работает медленнее, т.к. уже не достаточно просто отправить пакет — надо до этого обменяться одноразовыми ключами (nonce). Потому шифрование реализовано пока только в оконных системах, дверных замках и ПК контроллерах.

А как же другие технологии?


Говорить здесь о проводных технологиях — смысла нет. У них совсем разные характеристики и применение. В готовых объектах, созданных без закладки проводов во все важные места квартиры, можно использовать только радио технологии автоматизации.

Кто же ещё есть в беспроводном мире?
  • 433 МГц — дешёвая и широко распространённая технология.
    • Плюсы — дёшево и сердито, большая дальность (частота ниже), малая цена
    • Минусы — полная несовместимость устройств разных производителей (т.е. завязка на одном), нестыкуемость комплектов (полное отсутствие масштабируемости), обычно без маршрутизации, отсутствие правил со стороны регулятора по скважности сигнала, невозможность построения нескольких сетей рядом, полоса частот замусорена множеством устройств от бытовых до радиоуправляемых машинок.
  • EnOcean — похожий на Z-Wave стандарт автоматизации домов и зданий (868.3 МГц)
    • Плюсы — как и в Z-Wave есть стандартизация до прикладного уровня, возможность делать устройства без батареек на солнечных батареях и пьезо/индукционных элементах
    • Минусы — нет подтверждения доставки пакета (особенно для устройств на пьезоэлементах, где энергии едва хватает на отправку, их ещё сложнее настраивать, т.к. долго они не могут принимать данные; в новых версиях протокола добавили обратную связь), частота не разрешена на территории РФ (разрешен к ввозу и использованию ограниченный список устройств нескольких компаний)
  • ZigBee — очень популярный промышленный протокол. Используется в некоторых странах как стандарт для сбора данных с счётчиков и доставки до концентратора
    • Плюсы — хорошо развит, имеет динамическую маршрутизацию (самоорганизующаяся сеть, где каждый узел хранит лишь таблицу с со списком кластеров и ближайшего соседа, который может доставить туда пакет — почти как в IP сетях), принят на вооружения многими телекомами и управляющими компаниями.
    • Минусы — использует более загруженную полосу 2.4 ГГц (есть полоса 868 МГц, но она реже используется), стандартизирован лишь до транспортного уровня, что делает устройства разных производителей несовместимыми на прикладном уровне.
  • ONE-NET, Bluetooth 3, Wifi,… на рынке нет готовых решений на базе этих протоколов. Думаю, в ближайшие годы они появятся.


Организационно-правовые аспекты


Сам протокол Z-Wave, а также патенты на используемые в протоколе решения, является собственностью компании Sigma Designs. Функции координации производителей, развития протокола и проведение рекламных и обучающих мероприятий возложены на Z-Wave Aliance — консорциум производителей оборудования Z-Wave. Контроль совместимости возложен на сертификационные конторы (в США BuLogics и в Германии PepperoOne), которые сертифицируют все выходящие на рынок устройства, гарантируя полную совместимость между устройствами разных производителей. Только пройдя такую сертификацию можно нарисовать на своём устройстве логотип Speaks Z-Wave и продавать его как устройство, работающее на протоколе Z-Wave.

Компания Sigma Designs и Z-Wave Aliance постоянно проводят семинары для технических специалистов разного уровня, помогая быстрее выйти на рынок с качественными устройствами.

До недавнего времени Z-Wave не развивался в России из-за отсутствия разрешённой частоты. Европейская частота 868.42 МГц не была разрешена ГКРЧ, хотя правительство РФ и присоединилось к некоторым рекомендациям CEPT, применяемым к устройствам малого радиуса действия. С февраля 2012 года Sigma Designs выделила отдельную частоту 869.0 МГц для России. Данная частота попадает под решение ГКРЧ № 07-20-03-001 от 07.05.2007 (приложение 11). Для Российской частоты используется тот же чип, что и для Европы.

Черпаем ещё инфу


Достаточно много информации о протоколе можно получить из таких open source проектов, как OpenZWave, AZW, Linux MCE, а также из этого wiki-сайта и следующих статей: первая, вторая, третья

Увидеть живьём


Для тех, кто ещё не держал в руках оборудование Z-Wave, посмотреть и пощупать можно в первом салоне МГТС по адресу Новый Арбат, дом 2

Не охваченное


В данной статье полностью опущены описания таких понятий протокола Z-Wave, как SUC/SIS, Zensor и многое другое устаревшее и не являющееся актуальным на взгляд автора.
Автор: @PoltoS
Z-Wave.Me
рейтинг 40,25
Производитель оборудования Z-Wave

Комментарии (34)

  • +1
    Осилил!!!
    Пойду прикручу датчик движения в коридоре!
  • 0
    а где можно купить ZW0201 или что-то подобное? поиск по магазинам почему-то ничего не дал
    • 0
      туплю, простите, нашел в сборке ZM3102. Скажите, а правильно ли я понимаю, что полный даташит на ZM3102 недоступен для простого смертного (без лицензии)? просто обзорный даташит я нашел, а как с ним работать в связке (скажем, через SPI), непонятно.
      • +2
        Нормальный даташит доступен на сайте Sigma Designs после регистрации (просто как юзер). Он более полный (хотя уже не уверен). Для SPI у модуля есть три ноги MISO/MOSI/SCK и аппаратный драйвер (доступный отдельные sfr для работы с SPI).

        Пожалуй это самое полное, что есть. Там в конце есть про подключение EEPROM по SPI. Более подробное с описанием sfr требует NDA.

        Обратите внимание, что для заливки прошивки на чип нужен специальный программатор за 500 баксов. В теории, можно и без него, но тогда надо самому сделать на каком-нибудь Atmel программатор с использованием SPI (обойдётся баксов в 30 ;)

        Но для использования API Z-Wave вам таки нужно купить SDK, а это требует подписания NDA.

        Кстати, ещё есть полезный DevKit (базовый + региональный), хотя мы пользуемся более простыми, напаивая на них дополнительные коннекторы.
        • 0
          ну, сеть у меня уже есть, на open-zwave, мне хотелось бы сделать кастомное устройство, в котором ZM3102 был бы просто приемопередатчиком. Насколько я представляю, чтобы пользоваться передатчиком через SPI мне нужно знать что ему передавать (управляющие команды, данные), а именно этого в даташите (как ни странно) нету. Или я что-то пропустил или не понимаю?
          • +1
            Да, пропустили малёк… В чип заливается прошивка, которая (благодаря библиотекам, входящим в состав SDK) имеет всё для приёма-передачи команд и ретрансляции, а также работу с перефирией, которую пишет программист, создающий устройство. Т.е. общение по SPI может иметь разный формат. Кстати, таких устройств я и не знаю, т.к. все по UART общаются (или UART + USB).

            Обратите внимание, что чип поставляется голым без прошивки. Под каждую периферию надо писать свою прошивку. Сравните это с платой Arduino — она при покупке не имеет прошивки — вы сами льёте туда программки, которые и общаются с периферией.
            • +1
              да, не совсем дружественная к энтузиастам система :) то есть для разработки даже простых устройств обязательно нужна SDK, которая стоит порядка 1.5к долларов, да?
              • +1
                Да, это так. Но система-то рассчитана не на то, что люди дом с паяльником автоматизировать будут, а на то, что они сами готовые приборы подключат и всё у них заработает без спеца за сто баксов в час. Это конечно не Arduino. В конце концов, в мире не более 0.01% людей, способных закодить свой собственный дом, заливая прошивки в каждую микросхему, и на них бизнес ни одна компания, производящая чипы, не строит. В конце концов, если вы смогли спаять себе такой умный дом сами, то вы его продадите за несколько килодолларов и окупите вложения в SDK ;)
                • 0
                  согласен :) вообще, мне интереснее писать управляющую часть, а насчет самих устройств интересуюсь, потому что готовых аналогов, увы, нету
    • +1
      ZW0201 купить уже нельзя, его заменили ZW0301. Но и последний не купить, т.к. производитель Sigma Designs продёт их только нескольким крупным компаниям. Остальным только в виде модуля ZM3102. Модуль можно купить непосредственно у эксклюзивного мирового дистрибьютора DigiKey. В России они доступны (были) здесь.
  • 0
    Я как понимаю, для простых обывателей и электронщиков путь в Z-Wave закрыт? Только большие компании?
    • 0
      Не, почему же. Цена входа не очень большая. Для стартапа из 3х человек это вполне посильно и окупается быстро. Я бы сказал, что эти ограничения препятствуют совсем непонятным людям колхозить, но не мешают маленьким компаниям делать хороший продукт.

      Если сравнить, например, с ZigBee, то там есть плабы XBee, на которых можно делать свой колхоз, но он не будет совместим с колхозом соседа. Кстати, а много ли таких самоделкиных? Если присмотреться, то совсем пало и идея дать народу чип не является состоятельной.

      Кстати, скоро будет выпущен истинно гиковский комплект для работы с Z-Wave на Raspberry Pi. Никакого хардкора с embedded программированием там не будет — только C и JS. Об этом напишу отдельный топик в начале января.
      • 0
        А где же топик?
        • 0
          Очень скоро ;) Документация уже есть на сайте RaZberry, а платы уже доступны в Москве. После выставки CeBIT мы напишем подробную статью.
          • 0
            Я посмотрел, но там получаются какие-то дикие цены, или я ошибаюсь?
            Проще покупать по 40 рублей msp430/stm32 и присобачивать к ним nrf24l01 еще за 40 рублей, не?
            Но пишите )
            • 0
              Ну, колхоз никто не отменял ;) но это лишь в единичных количествах и не для всех.

              Ну и надо сказать, что контроллер на базе Raspberri Pi и RaZberry является самым дешёвым и самым функциональным из всех Z-Wave контроллеров.
  • 0
    Спасибо. Очень много технического материала. Хотелось бы статью с практическими примерами и сравнениями с другими беспроводными протоколами. Для простых обывателей важна доступность, простота, и, некоторым, кастомизация.

    Про Россию ясно. А что с частотами для Украины?
    • 0
      К сожалению практические примеры требуют раскрытия кода и API, которые под NDA. Да и имеет ли смысл, если всё равно без SDK ничего не сделаете? Цель данной статьи — привлечь людей к разработке, а также показать тем, кто пользуется Z-Wave, как он устроен внутри. Это сильно помогает при развёртывании больших сетей.

      Про Украину не могу ничего сказать — надо изучать нормативную базу. В Белоруси разрешена европейская с недавних пор.
  • 0
    «хотя правительство РФ и присоединилось к некоторым рекомендациям CEPT, применяемым к устройствам малого радиуса действия» то есть в России всё таки можно использовать устройства Z-Wave с европейской частотой, т.к. у них малый радиус действия?
    • 0
      Нет, нельзя. Дело в том, что страна сначала присоединяется к какой-то международной организации, а потом приводит своё внутреннее законодательство под рекомендации этой международной организации. Так вот Россия не прошла вторую стадию и, похоже, не собирается ;( Без этого присутствие в CEPT ничего не значит. На то оно и называется рекомендации CEPT.

      Кстати, спросите у радиолюбителей про регистрацию РЭС. Если бы в России всё было как по CEPT, то они бы не плакали так и не мучились с регистрацией позывных.
  • 0
    Модуляция FSK (фазовая манипуляция) — FSK это частотная манипуляция, фазовая — PSK (Phase Shift Keying)
    • 0
      Виноват, исправил. Перепутал F и Ph ;)
  • 0
    Большое спасибо!

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

    2. Должны ли устройства Z-Wave иметь клеймо какой либо нашей конторы которая проводит сертификацию, или сертификация для них не является обязательной?

    3. Не совсем понятно, обязательно ли в этой сети какое либо центральное устройство, и как поведет себя сеть если это устройство будет недоступно? Т.е. смогу ли я включить свет в комнате, если центральное устройство сломается?
    • 0
      у меня совсем небольшой опыт в этом, просто попробовал запустить систему на компе с usb-адаптером и диммером. Поэтому по первому пункту могу посоветовать то место, где покупал сам: z-wave.ru
      По второму — насколько я понял, все текущие конторы, которые так или иначе продают у нас z-wave технику, просто закупают ее в америке или китае (реже в европе) как специализированную для европы (на частоте 868.42 МГц), поэтому она идет мимо сертификации.
      И, в третьих, на примере того же диммера, вне зависимости от того, компьютер включен/выключен — при нажатии на кнопки выключателя он работает полностью автономно, ну и плюс — как диммер :) Т.е. относитесь к этому как к обычному устройству, которым еще и можно управлять по сети.
    • 0
      2. Да, конечно. На все электроприборы требуется как минимум сертификация Ростест. Правильный покупатель ещё может спросить заключения РЧЦ или решения ГКРЧ на РЭС (радиоэлектронные средства).

      3. Нет, не обязательно. Z-Wave cоздаёт mesh-сеть, что существенно надёжней, чем топология «звезда». Однако есть два «но»:
      — Для умного дома часто требуется умное устройство. На него будут приходить почти все события сети. С точки зрения логики это «звезда» (хотя с точки зрения сетевой инфраструктуры — mesh). Естественно, это условие становится важным в сети и его отключение приведёт не только к отключению логики, но и к «затупу» всех связанных с ним устройств, т.к. они будут пытаться тщетно достучаться до него. Но прямые ассоциации будут работать без проблем, т.е. свет выключить можно.
      — Нередко один узел в центре сети становится основным ретранслятором для большинства маршрутов. Такое происходит, когда связность сети не очень хорошая (например, два отдельных блока, между которыми коридор). В этом случае отключение этих узлов повлияет на все коммуникации между отдельными частями сети. Может даже случиться такое, что сеть распадётся на две несвязанные части (хоть и с одним идентификатором сети).
      • 0
        Еще вопрос по устройствам:
        Как я понял, устройства включения/выключения нагрузки, как правило, получают питание для своей работы от сети 220, по сути от той нагрузки которую они питают, и их можно устанавливать скрытно.
        А вот что касается датчиков, они питаются только от батареек или есть варианты с питанием от 220, что бы их тоже можно было устанавливать скрытно и не обслуживать?

        Сама идея коммуникации через радио канал очень приятна, но вот батарейки, откровенно говоря, уже достали.
        • 0
          Многие датчики можно подключить к постоянному напряжению 3 В или 5 В. В этом случае можно, например, использовать USB адаптеры для зарядки телефона.

          Да, батарейки не очень удобны, но, бывает, выхода нет — не везде есть 220 В.
  • 0
    На данный момент на сколько я знаю, официально разрешенные устройства с российской частотой продает только rus.z-wave.me. На z-wave.ru пока что видел только европейские устройства.

    По поводу центрального устройства, в самих устройствах есть много настроек, т.е. каждое устройство это по сути маленький компьютер со своим функционалом. Лично у меня дома центральный контроллер используется для настройки сети и как шлюз из WiFi в Z-Wave, чтобы можно было с телефона управлять устройствами. Если отключить контроллер, то в моем случаем все будет работать, свет в коридоре так же будет включаться от датчика движения и выключаться втоматически через 2 минуты, ну а в комнате свет буду выключать не с телефона а с брелочка.
    Контроллер удобен при настройке, и если сеть с простой логикой, то можно настроить
    • 0
      А какой у вас центральный контроллер, если не секрет, он вас устраивает?
      Все контроллеры можно настроить в такой «пассивный» режим, или это зависит от конкретной модели.

      Контроллер удобен при настройке, и если сеть с простой логикой, то можно настроить

      Не совсем понял. Т.е. если сеть с не простой логикой, то нужно что-то еще кроме контроллера? Комп?
      • 0
        У меня комп — контроллер, я купил вот такой Z-Wave адаптер rus.z-wave.me/product/z-waveme-z-stick/, софт использую облачный rus.z-wave.me/z-wave-knowledge-base/step-by-step-to-use-z-cloud, работает через интернет.
        Коротко, как работает z-wave и зачем нужен контроллер:
        У меня есть два z-wave выключателя света, я могу сделать так, чтобы при нажатии на один выключатель второй тоже выключался. Можно это сделать с помощью контроллера: в программе перетаскиваю один выключатель на другой и все готово. Можно это сделать без контроллера: читаю инструкцию какие кнопки нужно нажать на одном устройстве и какие на другом. Это простоя логика — одно устройство управляет другим, контроллер нужен был только чтобы настроиться связь, далее его можно выключить и устройства будут работать.
        Теперь про сложную связь. Я хочу чтобы один выключатель выключал другой, но это должно работать только вечером с 19:00 до 6:00, в остальное время нажатие на один выключатель не будет включать другой. Здесь нужен контроллер, потому как нужно проверить условие «Если нажата кнопка на выключатели 1 И время с 19:00 до 6:00, То включить выключатель 2».
        • 0
          В варианте с простой логикой одно устройство отправляет другому устройству команду на прямую, поэтому контроллер не задействован.
          В сложном варианте одно устройство отправляет команду контроллеру, контроллер смотрит сколько времени и если время с 19:00 до 6:00 то отправляет другому устройству команду «Включись»
  • 0
    Какое-то время назад натолкнулся на такую статью (на англ.) — How to develop Z-Wave Devices — может, кому будет интересно.
  • 0
    Через месяц в свет выйдет новая игрушка для хабрапользователей: Z-Wave модуль расширения RaZberry для Raspberry Pi.

    С ним в комплекте будет прилагаться софт с web-мордой для работы (похожей на ту, что в Z-Cloud), и движком автоматизации на JavaScript на базе Google V8!

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое