1. Установка Hikvision Doorbell в Home Assistant
Переходим Настройки -> Дополнения -> Магазин дополнений -> Репозитории (в правом верхнем углу).
Вставьте следующий URL-адрес в поле ввода: https://github.com/pergolafabio/Hikvision-Addons выбираем Hikvision Doorbell, далее открываем это дополнение и в верхней вкладке Конфигурация в поле DoorBells дописываем:
- name: Domofon
ip: 192.168.10.211
username: admin
password: Пароль
Переходим во вкладку Информация запускаем Hikvision Doorbell

При этом если у нас уже установлен и настроен MQTT, то в нем появится Домофон.

Хотите получать уведомления в Telegram с фото и информацией о звонке с домофона через Home Assistant. Ниже я предоставлю вам конфигурацию, которая позволит это реализовать, используя MQTT для детектирования звонка и вашу камеру для снимков.
Шаги для реализации:
- Добавление камеры.
- Создание сенсора для отслеживания звонка через MQTT.
- Создание автоматизации для отправки уведомлений в Telegram.
Конфигурация Home Assistant:
Добавьте следующие секции в ваш configuration.yaml. Если у вас уже есть некоторые секции, просто добавьте в них соответствующие строки.
# Камера домофона
camera:
- platform: ffmpeg
name: "Домофон"
input: rtsp://admin:Пароль@192.168.10.211/Streaming/Channels/101
mqtt:
binary_sensor:
- name: "Doorbell" # Имя сущности Home Assistant будет binary_sensor.doorbell
# ИЗМЕНЕНО: теперь слушаем ТОЧНЫЙ топик вашего домофона для состояния звонка
state_topic: "hmd/sensor/Domofon/Call-state"
# ИЗМЕНЕНО: payload_on теперь 'ringing'
payload_on: "ringing" # Определим payload_off, чтобы сенсор мог возвращаться в 'off'
payload_off: "idle" # Предполагаем, что 'idle' - это состояние покоя,
# но проверьте, что домофон отправляет, когда звонок завершен.
# Если домофон не отправляет 'idle', то просто не будет payload_off
device_class: occupancy # Класс устройства, указывающий на присутствие (рекомендовано)
После перезапуска Home Assistant:
Как проверить
- Имитируйте вызов домофона:
- В «Инструменты разработчика → Состояния» найдите sensor.domofon_call_state.
- Установите состояние ringing (если было idle).
Автоматизация для уведомлений Telegram:
alias: Уведомление в Telegram при вызове домофона
description: Отправляет сообщение и фото в Telegram‑канал при вызове домофона
triggers:
- entity_id: sensor.domofon_call_state
to: ringing
from: idle
trigger: state
actions:
- data:
target:
- -10№группытелеграмм3
message: "Вызов с домофона! Время: {{ now().strftime('%H:%M:%S') }}"
action: telegram_bot.send_message
- data:
target:
- -10№группытелеграмм3
file: /config/www/snapshot.jpg
caption: Снимок с домофона при вызове
action: telegram_bot.send_photo
Рекомендация: Используйте редактор, который поддерживает YAML-синтаксис (например, VS Code с расширением Home Assistant Config Helper или add-on File editor в Home Assistant). Он часто подсвечивает ошибки отступа.
После проверки кода и перезагрузки НА, на главную панель добавляем карточку “Picture Glance”, в которой дополнительно указываем объекты такие как: Ответить или Отклонить вызов и открыть калитку.

