Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Датчик движения, тревога, запись видео в HA на Raspberry Pi

Подключение датчика движения, сигнализации и записи видео в Home Assistant на Raspberry pi.

Хочу рассказать вам о своем небольшом опыте работы с Home Assistant (далее - HA) на Raspberry pi. Далее я расскажу о подключении функции видеорегистрации, датчика движения и, соответственно, функции домашней безопасности с получением фотографий на электронную почту в случае срабатывания «безопасности».

Конечно, одна из причин - желание понять из ваших отзывов, что я «сделал не так» при реализации этого сценария.

Настроить вышеуказанный функционал можно тремя способами:«без проблем», «короткий» и «независимый». В первом случае вы можете скачать разработанное изображение с сайта https://ViaMyBox.com/downloadpage

для вашего Raspberry pi, и вы можете увидеть, как все выглядит в уже настроенном виде. Во втором случае вы можете загрузить zip-архив с сайта или из проекта github, установить его, а затем установить образ докера HA с помощью утилиты (sudo via-setup.sh), чтобы увидеть, как все настроено. И, наконец, третий способ - настроить «все по-своему»:взять что-нибудь полезное с сайта, проекта гитхаба или из этого туториала. Ссылки на все это вы найдете в конце статьи.

Предположим, у вас уже есть работающий Home Assistant (HA). В этой статье мы рассмотрим только аспекты создания конфигураций yaml и описание последовательности правил и условий, которые приводят к определенному действию. В нашем случае действие - это подключение режима «безопасность» и срабатывание скрипта, который начинает фотографировать в течение 5 секунд после срабатывания датчика движения. В результате Home Assistant отправляет отснятые фотографии по почте. Я не эксперт в yaml или создании конфигураций для Home Assistant, но, следуя рабочим примерам, я получил рабочую конфигурацию, которой хочу поделиться.

Все файлы, с которыми мы свяжемся, я выложу в конце статьи для более удобного рассмотрения. В этом примере я не собираюсь касаться того, как скрипты видеозаписи работают в bash или python. Мы будем говорить только о Home Assistant. Но если есть вопросы - добро пожаловать!

В итоге у меня все выглядит так (красным выделено то, что мы рассмотрим в статье):

Естественно, в качестве платформы я использую Raspberry pi. И мой путь к файлам конфигурации - / usr / share / hassio / homeassistant /. Путь к вашим файлам конфигурации может отличаться от моего пути. На тот момент у меня был Home Assistant 0.101.3. Нас будут интересовать файлы конфигурации в этом каталоге:configuration.yaml и automation.yaml.

После каждого изменения этих файлов важно помнить, что вам нужно будет проверять конфигурацию после наших изменений на предмет возможных ошибок, сделанных в ней. Это делается в панели управления Home Assistant -> Конфигурация -> Управление сервером -> Проверить конфигурацию. А затем там же выполняем автоматизацию перезагрузки и скрипты перезагрузки, если проверка прошла успешно. И, если сомневаетесь, Server Management перезапустите обновления конфигурации точно на той же вкладке.

Датчик движения HC-SR501 подключен к шине Raspberry pi GPIO. Необходимо правильно подключить три контактных провода к GPIO, и мы сможем использовать наш датчик в действии. Датчик имеет три контакта:силовой gcc (+), нулевой gnd (-), контакт управления (данные). Прочитав описание GPIO, я подключил их к своей малине следующим образом. Я подключил HC-SR501 к разъему GPIO:pir # 2 - 5.5 vvcc; пин №26 (13 ряд) - контакт данных и пин №6-GND (-) датчика.

В качестве источника фото я использую либо usb-камеру, либо csi-камеру в сочетании с mjpg-streamer. В этом посте мы не будем описывать, как установить и настроить mjpg-streamer на Raspberry pi. В Интернете есть множество примеров быстрой установки. Однако я хочу сказать, что использую данные из этого проекта https://github.com/cncjs/cncjs/wiki/Setup-Guide:-Raspberry-Pi-%7C-MJPEG-Streamer-Install-&-Setup-&-FFMpeg-Recording Там же подробно описана установка этого модуля. Или воспользуйтесь любым удобным для вас способом получения фото и видео. В конце концов, вам решать, какой сценарий bash присоединить к HA.

Теперь опишем наш датчик в файле configuration.yml, скажем, через командную строку:

sudo nano /usr/share/hassio/homeassistant/configuration.yaml

хотя использование notepad ++ с winscp может быть более удобным ..

Опишем последовательность настроек HC-SR501 следующим образом:

  binary_sensor:- platform:rpi_gpio #name:HC-SR501 ports:7:Sensor HC-SR501 invert_logic:false  

Следует отметить, что здесь важный момент играют настройки в строках, описывающих подключение к управляющим (информационным) контактам датчиков:pin # 7

порты:

7:Датчик HC-SR501

В Home Assistant есть встроенный инструмент для включения функции домашней безопасности. Давайте опишем это в нашем configuration.yaml, используя описание:https://www.home-assistant.io/integrations/manual/

  alarm_control_panel:- platform:manual name:Home Alarm pending_time:60 время задержки срабатывания 40:pending_time:0 code:1234  

