Files
motion_recorder/README.ru.md
T
2026-07-05 13:50:19 +03:00

19 KiB
Raw Blame History

Motion Recorder для Home Assistant

English | Русский

Мощная интеграция Home Assistant для записи камер по датчику движения с продвинутой фильтрацией и автоматическим управлением.

Возможности

  • 🎥 Запись по движению - Автоматическая запись камер при обнаружении движения
  • 🎯 Несколько датчиков движения - Поддержка нескольких датчиков на одну камеру
  • ⏱️ Умное управление временем:
    • Фильтр движения (0-10с) - Защита от ложных срабатываний
    • Задержка остановки (0-60с) - Продолжение записи после прекращения движения
    • Максимальная длительность (10-3600с) - Автоостановка длительных записей
  • Поддержка предбуфера - Включение секунд до обнаружения движения (0-60с)
  • 🗂️ Гибкое управление файлами:
    • Настраиваемые пути сохранения с переменными
    • Несколько шаблонов имен файлов
    • Автоматическая очистка старых записей (0-365 дней)
  • 🔌 Датчик принудительной остановки - Остановка записи по состоянию любой сущности
  • 🎛️ Переключатель включения/выключения - Управление записью одним кликом
  • Сенсор статуса - Мониторинг состояния записи с красивыми иконками
  • 💡 Умное управление устройствами - Автоматическое включение/выключение света и переключателей по состоянию записи
  • 🗑️ Автоочистка - Удаление старых записей по политике хранения (ежедневно в 03:00)
  • 🌍 Многоязычность - Переводы на русский и английский языки
  • Горячая перезагрузка - Настройки применяются сразу без перезапуска

Установка

Ручная установка

  1. Скачайте папку motion_recorder
  2. Поместите её в директорию custom_components вашего Home Assistant:
    /config/custom_components/motion_recorder/
    
  3. Перезапустите Home Assistant
  4. Перейдите в Настройки → Устройства и службы → Добавить интеграцию
  5. Найдите Motion Recorder и следуйте мастеру настройки

Через HACS (Рекомендуется)

  1. Откройте HACS в Home Assistant
  2. Перейдите в Интеграции
  3. Нажмите ⋮ (три точки) → Пользовательские репозитории
  4. Добавьте репозиторий: https://github.com/sirmrak/motion_recorder
  5. Категория: Интеграция
  6. Установите Motion Recorder из HACS
  7. Перезапустите Home Assistant
  8. Добавьте интеграцию через Настройки → Устройства и службы

Настройка

Первоначальная настройка

При добавлении интеграции вы настроите:

Настройка Описание По умолчанию Диапазон
Имя интеграции Отображаемое имя для этого экземпляра Motion Recorder -
Камера Сущность камеры для записи - -
Путь сохранения Папка относительно /media {camera_name} -
Формат имени файла Формат даты/времени для файлов ДД-ММ-ГГГГ_ЧЧ-ММ-СС -
Макс. длительность Максимальная длина записи 30 сек 10-3600 сек
Предбуфер Секунды до движения для включения 0 сек 0-60 сек
Датчики движения Бинарные сенсоры для запуска записи - -
Фильтр движения Задержка перед стартом (защита от ложных срабатываний) 0 сек 0-10 сек
Задержка остановки Ожидание после прекращения движения 0 сек 0-60 сек
Датчик принуд. остановки Сущность для принудительной остановки - -
Состояние остановки Значение состояния для запуска остановки off -
Дни хранения Автоудаление записей старше 7 дней 0-365 дней
Управляемые устройства Светильники/переключатели для автоуправления - -
Состояния включения Состояния, при которых устройства включаются recording Множественный выбор
Уровень логирования Детализация логов INFO -

Опции (после настройки)

После первоначальной настройки вы можете изменить эти параметры через Настройки → Устройства и службы → Motion Recorder → Настроить:

  • Максимальная длительность
  • Предбуфер
  • Фильтр движения
  • Задержка остановки
  • Дни хранения
  • Управляемые устройства
  • Состояния включения
  • Уровень логирования