Небольшое отступление в связи с выявленной проблемой: сенсор sensor.domofon_call_state имеет три состояния (ringing, idle, Неизвестно),
нужно доработать автоматизацию:
- Чётко определить, какое состояние считать «вызовом» (обычно ringing).
- Исключить ложные срабатывания на состояние Неизвестно.
- Добавить обработку ошибок, если состояние неожиданно меняется.
Исправленный YAML‑код автоматизации
- id: domofon_telegram_notification
alias: Уведомление в Telegram при вызове домофона
description: Отправляет сообщение и фото в Telegram‑канал только при состоянии ringing
trigger:
platform: state
entity_id: sensor.domofon_call_state
to: 'ringing' # Срабатывает ТОЛЬКО при переходе в ringing
from:
- 'idle' # Разрешённые исходные состояния
- 'Неизвестно' # Чтобы не пропустить вызов, если предыдущее состояние было «Неизвестно»
condition:
# Дополнительная проверка: текущее состояние точно ringing (защита от глюков)
- condition: template
value_template: "{{ states('sensor.domofon_call_state') == 'ringing' }}"
action:
# Шаг 1: Сохраняем снимок с камеры (замените entity_id на ваш)
- service: camera.snapshot
data:
entity_id: camera.your_camera_entity # Например, camera.front_door
filename: /config/www/snapshot.jpg
# Пауза на 3 секунды (чтобы снимок точно сохранился)
- delay: '00:00:03'
# Шаг 2: Отправляем текстовое сообщение с временем
- service: telegram_bot.send_message
data:
target:
- -IDгруппыТелеграмм
message: >
Вызов с домофона!
Время: {{ now().strftime('%H:%M:%S') }}
Состояние: {{ states('sensor.domofon_call_state') }}
# Шаг 3: Отправляем фото
- service: telegram_bot.send_photo
data:
target:
- -IDгруппыТелеграмм
file: /config/www/snapshot.jpg
caption: "Снимок с домофона при вызове"
mode: single # Не запускать несколько копий автоматизации одновременно
Ключевые изменения и пояснения
from: ['idle', 'Неизвестно']Автоматизация сработает, если состояние изменилось на ringing из:idle (штатный сценарий),
Неизвестно (защита от пропусков, если сенсор временно «потерял» состояние).
Условие conditionДополнительно проверяет, что текущее состояние сенсора — ringing.
Исключает ложные срабатывания, если триггер сработал ошибочно.
condition:
- condition: template
value_template: "{{ states('sensor.domofon_call_state') == 'ringing' }}"
Пауза delay: '00:00:03'Даёт время камере сохранить снимок перед отправкой в Telegram.
Без паузы фото может не успеть записаться на диск.
Расширенное сообщение в TelegramДобавляет текущее состояние сенсора в сообщение (полезно для отладки).
Использует > для многострочного текста.
message: >
Вызов с домофона! Время: {{ now().strftime('%H:%M:%S') }}
Состояние: {{ states('sensor.domofon_call_state') }}
mode: singleЗапрещает запуск нескольких копий автоматизации одновременно.
Защищает от «лавины» сообщений при нестабильном состоянии сенсора.
Как проверить работу
Имитируйте вызов домофона:В «Инструменты разработчика → Состояния» найдите sensor.domofon_call_state.Установите состояние: ringing (если было idle или Неизвестно).
Проверьте Telegram‑канал:Должно прийти:Сообщение с временем и состоянием,
Фото с подписью.
Если фото не пришло:Убедитесь, что файл /config/www/snapshot.jpg существует (см. предыдущие инструкции по проверке прав и пути).
Увеличьте паузу delay до 00:00:05.
Проверьте логи HA:Фильтр: domofon_telegram_notification, camera.snapshot, telegram_bot.
Ищите ошибки:
«Failed to save snapshot» → проблема с камерой,
«File not found» → неверный путь или файл не создан,
«Permission denied» → нет прав на запись/чтение.
Добавьте принудительный сброс через автоматизацию
При вызове состояние становится ringing и так и остается при окончании вызова
- id: domofon_state_reset
alias: Сброс состояния домофона после вызова
trigger:
- platform: state
entity_id: sensor.domofon_call_state
to: 'ringing'
for: '00:01:00' # Если состояние держится 1 минуту
action:
- service: homeassistant.turn_off # или set_value
data:
entity_id: sensor.domofon_call_state
# Альтернатива: установить конкретное состояние
- service: input_select.select_option # если сенсор — input_select
data:
entity_id: input_select.domofon_state
option: 'idle'
Дополнительные рекомендации
Мониторинг состояния сенсора:Добавьте в интерфейс HA карточку с sensor.domofon_call_state, чтобы видеть его состояние в реальном времени.Логирование переходов:Создайте отдельную автоматизацию, которая записывает в лог все изменения состояния сенсора (для отладки нестабильной работы).
Резервный триггер:Если состояние Неизвестно возникает часто, добавьте второй триггер на to: 'Неизвестно' с уведомлением о сбое.
Comments powered by CComment