Умный домофон SmartIntercom

Умный домофон SmartIntercom

Открытие домофона не вставая с дивана, режим "Жду курьера", беззвучный режим и многое другое.

Эта статья о моём желании скрестить подход Apple к юзабилити и устройство DIY. Для неискушенных технической составляющей — переходите к концу статьи, там описаны функции для пользователя.

Остальных прошу присоединиться к полету мысли. Итак, немного предыстории...

Начало...

В период пандемии, работая из дома, мне осточертело открывать дверь курьерам с едой, вещами и прочим, что можно заказать через интернет. В один из дней, сидя на общем созвоне с коллегам, ко мне внезапно приехал курьер. А так как я был основным докладчиком, мне было очень сложно остановить речь и открыть домофон, а потом ещё и встретить курьера. После этого я твердо решил, что мне нужно удаленное управление домофоном!

Начав поиски готового решения я встретился с некоторыми проектами. Все они были слабо документированы, либо требовали отдельных знаний Умного дома для работы.

Были и те, которые поставлены на коммерческие рельсы, например Коммендант. Но при попытке заказа его мне ответили, что по их мнению моя деятельность не направлена на развитие домофонии. Это на 100% убило желание заказа)

Ну и как ожидаемый результат — мне пришлось создавать устройство самостоятельно, по имеющимся схемам в Интернет.

Первый блин комом

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

Найдя схему адаптера для домофона, основанную на реле я принялся её собирать. Получилось круто, потому что работало это превосходно - включалась и отключалась трубка, можно было открыть дверь и просто положить трубку. Поэтому, вдохновившись результатом я пошел существенно дальше — развел свою плату, отправил в Китай и получил прототип для микрокомпьютера RockPi S.

ROCK Pi S D4WPN8 RK3308/512Mb DDR3/WiFi/BT/PoE//1Gb SD NAND
ROCK Pi S D4WPN8 RK3308/512Mb DDR3/WiFi/BT/PoE//1Gb SD NAND
Макет печатной платы первой версии платы на RockPi S<br />
Макет печатной платы первой версии платы на RockPi S
Собранная версия, полностью работоспособная на Rock Pi S<br />
Собранная версия, полностью работоспособная на Rock Pi S

Работа над ошибками

Стоимость

После скачка цен февраля-марта 2022 года покупать микрокомпьютер стало дорого. Устройство не могло конкурировать с китайскими домофонными адаптерами на андроиде — стоимость в 7+ тыс против закупочной стоимости моей версии в 3 тыс не оставляло шансов на успех для меня.

Архитектура

К сожалению, ARM Cortex-A35 был слишком производительным и бОльшая часть его возможностей для устройства не была задействована. Транжирство не сулило ничего хорошего...

Размер

Собранная коробочка никак не поместилась бы внутрь трубки =(

Умный домофон SmartIntercom

Новые цели

И вот, после неудачи появилось четкое понимание требований.

  • Нужно низкое энергопотребление, желательно от батарей
  • Нужен небольшой размер, идеально - встроить в корпус штатной трубки домофона
  • Общение с внешним миром по WiFi
  • Стабильный микроконтроллер

На рынке уже были устройства для работы с домофоном, производителей было 3. На мой искушенный взгляд функционал устройств был ограничен вот из-за чего:

  • Сложное подключение к WiFi
  • Заточенность под Home Assistant
  • Замена звуков только через FTP
  • Управление параметрами через yaml

А если совсем честно сказать, мне стало лень изучать ESPHome, на которой Роман организовывал работу устройства. Я посчитал более выгодным написать свою прошивку с расширяемым функционалом, чем ограничиваться ESPHome. И тут понеслось...

Своя, альтернативная прошивка

Я не писал до этого ПО под микроконтроллеры для использования в production, но игрался с Arduino и реализовывал некоторые проекты на PHP. Это помогло мне на старте, например, в выборе архитектуры, используемых протоколов и подходе к созданию сервиса.

Если сообществу будет интересно, я напишу о деталях реализации, но сейчас предлагаю Вашему вниманию итоговый вариант :)

Подключение по WiFi

Первый запуск устройства прост. При включении питания создается сеть Wifi SmartIntercom, подключившись к которой открывается страница настройки подключения к сети. На некоторых устройствах страница открывается с задержкой. Но выглядит она примерно так:

Подключение к Wifi сети при инициализации устройства<br />
Подключение к Wifi сети при инициализации устройства

WEB-интерфейс настройки устройства

Я очень хочу, чтобы пользоваться устройством было просто. Поэтому, недоработки других прошивок стараюсь исправить у себя - интерфейс на Bootstrap разделен логически и выглядит вот так:

Внешний вид интерфейса настройки<br />
Внешний вид интерфейса настройки

Настройки устройства через WEB

Считаю нужным обязательно показать основные настройки - здесь самый смак)

Умный домофон SmartIntercom

Режим отключенной трубки (беззвучный) — режим работы, при котором обычная трубка будет заглушена (на неё не будет приходить звонок). Параметр нельзя изменить во время звонка. Для сохранения возможности говорить с гостем у входной двери рекомендуется отключить звук на самой трубке, вместо использования режима на устройстве.Режим также можно использовать при отключении трубки при ремонте (когда снята трубка домофона);

Автоматическое открывание — функция позволяет не реагировать на звонки в домофон, а пропускать всех звонящих через определенное время длительности звонка. Длительность (в секундах) перед открытием устанавливается ползунком «Задержка автооткрытия». При входящем звонке устройство с активированным режимом осуществит открытие двери через указанное время;

