Найти в Дзене
Удобный дом!

Охрана дома = Frigate+HA+Alarmo+Telegram.Ч.3 Интефейс и автоматизации.

Оглавление

Его в версии 0.15 хорошо прокачали и сделали более интуитивным. Я выделю несколько моментов которыми пользуюсь.

Установка Frigate тут

Настройка конфигурации (много настроек) тут

А теперь можно рассмотреть интерфейс и автоматизации.

Интерфейс Frigate и основные моменты.

Если сработает alert или detection сверху появится короткое видео с объектом и указано как давно это произошло.

-2

Все камеры показывают в реальном времени когда мы заходим в сам Frigate. Можем в каждую провалиться.

-3

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

-4

Если перейти в History историю записей, мы можем перематывать камеру на нужное нам время. Если рядом желтые полоски, значит было движение. А если к полоскам есть ещё выделение времени - тогда обнаружен объект. Можем переключить на Events и тогда нам покажет по этой камере какие были обнаружения объектов. Export дает нам возможность сохранить видео на сервер, а в дальнейшем и скачать на телефон/компьютер.

Вкладка Review дает возможность посмотреть только записи обнаруживаемых объектов. По умолчанию показывает только новые, можно переключить Show Reviewed и покажет все. Вот поэтому полезно хранить Alerts и Detections 30 дней - занимает меньше чем постоянная запись, а история в 30 дней по событиям.

-6

Вкладка поиск фильтрует по обнаруживаемым объектам. У меня пока сохранился я, опять я и детекция звука ТВ.

-7

На вкладке Export мы как раз можем скачать видео.

-8

Карточки в Home Assistant

Удобнее всего просматривать камеры из самого интерфеса Frigate. Для этого мы устанавливали Frigate Proxy. Если нужно отобразить карточки на дашборде во Frigate то нужно скачать Advanced Camera Card (Frigate Card). Ее можно найти в HACS. Если сразу не находит, тогда вносим репозиторий https://github.com/dermotduffy/advanced-camera-card.git

Карточка для камеры. Используется go2rtc что ускоряет обработку. При просмотре с телефона лучше повернуть в горизонтальный режим. Добавляем ручную карточку (самая последняя внизу) и вносим код. Подставляем нашу карточку название своей камеры:

(Код с отступами на гите)

type: custom:frigate-card
cameras:
- camera_entity: camera.doma
title: Гостиная
live_provider: go2rtc
go2rtc:
mode: webrtc
menu:
style: outside
buttons:
recordings:
enabled: true
fullscreen:
enabled: true
clips:
enabled: true
snapshots:
enabled: true
timeline:
enabled: true
audio:
enabled: true
view:
default: live
interactions:
actions:
- action: fullscreen
tap_action: double_tap
media_viewer:
controls:
playback: true

Автоматизации для Frigate+Alarmo+TG+HA

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

Эти автоматизации выпили много крови, но ее можно восстановить Поддержать автора

Нам нужно будет добавить Alarmo и Телеграм. Что бы не перегружать статью вынес установки отдельно. В статьях подключение и некоторые примеры автоматизаций, которые позволят понять идею.

Установка и настройка телеграма тут:

Установка и настройка Alarmo тут:

Переключение режимов.

Когда мы дома нам не нужно обнаружения звуков и анализ изображений для сигнализации. Поэтому нужно настроить отключение детекции когда мы дома, включать детекцию когда уезжаем.

Мы можем привязать включение и выключение к статусам Alarmo.

  • Триггеры: Изменение состояния alarm_control_panel.alarmo.
    Событие запуска Home Assistant (homeassistant.start). - Это нужно если вдруг сервер перезагружается, когда frigate возвращает все настройки по дефолту - то есть, включает обнаружение после перезагрузки.
    При перезагрузке фригейта он автоматически включает обнаружения, когда мы дома это нам не нужно. Поэтому используем триггер sensor.frigate_status который при переключении из режима в режим запускает автоматизацию.
  • Действия:Задержка в 1 секунду для обеспечения корректной обработки событий после запуска.

    Выбор действий (choose):
    Когда ставим на охрану. Если Alarmo в состоянии armed_away или armed_custom_bypass: Включаются детекторы на всех камерах.

    Когда снимаем с охраны. Если Alarmo в состоянии disarmed: Отключаются детекторы на всех камерах.

    Ночной режим. Если Alarmo в состоянии armed_night: Включаются детекторы на камерах peredvhodom, viezdpravo, viezdlevo , sad, xiaomi1.
    Отключаются детекторы на камере doma.

Найти названия сущностей можно в интеграции Frigate в Настройках - Устройства и службы.

Будет список камер и зон этих камер, нам нужна именно сама камера, так как именно там идет переключение. Например, вот моя камера перед входом и ее сущность switch.peredvhodom_detect и switch.peredvhodom_audio_detection . По коду мы видим, что фригейт создает switch.НазваниеКамеры_audio_detection и switch.НазваниеКамеры_detect, поэтому можно скормить чату гпт названия своих камер и мой код + добавить описание какие для режима ночь, а какие для режима день. Можно и самому поправить через замену в текстовом редакторе.

-9

Автоматизация включает и выключает обнаружение по статусу от сигнализации + при перезагрузке frigate и home assistant проверяет статус сигнализации. Можно вбить автоматизацию в Текстовый редактор и вернуться в управление формами, там будет видно наглядно управление. Обязательно добавить отправку сообщения в телеграм.

-10

Пример кода автоматизации, замените на свои названия камер. Код можно забрать на гите

Отправка сообщений в телеграм

Пожалуй, самое тяжелое было настроить правильные уведомления в телеграм.

