Есть такой интересный проект по превращению обычного аналогового домофона в умный, с прокидыванием в Home assistant. Я данный проект доработал, перевел полностью на оптроны. Также была разработана миниатюрная плата. И уже много счастливых обладателей таких плат домофона.
Единственный минус этой платы в том, что при отключении питания, трубка домофона отключается и он перестает работать. Есть оптроны с НЗ состоянием, при отсутствии питающего напряжения, но проблема в том, что у этих оптронов высокое сопротивление в замкнутом состоянии. А домофон определяет состояние по изменению сопротивления. В результате поисков все-таки был найден подходящий оптрон CPC1114. Причем этот оптрон в таком же корпусе, что и исходный KAQY212, поэтому доработка не представляет трудности. Ну и в прошивке надо всего лишь инвертировать выход на этот оптрон. В данной схеме присутствует перемычка А1, она была заложена для возможности управления "цифровым" домофоном. К сожалению, в близком окружении ни у кого знакомых такого домофона нет, а удаленно пока не получилось победить.
Это было лирическое отступление. Но статью я задумал не об этом.
Пользоваться домофоном стало очень удобно, я даже себе брелок не беру. Включаю автооткрытие с телефона и набираю номер квартиры. Не хватает, конечно, звукового канала, но это нереально, и требует больших затрат на разработку концепции. А вот по части видео родилась идея. У нас в многоквартирном доме есть система наблюдения. И жильцам предоставлен доступ. Система использованная в нашем доме Macroscop. Данный сервер позволяет объединить несколько различных систем в одну. На сайте много информации по данной системе, есть даже SDK. Админит данную систему мой товарищ. И он мне предоставил временно админские права, для изучения вопроса. Как оказалось, в системе есть своя интеграция с Telegram и пользователю предоставляется бот, который по запросу присылает скриншот с необходимой камеры. Но проблема в том, что этот бот привязывается к конкретному пользователю, и присылает ответ только ему. А как отправить запрос боту, да еще и от другого имени из Home assistant, я не нашел. Система позволяет отправлять API запросы, но такого запроса, по которому система отправляла бы мне скриншот в телегу, я тоже не нашел, техподдержка сказала, что такого запроса нет. Пришлось дальше читать SDK.
Нашел, что Macroscop умеет отдавать видео по HTTP запросу. Формат в документации указан следующий:
/video?channelid= &login=&password=<хэш-строка MD5 пароля>
Правда набор этого запроса в браузере ничего не дал, просто черный экран и все. Ладно, сделаем компонент камеры в НА:
stream: camera: - platform: ffmpeg input: http://***********/video?channelid=*****&login=****&password=***** name: camera1
Прокидываем компонент камеры в Ловелейс, и..., ничего, черный экран. И вот что находим по этому поводу в документации:
При обращении к интерфейсу /video, сервер Macroscop будет возвращать видео в оригинальном (полученном от камеры) формате. Для некоторых приложений и непроизводительных устройств декодирование видео в формате H.264 или отображение MJPEG-видео в оригинальном разрешении может составить проблему. Для таких случаев в Macroscop есть CGI-обработчик /mobile. При запросе к нему с параметрами, аналогичными запросу /video (логин, пароль, имя/номер/ идентификатор канала, воспроизведение звука, параметры архива), сервер Macroscop будет возвращать видео в формате MJPEG (в том числе и для потоков, которые транслируются с камер в формате H.264 и MGEG-4) в фиксированном разрешении, определенном в приложении Macroscop Конфигуратор (вкладка Серверы, блок настроек Подключение мобильных устройств).
Ок, пробуем переформатировать строку запроса:
stream: camera: - platform: ffmpeg input: http://***********/mobile?channelid=******&login=****&password=***** name: camera1
Углубляемся снова в документацию и видим, что по такому запросу система отдает картинку в самом низком разрешении, если мы хотим увеличить разрешение, то в запросе это надо указать. Добавляем параметры resolutionx и resolutiony. Полноценного доступа к серверу у меня нет, поэтому все параметры я там посмотреть не могу (я сам настоял на таком, чтоб ни дай бог ничего там не сломать). Поэтому эти параметры подбирал экспериментальным путем.
stream: camera: - platform: ffmpeg input: http://***********/mobile?channelid=*****&login=****&password=*****resolutionx=1024&resolutiony=768 name: camera1
Получаем на выходе вполне приемлемую картинку. Правда такой момент: если установлен компонент в Ловелейс, у нас постоянный трафик из интернета. Поэтому я у себя его отключил. Нам нужен только скриншот в момент звонка в домофон.
Николай Васильчук (anonym.tsk) сделал отличный packages файл, который автоматизирует работу с платой домофона и отправкой уведомлений в телегу. Вносим в участок, который отправляет сообщение в телеграм о входящем звонке, отправку скриншота. Во временную папку сохраняем скриншот, лучше сделать с фиксированным именем, тогда файл каждый раз будет перезаписываться. И отправляем этот файл в Telegram.
automation: - alias: Domofon incoming call notification initial_state: true trigger: platform: state entity_id: binary_sensor.domofon_incoming_call to: 'on' action: - service: camera.snapshot data: entity_id: camera.camera2 filename: '/tmp/vhod_dom.jpg' - service: notify.telegram data_template: message: "Звонок в домофон {% if is_state('switch.domofon_automatically_open', 'on') or is_state('switch.domofon_automatically_open_once', 'on') %}(откроется автоматически){% endif %}" data: inline_keyboard: - "{{ '-' if is_state('switch.domofon_automatically_open', 'on') or is_state('switch.domofon_automatically_open_once', 'on') else 'Открыть:/domofon_open, Отклонить:/domofon_reject' }}" # data: photo: - file: /tmp/vhod_dom.jpg caption: 'Звонок в дверь'
Папку /tmp надо внести в allow list.
homeassistant: packages: !include_dir_named packages allowlist_external_dirs: - /tmp
Как оказалось, сервер Macrosop умеет отдавать и RTSP поток, но его надо включить на сервере, он жрет ресурсы. Да и к тому же, эта опция платная. Поэтому я не стал напрягать админов с этим.
А если сервер Macrosop умеет отдавать снапшот (что скорее всего), то можно сразу в телеграм отправлять его, не сохраняя в /tmp
Это понятно, но в документации этого не нашёл. Техподдержка не знает.
Техподдержка ответила мне, есть запрос снапшота, уже исправил у себя.
Друзья, а возможно ли железку домофона купить готовую, а не самому паять. Если наберется нормальное количество заявок - это будет реально?
Возможно, только немного опоздал. Разошлась последняя партия. Если человек 20 наберется то может еще закажу.
Присоединяюсь! tg @mxtnr
У нас обычный домофон без видео, хочу сделать так чтобы HA кидал на телефон пуш когда туда звонят и я мог его потянуть и принять/отклонить
Скорее всего HA так не позволит тогда придётся своём апп на айфон сделать и интегрировать с НА
А входить набирая номер квартиры это как-то не приятно. Скорее всего таким не буду пользоваться, вот бы просто кнопку в Home секции Control Centre (шторка с настройками)
Пиши мне в телеграмм @Ge1mer
Я делаю несколько снапшотов, чтобы наверняка) есть задержки с камеры
Пользуюсь таким устройством уже года три ) очень удобно, когда установили домофон дом ру, добавил интеграцию в ха и из нее так же настроил,что присылает скриншот в телегу. Хотелось бы сделать распознавание лиц, но качество так себе у них. Не думали что можно возле подъездной двери разместить есп32 и бле трекер и оптроном на кнопку выхода открывать дверь при приближении ? Давно эта мысль крутится, только дом.ру боюсь не оценить апгрейд такой )))
У меня как раз "цифровой" домофон, готов принять участие в тестирование и отладке, можем это обсудить?
Давай обсудим пиши в телеграме @Ge1mer
По вопросам приобретения плат заходим сюда
https://sprut.ai/static/media/cache/00/58/28/5/7305825/74692/1000x_image.jpeg?1613121872" alt="1000x_image.jpeg?1613121872" />https://t.me/domofon_esp">https://t.me/domofon_esp