Интеграция привода ворот Hormann ProMatic 3 в iH через MegaD



  • В моем гараже установлены отличные секционные ворота немецкой фирмы Hormann. В комплекте к ним был заказан привод ProMatic 3, который шел с одним радио брелком. Этот брелок я сразу отдал супруге, а сам в начале пользовался кнопкой, находящейся на корпусе привода ворот, а потом отдельной вынесенной на стену кнопкой. Дополнительный радиобрелок стоит от 3000 р и по сути никакой смысловой нагрузки для меня не несет - лишь вместе с радиометкой занимает место в кармане...

    Hormann_ProMatic-3.png
    А вот смартфон - всегда с собой, всегда в руке, поскольку сейчас он заменяет собой практически все (еще бы каждому по Tesla и тогда карманы точно были бы пустыми)! Поэтому еще при проектировании своего гаража я знал, что буду в нем размещать контроллер MegaD, который будет управлять освещением, вентиляцией, подогревом полов и контролем доступа - электромагнитным замком на двери и приводом секционных ворот. Ворота Hormann с приводом были выбраны по лучшему соотношению цена/качество и за 2 года зарекомендовали себя с наилучшей стороны! Пару слов о самих воротах - ни в какое сравнение с поделками российского производства ставить не стоит! Конструкция, фурнитура, инструкция действительно продуманы! Главное чтобы установщики были адекватными и хотя бы раз прочитали инструкцию перед монтажем, иначе в ход идет УШМ и молоток, которые тут совсем не нужны! Привод отлично работал даже при затяжных морозах до -42 (февраль 2019 года в Томске), притом что стены гаража не были утеплены, а потолка вообще не было.
    Итак, изучая инструкцию на привод ProMatic 3 я выяснил, что кроме "Внешнего импульсного клавишного выключателя" к приводу можно подключить "Внешний импульсный клавишный выключатель для частичного открывания":
    ProMatic-3_Switch_Connect.png
    Принцип его работы простой:

    • кратковременно нажимаем правую кнопку и ворота открываются;
    • кратковременно нажимаем левую кнопку и ворота закрываются, правда закрываются до "режим проветривания"! Поэтому для полного закрытия кнопку необходимо нажать еще раз.

    Собственно вместо этих кнопок я использовал 2 реле уже устаревшего блока MegaD-7I7O-R чтобы управлять воротами через сервер iH.
    Кроме этого, далее читая инструкцию обратил внимание на то что DIP-переключателями привода ворот можно сконфигурировать его опциональный выход таким образом, что на нем будет "Сигнал о достижении конечного положения Ворота Закр". Бинго! - это ведь по сути датчик состояния ворот и дополнительный СМК на ворота можно не устанавливать. Опциональный выход напрямую подключил к одному из входов блока MegaD-7I7O-R:
    ProMatic-3_Output_Connect.png

    Таким образом, для управления воротами гаража в системе создал 3 устройства:

    1. ACTOR_GATE_UP - Актуатор открытия ворот
    2. ACTOR_GATE_DOWN - Актуатор закрытия ворот
    3. SGERKON4_08 - Датчик положения ворот гаража

    Вечер и половина ночи ушли на написание сценария и проверки его работы. Сценарий достаточно не тривиальный поскольку ради будущих "плюшек" и не совсем стандартного закрывания ворот (см.выше) решил управлять не самими актуаторами, а запускать соответствующий сценарий, передавая в него внешние команды ("Дополнительные параметры"). Также можно было напрямую передавать команды плагину (например, 12:1;p10;12:0), но опять же - дополнительного функционала, связанного с открытием и закрытием ворот, тогда не реализовать. О том что же хочется сделать дополнительно ("плюшки" к основному функционалу) читайте далее.

    По команде открытия ворот:
    1.1. Сформировать импульс на актуаторе ACTOR_GATE_UP.
    1.2. Включить подсветку проема гаражных ворот (RGB-лента на базе WS2818).
    1.3. Через 10-15 секунд включить основное освещение в гараже, если оно не было включено ранее (ворота открываются снаружи).
    1.4. Через 20-25 секунд включить дополнительное освещение в гараже, если оно не было включено ранее (ворота открываются снаружи).
    1.5. Через 30-40 секунд включить освещение на выходе из гаража, если оно не было включено ранее (по сумеречному датчику).
    По команде закрытия ворот:
    2.1. Сформировать импульс на актуаторе ACTOR_GATE_DOWN.
    2.2. Переключить подсветку проема гаражных ворот (RGB-лента на базе WS2818).
    2.3. Через 22-23 секунды (именно столько закрываются мои ворота, имеющие стандартную высоту 2.5 м и ширину 3 м до положения "Режим проветривания") сформировать повторный импульс на актуаторе ACTOR_GATE_DOWN.
    2.4. Через 30-31 секунду (примерно 5-6 секунд требуется для полной доводки ворот в положение "Закрыто") проверить положение ворот и уведомить пользователя push-сообщением ("Ворота гаража закрыты" или "Ворота гаража не закрыты!").
    2.5. Через 60-120 секунд выключить освещение в гараже, если за это время не срабатывали датчики движения.

    Как выяснилось в дальнейшем начинать нужно с малого и только одним сценарием тут не обойтись! Первый сценарий (еще допиливается), позволяющий реализовать пункты 1.2-1.5 и 2.4-2.5, завязан на датчик положения ворот гаража:

    /** 
    * @name Охрана - открытие ворот гаража по СМК 
    * @desc Выполнение действий в зависимости от состоянию датчика положения ворот
    * @version 4  
    */
    
    //Активные элементы управления
    const smk               = Device("SGERKON4_08");      //Датчик положения ворот гаража
    
    //Приборы освещения в гараже
    const lamp_warm_garage  = Device("LAMP4_06");         //Освещение в теплом гараже
    const lamp_cold_garage  = Device("LAMP4_08");         //Освещение в холодном гараже
    const lamp_above_door   = Device("LAMP4_09");         //Освещение на дверью гаража
    const lamp_gate         = Device("RGBLAMP4_01");      //RGB лента гаража
    const backlight         = Device("ACTOR_RGBLAMP4_01");//Сценарии RGB ленты гаража
    
    startOnChange(smk);
    
    script({
      time_lamp: 15,        //Время включения/выключения освещения с момента подачи команды
      
      start() {
        //Ворота открываются (из веб-интерфейса или ключа)
        if(smk.isOn()) {
          backlight.setValue(12);       //Подсветка проема ворот "TronEffect"
          
          /*
          if(lamp_cold_garage.isOff()) {
            this.DelayedSwitchOn(lamp_cold_garage, this.time_lamp);  //Включение освещения в холодном гараже
          }
          */
        }
        //Ворота полностью закрыты
        else {
          this.info("pushnotification", "OWNER", "Ворота гаража закрыты");
          backlight.setValue(0);       //Подсветка проема ворот выключена
          
          /*
          if(lamp_cold_garage.isOn()) {
            this.DelayedSwitchOff(lamp_cold_garage, this.time_lamp);  //Выключение освещения в холодном гараже
          }
          */
        }
      },
      
      //Функция отложенного на time-секунд включения актуатора
      DelayedSwitchOn(actor, time) {
        this.actor = actor;
        this.startTimer(actor.id, time, "ActorOn");
      },
      
      //Функция отложенного на time-секунд выключения актуатора
      DelayedSwitchOff(actor, time) {
        this.actor = actor;
        this.startTimer(actor.id, time, "ActorOff");
      },
      
      //Функция включения актуатора
      ActorOn() {
        this.actor.on();
      },
      
      //Функция отключения актуатора
      ActorOff() {
        this.actor.off();
      }
    });
    

    В сценарии используется устройство backlight - это аналоговый актуатор, управляющий RGB-лентой (подробнее описано тут - см.вариант 2). В данном случае если датчик положения ворот размыкается (СМК в состоянии "Открыто"), то включается один из эффектов подсветки проема ворот. Если датчик замыкается (СМК в состоянии "Закрыто"), то подсветка выключается и формируется push-сообщение о том, что "Ворота гаража закрыты". Как понимаете - этот сценарий работает и при управлении воротами из веб-интерфейса/мобильного приложения, и при управлении ими с помощью брелка или физических кнопок управления!

    Теперь о сценарии, в котором реализуется активное управление воротами:

    /** 
    * @name Охрана - открытие ворот гаража  
    * @desc Открытие/закрытие ворот гаража из веб-интерфейса и приложения (ProMatic 3) 
    * @version 4  
    */
    
    //Активные элементы управления
    const gate_up     = Device("ACTOR_GATE_UP");    //Актуатор открытия ворот
    const gate_down   = Device("ACTOR_GATE_DOWN");  //Актуатор закрытия ворот
    const smk         = Device("SGERKON4_08");      //Датчик положения ворот гаража
    
    //Приборы освещения в гараже
    const backlight         = Device("ACTOR_RGBLAMP4_01");//Сценарии RGB ленты гаража
    
    script({
      actor: "",            //Переменная для хранения имен актуаторов
      time_click: 1,        //Время перехода актуаторов ворот в состояние "Включен"
      time_down: 23,        //Время закрытия ворот с момента подачи команды до "режим проветривания"
      time_check: 30,       //Время проверки состояния ворот с момента подачи команды
      
      start(param) {
        if(param == "up") {
          this.ClickActor(gate_up);     //Открытие ворот гаража
          //При открытии сработает датчик положения ворот и запуститься сценарий, включающий:
          //- подсветку проема ворот "TronEffect"
          //- освещение в гараже
          
          //Если ворота закрываются, но нужно открыть их снова, то останавливаем таймеры "полного закрытия"
          this.stopTimer("GateDownFully");
          this.stopTimer("CheckStatusGate");
        }
        
        if(param == "down") {
          this.ClickActor(gate_down);   //Закрытие ворот до "режим проветривания"
          backlight.setValue(9);        //Подсветка "RandomPlay, Num=3"
          
          //Таймер "полного закрытия" ворот и проверки их состояния
          this.startTimer("GateDownFully", this.time_down, "GateDownFully");
          this.startTimer("CheckStatusGate", this.time_check, "CheckStatusGate");
        }
      },
      
      CheckStatusGate() {
        //Ворота не закрыты
        if(smk.isOn()) {
          this.info("pushnotification", "OWNER", "Ворота гаража не закрыты!");
        }
        //При полном закрытии сработает датчик положения ворот и запуститься сценарий, выключающий:
        //- подсветку проема ворот "TronEffect"
        //- освещение в гараже
        //и формирующий push-уведомление о закрытии ворот
      },
      
      //Функция включения актуатора на время this.time_click
      ClickActor(actor) {
        this.actor = actor;
        this.actor.on();
        this.startTimer(actor.id, this.time_click, "ActorOff");
      },
      
      //Функция для полного закрытия ворот
      GateDownFully() {
        this.ClickActor(gate_down);
      },
      
      //Функция отключения актуатора
      ActorOff() {
        this.actor.off();
      }
    });
    

    Самое главное - его активация! Сценарий активируется либо элементами "button", размещенными на мнемосхемах, либо записями в расписании (конечно если это кому-то потребуется). Кнопки с настройками в мобильном интерфейсе моей системы выглядит так:

    Button_to_Activate_the_Scenario.png

    На примере кнопки "Открыть гараж" - при ее нажатии запускается сценарий "Охрана - открытие ворот гаража", код которого приведен выше, и в него в качестве param передается команда "up". Соответственно, выполняется условие if(param == "up"). В остальном сценарий понятен, тем более в нем есть обширные комментарии.

    Про интерфейс взаимодействия. Для описанного функционала наиболее востребован мобильный интерфейс. Для того чтобы управлять воротами гаража и контролировать их положение у меня есть следующие элементы:

    1. Кнопки управления в "Оперативном меню"
      intraHouse_Buttons_for_Gate_Control.png
    2. Индикатор положения ворот гаража в "Строке состояния"
      intraHouse_Status_Bar.png
      Первые, как уже писал ранее, сделаны на основе примитива "Button", второй сделан на основе устройства SGERKON4_08 ("Датчик открытия (геркон)").

    Таким образом, привод секционных гаражных ворот Hormann ProMatic 3 был успешно интегрирован в систему автоматизации intraHouse. Теперь будем ждать когда разработчики внедрят функционал геолокации чтобы при подъезде к гаражным воротам они открывались сами:)

    Update #1: практика открывания/закрывания ворот в зимний период времени (пока до -20) показала, что нужны бОльшие задержки! Время закрытия ворот до режима "Проветривания" у меня составило 23-24 секунды, полное закрытие - 6-8 секунд. Поэтому в переменных сценария прописал следующие значения:

    time_down: 25,        //Время закрытия ворот с момента подачи команды до "режим проветривания"
    time_check: 35,       //Время проверки состояния ворот с момента подачи команды
    


  • @Alex_Jet , отличное решение, реализовал похожую историю для откатных ворот !
    Но столкнулся с другим неудобством. Если ворота все-же открываются со штатного пульта, то IntraHouse, что ворота активны понимать не будет, и как следствие, умный сценарий по подсветке парковки отрабатываться не будет.
    Решил добавлением внешнего радиоприемника, куда завел все имеющиеся пульты ДУ. При срабатывании пульта замыкаются сухие контакты приемника, далее на контроллер. По сути аналог ваше кнопки.
    То есть нажали пульт, он увиделся штатным радиоприемником ворот(ворота поехали) и вторым радиоприемником, чисто информационным, для системы. Ну а далее все как у вас, уведомления, свет, смс и т.д. Хочешь с приложения, хочешь с пульта, пульт все таки удобно.
    Поддерживаю ожидание решения открытия ворот по геолокации ! Еще хочу прикрутить софт открывания ворот по номеру автомобиля с камер наблюдения.



  • @fanagor, разве у электроники привода нет никаких "герконов" в крайних точках? Или он по току останавливается (упирается в ограничители и ток в цепи мотора повышается)? "Чувствовать" что ворота поехали можно с помощью трансформатора тока. А вот понимать что ворота в крайнем закрытом положении - важно! И как по мне - тут именно СМК напрашивается (сам хотел устанавливать, пока не прочитал инструкцию).



  • @Alex_Jet, останавливается в конечных положениях по механическим концевикам, которые установлены на зубчатой рейке. У меня привод NICE, сигналы концевиков не передает. По крайней мере не нашел. (хотя, надо глянуть еще раз). Вопрос не в этом, концевики, трансформаторы тока, СМК, не важно, требуют проводов для коммутации и передачи сигнала, если в секционных, предполагаю, пробросить лишнюю трассу до контроллера наверно не проблема, то в моем случае, лишних проводов не заложил к приводу. Контроллер в доме, ворота на въезде, все в земле, плитка тротуарная, заезды и т.д.



  • Пользователь @fanagor написал в Интеграция привода ворот Hormann ProMatic 3 в iH через MegaD:

    Контроллер в доме, ворота на въезде, все в земле, плитка тротуарная, заезды и т.д.

    В этом случае второй контроллер к воротам, и связь по WiFI.



  • @Erik, да смысла не вижу городить. Ради конечного положения ворот ? Оцениваю визуально. А задачу запускать сценарий со штатного пульта ДУ решил как писал выше.


Авторизуйтесь, чтобы ответить