Veilige thuismonitoring met Home Assistant op Raspberry Pi: Beweging, alarm en videocapture
Een betrouwbaar thuissecurity-systeem implementeren op een Raspberry Pi met Home Assistant (HA) is eenvoudig zodra u de kerncomponenten begrijpt: een bewegingsensor, een alarm-paneel en camera-gebaseerde videocapture. Deze gids leidt u door de complete setup – van het bedraden van de HC-SR501 PIR-sensor tot het configureren van HA, het lanceren van mjpg-streamer en het versturen van directe e-mailalerts met foto's.
Vereisten
- Raspberry Pi met Home Assistant draaiend (aanbevolen 0.101.3 of nieuwer)
- HC-SR501 PIR-bewegingsensor
- USB of CSI-camera (elke camera die werkt met mjpg-streamer)
- Internet-verbonden e-mailaccount (bijv. Gmail) voor notificaties
- Basiskennis van YAML en Docker (als HA in een container draait)
1. De HC-SR501 aan de Pi koppelen
De sensor heeft drie pinnen: VCC (+), GND (–) en OUT. Sluit ze als volgt aan:
- VCC → Pin 5 (3,3 V)
- GND → Pin 6 (Ground)
- OUT → Pin 7 (GPIO 4)
Deze verbindingen staan HA toe de binaire staat van de sensor uit te lezen via het rpi_gpio-platform.
2. mjpg-Streamer installeren
Gebruik deze gids om mjpg-streamer en de optionele FFMpeg-recorder in te stellen. De scripts in de repository starten de stream en starten/stoppen opname op verzoek.
3. Home Assistant configureren
Open /usr/share/hassio/homeassistant/configuration.yaml (of uw HA-configmap). Voeg de volgende secties toe:
# Binaire sensor voor PIR
binary_sensor:
- platform: rpi_gpio
ports:
7: Sensor HC-SR501
invert_logic: false
# Handmatig alarm-paneel
alarm_control_panel:
- platform: manual
name: Home Alarm
pending_time: 60
delay_time: 40
code: 1234
# Command-line switches voor mjpg-streamer-besturing
switch:
- platform: command_line
switches:
start_stop_motion_rec_timelapse:
friendly_name: 'Beweging timelapse opnemen'
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-commando's voor custom scripts
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'
# E-mailnotificator (Gmail-voorbeeld)
notify:
- name: ha_sendmail
platform: smtp
server: smtp.gmail.com
port: 587
timeout: 15
sender: <uw-email>
encryption: starttls
username: <uw-email>
password: <app-wachtwoord>
recipient:
- <uw-email>
sender_name: My Home Assistant
Na bewerken, valideer de configuratie via Configuratie → Serverbesturing → Config controleren, herlaad daarna automatisering en scripts.
4. Automatiseringslogica
Maak de volgende automatisering in automation.yaml om de sensor, alarm en camera te koppelen.
# 1. Trigger wanneer armed_away en beweging gedetecteerd
- alias: 'Alarm activeren terwijl 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. Opname stoppen wanneer alarm ontwapenend
- alias: 'Opname stoppen wanneer alarm ontwapenend'
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: 'Het alarm is ontwapenend op {{ states("sensor.date_time") }}'
# 3. Foto sturen bij alarmtrigger
- alias: 'E-mailalert bij alarmtrigger'
trigger:
- platform: state
entity_id: alarm_control_panel.home_alarm
to: 'triggered'
action:
- service: persistent_notification.create
data:
message: 'Alarm geactiveerd door bewegingsensor.'
- delay: { seconds: 4 }
- service: script.webcam_snapshot
- service: notify.ha_sendmail
data:
title: 'Intruder alert'
message: '{{now().strftime("%H:%M %Y-%m-%d")}}: Alarm geactiveerd door bewegingsensor.'
data:
images:
- /config/camera/snapshot.jpg
Het script.webcam_snapshot moet takeSnapshotWebcam.sh aanroepen, dat een enkele frame vastlegt en opslaat als /config/camera/snapshot.jpg voor de e-mailbijlage.
5. Docker-volume-nota
Als HA in Docker draait, onthoud dan dat de container's /config-map gemapt is naar /usr/share/hassio/homeassistant op de host. Gebruik docker inspect homeassistant | less om volumekoppelingen te bevestigen.
6. Het systeem testen
- Wapen het alarm naar
armed_awayvia de HA-UI. - Activeer de PIR-sensor (bijv. door er langs te lopen).
- Controleer of mjpg-streamer start, de beweging-recorder een korte clip vastlegt en een e-mail met een snapshot ontvangen wordt.
- Ontwapen het alarm en bevestig dat opname stopt en een ontwapennotificatie verschijnt.
Conclusie
Met deze stappen hebt u een zelfstandige, laagkost thuissecurity-oplossing die bewegingsdetectie, alarmbesturing en directe fotalerts combineert – georchestreerd door Home Assistant op een Raspberry Pi.
Voel u vrij om de scripts en notificatie-instellingen aan te passen aan uw omgeving. Veel automatiseringsplezier!
Productieproces
- Bouw Een Raspberry Pi Temperatuur Logger Met Een $5 I2C Sensor
- Een externe temperatuursensor bouwen met Raspberry Pi en Python – Stap-voor-stap handleiding
- Een Raspberry Pi-weerstation bouwen dat dagelijkse weergegevens e-mailt
- Hoe een DS1820 One-Wire temperatuursensor aan te sluiten op een Raspberry Pi via GPIO
- HC-SR04 ultrasoon-sensor aansluiten op Raspberry Pi 3 – Complete gids
- Een DIY Infrarood Bewegingssensor Bouwen voor Raspberry Pi – Stapsgewijze Handleiding
- Een Betaalbaar Draadloos Sensornetwerk Bouwen voor Uw Huis
- Een LED Besturen met een PIR-bewegingssensor op Raspberry Pi
- Een Headless Raspberry Pi 2 Wateralarm Bouwen met Adafruit T-Cobbler Plus
- Een Goedkope Raspberry Pi Grondvochtigheidssensor Bouwen voor Slimme Irrigatie
- Een Lineaire Hall-sensor Uitlezen met Raspberry Pi: Java-handleiding & ADC0832-inzichten