Первая проблема - названия камер, в некоторых местах использовал нижнее подчеркивание, а в mqtt и в автоматизациях он почему-то склеивал названия камер и понятно что возникала ошибка. Поэтому лучше держать названия камер и зон простым в одно слово и на латинском.

Вторая проблема - правильные сообщения для камер с зонами и без зон. Очень долго работало либо только на камерах с зонами, либо на камерах без зон. Долгие мучения родили нормальный код.

Код можно целиком использовать у себя, я специально выделил переменные под камеры.

cameras_with_zones: тут камеры у которых есть зоны. Указываем название и зону в формате НазваниеКамеры: НазваниеЗоны

у меня такие (Код с отступами на гите)

cameras_with_zones:
Xiaomi1: Kabinet1
PeredVhodom: Terrasa
ViezdPravo: ViezdPravoPole
ViezdLevo: viezdLevoKolodec
Sad: SadMalina
cameras_without_zones:
- Doma

Может встретиться такое device_id: cbbe8a1aee54b0b8367fd55a5e2e90ef - это не обязательное поле, можете придумать свое.

Код высылает сначала картинку при вхождении объекта в зону камеры, а когда объект покинул зону - высылает картинку с кнопками. Обработка кнопок в отдельной автоматизации.

inline_keyboard:

  • "🎥 Посмотреть клип:/sendvideo{{ trigger.payload_json['after']['id'] }}" Забирает id события и возвращает видео которое нам нужно.
  • "🚨 Запустить тревогу:/start_alarm" Включает тревогу на Alarmo
  • "🔕 Отключить тревогу:/stop_alarm" Эта кнопка у меня фактически снимает с охраны, таким образом выключаются ревуны. Что бы включить ее обратно нужно в приложении с ХА ее активировать. При снятии используется сразу введение кода, поэтому аккуратно делитесь и добавляйте людей в группу своего умного дома)

Может встретиться такое device_id: cbbe8a1aee54b0b8367fd55a5e2e90ef - это не обязательное поле, можете придумать свое.

Код для обработки кнопок о которых писалось выше.

При срабатывании триггера telegram_callback он берет необходимую команду и запускает нужную автоматизацию.

Например, при нажатии на кнопку Запустить тревогу срабатывает Алармо на включение ревунов, а так как мы (в отдельной статье) настроили действия в Алармо нам не надо отдельно прописывать запуск ревунов. Вот это запускается.

- conditions:
- condition: template
value_template: "{{ trigger.event.data.data == '/start_alarm' }}"
sequence:
- device_id: cbbe8a1aee54b0b8367fd55a5e2e90ef
domain: alarm_control_panel
entity_id: e98e675929baf24e5567a4b1975fbdc7
type: trigger
- data:
callback_query_id: "{{ trigger.event.data.id }}"
message: 🚨 Тревога запущена!
action: telegram_bot.answer_callback_query

Полный код автоматизации для обработки кнопок: Его можно забрать на гите

Выслать видео сразу

Можно и не делать так сложно, а высылать видео после того как событие сформировано. Я проверил, видео высылаются и кнопки работают, но сами видео могут быть не такими полными как при запросе. Хотя и стоит условие end, которое говорит что высылать после формирования события, но мне кажется он их обрезает. Все равно работает хорошо, можно и на этом варианте остановиться.

Код для отсылки сообщений с видео сразу Его можно забрать на гите

Код для кнопок (Запустить тревогу и Снять с охраны) без высылки видео. Его можно забрать на гите

Что можно улучшить - высылать видео только если человек зашел вод камеры, а всяких кошек и собак только по запросу. Идея в том, что если мы пропустили сообщения и у нас украли сервер, то все короткие видео точно останутся на сервере телеграма.

Автоматизации без MQTT

Выше автоматизации использовали MQTT, так как это значительно проще если поступает много данны (названия камер, типы обнаруживаемы объектов, время…). Если нужна простая автоматизация и на конкретное событие тогда можно воспользоваться сущностями которые нам предоставляет HA. Используем как обычные датчики, например, обнаружена кошка - насыпь корм и прочее.

Есть посложнее вариант, я использую обнаружение человека для контроля работы обогревателя. Простые датчики движения могут давать ложные данные, а этот способ точнее.

Например, у меня есть уличный обогреватель. Я его включаю через выключатель и мне нужно не забыть его выключить когда уйду. Поэтому при нажатии на кнопку включения обогревателя я отключаю автоматизацию Отправка фото и видео в Telegram при обнаружении объектов, включаю обнаружение детекции людей и делаю таймер. Таймер запустится только когда все покинут зону, например можно поставить таймер на 15 минут.

Вот пример автоматизации Управление уличным обогревателем через кнопку, таймер и датчик движения Его можно забрать на гите

description: Управление уличным обогревателем через кнопку, таймер и датчик движения

Можно сделать отпугивание животных - при обнаружении кошек или собак включать отпугиватель через умные розетки.

Напишите в комментариях что ещё можно добавить.

Способ 1 Поддержать автора
Способ 2 https://donate.stream/yoomoney410013774736621

или через криптокошелёк (Только USDT) TCHekdJZFndXpDrHZGuTmqFNcqhWBTTzPr

Связаться со мной. (Консультации, проектирование и обучение)

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

Мой телеграм канал, там все быстрее обновляется телеграм.

Сайт smart4home.ru и альтернативный Умный дом на любом этапе.

Соц сети: RuTube канал Удобный дом / You Tube канал Удобный дом Яндекс Дзен: Удобный дом / InGram

Платформы специалистов: Авито / Профи.ру / Яндекс Услуги https://uslugi.yandex.ru/profile/EgorSmirnov-2294380?from=telek