Многие участники сообщества Z-Wave сталкиваются с ситуацией, когда некоторые устройства, расположенные далеко от основного контроллера не стабильно работают, а другие и вовсе находятся вне зоны доступа. Такое случается в случае автоматизации основного дома, расположенного неподалеку от гостевого дома, бани или теплицы.  Или например при автоматизации многоэтажных железобетонных зданий - домов или офисов, где из-за ж/б перекрытий происходит ослабление Z-Wave сигнала и сокращение зоны покрытия.

Также бывают случаи, когда участники просто хотят использовать второй Z-Wave центральный контроллер​ в сети, который, как правило, остался после перехода на более мощный и современный Z-Wave контроллер, например обновление с 300-го на 500-й Z-Wave Plus чип.

В этих случаях всегда возникает вопрос, каким образом лучше объединить несколько контроллеров? Ведь возможны два варианта:
  1. Добавление вторичного контроллера к главному контроллеру - Primary/Secondary режим.
  2. Объединение двух контроллеров через IP протокол, ​"соединение мост" - Bridge режим.

Об этих двух типах соединения нескольких контроллеров, об их преимуществах и недостатках посвящена данная статья.

Особенности режима "первичный/вторичный контроллер"

  1. Обмен сущностями. Первичный контроллер делится со вторичным контроллером только своими устройствами, но не делится своей логикой. Вторичный контроллер не делится с главным контроллером ни устройствами, ни своей логикой. 
  2. Коммуникация.Главный и вторичный контроллеры являются частью одной и той же Z-Wave сети. Они оба участвуют в одной сети и могут общаться без шлюза с любым устройством в этой сети.
  3. Совместная логика. Если необходимо использовать логику другого контроллера, то возможно использовать HTTP-команды от одного контроллера к другому.
  4. Обновление статуса. В случае изменения состояния устройства, устройство посылает обновление статуса только главному контроллеру. Контроллеры не пересылают обновления статуса устройств друг другу.
  5. Добавление и исключение устройств. Новые устройства могут быть добавлены в Z-Wave сеть только главным контроллером. Главный контроллер автоматически не обновляет таблицу маршрутизации вторичного контроллера.

Что это означает на практике?

  1. Каждый Z-Wave контроллер, главный и вторичный имеют полный список всех устройств в Z-Wave сети. В процессе добавления вторичного контроллера, главный контроллер отправляет вторичному таблицу маршрутизации устройств (репликация).
  2. Оба контроллера могут отправлять команду напрямую любому устройству. Ни один из контроллеров не знает, что делает другой и они не делятся между собой сценариями и плагинами, а также не централизуют какое-либо управление.
  3. В обоих контроллерах можно создавать сценарии и плагины, в которых могут участвовать все устройства.
  4. Обновления статуса устройства приходят на главный контроллер. Главный контроллер не будет обновлять вторичный. Если вторичный контроллер не видит обновления состояния устройства, то вторичный контроллер не будет иметь верной информации о состоянии устройства до тех пор, пока вторичный контроллер не опросит это устройство.
  5. После добавления нового устройства в сеть, вторичный контроллер должен запросить обновление таблицы маршрутизации у главного контроллера.   Для этого требуется выполнить репликацию - заново добавить вторичный контроллер в сеть. Это большая работа и она неудобна для пользователей. 

Особенности режима "соединение мост"

  1. Обмен сущностями.В режиме моста ведомый контроллер делится своими устройствами и плагинами (если оба контроллера одного семейства) с ведущим контроллером. Сценарии на ведомом контроллере не видны для ведущего контроллера. Ведущий контроллер ничем не делится с ведомым.
  2. Коммуникация. Z-Wave​ устройства в одной сети Z-Wave не могут взаимодействовать при помощи Z-Wave команд с устройствами в другой сети. Тем не менее, контроллеры могут отправлять команды из одной сети в другую, используя другой Z-Wave​ контроллер в качестве шлюза. Например, сценарий в первом контроллере может активировать устройство в Z-Wave​ сети второго контроллера, поскольку первый контроллер отправляет команду по сети TCP/IP второму контроллеру, который затем отправляет Z-Wave команду целевому устройству.
  3. Совместная логика. Соединение мостом позволяет двум контроллерам с двумя разными сетями Z-Wave делиться информацией об устройствах и действиях по сети TCP/IP. Это позволяет просматривать, администрировать/управлять двумя различными Z-Wave сетями, как одним виртуальным объектом
  4. Обновление статуса. В случае изменения состояния устройства, устройство отправляет обновление статуса своему контроллеру. Контроллеры не пересылают обновления статуса устройств друг другу по Z-Wave, но обмениваются по TCP/IP. Ведущий контроллер мгновенно отправляет обновление статуса ведомому контроллеру. Ведущий контроллер принимает обновление статуса от ведомого контроллера с задержкой (3-5 секунд). 
  5. Добавление и исключение устройств. Устройства могут быть добавлены в сеть как ведущего контроллера, так и ведомого. 