Изменения применяются сразу без перезапуска.

Использование

Базовый рабочий процесс

  1. Обнаружено движение → Сенсор срабатывает
  2. Фильтр движения (опционально) → Ожидание для подтверждения, что это не ложное срабатывание
  3. Запись начинается → Поток камеры сохраняется в файл
  4. Движение продолжается → Запись продолжается до максимальной длительности
  5. Движение прекратилось → Запускается таймер задержки остановки
  6. Задержка истекла → Запись останавливается и файл финализируется
  7. Очистка → Старые файлы удаляются согласно политике хранения

Машина состояний

Интеграция использует чёткую машину состояний, видимую в сенсоре статуса:

idle → detecting → recording → delaying → finalizing → idle
Состояние Иконка Описание
idle 💤 mdi:sleep Ожидание движения
detecting 🎯 mdi:motion-sensor Активен фильтр движения
recording 🔴 mdi:record-rec Идёт запись
delaying ⏳ mdi:timer-sand Ожидание после прекращения движения
finalizing ✅ mdi:file-check Сохранение и финализация файла
disabled 📹 mdi:video-off Запись отключена через переключатель
error ⚠️ mdi:alert-circle Произошла ошибка

Создаваемые сущности

Для каждого экземпляра интеграции:

  1. Сенсор - sensor.motion_recorder_<имя>_status

    • Показывает текущее состояние записи
    • Атрибуты: количество записей, общая длительность, общий размер, путь к последнему файлу
  2. Переключатель - switch.motion_recorder_<имя>_enabled

    • Включение/выключение записи
    • Состояние сохраняется между перезапусками

Примеры автоматизаций

Отправка уведомления при завершении записи

automation:
  - alias: "Уведомление о завершении записи"
    trigger:
      - platform: state
        entity_id: sensor.motion_recorder_front_door_status
        to: "idle"
        from: "finalizing"
    action:
      - service: notify.mobile_app
        data:
          message: "Запись завершена: {{ state_attr('sensor.motion_recorder_front_door_status', 'last_file_path') }}"

Включение света во время записи

automation:
  - alias: "Свет во время записи"
    trigger:
      - platform: state
        entity_id: sensor.motion_recorder_front_door_status
        to: "recording"
    action:
      - service: light.turn_on
        target:
          entity_id: light.porch

Отключение записи ночью

automation:
  - alias: "Отключение записи ночью"
    trigger:
      - platform: time
        at: "23:00:00"
    action:
      - service: switch.turn_off
        target:
          entity_id: switch.motion_recorder_front_door_enabled

  - alias: "Включение записи утром"
    trigger:
      - platform: time
        at: "07:00:00"
    action:
      - service: switch.turn_on
        target:
          entity_id: switch.motion_recorder_front_door_enabled

Управление файлами

Путь сохранения

Путь сохранения относителен к директории /media вашего Home Assistant. Вы можете использовать переменные:

  • {camera_name} - Заменяется на имя сущности камеры (без префикса camera.)

Примеры:

  • {camera_name} → /media/front_door/
  • cameras/{camera_name} → /media/cameras/front_door/
  • /absolute/path/recordings → Абсолютный путь (должен существовать)

Шаблоны имен файлов

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

Формат Пример вывода
ДД-ММ-ГГГГ_ЧЧ-ММ-СС 02-07-2026_20-30-45.mp4
ГГГГ-ММ-ДД_ЧЧ-ММ-СС 2026-07-02_20-30-45.mp4
ДД.ММ.ГГГГ_ЧЧ-ММ-СС 02.07.2026_20-30-45.mp4
ГГГГММДД_ЧЧММСС 20260702_203045.mp4
ДД.ММ.ГГГГ_ЧЧ.ММ.СС 02.07.2026_20.30.45.mp4

Все форматы включают секунды для предотвращения перезаписи файлов при нескольких записях в одну минуту.

Автоматическая очистка

