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

Надёжный домашний мониторинг с Home Assistant на Raspberry Pi: движение, алермы и видеозахват

Развёртывание надёжной системы домашней безопасности на Raspberry Pi с Home Assistant (HA) просто, если понимать ключевые компоненты: датчик движения, панель тревоги и камеру для видеозахвата. Это руководство ведёт через полную настройку — от подключения PIR-сенсора HC‑SR501 к конфигурации HA, запуску mjpg‑streamer и отправке мгновенных email-алертов с фото.

Предварительные требования

1. Подключение HC‑SR501 к Pi

У сенсора три пина: VCC (+), GND (–), OUT. Подключите так:

Эти соединения позволяют HA читать бинарное состояние сенсора через платформу rpi_gpio.

2. Установка mjpg‑Streamer

Используйте это руководство для настройки mjpg‑streamer и опционального FFMpeg рекордера. Скрипты в репозитории запускают стрим и стартуют/останавливают запись по требованию.

3. Конфигурация Home Assistant

Откройте /usr/share/hassio/homeassistant/configuration.yaml (или вашу папку конфига HA). Добавьте следующие секции:

# Бинарный сенсор для PIR
binary_sensor:
  - platform: rpi_gpio
    ports:
      7: Sensor HC‑SR501
    invert_logic: false

# Ручная панель тревоги
alarm_control_panel:
  - platform: manual
    name: Home Alarm
    pending_time: 60
    delay_time: 40
    code: 1234

# Командные переключатели для управления mjpg‑streamer
switch:
  - platform: command_line
    switches:
      start_stop_motion_rec_timelapse:
        friendly_name: 'Record motion timelapse'
        command_on: "curl https://localhost/start_mjpgstrm.php && curl https://localhost/rec-motion-mjpg.php"
        command_off: "curl https://localhost/stop_mjpgstrm.php && curl https://localhost/rec-motion-mjpg-stop.php"

# Shell-команды для кастомных скриптов
shell_command:
  take_snapshot_webcam: '/config/scripts/takeSnapshotWebcam.sh'
  start_mgpg_streamer: 'curl https://localhost/start_mjpgstrm.php'
  stop_mgpg_streamer: 'curl https://localhost/stop_mjpgstrm.php'
  start_motion_rec: 'curl https://localhost/rec-motion-mjpg.php'
  stop_motion_rec: 'curl https://localhost/rec-motion-mjpg-stop.php'

# Email нотификатор (пример Gmail)
notify:
  - name: ha_sendmail
    platform: smtp
    server: smtp.gmail.com
    port: 587
    timeout: 15
    sender: <your‑email>
    encryption: starttls
    username: <your‑email>
    password: <app‑password>
    recipient:
      - <your‑email>
    sender_name: My Home Assistant

После редактирования провалидируйте конфигурацию через Configuration → Server Controls → Check Config, затем перезагрузите автоматизации и скрипты.

4. Логика автоматизаций

Создайте следующие автоматизации в automation.yaml для связывания сенсора, тревоги и камеры.

# 1. Триггер при armed_away и движении
- alias: 'Trigger alarm while armed away'
  trigger:
    - platform: state
      entity_id: binary_sensor.sensor_hc_sr501
      to: 'on'
  condition:
    - condition: state
      entity_id: alarm_control_panel.home_alarm
      state: armed_away
  action:
    - service: shell_command.start_mgpg_streamer
    - service: shell_command.start_motion_rec
    - service: alarm_control_panel.alarm_trigger
      target:
        entity_id: alarm_control_panel.home_alarm

# 2. Остановка записи при разоружении
- alias: 'Stop recording when alarm disarmed'
  trigger:
    - platform: state
      entity_id: alarm_control_panel.home_alarm
      to: 'disarmed'
  action:
    - service: shell_command.stop_mgpg_streamer
    - service: shell_command.stop_motion_rec
    - service: persistent_notification.create
      data:
        message: 'The alarm is disarmed at {{ states(''sensor.date_time'') }}'

# 3. Фото при срабатывании тревоги
- alias: 'Email alert on alarm trigger'
  trigger:
    - platform: state
      entity_id: alarm_control_panel.home_alarm
      to: 'triggered'
  action:
    - service: persistent_notification.create
      data:
        message: 'Alarm triggered by motion sensor.'
    - delay: { seconds: 4 }
    - service: script.webcam_snapshot
    - service: notify.ha_sendmail
      data:
        title: 'Intruder alert'
        message: '{{now().strftime("%H:%M %Y-%m-%d")}}: Alarm triggered by motion sensor.'
        data:
          images:
            - /config/camera/snapshot.jpg

Скрипт script.webcam_snapshot должен вызывать takeSnapshotWebcam.sh, который захватывает одиночный кадр и сохраняет как /config/camera/snapshot.jpg для вложения в email.

5. Примечание про Docker-тома

Если HA запущен в Docker, помните, что папка контейнера /config маппится на /usr/share/hassio/homeassistant на хосте. Используйте docker inspect homeassistant | less для подтверждения биндингов томов.

6. Тестирование системы

  1. Включите тревогу в режим armed_away через HA UI.
  2. Сработайте PIR-сенсор (например, пройдите мимо).
  3. Проверьте, что mjpg‑streamer стартует, запись движения захватывает короткий клип и email со снимком приходит.
  4. Разоружите тревогу и подтвердите, что запись останавливается и появляется уведомление о разоружении.

Заключение

С этими шагами у вас есть самодостаточное, дешёвое решение домашней безопасности, объединяющее детекцию движения, управление тревогой и мгновенные фото-алерты — всё оркестрируемое Home Assistant на Raspberry Pi.

Свободно адаптируйте скрипты и настройки уведомлений под свою среду. Удачной автоматизации!

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

  1. Сборка логгера температуры на Raspberry Pi с $5 I2C датчиком
  2. Создание удалённого датчика температуры на Raspberry Pi и Python — пошаговое руководство
  3. Создание метеостанции на Raspberry Pi с ежедневными email-отчётами о погоде
  4. Как подключить однопроводный датчик температуры DS1820 к Raspberry Pi через GPIO
  5. Подключение ультразвукового датчика HC‑SR04 к Raspberry Pi 3 — полное руководство
  6. Построение DIY инфракрасного датчика движения для Raspberry Pi — пошаговое руководство
  7. Построение доступной беспроводной сети датчиков для дома
  8. Управление светодиодом с PIR-датчиком движения на Raspberry Pi
  9. Создание headless сигнализации утечки воды на Raspberry Pi 2 с Adafruit T‑Cobbler Plus
  10. Построение низкобюджетного датчика влажности почвы на Raspberry Pi для умного полива