Что это означает на практике?

  1. Таблицы маршрутизации каждого контроллера остаются без изменений. После соединения, ведущий контроллер видит все устройства и все плагины (свои и чужие). Сценарии ведущий контроллер видит только свои. Ведомый контроллер не видит устройства, сценарии и плагины ведущего контроллера, он продолжает видеть только свои сущности.
  2. Ведущий контроллер может приказать ведомому контроллеру отправить команду одному из его устройств. Ведущий контроллер не может напрямую взаимодействовать с устройствами ведомого контроллера. Ведомый контроллер не может управлять устройствами ведущего контроллера.
  3. В ведущем контроллере вы можете создавать сценарии, настраивать плагины, которые управляют устройствами на ведущем и/или ведомом контроллере. В ведомом контроллере вы можете создавать логику только для своих устройств.
  4. Отправка обновления статуса от ведущего к ведомому контроллеру происходит мгновенно. Отправка обновления статуса от ведомого к ведущему происходит с некоторой задержкой. Это означает,например, что в случае смены состояния выключателя ведомого контроллера, ведущий контроллер узнает об этом спустя 3-5 секунды. Это в основном актуально в случае ручного переключения выключателя, т.к. в случае автоматических сценариев, вся логика обычно выполняется на ведущем контроллере, который в режиме "on-line" знает актуальные состояния всех устройств.
  5. После добавления нового устройства в сеть какого-либо контроллера, нет необходимости в ручном обновлении таблицы маршрутизации другого контроллера.

Какой режим выбрать?

Это сложный вопрос и зависит от многих факторов, которые невозможно уместить в этой статье. Слишком много переменных и слишком много неизвестных. Даже если знать о конкретных расстояниях и материалах в зданиях, все еще остаются неизвестными уровни шума и другие вопросы прохождения радиоволн, которые не позволяют сделать вывод. Но, безусловно, у большинства Z-Wave сетей связь улучшается с увеличением плотности сети. Большее количество устройств обычно приводит к более надежной сети и большей стабильности.

В случае разрозненной сети на большой площади, более надежная сеть получится при соединении двух отдельных Z-Wave сетей из-за их географического разделения. В этом случае соединение мостом являются подходящим решением. Но, возможно, нет необходимости использовать мост, если вы не хотите, чтобы один контроллер управлял всем. Иногда бывает лучше оставить два контроллера и их сети отдельными объектами, поскольку соединение мост может внести некоторую ненадежность с дополнительной сложностью.

Соединение мостом двух контроллеров позволяет централизованное управление и логику обеих сетей Z-Wave. Если вы используете режим первичный/вторичный контроллер, у вас будет одна Z-Wave сеть, но администрирование/управление контроллерами будет раздельным. Вам нужно будет войти в один контроллер для его сценариев и войти в другой для его сценариев. В случае соединения контроллеров мостом, вы можете создавать все сценарии на одном контроллере и из него управлять устройствами другого контроллера.

​Для наглядности мы свели все особенности и и критерии выбора в таблицы.

Матрица возможных решений соединения контроллеров
​Условия Primary / Slave ​Bridge ​Два раздельных контроллера/сеть​​Один контроллер
Разрозненная сеть на большом расстоянии ​+ ​Если нет необходимости в совместной логике.
​Малая площадь​+
​Нехватка устройств​+
​Нехватка ресурсов контроллера​+​+
​Не поддерживается устройство или плагин​+​+
​Можно быстро исключить контроллер без влияния на другой​+
​Централизованное управление с одного контроллера​+​+
Общая логика работы контроллеров не требуется​+
​Малая сеть (20-30 узлов) на небольшой площади​+
​Объединение больших сетей (30+ узлов)​+​+

​Лучшая практика

  1. У вас имеется большое количество устройств или площадь настолько большая, что ваша Z-Wave сеть не может покрыть эту область (например, отдельно стоящие здания). Тогда возможно соединение контроллеров в режиме моста будет лучшим вариантом.
  2. У вас имеется две сети, в которых такое большое количество устройств, что исключение их из одного контроллера и добавление в другой займет много времени, и вы также хотели бы консолидировать администрирование/управление обеими сетями как единое целое? Тогда соединение мостом это вероятное ваш единственный вариант.
  3. Допустим у вас есть только несколько десятков устройств (20-30 шт.) на не очень большой площади и два контроллера. В этом случае вам скорее всего будет лучше исключить все ваших устройства из одного контроллера и добавить их в сеть другого контроллера и продолжить работу с одной сетью.
  4. Другой случай, предположим в сети вашего контроллера (например, VeraPlus) имеется всего несколько устройств или он вовсе новый, а у другого (например, VeraEdge) их в разы больше и вы желаете Vera Plus сделать главным контроллером. Для того, чтобы не исключать все устройства из Vera Edge и не добавлять их заново​ в Vera Plus (в случае добавления Vera Edge как вторичный контроллер к главному Vera Plus), вы можете добавить контроллер VeraPlus в качестве вторичного в сеть главного контроллера VeraEdge, а затем сделать Vera Plus главным (Vera Edge в этом случае станет вторичным), затем добавить "отвязавшиеся" устройства в VeraPlus и перенастроить свою логику на главном контроллере VeraPlus.
  5. Вторичный контроллер рекомендуется добавлять после того, как все устройства добавлены в сеть первичного контроллера, чтобы иметь актуальную таблицу маршрутизации.
  6. В любой из этих конфигураций, мост или первичный/вторичный контроллер, можно добавить все z-wave устройства в один контроллер, а все плагины и сценарии создать на другом. Это делается для того, чтобы снять нагрузку с контроллера, т.к. плагины требуют слишком много памяти и в случае ее нехватки возможны задержки в Z-Wave сети. В случае мостового соединения, устройства находятся на ведомом контроллере, а плагины устанавливаются на ведущий контроллер (т.к. после соединения он получает все устройства от ведомого контроллера). В случае с первичным/вторичным контроллерами, плагины и сценарии настраиваются на главном контроллере, т.к. он знает актуальные статусы устройств.  Но это не догма, можно распределить некоторые плагины по разным контроллерам для выравнивания потребления ресурсов контроллеров или в соответствии с архитектурой вашей системы автоматизации.
​Master ​Slave
​Primary/Slave ​Устройства
Плагины (часть 1)
​Плагины (часть 2)
​BridgeУстройства (зеркало)
Сценарии
Плагины
​​Устройства

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

​Z-Waver