Sicheres Home Monitoring mit Home Assistant auf Raspberry Pi: Bewegung, Alarm & Video-Capture
Ein zuverlässiges Heim-Sicherheitssystem auf einem Raspberry Pi mit Home Assistant (HA) zu deployen ist unkompliziert, sobald man die Schlüsselkomponenten versteht: einen Bewegungssensor, ein Alarm-Panel und kamerabasiertes Video-Capture. Dieser Guide führt Sie durch das komplette Setup – vom Verdrahten des HC-SR501 PIR-Sensors bis zur HA-Konfiguration, Starten von mjpg-streamer und Versand sofortiger E-Mail-Alerts mit Fotos.
Voraussetzungen
- Raspberry Pi mit Home Assistant (empfohlen 0.101.3 oder neuer)
- HC-SR501 PIR Bewegungssensor
- USB oder CSI Kamera (jede Kamera, die mit mjpg-streamer funktioniert)
- Internet-verbundener E-Mail-Account (z. B. Gmail) für Benachrichtigungen
- Grundlegende Vertrautheit mit YAML und Docker (falls HA im Container läuft)
1. HC-SR501 an Pi verdrahten
Der Sensor hat drei Pins: VCC (+), GND (–) und OUT. Wie folgt verbinden:
- VCC → Pin 5 (3,3 V)
- GND → Pin 6 (Ground)
- OUT → Pin 7 (GPIO 4)
Diese Verbindungen erlauben HA, den binären Zustand des Sensors via rpi_gpio Platform auszulesen.
2. mjpg-Streamer installieren
Nutzen Sie diesen Guide für Setup von mjpg-streamer und optionalem FFMpeg Recorder. Die Skripte im Repository starten den Stream und starten/stoppen Recording auf Abruf.
3. Home Assistant konfigurieren
/usr/share/hassio/homeassistant/configuration.yaml (oder Ihr HA Config-Ordner) öffnen. Folgende Sektionen hinzufügen:
# Binary Sensor für PIR
binary_sensor:
- platform: rpi_gpio
ports:
7: Sensor HC-SR501
invert_logic: false
# Manuelles Alarm-Panel
alarm_control_panel:
- platform: manual
name: Home Alarm
pending_time: 60
delay_time: 40
code: 1234
# Command-Line Switches für mjpg-streamer Steuerung
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 Commands für 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-Mail Notifier (Gmail Beispiel)
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
Nach Bearbeitung Konfiguration validieren via Configuration → Server Controls → Check Config, dann Automations und Scripts neu laden.
4. Automatisierungslogik
Folgende Automations in automation.yaml erstellen, um Sensor, Alarm und Kamera zu verknüpfen.
# 1. Auslösen bei armed_away und Bewegung erkannt
- 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. Recording stoppen bei Alarm-Deaktivierung
- 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. Foto bei Alarm-Trigger senden
- 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
Der script.webcam_snapshot sollte takeSnapshotWebcam.sh aufrufen, das einen einzelnen Frame aufnimmt und als /config/camera/snapshot.jpg für den E-Mail-Anhang speichert.
5. Docker Volume Hinweis
Falls HA in Docker läuft, beachten Sie, dass der Container's /config Ordner auf /usr/share/hassio/homeassistant auf dem Host gemappt ist. docker inspect homeassistant | less nutzen, um Volume-Bindings zu bestätigen.
6. System testen
- Alarm auf
armed_awayvia HA UI scharf schalten. - PIR-Sensor triggern (z. B. daran vorbeilaufen).
- Verifizieren, dass mjpg-streamer startet, Motion-Recorder kurzen Clip aufnimmt und E-Mail mit Snapshot empfangen wird.
- Alarm entschärfen und bestätigen, dass Recording stoppt und Deaktivierungs-Benachrichtigung erscheint.
Fazit
Mit diesen Schritten haben Sie eine eigenständige, kostengünstige Heim-Sicherheitslösung, die Bewegungserkennung, Alarmsteuerung und sofortige Foto-Alerts vereint – alles orchestriert von Home Assistant auf einem Raspberry Pi.
Passen Sie Skripte und Benachrichtigungseinstellungen gerne an Ihre Umgebung an. Happy Automating!
Herstellungsprozess
- Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Raspberry Pi Wetterstation bauen, die tägliche Wetterdaten per E-Mail sendet
- DS1820 One-Wire Temperatursensor an Raspberry Pi GPIO anschließen
- HC-SR04 Ultraschallsensor an Raspberry Pi 3 anschließen – Komplettanleitung
- DIY Infrarot-Bewegungsmelder für Raspberry Pi – Schritt-für-Schritt-Anleitung
- Günstiges drahtloses Sensornetzwerk für Zuhause selbst bauen
- LED mit PIR-Bewegungsmelder am Raspberry Pi steuern
- Headless Raspberry Pi 2 Wasser-Alarm mit Adafruit T‑Cobbler Plus bauen
- Günstiger Raspberry Pi Bodenfeuchtesensor für smarte Bewässerung