Продвинутое дочернее маршрутизирующее устройство (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 секунду соответственно, занимает эфир на всё это время, и позволяет часто спящему устройству, ненадолго проснувшись, увидеть, что для него есть пакет. Увидев пакет "проснись", оно полноценно просыпается, принимает предназначенные для него данные, обрабатывает их, возможно, посылает ответ, после чего засыпает назад. Такой механизм позволяет создавать устройства, доступ к которым должен всегда, но возможности провести сеть электропитания к месту их установки нет возможности. Типичный пример таких устройств: дверные замки, сирены.

Commad 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 градусов, соответственно. Все остальные Классы Команд чётко прописаны вплоть интерпретации каждой команды.

Надёжность

Продвинутое дочернее маршрутизирующее устройство (Routing Enhanced Slave) - student2.ru 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)
  • OpenZWave (библиотека C++ для работы с Z-Wave под Unix/Linux/Mac OS X/(возможно)Windows, Open Source)
  • HomeSeer (под Windows, платный)
  • Z-Command (под Windows, платный)
  • LinuxMCE (ОС на базе Linux для медиа-центров)

Кроме того, есть облачный сервис:
Z-Wave.Me Z-Cloud (для Unix/Linux/Mac OS X/Windows, бесплатный)

Наши рекомендации