Eine Überwachungskamera erkennt Bewegung aber weiß sie auch ob gerade eine Person, ein Fahrrad oder ein Auto vor der Kamera ist? Mit Frigate bekommst du eine lokale KI-gestützte Objekterkennung direkt auf deinem NAS oder jedem anderen Docker-System, ohne Cloud, ohne Abo und mit voller Kontrolle im eigenen Netzwerk.
In diesem Beitrag richten wir Frigate per Docker auf einem UGREEN NAS ein, binden Kameras ein, aktivieren ein besseres YOLOv9-KI-Modell, trainieren die Gesichtserkennung und verbinden das Ganze mit Home Assistant. Als Praxisbeispiel bauen wir eine Automation, die das Garagentor öffnet, wenn du mit dem E-Bike nach Hause kommen.
Das Ziel: Kamera erkennt Fahrrad, Person und öffnet die Garage
Das Ergebnis ist eine smarte Kombination aus Frigate und Home Assistant: Die Kamera erkennt dein Fahrrad in einer definierten Zone auf dem Grundstück. Zusätzlich wird per Gesichtserkennung geprüft, ob du selbst erkannt wurdest. Erst wenn diese Bedingungen zusammenpassen öffnet Home Assistant automatisch das Garagentor.
Wichtig ist dabei auch der Datenschutz: Bereiche außerhalb des eigenen Grundstücks sollten nicht ausgewertet oder aufgezeichnet werden. In Frigate lassen sich dafür Bewegungsmasken und Zonen anlegen. Öffentliche Bereiche werden maskiert, während relevante Bereiche, zum Beispiel eine Zone E-Bike in der Einfahrt, gezielt für Automationen genutzt werden.
Frigate per Docker auf UGREN NAS installieren
Frigate lässt sich sehr komfortabel als Docker-Container betreiben. Das ist besonders praktisch, wenn du ohnehin ein leistungsfähiges NAS im Netzwerk hast. Statt zusätzliche Hardware aufzubauen, nutzt du die vorhandenen Ressourcen deines NAS oder eines anderen Docker-Hosts.
Für die Installation brauchst du zunächst eine Ordnerstruktur in der Frigate Konfiguration, Datenbank und Medien ablegen kann.
- Erstelle einen Hauptordner, zum Beispiel
frigate - Lege darin den Unterordner
configan. - Lege zusätzlich den Unterordner
mediaan.
Wenn du bereits eine produktive Frigate-Instanz betreibst, solltest du für Tests einen separaten Ordner verwenden, damit du keine bestehende Konfiguration überschreibst.
Anschließend erstellst du im Docker-Management deines NAS ein neues Projekt und hinterlegst dort deine Docker-Compose-Datei. In der Compose-Datei sind vor allem zwei Bereiche wichtig:
YAML-Code Tablet
services:
frigate:
container_name: frigate-demo
privileged: true
restart: unless-stopped
image: ghcr.io/blakeblackshear/frigate:stable
shm_size: "256mb"
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
volumes:
- /etc/localtime:/etc/localtime:ro
- /volume2/docker/frigate-demo/config:/config
- /volume2/docker/frigate-demo/media:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- "8971:8971"
- "5000:5000"
- "8554:8554"
- "8555:8555/tcp"
- "8555:8555/udp"- Devices: Hier kann Frigate Zugriff auf die integrierte GPU bekommen, um die CPU zu entlasten.
- Volumes: Hier werden deine zuvor angelegten Ordner
configundmediain den Container eingebunden.
Wenn dein System eine Intel iGPU besitzt, kann Frigate diese für die Videobeschleunigung nutzen. Das verbessert die Performance deutlich, weil Videostreams effizienter verarbeitet werden. Ob dein System die typischen Geräte bereitstellt, prüfst du im Terminal mit:
ls /dev/dri
Wenn dort beispielsweise card0 und renderD128 angezeigt werden, kannst du den entsprechenden Device-Block in deiner Docker-Compose-Konfiguration verwenden. Falls du unsicher bist, kannst du Frigate zunächst auch ohne diesen Block starten und die Hardwarebeschleunigung später ergänzen.
Nach dem Start des Containers findest du den automatisch generierten Benutzer und das Passwort im Protokoll des Frigate-Containers. Damit meldest du dich anschließend an der Weboberfläche von Frigate an.
Frigate konfigurieren: MQTT, Kameras und go2rtc
Nach dem ersten Login zeigt Frigate zunächst an, dass noch keine Kameras konfiguriert sind. Die Einrichtung erfolgt über den Konfigurationseditor in der Frigate-Oberfläche.
Eine typische Grundkonfiguration besteht aus mehreren Bereichen:
- MQTT: Wird für die Kommunikation mit Home Assistant benötigt.
- go2rtc: Verwaltet den Kamera-Stream effizient und stellt ihn intern bereit.
- cameras: Definiert, welche Streams Frigate für Erkennung, Aufnahme oder weitere Aufgaben nutzt.
- objects: Legt fest, welche Objekte erkannt werden sollen, zum Beispiel Personen, Fahrräder oder Autos.
YAML-Code Tablet
mqtt:
enabled: true
host: 192.168.178.XXX # IP deines Home Assistant
port: 1883
user: MQTT_USER # Dein MQTT Benutzername
password: MQTT_PASSWORT # Dein MQTT Passwort
go2rtc:
streams:
meine_kamera:
- rtsp://admin:KAMERA_PASSWORT@192.168.178.XXX:554/h264Preview_01_main
ffmpeg:
hwaccel_args: preset-vaapi
detectors:
ov:
type: openvino
device: AUTO
model:
model_type: yolo-generic
width: 320
height: 320
input_tensor: nchw
input_dtype: float
path: /config/yolov9-s-320.onnx
labelmap_path: /labelmap/coco-80.txt
record:
enabled: true
continuous:
days: 0
alerts:
retain:
days: 3
mode: motion
cameras:
meine_kamera:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/meine_kamera
roles:
- detect
- record
detect:
enabled: true
fps: 5
objects:
track:
- person
- bicycle
- carFür die Home-Assistant-Anbindung muss MQTT aktiviert werden. Dazu trägst du die IP-Adresse deines Home-Assistant-Systems, den MQTT-Port in der Regel 1883 sowie Benutzername und Passwort ein, falls dein MQTT-Broker diese benötigt.
Besonders wichtig ist go2rtc. Ohne go2rtc würde Frigate für jede Aufgabe eigene Verbindungen zur Kamera öffnen, etwa für Objekterkennung und Aufnahme. Das kann viele Kameras überfordern und unnötig Bandbreite verbrauchen. Mit go2rtc wird der Kamerastream nur einmal geöffnet und intern an Frigate weitergereicht.
Im Kamerabereich legst du dann fest, was Frigate mit dem Stream machen soll. Dort bestimmst du beispielsweise, ob ein Stream für detect, record oder beides genutzt wird. Wichtig ist, dass die Namen aus dem go2rtc-Bereich und dem Kamerabereich sauber zusammenpassen.
YOLOv9-Modell für bessere Objekterkennung nutzen
Frigate bringt bereits ein Standardmodell für die Objekterkennung mit. Für eine zuverlässigere Erkennung von Personen, Fahrrädern und weiteren Objekten kannst du aber ein verbessertes YOLOv9-Modell einsetzen.
Das Modell wird über einen Terminal-Befehl heruntergeladen. Dabei wird temporär ein Docker-Container gestartet, der die Modelldateien lädt und anschließend in dein Frigate-config-Verzeichnis kopiert. Danach liegen dort die benötigten .onnx-Dateien.
# Modell herunterladen (ein einziger Befehl)
sudo docker run --rm -v /volume2/docker/frigate/config:/output homecentr/frigate-models sh -c "cp /*.onnx /output/"
# Prüfen ob Modelle vorhanden sind
ls /volume2/docker/frigate/config/*.onnxWichtig: Das Modell muss in deiner Frigate-Konfiguration auch referenziert werden. Wenn du meine vorbereitete Beispielkonfiguration nutzt, ist dieser Verweis idealerweise bereits enthalten. Nach dem Kopieren der Dateien und einem Neustart verwendet Frigate dann das neue Modell.
Weitere Informationen zu Frigate und den unterstützten Objekten findest du in der offiziellen Dokumentation: Frigate Dokumentation und Frigate Objekte. Die YOLOv9-Modelle findest du hier: YOLOv9 Modelle.
Gesichtserkennung aktivieren und trainieren
Damit Frigate nicht nur Personen erkennt, sondern auch bestimmte Personen unterscheiden kann, aktivierst du die Gesichtserkennung in den Erkennungsfunktionen. Dort kannst du auch die Modellgröße einstellen. Im Beispiel wurde die Modellgröße auf groß gesetzt und die Gesichtserkennung aktiviert.
Danach musst du Frigate beibringen, wer du bist. Das passiert über die Bibliothek in Frigate. Dort legst du eine Person an, lädst ein gutes Referenzbild hoch und weist erkannte Gesichter nach und nach dieser Person zu.
Für ein zuverlässiges Training gelten grob diese Richtwerte:
- Minimum: 5 bis 10 Bilder – damit funktioniert die Erkennung oft schon grundsätzlich.
- Empfohlen: 20 bis 30 Bilder – ein guter Bereich für stabile Ergebnisse.
- Ideal: 50 bis 100 Bilder – besonders robust bei unterschiedlichen Lichtverhältnissen und Blickwinkeln.
Wichtig ist die Qualität der Trainingsbilder. Sehr schlechte Bilder solltest du nicht verwenden. Gleichzeitig musst du Bilder, bei denen Frigate dich bereits mit sehr hoher Sicherheit, mehr als 90%, erkennt, nicht zwingend erneut zum Training hinzufügen. Sinnvoll sind vor allem Aufnahmen aus unterschiedlichen Situationen: anderes Licht, andere Tageszeit, leicht andere Perspektive, mit Helm oder ohne Helm je nachdem, was bei dir in der Praxis vorkommt.
In der Bibliothek siehst du erkannte Gesichter inklusive Erkennungswert. Dort kannst du ein Gesicht einer vorhandenen Person zuordnen oder nicht benötigte Erkennungen löschen. So wächst mit der Zeit eine saubere Trainingsbibliothek, wodurch die Erkennung immer zuverlässiger wird.
Die offizielle Frigate-Dokumentation zum Aufbau eines robusten Trainingssets findest du hier: Frigate Gesichtserkennung Training.
Frigate in Home Assistant integrieren
Die Frigate-Integration wird in Home Assistant über HACS installiert. Danach lässt sie sich wie gewohnt als Integration hinzufügen.
Die Einrichtung läuft in diesen Schritten:
- Öffne HACS in Home Assistant.
- Suche nach Frigate.
- Lade die aktuelle Version der Integration herunter.
- Starte Home Assistant neu.
- Gehe zu Einstellungen > Geräte & Dienste.
- Füge die Frigate-Integration hinzu.
- Trage die URL zu deiner Frigate-Instanz ein, also zum Beispiel die Adresse deines NAS inklusive Port.
- SSL-Validierung kannst du deaktivieren, wenn du Frigate intern ohne gültiges Zertifikat betreibst.
Nach erfolgreicher Einrichtung legt Home Assistant automatisch Geräte und Entitäten an. Dazu gehören deine Kameras, Frigate selbst und auch angelegte Zonen. Besonders spannend sind Sensoren wie Last Recognized Face, die du später als Bedingung in Automationen nutzen kannst.
Home Assistant Automation: Garage öffnet bei erkanntem E-Bike
Das eigentliche Highlight ist die Automation in Home Assistant. Ziel ist: Wenn dein Fahrrad in der richtigen Zone erkannt wird, du selbst per Gesichtserkennung bestätigst wurde und weitere Sicherheitsbedingungen erfüllt sind, soll das Garagentor automatisch öffnen.
Der Aufbau der Automation sieht logisch so aus:
- Auslöser: Frigate erkennt ein Fahrrad in der definierten Zone, zum Beispiel E-Bike.
- Bedingung 1: Das iPhone hat die Home-Zone betreten innerhalb eines bestimmten Zeitraums
- Bedingung 2: Der Frigate-Sensor Last Recognized Face meldet die eigene Person.
- Bedingung 3: Das Garagentor ist aktuell geschlossen.
- Aktion: Home Assistant öffnet das Garagentor.
- Optional: Zusätzlich wird eine Push-Nachricht ans iPhone gesendet.
Diese zusätzlichen Bedingungen sind wichtig, damit die Garage nicht nur wegen eines erkannten Fahrrads öffnet. Wenn zum Beispiel jemand anderes mit einem Fahrrad durch den Kamerabereich läuft, soll natürlich nichts passieren. Durch die Kombination aus Fahrrad-Erkennung, Gesichtserkennung, Anwesenheitslogik und Torstatus wird die Automation deutlich sicherer.
Die Push-Benachrichtigung ist ebenfalls sinnvoll. So bekommen du sofort mit, wenn das Garagentor geöffnet wurde – besonders hilfreich während der Testphase oder falls einmal eine Bedingung unerwartet greift.
Masken und Zonen sauber planen
Bevor du Automationen auf Basis von Kameraerkennung baust, solltest du die Zonen sauber definieren. In Frigate kannst du für jede Kamera Bereiche markieren, die ignoriert werden sollen. Das ist nicht nur für Datenschutz wichtig, sondern reduziert auch unnötige Erkennungen.
Für Automationen sind Zonen besonders hilfreich. Statt auf jede Fahrrad-Erkennung irgendwo im Kamerabild zu reagieren, reagierst du nur auf ein Fahrrad in einem konkret definierten Bereich – zum Beispiel direkt vor der Garage oder in der Einfahrt auf dem eigenen Grundstück.
So bekommst du deutlich zuverlässigere Auslöser und vermeidest Fehlreaktionen.
Fazit
Frigate ist eine starke Lösung, wenn du lokale KI-Objekterkennung ohne Cloud und ohne laufende Kosten nutzen möchtest. Auf einem NAS oder Docker-System läuft die Software stabil, lässt sich mit einem besseren YOLOv9-Modell erweitern und über MQTT sowie die Frigate-Integration sehr gut mit Home Assistant verbinden.
Besonders spannend wird es, wenn du die Objekterkennung nicht nur zur Überwachung nutzt, sondern daraus echte Smart-Home-Automationen baust. Die Kombination aus Fahrrad-Erkennung, Gesichtserkennung und Home-Assistant-Bedingungen zeigt sehr schön, wie zuverlässig und gleichzeitig sicher solche Automationen umgesetzt werden können.
Weitere Home Assistant Beiträge findest du hier!
