Сегодня мы будем начинать делать умные гаражные ворота. Я уже собрал физическую часть, но вчерне — картинок пока не будет, а программная часть не отвечает собственным стандартам качества и поэтому это будет цикл статей. Собственно эта публикация — облагороженный черновик чтобы не забыть, второй раз такое собрать без инструкции я не смогу =)

Ворот у меня двое, уличные и гаражные, секционные и рольставни (рольворота, мелкие секции), производитель Doorhan, модели неважны. Важно что секционные 24В, а рольворота 12В. Ворота управляются пультом с двумя кнопками (от каждых ворот) и при нажатии на кнопку последовательно открывают, останавливают и закрывают. Нажимать кнопки можно примерно раз в секунду, быстрее иногда не срабатывает. Обе модели предусматривают подключение внешнего пульта-выключателя и этим мы будем пользоваться. Для откатных ворот всё будет совершенно аналогично.

Есть возможность купить ресивер/трансмиттер, который управляет устройствами по радиоканалу частотой 433Мгц, но ворота умные и не позволяют копировать пульты — их надо прописывать в приёмник. Это тоже решается RF-модулем другого типа, но я буду делать по-другому — через внешний выключатель. По замыслу производителя это проводная кнопка на стене, по нажатию которой происходит то же, что и при нажатии на пульт. На 0,2 секунды надо замкнуть вот тут:

Если замкнуть и держать (или просто передержать), ворота будут дрыгаться туда-сюда в бесконечном цикле стоп/поехали. Поэтому производитель рекомендуется возвратную кнопку с пружинкой (или использовать 4-Stop).

Задача-минимум: добавить ворота в Home.app, чтобы управлять ими (вкл/выкл/стоп), смотреть статус (открыто/закрыто/непонятно/обнаружено препятствие), получать уведомления об открытии при постановке на охрану.

Задача-максимум: получить полный контроль для автоматизации не через Home.app (например если летом в дневное время температура в гараже больше 28 градусов (или влажность больше чем на улице на 27 процентов) и дома взрослые, открыть гараж, и если после захода солнца в нем никого и вручную его не открывали, закрыть его), навешать больше датчиков.

Убер-задача: повесить это всё (2 ворот, несколько датчиков) на одну управляющую железку. Бонус: открывать ворота на узкую щель чтобы кот успел свалить из гаража, закрыть ворота за котом, сообщить об этом факте.

Нам нужно следующее:

Название Что делает Обязательно Цена
ESP8266 Управляет всем этим да 170 руб.
Питание для ESP8266 В принципе, если модуль ворот 12-вольтовый, можно запитать напрямую от него. Иначе подойдет обычная microusb зарядка для телефона да 30-700 руб.
Реле 3/5В ESP8266 будет переключать это реле, которое будет замыкать нужные нам контакты в блоке ворот да 150x2 руб.
Магнитоконтактный извещатель Получить статус ворот — "открыты или нет". А еще мы можем получить статус "закрыты или нет", поэтому их надо два на каждые ворота нет (70-500)x4 руб.
Датчик препятствия Чтобы блокировать закрытие если что-то мешает. Я не смог найти, пока собираю без него нет 300 руб.?
Датчик температуры/влажности Чтобы знать что происходит в гараже и на улице нет 40-300 руб.
Датчик движения Чтобы не закрыть в гараже кота =) нет 70-300 руб.
~1300-2000 руб.

Используемое программное обеспечение:

  • sonoff-tasmota — софт для esp8266, умеет всё. Получает информацию с датчиков и управляет переключателями через mqtt.
  • Mosquitto — брокер mqtt.
  • nodered — мозг автоматизации. Создает в Home.app виртуальный аксессуар — гаражные ворота, читает по mqtt информацию с датчиков, анализирует её и туда же отправляет команды.

Тут надо остановиться, выдохнуть и посмотреть вот сюда: RavenCore. Это прошивка для ESP8266, которая не требует ничего из вышеперечисленного и выполняет те же функции, вещь в себе. Она не требует эмуляции Моста (NodeRED, Homebridge), устройство с ней добавляется как отдельный аксессуар и даже если домашний сервер ляжет, все будет работать. Минус один — никакой автоматизации, никаких датчиков температуры/влажности (только открыто/закрыто и [в будущем] препятствия). Оно стабильно, пользовался около месяца, нареканий нет. Вдыхаем обратно, сейчас мы будем делать хардкорно и без компромиссов.

Настройка sonoff-tasmota  сложна и потребовала от меня не одного подхода чтобы разобраться. В это время я по неаккуратности спалил перепаянный на реле Sonoff Basic, но это и к лучшему — к Sonoff можно было подключить лишь один датчик, а к NodeMCU v3 — целых 5.

Тут основная сложность в подключении нескольких датчиков одновременно и переделки выключателя в "дёргалку" — я писал в начале про 0.2 секунды. Всё это будем делать программно.

Часть 2 — собираем железо (тут будет ссылка)

Часть 3 — настраиваем софт (тут будет ссылка)