Открыть при следующем звонке — режим позволит устройству открыть дверь подъезда при следующем звонке (только первый звонок после установки функции). Это полезно, когда Вы знаете, что к Вам придут гости.

Жду курьера — режим позволит устройству открыть дверь подъезда при следующем звонке (только первый звонок после установки функции) с воспроизведением аудиоинструкции курьеру. Это полезно, когда Вы знаете, что придет курьер – звонок от него обработает устройство и пропустит человека;

Автоматический сброс — при включении функции устройство при звонке будет воспроизводить посетителю звук отказа в открытии (если опция включена). “Автоматический сброс” и “Автоматическое открывание” являются взаимоисключающими функциями, поэтому допустимо включить только одну из них — при попытке активации обоих функций включенной останется только последняя.

Умный дом

Я не мог отказать уже имеющимся пользователям в интеграции с умным домом их устройств, для которых я писал прошивку. Поэтому интеграция с Home Assistant реализована почти 1 в 1 с ESPHome.

Для пользователей, кто работает с другими типами ПО умного дома остается интеграция по MQTT, к которому есть описание топиков.

Настройки работы устройства для управления по MQTT<br />
Настройки работы устройства для управления по MQTT

Что касается Home Assistant - он сразу определяет устройство и добавляет нужные элементы. Всё выглядит вот так:

Подключенное устройство SmartIntercom к Home Assistant<br />
Подключенное устройство SmartIntercom к Home Assistant

Сервис управления через Облако

Одной из задач для себя я поставил простое и удобное использование. К сожалению удобство потребовало внешних облачных сервисов. В моём случае реализованы функции:

  • Telegram - управление через бота
  • Алиса - управление через навык

В обоих случаях имеется возможность управлять настройками устройства - активировать функцию "Жду курьера", выключение звука трубки и прочее.

Если с навыком Алисы всё достаточно понятно, то для управления через Телеграм используется не так давно внедренные WebApp. Вот как это смотрится:

Telegram WebApp для управления домофоном<br />
Telegram WebApp для управления домофоном

Поскольку обратная связь от звонящего в виде голосового потока для устройства пока недоступна, то хорошим решением мне показалось включить в сообщение о звонке в Телеграм фото с входной группы. Оно берется по HTTP в формате mjpeg и добавляется в сообщению. Вот такое отображается при звонке у меня:

Отображение входящего вызова и варианты его обработки<br />
Отображение входящего вызова и варианты его обработки

Как выглядит итоговый вариант

Совсем маленькое устройство монтируется в трубку, к нему подводиться питание от адаптера, например, для телефона, а к клеммам подключается входящая линия и трубка. Пока, установку нужно делать самому, но в проекте полная версия "под ключ". То, как всё встроено посмотрите ниже.

Встроенное устройство в трубку домофона<br />
Встроенное устройство в трубку домофона

Итак, что позволяет устройство сейчас:

Подключение по WiFi к домашней сети

— Управление устройством через Алису с помощью навыка “Управление домофоном

— Управление функциями через WEB интерфейс

— Функция отключения трубки домофона с переключением вызова только на устройство

— Автоматическое открывание при следующем входящем звонке

— Автоматическое открывание при каждом звонке с регулируемой задержкой

Воспроизведение пользовательских звуков в домофон по трем событиям

— Функция “Курьер”, позволяющая воспроизвести отдельное уведомление для курьеров

Управление функциями открытия через Telegram в момент звонка

— Автоматическое обновление прошивки через Интернет

— Отключение индикации (встроенный светодиод) состояния

— Закрытие доступа к WEB интерфейсу логином и паролем

— Установка таймингов перехода в пограничные режимы

Базовая комплектация устройства<br />
Базовая комплектация устройства
Работа навыка Алисы, Telegram c фото и WEB интерфейса на стенде тестирования

Давайте поговорим в комментариях о том, как это применить и что еще хотелось бы добавить как функции?

66
16 комментариев

Надеюсь это все когда-то станет красивой коробочкой с питанием хочешь от батарейки, хочешь от сети. И подключением в стиле сяоми: далее-далее- готово.

1

Такой план, да!

1

Спасибо за Ваш труд.не всем охото возиться с еспхоум.Да и тем у кого нет сервера умного дома тоже будет интересно.

1

Приятно слышать слова поддержки, спасибо!
Очень надеюсь, что упрощу жизнь кому-нибудь своей идеей)

Молодцы, удачи в начинаниях, нужна конкуренция в этой нише чтобы другие шевелились.
Нигде не увидел информации какие типы домофонов поддерживает, цифровые поддерживаются или только координатные домофоны ?

А по поводу низкого энергопотребления советую посмотреть в сторону zigbee и сделать прошивку с режимом сна, чтобы когда не надо не расходовало энергию батареи, подобные умные устройства живут очень долго от батареек. Ну и конечно-же интеграцию запилить в SprutHub, хотя там сообщество большое если будет достойное устройство сами шаблон напишут и под zigbee и под mqtt )

Спасибо! Цифровые домофоны пока даже не начаты. Всё упирается в тестовый стенд, как для аппаратной части, так и для программной. Поэтому, пока поддерживаются только координатные домофоны.
За совет - большое спасибо!
В устройстве заявлен режим управления через "Облако", а для этого устройство должно быть online почти постоянно. Тут нужно подумать над скоростью выхода в сеть при пробуждении...

2

Отличная работа проделана! А как быть с домофонами у которых еще видео картинка приходит? У меня как раз такой VIZIT. Будет ли работать и чем отличается подключение?