Этот параметр означает, что у нас есть 60 секунд, чтобы выйти из дома (по истечении этого времени сигнализация включится), и 40 секунд, чтобы выключить ее (с паролем 1234), когда мы вернемся домой. По какой-то причине вы всегда уходите дольше, чем приходите.)

Теперь мы опишем механизм включения и отключения фотосъемки при срабатывании датчика движения в нашем файле configuration.yaml (дополнительную информацию о переключателе - платформа command_line можно найти здесь https://www.home-assistant.io/integrations/switch .command_line /):

  - платформа:переключатели строки_команды:start_stop_motion_rec_timelapse:friendly_name:'Записывать замедленное видео движения' command_on:'curl http://localhost/start_mjpgstrm.php &&curl http:// localhost // rec-motion-mjpg.php 'command_off:' curl http://localhost/stop_mjpgstrm.php &&curl http://localhost/rec-motion-mjpg-stop.php ' 

Здесь мы связали команды command_on enable и command_off disable с нашими скриптами, которые управляют записью камеры. В этом случае при включении command_on последовательно выполняются 2 скрипта. Запустится mjpg-streamer и начнется запись на датчике движения. Доступ к сценариям bash осуществляется через php-файл рабочего сайта на Raspberry pi. Для этого я настроил nginx и веб-доступ, и при доступе через браузер как http:// /start_mjpgstrm.php должен выполнить наш php-скрипт.

В этой статье мы не рассматриваем настройку веб-доступа. Ясно, что это небезопасно, но из-за того, что у меня есть HA на докере, я столкнулся с тем, что у меня есть изолированная среда докера. И «внешний мир» ОС я могу увидеть, зайдя на свой сайт через php. Наверное, есть куча правильных решений от docker или HA guru. Напишите, было бы интересно узнать!

Листинг этих скриптов я оставлю под статьей, и мы не будем на них останавливаться. В этой статье я хочу проследить только формирование последовательности действий в Home Assistant.

Все это помещено в объект start_stop_motion_rec_timelapse, который будет нашим визуальным переключателем, с помощью которого мы будем управлять записью фотографий при срабатывании датчика движения.

Мы сможем визуализировать эти созданные нами объекты на вкладке Home Assistant-> Обзор, переключив активацию режима настройки конфигурации пользовательского интерфейса в правом верхнем углу

Предварительно перезагрузите HA в браузере на вкладке «Конфигурация -> Управление сервером», чтобы получить наш файл configuration.yaml.

Затем выберите желтый плюс в нижней части окна браузера, щелкните карточку «Сущности» и свяжите созданные нами объекты с картами.

Для нашего сенсора выбираем сенсорную карту. Это будет выглядеть так:

Как вы можете видеть на картинке, второе поле сущности содержит описанный выше переключатель:switch.start_stop_motion_rec_timelapse.

Это позволяет нам включать и выключать запись с помощью датчика движения, независимо от того, включена ли функция «домашней безопасности». И, в целом, он должен уже работать после всех описанных выше действий.

И соответственно добавляем карту охранной панели:

Здесь есть еще один интересный момент. Я использую Home Assistant как докер-контейнер. В связи с этим путь к нашему скрипту будет отличаться от фактического пути к файлу скрипта. В конце концов, файловая структура внутри контейнера виртуализирована и связана с реальной файловой структурой через тома, смонтированные в докере. Это выглядит, например, так:Путь внутри контейнера:/ config / scripts / Путь внутри ОС:/ usr / share / hassio / homeassiatnt / scripts. Так что посмотрите настройки вашего контейнера, как эти тома настраиваются в поле Binds. Если у вас там HA.

  sudo docker inspect homeassistant | меньше  

Когда срабатывает датчик движения, в момент активации будильника:я хочу, чтобы помимо того, что мы начинали делать быстрые фотографии (интервальные снимки), я получал предупреждение по почте и изображение. Распараллелил процессы. В первом случае фоторегистрация (timelapsesnapshots) происходит в течение нескольких секунд после срабатывания датчика. Для этого запускаю mjpg-streamer curl http://localhost/start_mjpgstrm.php, запускаю php:сurl http://localhost/rec-motion-mjpg.php. Он, в свою очередь, запускает python-скрипт mov.py. Все описанные файлы и пакеты доступны в конце статьи по ссылке. Другой сценарий takeSnapshotWebcam.sh делает снимок, который я отправляю по электронной почте. Я описываю эти скрипты в нашем файле configuration.yml следующим образом:

  shell_command:# запуск скрипта, который создает снимок для списка рассылки take_snapshot_webcam:'/config/scripts/takeSnapshotWebcam.sh'#starting нашего mjpg-streamer start_mgpg_streamer:' curl http://localhost/start_mjpgstrm.php'#stopping mjpg-streamer stop_mgpg_streamer:'curl http://localhost/stop_mjpgstrm.php'# запускает скрипт, который генерирует снимки в течение 5 секунд start_motion_rec:' curl http:// localhost / rec-motion-mjpg.php '# остановить stop_motion_rec:' curl http://localhost/rec-motion-mjpg-stop.php ' 

В том же файле configuration.yml, описывающем наш объект для рассылки:

  notify:- name:ha_sendmail platform:smtp # если почта находится на сервере gmail:smtp.gmail.com порт:587 timeout:15 # от кого мы отправляем отправителя:[защищенная электронная почта] шифрование:starttls имя пользователя:[защищенная электронная почта] пароль:пароль # кому мы отправляем (вы можете использовать один ящик и отправить его себе, почему бы и нет) получатель:- [электронная почта защищена] имя_ отправителя:Мой домашний помощник  

Важная точка! Чтобы наш HA мог подключаться и отправлять электронные письма (поле отправителя), мы должны разрешить нашей службе HA использовать этот почтовый ящик в gmail. Как это сделать - ссылка здесь:https://myaccount.google.com/lesssecureapps

И далее опишем сам механизм автоматизации при включении тревоги home_alarm в automation.yaml:

  #first action bundle (псевдоним «запускается датчиком, если включена безопасность» - псевдоним:«Активировать тревогу при нахождении под охраной» # псевдоним запускается, когда датчик находится в Триггер положения «включено»:- платформа:состояние entity_id:binary_sensor.sensor_hc_sr501 to:'on' # при условии, что режим безопасности включен в отсутствие людей в доме «вооруженный» условие:- условие:состояние entity_id:alarm_control_panel.home_alarm state:connected_away # и затем выполняет действие action:# Запуск mjpg-streamer (если отключено) - service:shell_command.start_mgpg_streamer # Запуск сценария, который записывает с камеры - service:shell_command.start_motion_rec # Измените визуализацию нашей «Домашней безопасности» "карта на панели HA в положение" сработала тревога "- service:alarm_control_panel.alarm_trigger entity_id:alarm_control_panel.home_alarm  

Следующий набор условий и действий - отправить консольное сообщение, когда «безопасность» отключена, и отключить наши сценарии записи движения.

  - псевдоним:'Отправлять уведомление, когда тревога снята с охраны' триггер:- платформа:состояние entity_id:alarm_control_panel.home_alarm to:действие 'disarmed':- service:shell_command.stop_mgpg_streamer - service:shell_command.stop_motion_rec - service:persistent_notification.create data:message:сигнал тревоги снимается с охраны в {{состояниях ('sensor.date_time')}} " 

И, наконец, третья ссылка - отправить письмо с фото:

  - псевдоним:'Отправлять уведомление при срабатывании тревоги' триггер:- платформа:состояние entity_id:alarm_control_panel.home_alarm to:'triggered' action:- service:persistent_notification.create data :message:Уведомление при срабатывании тревоги. Обнаружен датчик движения HC-SR501. - delay:seconds:4 # запускаем наш сценарий для создания одного сценария - service:script.webcam_snapshot # и обращаемся к описанному объекту в configuration.yaml:notify.ha_sendmail - service:notify.ha_sendmail data:title:'Intruder alert' message:'{{now (). strftime ("% H:% M% Y-% m-% d")}}:уведомление при срабатывании тревоги. Обнаружен датчик движения HC-SR501. ' data:images:# ссылка на сценарий, уже созданный сценарием. webcam_snapshot - /config/camera/snapshot.jpg  

Помните, что в файлах yaml важна разметка строки, а символы пробела перед командами играют важную роль в формировании блоков кода и его структуре. Проверьте все изменения в своем yaml через Home Assistant (далее HA) Configuration -> Server Controls -> Check Config

Вроде все. И ваш Raspberry Pi превращается в нечто элегантное! ..)