Файлы старше периода хранения автоматически удаляются ежедневно в 03:00.

  • 0 дней = Никогда не удалять
  • 7 дней = Удалить файлы старше 7 дней
  • 30 дней = Удалить файлы старше 30 дней
  • 365 дней = Удалить файлы старше 1 года

Очистка работает в фоновом режиме и не влияет на производительность записи.

Умное управление устройствами

Motion Recorder может автоматически управлять светильниками и переключателями в зависимости от текущего состояния.

Как это работает

  1. Выберите одну или несколько сущностей light или switch в настройках
  2. Отметьте состояния, при которых устройства должны включаться (например, recording, delaying)
  3. При переходе в выбранное состояние → устройства включаются
  4. При выходе из состояния → устройства выключаются (только если интеграция их включала)

Безопасность

  • Не мешает пользователю: Если вы вручную включили свет, интеграция его не выключит
  • Ручное управление приоритетно: Если вы выключили управляемый свет во время записи, он останется выключенным
  • Очистка при остановке: Все устройства, включённые интеграцией, выключаются при перезагрузке HA или перезагрузке интеграции

Примеры использования

  • Включать уличный фонарь только во время активной записи
  • Активировать индикатор тревоги при обнаружении движения
  • Включать освещение в помещении при детекции движения камерой ночью

Продвинутые возможности

Несколько датчиков движения

Вы можете выбрать несколько датчиков движения. Запись запускается при срабатывании любого сенсора. Интеграция использует логику ИЛИ:

  • Сенсор A сработал → Запись началась
  • Сенсор A остановился, Сенсор B всё ещё активен → Запись продолжается
  • Все сенсоры остановились → Запускается таймер задержки остановки

Датчик принудительной остановки

Используйте любую сущность (binary_sensor, switch, input_boolean) для принудительной остановки записи немедленно:

  • Пример использования: Остановка записи при снятии с охраны
  • Пример использования: Остановка записи когда человек покидает комнату
  • Пример использования: Кнопка экстренной остановки

Предбуфер

Включите секунды до обнаружения движения в запись:

  • Требуется активный поток камеры
  • Фактический предбуфер может быть меньше запрошенного в зависимости от буфера потока
  • Полезно для записи того, что произошло до срабатывания движения

Решение проблем

Запись не начинается

  1. Проверьте, что датчик движения работает в Home Assistant
  2. Убедитесь, что камера поддерживает потоковую передачу
  3. Проверьте, что интеграция включена (переключатель в положении ВКЛ)
  4. Просмотрите логи: Настройки → Система → Журналы → фильтр по motion_recorder

Файлы не создаются

  1. Убедитесь, что путь сохранения существует или может быть создан
  2. Проверьте, что Home Assistant имеет права на запись в /media
  3. Просмотрите логи на наличие ошибок прав доступа
  4. Попробуйте абсолютный путь вместо относительного

Запись не останавливается

  1. Проверьте настройку задержки остановки (увеличьте при необходимости)
  2. Убедитесь, что датчик движения действительно перестаёт срабатывать
  3. Проверьте, что максимальная длительность установлена правильно
  4. Просмотрите логи на наличие проблем с таймерами

Сенсор статуса показывает "error"

  1. Проверьте логи для детального сообщения об ошибке
  2. Убедитесь, что сущность камеры действительна
  3. Проверьте, что компонент stream работает
  4. Попробуйте перезапустить Home Assistant

Логи

Установите уровень логирования DEBUG для детального troubleshooting:

logger:
  logs:
    custom_components.motion_recorder: DEBUG

Требования

  • Home Assistant 2024.6 или новее
  • Камера с поддержкой потоковой передачи
  • Включённый компонент stream
  • Установленный FFmpeg (для некоторых типов камер)

Поддержка

Лицензия

Этот проект лицензирован по лицензии MIT - подробности в файле LICENSE.

Благодарности

  • Создано с ❤️ для сообщества Home Assistant
  • Вдохновлено различными решениями для записи камер
  • Спасибо всем контрибьюторам и тестировщикам

Версия: 1.1.0
Последнее обновление: 2026-07-05
Совместимо с: Home Assistant 2024.6+