Статья

Прокидываем гаражные ворота в Sprut.Hub. Часть 2.

В первой части моей статьи  мы проговорили о "железках", о том как их подключить и настроить. Несмотря на то, что мой пример построен на блоке WirenBoard WB-MR6C v.2, текущая статья будет интересна всем, кто ищет решение по управлению гаражными воротами и в частности тем, кто использует в качестве основного интерфейса управления воротами экосистему Apple с протоколом HomeKit и приложением Дом. 

В данном приложении имеется отдельный сервис - Гаражные ворота, у которого есть три основные характеристики Текущий режим, Целевой режим и Обнаружение препятствия.

Текущий режим - это непосредственный статус ворот, который может иметь 5 значений:

  1. Открыты
  2. Закрыты
  3. Открываются
  4. Закрываются
  5. Остановлены

Целевой режим - это то, что мы хотим получить от ворот, нажимая иконку в приложении. Имеет только два значения:

  1. Открыты
  2. Закрыты

Обнаружение препятствий - название режима говорит само за себя. Я не рассматриваю использование данного режима в своем кейсе. 

В зависимости от комбинации значений Текущего и Целевого режима формируется статус ворот в приложении Дом и изменяется пиктограмма. Ниже я привожу примеры формирования статусов в зависимости от разных комбинаций, но основными из них являются только 4, которые я залил зеленым маркером.

Если бы мы управляли воротами только из интерфейса приложение, то Целевой режим задавался бы как раз нажатием на иконку, но, как мне кажется, у владельцев данной автоматики как минимум имеется физическая кнопка, которая управляет приводом ворот, поэтому надо скриптами задавать значение как текущему, так и целевому режиму. 

В первой части статьи я говорил о том, что привод управляется замыканием сухих контактов, а это действие и является процессом формирования Целевого режима.

И так, для начала создаем виртуальный аксессуар Гаражные ворота и пишем первый блочный сценарий.

Изменение целевого режима приводит к замыканию сухого реле. Здесь будьте внимательны! В первой части я рассказывал о том, что мое реле само отключится примерно через 1 секунду. Если будете делать на основе других компонентов, то надо предусмотреть отключение реле или через задержку в сценарии или настройках самого реле.

Далее уже сценарий поинтереснее, которым мы будем формировать статус ворот.

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

Глобально в сценарии 4 независимых блока Если, в которых исходя из статуса датчиков касания, можно сформировать наши 4 основные статуса.

И вот здесь обязательно надо проговорить о следующем. В каждом блоке Тогда вы можете видеть, как я деактивирую сначала наш первый сценарий замыкания сухих контактов, потом формирую статус ворот и опять активирую сценарий. Сделано это для того, чтоб при задании Целевого статуса ворот у нас не произошла реакция на запуск первого сценария, который приводится в действие как раз изменением Целевого режима. А чтобы соблюсти последовательность в выполнении блоков внутри блока Тогда, нам ОБЯЗАТЕЛЬНО надо в настройках сценария активировать режим "Последовательное выполнение".

Что в итоге? 

  1. Мы сделали два сценария, один замыкает сухое реле, второй формирует статусы ворот.
  2. Реализовать можно на различных компонентах (даже упростить, убрав один датчик касания)
  3. Также можно еще глубже погрузиться и прикрутить еще статусы обнаружения препятствия.
  4. Без проблем прокидывается в Яндекс

И все это благодаря проекту Sprut.hub ))

З.Ы. Хочется доработать эти сценарий до уровня плагина, когда ты просто указываешь два свои датчика касания, какой из них верхний, какой нижний и всё.


Спасибо. Можно версию с одним датчиком открытия. И файл сценария для импорта в спрут
как по мне, самая большая проблема - это отсутствие обратной связи от ворот при штатном способе открытия, например, с брелока.
Ну для этого уже есть кастомная логика. Валяется где то 😂 По крайней мере на одних воротах она работает нормально. Ну нет у меня ворот чтобы тестить 😂😂
Для этого и надо ставить, как минимум, один геркон
Отличная статья!
Можно сценарий для спрута?
На фото не всё читаемо.
Победил, табличка помогла! С одним датчиком работает.
Спасибо автору.
Привет, поделитесь пожалуйста сценарием под один датчик.

Вернуться назад
Вернуться назад