Вот он - рабочая HA автоматика, настроенная своими руками! Обязательно напишите мне все, что думаете по этому поводу!

И, если все-таки дочитать до конца, вот обещанные ссылки:

Изображение и zip:https://viamybox.com/downloadpage

Проект Github:https://github.com/viatc/viamybox

Здесь описаны файлы конфигурации:configuration.yaml, automation.yaml, takeSnapshotWebcam.sh, rec-motion-mjpg.php, mov.py

hc-sr501, домашняя сигнализация, домашний помощник, raspberry pi, видеорегистрация, датчик движения, подключение сигнализации, умный дом

Без категории

Источник:датчик движения, тревога, запись видео в HA на Raspberry Pi


Производственный процесс

  1. Регистратор температуры Raspberry Pi
  2. Датчик температуры Python и Raspberry Pi
  3. Метеостанция Raspberry Pi
  4. 1-проводный датчик температуры DS1820 на Raspberry Pi (напрямую через GPIO)
  5. Ультразвуковой датчик (HC-SR04) + Raspberry Pi
  6. Самодельная инфракрасная система датчиков движения для Raspberry Pi
  7. Создание сети беспроводных датчиков в вашем доме
  8. Датчик движения с использованием Raspberry Pi
  9. Сигнализация о воде Raspberry Pi 2 с t сапожником плюс
  10. Датчик влажности почвы Raspberry Pi