# Addons - Frigate

# Installation in Home Assistant

### Beschreibung:

Ein Videoüberwachungssystem , Installation in Home Assistant direkt.

### Vorraussetzungen:

Ein MQTT Broker  
Das Fileeditor Addon

### Installation aus dem Addon Store:

Dazu auf   
Einstellungen -&gt; Addons -&gt; Addon Store

Dort Repository hinzufügen (3 Punkte oben rechts)

[![Auswahl_032.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/wt4EJIQSamaiMgTw-auswahl-032.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/wt4EJIQSamaiMgTw-auswahl-032.png)

[![Auswahl_033.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/37QsIC3JCImSYmbl-auswahl-033.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/37QsIC3JCImSYmbl-auswahl-033.png)

[![Auswahl_034.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/Nw0nkCtXBS1zDDYY-auswahl-034.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/Nw0nkCtXBS1zDDYY-auswahl-034.png)

[![Auswahl_035.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/pFE2uk5yAsa0YSkM-auswahl-035.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/pFE2uk5yAsa0YSkM-auswahl-035.png)

[![Auswahl_036.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/20sNUk3CYxj2KwJo-auswahl-036.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/20sNUk3CYxj2KwJo-auswahl-036.png)

Dort folgende Repo hinzufühgen

[https://github.com/blakeblackshear/frigate-hass-addons](https://github.com/blakeblackshear/frigate-hass-addons)

und auf hinzufügen klciken

[![Auswahl_037.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/wqoVDo1E0IsWrAdY-auswahl-037.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/wqoVDo1E0IsWrAdY-auswahl-037.png)

Nun ist die Repo drin und auf schließen klicken, danach den browser mit F5 refresh durchführen

[![Auswahl_038.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/odV3kY9ZDDhrWTLF-auswahl-038.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/odV3kY9ZDDhrWTLF-auswahl-038.png)

Nun haben wir in unserem Store die frigate Varianten zur Verfügung

[![Auswahl_039.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/thSFOsdWKxlSlFKv-auswahl-039.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/thSFOsdWKxlSlFKv-auswahl-039.png)

Wir wäheln die Frigate Standard Variante, Full Access wäre für Kameras mit Hardware Beschleunigung.  
Habt Ihr Kameras mit Hardware Beschleunigung nehmt Ihr Full Access

[![Auswahl_040.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/EHMqgE4zkh5Pyojy-auswahl-040.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/EHMqgE4zkh5Pyojy-auswahl-040.png)

Nun auf installieren klicken, danach das Addon noch **NICHT!!** starten

[![Auswahl_041.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/5AWn9d7xFOpYpGSw-auswahl-041.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/5AWn9d7xFOpYpGSw-auswahl-041.png)

Nun im File Editor auf Browse / Durchsuchen gehen gehen und eine neue Datei anlegen mit dem namen  
frigate.yml

[![Auswahl_042.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/P8IFwY0N8XMUJUuE-auswahl-042.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/P8IFwY0N8XMUJUuE-auswahl-042.png)

[![Auswahl_043.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/scaled-1680-/7XTX8ewGcjlfpE0C-auswahl-043.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-07/7XTX8ewGcjlfpE0C-auswahl-043.png)  
Hier mal ein Inhalt den man als Vorlage nehmen und erweitern kann:

```
mqtt:
  enabled: True
  host: 172.16.0.14
  user: smarthome
  password: smarthome
  topic_prefix: frigate
  # Optional: client id (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  client_id: frigate
  # Optional: interval in seconds for publishing stats (default: shown below)
  stats_interval: 15

#immer die frigatre datenbank da hinlegen wo auch die medien liegen, denn sollte mal das netzlaufwerkabbrechen, 
#haben wir keine inkonsistente Datenbank zu den videos
database:           
  path: /media/frigate/frigate.db

# Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  detector_name:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    type: cpu 
#Hardware Beschleunigung aktivieren, wenn eine GPU vorhanden für hw Beschleunigung dann den Kommentar bei hwaccel_args entfernen
ffmpeg:
  #hwaccel_args: -c:v h264_qsv
  hwaccel_args: preset-intel-vaapi
  #hwaccel_args: preset-intel-qsv-h264
  #hwaccel_args: preset-rpi-64-h264
  #hwaccel_args: preset-rpi-64-h265

birdseye:
  enabled: True
  restream: True
  mode: objects

objects:
  track:
    - person
    - car
#ich hab den Filter rausgenommen, aber wer möchte das die Objekterkennung nur über einen bestimmten Bereich geht, kann diesen Definieren.
#Allerdings wäre es dafür einfacher Zones für die Kameras in der UI zu erstellen.
  #filters:
   # person:
     # min_area: 5000
     # max_area: 100000


go2rtc:
  streams:
    Treppenhaus: 
      - rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_main#video=copy
    Treppenhaus_sub: 
      - rtsp://smarthome:Smarthome&More@192.168.101.185:554/h264Preview_01_sub#video=copy
  #enable webrtc für flüssigeres bild in der lovlace Karte
  webrtc:
    candidates:
      - 127.0.0.1:8555
      - stun:8555  

cameras:
  Treppenhaus_CAM:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/Treppenhaus
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/Treppenhaus_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 1280 #Hier unbedingt die reale Auslösung des Streams wählen
      height: 720 #Hier unbedingt die reale Auslösung des Streams wählen
      fps: 5
    snapshots:
      enabled: True
    record:
      enabled: True
      retain: 
        mode: motion #nimmt nur auf wenn Bewegung erkannt wurde und nicht komplett durchgehend, 
              #dies ist Lösung für die Cach Warning wenn zu wenig RAM vorhanden ist.
              #Und warum soll man die Festplatte unnötig volllaufen lassen, auch wenn nur für 1 Tag wäre
        days: 1 #ich möchte ja nur die clips haben wo auch objekte erkannt werden. 
                #Es wird aber in frigate tatsächlich die ganze zeit aufgenommen. 
                #Wir brauchen keine Komplettaufnahmen länger als ein Tag, also noch einem Tag wegschmeißen. 
                #Denn den Record brauchen wir leider, damit frigate die Clips daraus schneiden kann.
      detections:
        pre_capture: 30        # Sekunden vor dem Ereignis mitschneiden
        post_capture: 60       # Sekunden nach dem Ereignis mitschneiden
        retain: 
          default: 14
```

#### Die Config Werte:

##### MQTT:

Wir ändern den Username und kennwort bei MQTT auf unseren MQTT Benutzer und Kennwort ab.  
Den Host ändern wir auf die IP Adresse unseren Home Assistanten ab.

Den rest von MQTT lassen wir so.

##### Detectors:

Hier type: cpu nehmen oder wer ein google corel ai Stick hat stellt folgendes ein:  
Birdeye view

##### FFMPEG:

<div id="bkmrk-hinweis%3A-darauf-acht" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** Darauf achten das die Kamera Streams den gleichen Codec haben den die HW Beschleunigung auch kann!!!</div>- `#hwaccel_args: -c:v h264_qsv`  
    **Quick Sync direkt erzwingen (H.264).** Das ist ein **Roh-ffmpeg-Flag** und allein meist **nicht ausreichend** (eigentlich bräuchtest du zusätzlich `-hwaccel qsv`, Device usw.). In Frigate lieber die QSV-Preset-Zeile unten nutzen. Nur für Intel-iGPU, nur H.264.
- `#hwaccel_args: preset-intel-vaapi`  
    **Intel iGPU über VAAPI (Linux).** Solide Allround-Variante, funktioniert für **H.264 und oft auch H.265** je nach iGPU.  
    Voraussetzungen: Linux, `/dev/dri` in den Container durchreichen. Gut, wenn du H.265 im Main-Stream hast, aber trotzdem HW-Decode willst.
- `#hwaccel_args: preset-intel-qsv-h264`  
    **Intel Quick Sync (QSV) speziell für H.264.** Sehr effizient, geringe CPU-Last.  
    Voraussetzungen: Intel-iGPU + `/dev/dri`. **Nur verwenden, wenn der zu decodierende Stream H.264 ist** (für H.265 gibt es ein anderes Preset, nicht dieses).
- `#hwaccel_args: preset-rpi-64-h264` und bei 265 genau umgekehrt, kein h264  
    **Raspberry Pi (64-bit) via V4L2 M2M, H.264-Decode.** Für Pi 4/5 mit 64-bit OS. **Kein H.265-HW-Decode**, also Sub-Stream in der Kamera auf H.264 stellen. Container braucht Zugriff auf die Video-Devices (bei HA-Addon i. d. R. schon so).
- `#hwaccel_args: preset-rpi-64-h265`  
    **Raspberry Pi (64-bit) via V4L2 M2M, H.265-Decode.** Für Pi 4/5 mit 64-bit OS. **Kein H.264-HW-Decode**, also Sub-Stream in der Kamera auf H.265 stellen. Container braucht Zugriff auf die Video-Devices (bei HA-Addon i. d. R. schon so).
- 

##### Object:

Wir wollen Personen und Autos erkennen.

##### go2rtc:

hier wird eine Verbindung zur Kamera aufgebaut. Wenn eine Kamera auch einen Substream hat, für hohe und niedrige auflösung wählen.  
Main ist immer hochauslösend, sub als Previe.  
Kann die Cam nur ein Stream.  
Diesen bei beie eintargen.

##### Cameras:

Dort den Namen der Camere eintragen wie er auch wirklcih erscheinen soll.  
Hier erstellen wir ein neuen RTSP Stream auf localhost.  
Dieser verlinkt auf den go2rtc. Vorteil eure Kamera die in go2rtc angelegt ist, unterstützt nur einen Stream gleichzeitg zum abruf, nun könnt Ihr den input von cameras auch für externe Anwendungen nutzen. Denn in der externen Anwedung gebt ihr den Camera input an. Und dann greift Home Assistant auf die Cam im go2rtc zu.

##### record:

In Frigate gibt’s im `record:`-Block mehrere Untersektionen, die unterschiedliche Arten von Videoaufzeichnungen betreffen.  
Die Namen **`alerts`**, **`detections`** und **`events`** tauchen dort auf, um gezielt **unterschiedliche Aufnahmetypen** separat zu konfigurieren.

##### 1️⃣ **`alerts`**

- Bezieht sich auf Clips, die durch einen **Alarm** ausgelöst werden (z. B. wenn ein Objekt mit einer sehr hohen Erkennungssicherheit erkannt wird).
- Entsteht meist, wenn `review: true` aktiviert ist oder ein **MQTT-/API-Trigger** für einen Alarm kommt.
- Wird eher selten genutzt, außer du hast externe Systeme, die Frigate “Alarm!” rufen lassen.

---

##### 2️⃣ **`detections`**

- Steht für **Videoabschnitte während einer aktiven Objekterkennung**.
- Wenn Frigate etwas erkennt (Person, Auto, Tier) und die `detect:`-Parameter erfüllt sind, speichert dieser Modus die Clips nur für diese Zeit.
- Du kannst hier eigene `pre_capture`- und `post_capture`-Zeiten festlegen, die nur für “Erkennungsclips” gelten.
- Hier stellst du typischerweise deine gewünschten 30 Sekunden vorher und 60 Sekunden nachher ein.

---

💡 **Praxis-Tipp:**  
Wenn du einfach nur möchtest, dass **jeder erkannte Vorfall** mit Puffer aufgenommen wird, reicht es, nur **`events`** in `record:` zu konfigurieren – die anderen brauchst du nicht zwingend.

##### **Mögliche Parameter in `alerts` / `detections` / `events`**

<div class="_tableContainer_1rjym_1" id="bkmrk-parameter-typ-bedeut"><div class="_tableWrapper_1rjym_13 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1414" data-start="402" style="width: 100%; height: 1399.87px;"><thead data-end="433" data-start="402"><tr data-end="433" data-start="402" style="height: 29.7353px;"><th data-col-size="sm" data-end="414" data-start="402" style="width: 15.2552%; height: 29.7353px;">Parameter</th><th data-col-size="sm" data-end="420" data-start="414" style="width: 11.1986%; height: 29.7353px;">Typ</th><th data-col-size="md" data-end="433" data-start="420" style="width: 73.5392%; height: 29.7353px;">Bedeutung</th></tr></thead><tbody data-end="1414" data-start="466"><tr data-end="587" data-start="466" style="height: 46.5294px;"><td data-col-size="sm" data-end="486" data-start="466" style="width: 15.2552%; height: 46.5294px;">**`pre_capture`**</td><td data-col-size="sm" data-end="509" data-start="486" style="width: 11.1986%; height: 46.5294px;">Sekunden (float/int)</td><td data-col-size="md" data-end="587" data-start="509" style="width: 73.5392%; height: 46.5294px;">Anzahl Sekunden Video, die **vor dem Ereignis** gespeichert werden sollen.</td></tr><tr data-end="711" data-start="588" style="height: 46.5294px;"><td data-col-size="sm" data-end="609" data-start="588" style="width: 15.2552%; height: 46.5294px;">**`post_capture`**</td><td data-col-size="sm" data-end="632" data-start="609" style="width: 11.1986%; height: 46.5294px;">Sekunden (float/int)</td><td data-col-size="md" data-end="711" data-start="632" style="width: 73.5392%; height: 46.5294px;">Anzahl Sekunden Video, die **nach dem Ereignis** gespeichert werden sollen.</td></tr><tr data-end="796" data-start="712" style="height: 29.7353px;"><td data-col-size="sm" data-end="727" data-start="712" style="width: 15.2552%; height: 29.7353px;">**`retain`**</td><td data-col-size="sm" data-end="735" data-start="727" style="width: 11.1986%; height: 29.7353px;">Block</td><td data-col-size="md" data-end="796" data-start="735" style="width: 73.5392%; height: 29.7353px;">Einstellungen, wie lange diese Aufnahmen behalten werden.</td></tr><tr data-end="894" data-start="797" style="height: 29.7353px;"><td data-col-size="sm" data-end="820" data-start="797" style="width: 15.2552%; height: 29.7353px;">**`retain.default`**</td><td data-col-size="sm" data-end="833" data-start="820" style="width: 11.1986%; height: 29.7353px;">Tage (int)</td><td data-col-size="md" data-end="894" data-start="833" style="width: 73.5392%; height: 29.7353px;">Standardanzahl Tage, die diese Aufnahmen behalten werden. Alte syntax days</td></tr><tr data-end="1003" data-start="895" style="height: 425.853px;"><td data-col-size="sm" data-end="918" data-start="895" style="width: 15.2552%; height: 425.853px;">**`retain.objects`**</td><td data-col-size="sm" data-end="928" data-start="918" style="width: 11.1986%; height: 425.853px;">Mapping</td><td data-col-size="md" data-end="1003" data-start="928" style="width: 73.5392%; height: 425.853px;">Abweichende Aufbewahrungsdauer pro Objektklasse (z. B. `"person": 30`).  
egal was in default steht, wird eine Person erkannt, 30 Tage aufbewahren.  
```
Beispiel:
retain:
  default: 14          # Standard: 14 Tage behalten
  objects:
    person: 30         # Clips mit Personen: 30 Tage behalten
    car: 7             # Clips mit Autos: 7 Tage behalten


Ein Event ohne Person → 14 Tage behalten

Ein Event mit Person → 30 Tage behalten

Ein Event mit Auto, aber ohne Person → 7 Tage behalten

Ein Event mit Auto und Person → nimmt den höchsten Wert (30 Tage)

💡 Das ist praktisch, wenn du z. B. Fahrzeuge oder Tiere kürzer
behalten willst, aber Personenaufnahmen länger archivieren möchtest.
```

</td></tr><tr data-end="1099" data-start="1004" style="height: 29.7353px;"><td data-col-size="sm" data-end="1020" data-start="1004" style="width: 15.2552%; height: 29.7353px;">**`enabled`**</td><td data-col-size="sm" data-end="1033" data-start="1020" style="width: 11.1986%; height: 29.7353px;">true/false</td><td data-col-size="md" data-end="1099" data-start="1033" style="width: 73.5392%; height: 29.7353px;">Aktiviert/deaktiviert die Aufzeichnung für diese Untersektion.</td></tr><tr data-end="1199" data-start="1100" style="height: 29.7353px;"><td data-col-size="sm" data-end="1116" data-start="1100" style="width: 15.2552%; height: 29.7353px;">**`objects`**</td><td data-col-size="sm" data-end="1124" data-start="1116" style="width: 11.1986%; height: 29.7353px;">Liste</td><td data-col-size="md" data-end="1199" data-start="1124" style="width: 73.5392%; height: 29.7353px;">Beschränkt Aufnahmen auf bestimmte Objekte (z. B. `["person", "car"]`).</td></tr><tr data-end="1313" data-start="1200" style="height: 29.7353px;"><td data-col-size="sm" data-end="1223" data-start="1200" style="width: 15.2552%; height: 29.7353px;">**`required_zones`**</td><td data-col-size="sm" data-end="1231" data-start="1223" style="width: 11.1986%; height: 29.7353px;">Liste</td><td data-col-size="md" data-end="1313" data-start="1231" style="width: 73.5392%; height: 29.7353px;">Aufnahmen nur, wenn das Objekt in einer dieser definierten Zonen erkannt wird.</td></tr><tr data-end="1414" data-start="1314" style="height: 29.7353px;"><td data-col-size="sm" data-end="1332" data-start="1314" style="width: 15.2552%; height: 29.7353px;">**`min_score`**</td><td data-col-size="sm" data-end="1345" data-start="1332" style="width: 11.1986%; height: 29.7353px;">Zahl (0–1)</td><td data-col-size="md" data-end="1414" data-start="1345" style="width: 73.5392%; height: 29.7353px;">Mindest-Score für die Erkennung, damit ein Clip gespeichert wird.</td></tr><tr style="height: 643.074px;"><td style="width: 15.2552%; height: 643.074px;">**`active_objects`**</td><td style="width: 11.1986%; height: 643.074px;">Liste</td><td style="width: 73.5392%; height: 643.074px;">- Wenn ein Objekt erkannt wird, startet ein Event.
- Das Event bleibt **solange aktiv**, wie mindestens eines der festgelegten `active_objects` noch im Bild ist.
- Erst wenn kein `active_object` mehr sichtbar ist **und** der `post_capture`-Puffer abgelaufen ist, wird der Clip abgeschlossen.
- Praktisch, um zu verhindern, dass eine Aufnahme in mehrere kurze Clips gesplittet wird, wenn ein Objekt kurz verschwindet und wiederkommt.

```
record:
  enabled: true
  detections:
    pre_capture: 30
    post_capture: 60
    active_objects:
      - person
      - car
    retain:
      default: 14
➡ In diesem Beispiel:

Event startet, wenn Person oder Auto erkannt wird.

Solange eines dieser beiden Objekte im Bild ist, 
bleibt das Event aktiv.

Wenn beide weg sind, läuft noch post_capture (hier 60 Sekunden)
und der Clip wird dann abgeschlossen.
```

💡 **Wichtig:**

- Hat **keinen Einfluss** auf `alerts` oder `detections`, sondern nur auf `events`.
- Wenn du Objekte wie `"dog"` nicht in `active_objects` aufnimmst, können diese zwar erkannt werden, halten das Event aber **nicht** offen.

</td></tr><tr style="height: 29.7353px;"><td style="width: 15.2552%; height: 29.7353px;">**`mode`**</td><td style="width: 11.1986%; height: 29.7353px;">String</td><td style="width: 73.5392%; height: 29.7353px;">In Frigate steuert der **`mode`**-Parameter unter `record:` **wann und wie Aufnahmen gespeichert werden**.  
Er beeinflusst **die komplette Recorder-Logik** – also, ob Clips ständig oder nur bei Erkennung gespeichert werden.

#### **Mögliche Werte von `mode`**

<div class="_tableContainer_1rjym_1"><div class="_tableWrapper_1rjym_13 group flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="1091" data-start="266" style="width: 99.9731%;"><thead data-end="311" data-start="266"><tr data-end="311" data-start="266"><th data-col-size="sm" data-end="273" data-start="266" style="width: 16.359%;">Wert</th><th data-col-size="sm" data-end="285" data-start="273" style="width: 22.6913%;">Bedeutung</th><th data-col-size="xl" data-end="311" data-start="285" style="width: 60.9399%;">Wann wird aufgenommen?</th></tr></thead><tbody data-end="1091" data-start="358"><tr data-end="527" data-start="358"><td data-col-size="sm" data-end="370" data-start="358" style="width: 16.359%;">**`all`**</td><td data-col-size="sm" data-end="386" data-start="370" style="width: 22.6913%;">Daueraufnahme</td><td data-col-size="xl" data-end="527" data-start="386" style="width: 60.9399%;">24/7-Aufzeichnung, unabhängig von Bewegung oder Erkennung. Events werden zusätzlich markiert, aber der komplette Stream wird gespeichert.</td></tr><tr data-end="731" data-start="528"><td data-col-size="sm" data-end="543" data-start="528" style="width: 16.359%;">**`motion`**</td><td data-col-size="sm" data-end="562" data-start="543" style="width: 22.6913%;">Nur bei Bewegung</td><td data-col-size="xl" data-end="731" data-start="562" style="width: 60.9399%;">Speichert, sobald Bewegung erkannt wird (auch wenn kein Objekt erkannt wird). Spart Speicherplatz, kann aber Ereignisse abschneiden, wenn Bewegung spät erkannt wird.</td></tr><tr data-end="949" data-start="732"><td data-col-size="sm" data-end="755" data-start="732" style="width: 16.359%;">**`active_objects`**</td><td data-col-size="sm" data-end="782" data-start="755" style="width: 22.6913%;">Nur bei aktiven Objekten</td><td data-col-size="xl" data-end="949" data-start="782" style="width: 60.9399%;">Speichert, wenn ein erkennbares Objekt (aus deiner Objektliste) aktiv im Bild ist. Noch sparsamer, aber Risiko, dass Aufnahmen fehlen, wenn Erkennung mal aussetzt.</td></tr><tr data-end="1091" data-start="950"><td data-col-size="sm" data-end="991" data-start="950" style="width: 16.359%;">**`never`** *(oder einfach weglassen)*</td><td data-col-size="sm" data-end="1023" data-start="991" style="width: 22.6913%;">Keine dauerhafte Aufzeichnung</td><td data-col-size="xl" data-end="1091" data-start="1023" style="width: 60.9399%;">Es gibt nur Event-Clips, aber keine kontinuierliche Speicherung.</td></tr></tbody></table>

</div></div>```
Beispiel

💡 Allerdings ist das hier jetzt reine Bewegung, 
denn in Events fehlt die Objekt Erkennung nur als info 💡

record:
  enabled: true
  mode: motion
  detections:
    pre_capture: 30
    post_capture: 60
    retain:
      default: 14


➡ In diesem Beispiel:

Frigate speichert Clips nur bei Bewegung.

Dank pre_capture werden auch 30 Sekunden vor der Bewegung mitgeschnitten.

Ereignisse bleiben 14 Tage gespeichert.

💡 Praxis-Tipp:

Wenn du oft das Problem hast, dass der Anfang fehlt, 
ist mode: all am sichersten, weil Frigate dann immer puffert.

Wenn Speicherplatz knapp ist, mode: motion mit großem 
pre_capture (z. B. 30–60 Sekunden) wählen.
```

#### Das Zusammenspiel konkret:

##### **1. `mode` in der `record:`-Sektion (global)**

- Steuert die **Grundaufzeichnung**.
- Beispiel: `mode: motion` → Frigate schreibt den Videostream nur auf die Platte, wenn Bewegung erkannt wird (egal, ob ein bestimmtes Objekt erkannt wird).
- Wenn **keine Bewegung**, dann auch **kein Material im Speicher**, auf das `pre_capture`/`post_capture` zugreifen könnte.

---

##### **2. `mode` in `events:` (innerhalb `record:`)**

- Steuert **welche Teile** der schon aufgenommenen Daten **als Event-Clip** gespeichert und in der Weboberfläche unter *Clips* angezeigt werden.
- Beispiel: `mode: active_objects` → Nur die Abschnitte, in denen tatsächlich ein konfiguriertes Objekt im Bild ist, werden zu Events.
- Der Rest der Bewegungsvideos (z. B. Wind im Baum) wird **nicht** als Event markiert, obwohl er durch `mode: motion` global gespeichert wurde.

---

##### **Zusammenspiel**

💡 Man kann sich das so vorstellen:

1. **Globales `record.mode`** → Bestimmt, **wann der Rekorder läuft** und Daten speichert.
2. **`events.mode`** → Bestimmt, **welche Szenen daraus zu “wichtigen Clips”** werden.

```
Beispiel-Konfig
record:
  enabled: true
  mode: motion        # Nur aufnehmen, wenn Bewegung erkannt wird
  detectsions:
    mode: active_objects  # Aus diesen Bewegungs-Aufnahmen nur Clips mit erkannten Objekten machen
    pre_capture: 30
    post_capture: 60
    retain:
      default: 14


➡ Ablauf in dem Beispiel:

Es bewegt sich etwas im Bild → globales mode: motion startet Aufnahme.

Frigate prüft, ob ein Objekt in detect.objects erkannt wird.

Ja → Ausschnitt wird als Event gespeichert, inkl. Puffer (pre_capture + post_capture).

Nein → Die Bewegung wird zwar aufgenommen, aber kein Event erstellt 
(kann aber in der 24/7-Timeline auftauchen, wenn aktiviert).

Das heißt:

record.mode = Wann wird überhaupt aufgenommen?

events.mode = Was davon landet als markiertes Ereignis in den Clips?
```

##### 💡Tipp:

Wenn record mode motion ist landen trotzdem die erergniss wo nur Bewegung erkannt wurde aber keine Personen in der Timeline.  
Wir müssne dazu:

```
Events trotzdem mit pre_capture + post_capture (damit der Anfang/Ende nicht abgeschnitten wird)
Sonstige Bewegungen nicht in der grünen 24/7-Timeline sehen
Also keine “leeren” Bewegungsclips, nur die echten Ereignisse
```

Du musst **`record.enabled: true`** lassen (damit der Puffer für pre/post funktioniert),  
aber `record.mode` so setzen, dass nur die Event-Zeiten gespeichert werden.

Das geht so:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr"></div></div>```
record: 
  enabled: true 
  mode: active_objects # NICHT motion, sonst landet alles in der Timeline 
  detections: 
    pre_capture: 30 
    post_capture: 60 
    retain: default: 14
```

---

### Warum das funktioniert

- **`record.mode: active_objects`** → Frigate schreibt den Videostream **nur**, wenn gerade ein “aktives Objekt” erkannt wird (also Person, Auto usw.).
- Das ist **das gleiche Zeitfenster**, das auch für Events genutzt wird → keine “extra” Bewegungsvideos in der Timeline.
- Trotzdem kann Frigate mit `pre_capture` ein paar Sekunden vorher aufnehmen, weil der Puffer im RAM läuft, auch wenn noch nichts gespeichert wurde.
- Ergebnis: **nur rote Event-Segmente in der Timeline**, keine grünen “nur Bewegung”-Segmente.

---

💡 **Tipp:** Wenn du wirklich nur bestimmte Objektarten für Events willst, setze in `detections:` noch `objects:`:

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="sticky top-9"><div class="absolute end-0 bottom-0 flex h-9 items-center pe-2"><div class="bg-token-bg-elevated-secondary text-token-text-secondary flex items-center gap-4 rounded-sm px-2 font-sans text-xs">  
</div></div></div><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-attr">detections:</span>  <span class="hljs-attr">objects:</span>    <span class="hljs-bullet">-</span> <span class="hljs-string">person</span>`</div></div>Dann entstehen nur Clips + Timeline-Einträge, wenn eine Person erkannt wurde.

</td></tr></tbody></table>

</div></div>### anderen Speicherort festlegen:  


frigate stopp  
  
Alle Daten werden im /media/frigate Verzeichnis gespeichert.  
Damit die Datenbank aber nicht im Config Verzeichnis liegt:

An die Konfig anfügen.

```
database:
  path: /config/frigate.db
  
ändern zu bzw hinzufügen wenn noch kein Database: Eintrag vorhanden

database:
  path: /media/frigate/frigate.db
```

Nun einen neuen Netzwerkspeicher anlegen mit dem Namen frigate.  
Dieser wird dann mit dem Namen frigate in Verzeichnis /media gemountet.  
Somit ist der Pfad dann Media frigate  
Möchte man seine alte Daten noch halten dann benennen wir vor dem erstellen des Speichers , das Verzeichnis frigate in frigate\_tmp um  
Nachdem der Netzwerkwerk speicher angehängt wurde verschieben wir den Inhalt aus frigate\_tmp in frigate.  
Dann starten wir das Addon wieder.

Das umbenennen kann man über das Addon Terminal in der Sidebar gemacht werden oder über ein Filebrowser Addon in der Sidebar  
Fertig

### Zeitstempel:  


In Frigate hat man nur die Möglichkeit Zeitstempel in die Bilder (Snapshots) einzubetten.  
Man kan das auch in die Recording über ffmpeg machen.  
Das ist aber sehr Ressourcen hungrig, weil das Video dazu neu encodiert wird.  
Nut mit Video Accelrator zu empfehelen.  
Mein Vorschlag wäre, ob die Kamera selbst die Möglichkeit hat einen Zeitstempel hinzuzufügen.

Für Unifi Kameras, kann man den Zeitstempel in der GUI config.  
  
Reicht einem die Zeit im Snapshot, dann kann man einen neuen Abschnitt in der Konfig (ich habe diesen unter go2rtc erstellt), dieses hinzufügen:  
Hier ändere Ich das Format von US auf 01.12.2024 13:15:45 in der Farbe weiß oben links

```

...
timestamp_style:
  # Optional: Position of the timestamp (default: shown below)
  #           "tl" (top left), "tr" (top right), "bl" (bottom left), "br" (bottom right)
  position: "tl"
  # Optional: Format specifier conform to the Python package "datetime" (default: shown below)
  #           Additional Examples:
  #             german: "%d.%m.%Y %H:%M:%S"
  format: "%d.%m.%Y %H:%M:%S"
  # Optional: Color of font
  color:
    # All Required when color is specified (default: shown below)
    red: 255
    green: 255
    blue: 255
  # Optional: Line thickness of font (default: shown below)
  thickness: 2
  # Optional: Effect of lettering (default: shown below)
  #           None (No effect),
  #           "solid" (solid background in inverse color of font)
  #           "shadow" (shadow for font)
  effect: "solid"
...
```

So sähe das dann aus, aber leider nur im Bild (Snapshots) und nicht in den Auffnahmen

[![Auswahl_090.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/M9VPnmYghsU9527a-auswahl-090.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/M9VPnmYghsU9527a-auswahl-090.png)

### Schlechte Internetverbindung:

Wenn die Internetverbindung einfach zu schlecht ist 128 KB pro Sekunde (1000 Kbit / 1 MBit (DSL 1000 Leitung) Up/download

Sollte die Internetverbindung für ein Flüssiges wiedergeben von Aufnahmen nicht funktionieren. Weil 4K über 1 Mbit gar nicht geht.  
Dann kann man die Gleiche Kamera nochmal anlegen nur zum Beispiel mit den Namen Mobil und dort bei record den Substream mit einer niedrigen Auflösung wählen.  
Nun werden zwei Aufnahmen erstellt einmal in 4K bzw höchste Auflösung was die Kamera Kann und einmal in der niedrichsten.  
Wazu das ganze?  
Ist man im Urlaub möchte man trotzdem auf die Aufnahmen zugreifen können, außerdem schont es zusätzlich das Datenvolumen.  
Braucht man zum Beispiel wegen eines Einbruchs dann das Video in 4K kann man dieses in 4K herunterladen.  
Vorher wäre es aber interessant sich überhaupt bequem das Einbruchvideo anzuschauen ohne es runter zu laden. Dafür ist dann die Aufnahme mit dem substream in niedriger Auflösung völlig ausreichend

Beispiel Konfig:

```

#Im Go to rtc Teil werden die Streams definiert.
#Die Stremas sind die URLs zu den Jeweiligen Streamd der Kamera(s).
#Wir haben 3 Stück.
#Innenhof = 4K
#Innenhof_Medium = 720p
#Innenhof_sub = DVD qualität
go2rtc:
  streams:
    Innenhof:
      - rtsp://user:pass@192.168.178.68:554/s0#video=copy
    Innenhof_medium:
      - rtsp://user:pass@192.168.178.68:554/s2#video=copy
    Innenhof_sub:
      - rtsp://user:pass@192.168.178.68:554/s1#video=copy
#hat jetzt nichts mit den cams zu tun, aber ich hab den webrtc mal mit reingepackt      
  webrtc:
    candidates:
      - 127.0.0.1:8555
      - stun:8555    
  
#Un in dem Camera Teil, die Cams mit detect record und livebild deklariert.
#Einfach doppelt mit anderen namen und dem entsprechendendes Streams.
Der detect Stream bleibt bei allen gleich, denn da braucht man ja kein Internet für


cameras:
  Innenhof_CAM:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/Innenhof
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/Innenhof_medium
          roles:
            - detect
    live:
      stream_name: Innenhof_medium
      quality: 8
    detect:
      width: 1280  #Hier unbedingt die reale Auslösung des Streams wählen
      height: 720  #Hier unbedingt die reale Auslösung des Streams wählen
      fps: 5 # in der Regel reichen 5 Frames
    snapshots:
      enabled: true
    record:
      enabled: true
      retain:
        default: 1
        mode: motion
    detections:
      retain:
        default: 30
        mode: active_objects
  Innenhof_CAM_Mobil:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/Innenhof_medium
          input_args: preset-rtsp-generic
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/Innenhof_medium
          input_args: preset-rtsp-generic
          roles:
            - detect
    live:
      stream_name: Innenhof_medium
      quality: 8
    detect:
      width: 1280 #Hier unbedingt die reale Auslösung des Streams wählen
      height: 720 #Hier unbedingt die reale Auslösung des Streams wählen
      fps: 5
    snapshots:
      enabled: true
    record:
      enabled: true
      retain:
        default: 1
        mode: motion
      detections:
        retain:
          default: 30
          mode: active_objects



```

### Full Reference Konfig:  


Will man alle möglichen Optionen wissen, dann unter

[https://docs.frigate.video/configuration/reference/](https://docs.frigate.video/configuration/reference/)

nachschauen

### Beispiel konfig small:

Noch ne kleine Erinnerung an die HW Beschleunigung:

##### FFMPEG:

- `#hwaccel_args: -c:v h264_qsv`  
    **Quick Sync direkt erzwingen (H.264).** Das ist ein **Roh-ffmpeg-Flag** und allein meist **nicht ausreichend** (eigentlich bräuchtest du zusätzlich `-hwaccel qsv`, Device usw.). In Frigate lieber die QSV-Preset-Zeile unten nutzen. Nur für Intel-iGPU, nur H.264.
- `#hwaccel_args: preset-intel-vaapi`  
    **Intel iGPU über VAAPI (Linux).** Solide Allround-Variante, funktioniert für **H.264 und oft auch H.265** je nach iGPU.  
    Voraussetzungen: Linux, `/dev/dri` in den Container durchreichen. Gut, wenn du H.265 im Main-Stream hast, aber trotzdem HW-Decode willst.
- `#hwaccel_args: preset-intel-qsv-h264`  
    **Intel Quick Sync (QSV) speziell für H.264.** Sehr effizient, geringe CPU-Last.  
    Voraussetzungen: Intel-iGPU + `/dev/dri`. **Nur verwenden, wenn der zu decodierende Stream H.264 ist** (für H.265 gibt es ein anderes Preset, nicht dieses).
- `#hwaccel_args: preset-rpi-64-h264`  
    **Raspberry Pi (64-bit) via V4L2 M2M, H.264-Decode.** Für Pi 4/5 mit 64-bit OS. **Kein H.265-HW-Decode**, also Sub-Stream in der Kamera auf H.264 stellen. Container braucht Zugriff auf die Video-Devices (bei HA-Addon i. d. R. schon so).
- `#hwaccel_args: preset-rpi-64-h265`  
    **Raspberry Pi (64-bit) via V4L2 M2M, H.265-Decode.** Für Pi 4/5 mit 64-bit OS. **Kein H.264-HW-Decode**, also Sub-Stream in der Kamera auf H.265 stellen. Container braucht Zugriff auf die Video-Devices (bei HA-Addon i. d. R. schon so).

##### Config:

```
#mqtt

mqtt:
  enabled: true
  host: 192.168.178.xx
  user: username
  password: password
  topic_prefix: frigate
  # Optional: client id (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  client_id: frigate
  # Optional: interval in seconds for publishing stats (default: shown below)
  stats_interval: 15


  # Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  coral1:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    type: edgetpu


    #Hardware Beschleunigung aktivieren, wenn eine GPU vorhanden für hw Beschleunigung dann den Kommentar bei hwaccel_args entfernen
ffmpeg:
  #hwaccel_args: -c:v h264_qsv
  #hwaccel_args: preset-intel-vaapi
  #hwaccel_args: preset-intel-qsv-h264
  #hwaccel_args: preset-rpi-64-h264
  #hwaccel_args: preset-rpi-64-h264
  
birdseye:
  enabled: true
  restream: true
  mode: objects

objects:
  track:
    - person
    - car
    - dog
    - cat

#video=copy ist wichtig damit das Video nicht neu transkodiert wird
go2rtc:
  streams:
    parkplatz:
      - rtsp://admin:password@192.168.178.xx/0#video=copy
    parkplatz_sub:
      - rtsp://admin:password@192.168.178.xx/1#video=copy

  #in dem Streams abschnitt kann man über die RTSP Eigenschaft den Timeout und ein Buffer einstellen.
  #Ich habe diesen nicht benutzt, kann man aber aktivieren.
  #rtsp:
   # mediatimeout: 10s  # Erhöht die Timeout-Zeit für den RTSP-Stream
  #buffer:
   # size: 8388608 # Puffergröße in Bytes, hier etwa 8 MB
  #enable webrtc für flüssigeres bild in der lovlace Karte
  webrtc:
    candidates:
      - 127.0.0.1:8555
      - stun:8555

cameras:
  parkplatz_CAM:
    ffmpeg:
      inputs:
        #full resolution for recording
        - path: rtsp://127.0.0.1:8554/parkplatz
          input_args: preset-rtsp-generic
          roles:
            - record
        #low resoultion for detect
        - path: rtsp://127.0.0.1:8554/parkplatz_sub
          input_args: preset-rtsp-generic
          roles:
            - detect
    live:
      stream_name: parkplatz
    detect:
      width: 640 #Hier unbedingt die reale Auslösung des Streams wählen
      height: 480 #Hier unbedingt die reale Auslösung des Streams wählen
      fps: 5
    snapshots:
      enabled: true
    record:
      enabled: true
      retain:
        mode: motion #nimmt nur auf wenn Bewegung erkannt wurde und nicht komplett durchgehend, dies ist Lösung für die Cach Warning wenn zu wenig RAM vorhanden ist
        default: 1 #ich möchte ja nur die clips haben wo auch objekte erkannt werden. Es wird aber in frigate tatsächlich die ganze zeit aufgenommen. 
        #das brauch ich aber nicht, also noch einem Tag wegschmeißen. Denn den Record brauchen wir leider, damit frigate die Clips daraus schneiden kann.
      alerts:
        retain:
          default: 14 #Tage wo alerts Aufbewart werden sollen
      detections:
        pre_capture: 30        # Sekunden vor dem Ereignis mitschneiden
        post_capture: 60       # Sekunden nach dem Ereignis mitschneiden
        retain:
          default: 14 #Tage Events Aufbewart werden sollen

version: 0.15-1

```

# Coral AI-Beschleuniger einbinden

### Beschreibung:

Das Auswerten der Bildervia CPU bringt die CPU an 99% Limit  
Damit ruckelt die Vorschau oder ist gar nicht verfügbar.  
Dafür setzten wir einen USB Dongle ein.

[![Auswahl_397.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/oZSMPeXxPxi1GolD-auswahl-397.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/oZSMPeXxPxi1GolD-auswahl-397.png)

### Config abändern:

Alt:

```
....
# Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  detector_name:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    type: cpu
    
....
```

Neu

```
...
# Optional: Detectors configuration. Defaults to a single CPU detector
detectors:
  # Required: name of the detector
  detector_name:
    # Required: type of the detector
    # Frigate provided types include 'cpu', 'edgetpu', and 'openvino' (default: shown below)
    # Additional detector types can also be plugged in.
    # Detectors may require additional configuration.
    # Refer to the Detectors configuration page for more information.
    #Hier kommt anstatt cpu edgetpu rein
    type: edgetpu
    device: usb
...
```

### Fehlerbehebung:  


#### Fehler: Unable to keep up with recording segments in cache:

Dieser Fehler kann auftauchen, wenn Frigate in einer KVM Maschine läuft und Google Coral per USB durchgeschliffen wird.

Sollten die Aufnahmen irgendwann stoppen und im Log diese Fehler auftauchen, liegt es daran das der Coral Stick in der VM nicht hinterher kommt. Wenn die Latenz höher als 10ms ist

[![Auswahl_128.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/aFUEnV0KUpKm6AAz-auswahl-128.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/aFUEnV0KUpKm6AAz-auswahl-128.png)

```
2024-09-22 08:15:55.658352487  [2024-09-22 10:15:55] frigate.record.maintainer      WARNING : Unable to keep up with recording segments in cache for Innenhof_CAM. Keeping the 6 most recent segments out of 7 and discarding the rest...
2024-09-22 08:16:00.661791046  [2024-09-22 10:16:00] frigate.record.maintainer      WARNING : Unable to keep up with recording segments in cache for Innenhof_CAM_Mobil. Keeping the 6 most recent segments out of 7 and discarding the rest...
```

Abhilfe:

Dann Frigate in einen LCX Container stecken. Zweiter Vorteil wir können da auch die Video encoder Beschleunigung nutzen ;-)  
Siehe Artikel : [Installation als LXC Container und Einbindung in Home Assistant](https://wiki.hacker-net.de/books/home-assistant/page/installation-als-lxc-container-und-einbindung-in-home-assistant "Installation als LXC Container und Einbindung in Home Assistant")

# Installation als LXC Container und Einbindung in Home Assistant

### Beschreibung:

Sollte Home Assitant nicht auf einem Rasperrry oder nativ laufen sondern in einer VM.  
Dann sollte Frigate in einem LXC Container installiert werden, damit wir HW Beschleunigung für Video benutzen können.

Installation des Containers mittels den Helper scripten

Die Frigate LXC Seite dazu : [https://tteck.github.io/Proxmox/#frigate-lxc](https://tteck.github.io/Proxmox/#frigate-lxc)

**Wichtig in der Proxmox Webgui shell ausführen nicht nativ ssh!!!  
Und Standard installation auswählen, nicht Advanced!!!**

```
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/frigate.sh)"
```

Installation Fertig...

[![Auswahl_398.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/26yPKQNIeD3Hvpj5-auswahl-398.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/26yPKQNIeD3Hvpj5-auswahl-398.png)

Nach dem das Script durchgelafuefn ist, ist der Server über : **IP:5000 erreichbar**

Das script schleift uns schon die Grafikkarte durch.  
Wir brauchen dann nur noch in der lxc .conf

```
nano /etc/pve/lxc/<vmid>.conf

Beispiel

nano /etc/pve/lxc/102.conf
```

Folgenden Abschnitt an ende der Datei hinzufügen für den Coral USB Stick.  
In der Letzten Zeile die BUS Nummer anpassen.  
Mit lsusb herausfindbar

Output lsusb hier Bus 002

```
Bus 002 Device 003: ID 18d1:9302 Google Inc. 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 0658:0200 Sigma Designs, Inc. Aeotec Z-Stick Gen5 (ZW090) - UZB
Bus 001 Device 002: ID 0bda:c821 Realtek Semiconductor Corp. Bluetooth Radio 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

```

Und der Code

```
lxc.cgroup2.devices.allow: c 189:* rwm
...
lxc.mount.entry: /dev/bus/usb/002 /dev/bus/usb/002 none bind,optional,create=dir
```

Nun Kann Frigate konfiguriert werden über die Config File in derGUI.  
Nach jeder Änderung den Container stoppen und starten!!!

### Netzlaufwerk einbinden

Die Eigentlichen Medien Dateien sollen auf ein NSF Netzlaufwerk gespeichert werden.  
Dazu auf den NSF Server die IP des Frigate in die Ausnahmeliste hinzufügen.  
Wir mounten unser Frigate Verzeichnis in den Standard Order im Container unter /media/frigate  
  
Unsere NFS Freigabe heißt &lt;ip-adresse&gt;/frigate

In den Modul Option NFS anhaken

[![Auswahl_129.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/pidSKSVzSUdoCnuQ-auswahl-129.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/pidSKSVzSUdoCnuQ-auswahl-129.png)

Danach die fstab anpassen:

```
nano /etc/fstab
```

Nun folgende Mount Zeile am ende einfügen und an eure gegebenheiten anpassen.

Inhalt:

```
...
<ip>:/<share_name> /media/frigate nfs rw,soft,intr,noatime 0 0



Example
192.168.178.75:/NFS_Frigate /media/frigate nfs rw,soft,intr,noatime 0 0
```

Nun noch das Paket nsf common installieren

```
apt install nfs-common
```

Und nun mit

```
mount /media/frigate
```

 das Verzeichnis mounten

Graffikarte prüfen

Unser LXC Container ist für die Grafikkarte schon vorbereitet.

Das Programm zum testen

```
apt install vainfo
```

Wenn alles geklappt hat, dann solltet Ihr diese Ausgabe bekommen.  
Befehl:

```
vainfo
```

Ausgabe:

```
vainfo: VA-API version: 1.17 (libva 2.10.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.1 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointFEI
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointFEI
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointFEI
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile2            : VAEntrypointVLD
```

# Frigate HACS Addon

Beschreibung:

Mit dem Addon werden Cameras als Entity in Home Assistant angelegt.

Installation:

In HACS gehen -&gt; Dann integrations -&gt; Frigate eintippen.  
in neue Hacs verdion, so wie hier einfach in die suche Frigate eintippen.  
und Friagte Integration anklicken.

[![Auswahl_403.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/8PXVEWX3x79ovckd-auswahl-403.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/8PXVEWX3x79ovckd-auswahl-403.png)

[![Auswahl_404.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/NBvB4cRwRAieNlm5-auswahl-404.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/NBvB4cRwRAieNlm5-auswahl-404.png)

Danach Home Assistant neustarten und Browser cache leeren STRG+F5

Konfiguration:

Dann auf Einstellungen Geräte und Dienste

[![Auswahl_405.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/ZFKBheigEXt7G9os-auswahl-405.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/ZFKBheigEXt7G9os-auswahl-405.png)

Nun auf Integration hinzufügen

[![Auswahl_406.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/gWpQGYVfp0hpgjUK-auswahl-406.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/gWpQGYVfp0hpgjUK-auswahl-406.png)

Dort dann frigate in der suche eintippen und die Integration anklicken.

[![Auswahl_407.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/JET31IMRyzfqXItM-auswahl-407.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/JET31IMRyzfqXItM-auswahl-407.png)

Standardmäßig sollte das alles schon so vom Frigate ADDON (Also das Addon was auch wirklich Frigate ist) gesetzt sein.  
Bitt eübrpüfe ob auch rtmp gestezt ist

[![Auswahl_408.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/1aPvfzejspVo7eiC-auswahl-408.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/1aPvfzejspVo7eiC-auswahl-408.png)

Hier exkurs Überprüfung rtmp -&gt;  
Einstellungen im neuen Fenster öffnen, damit diese Seite offen bleibt  
Einstellungen -&gt; Addons -&gt; Frigate - &gt; Konfiguartion.  
Dort deaktivierte Port anzeigen und 195 bei rtmp eintragen.  
Speichern Frigate neustarten.

[![Auswahl_412.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/3x0xVV0OfJ1HL0Yv-auswahl-412.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/3x0xVV0OfJ1HL0Yv-auswahl-412.png)

Nun weiter mit der Integrations konfiguartion (Exkurs Ende)

Nun auf Bestätigen klicken.

Jetzt Bereich zuweisen, da ich noch keinen Bereich für Draußen habe, einfach in der Liste hinzufügen wählen und Bereich erstellen, wenn Ihr schon einen Bereich habt einfach nur noch auswählen.

[![Auswahl_409.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/DbzRcVTqUH0CQAQ5-auswahl-409.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/DbzRcVTqUH0CQAQ5-auswahl-409.png)

Da ich ja noch den Bereich erstellen muss hier wie es aussieht, Ich hab als Symbol einen Baum gewählt für draußen

[![Auswahl_410.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/rq4UDVKjwbVebgCO-auswahl-410.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/rq4UDVKjwbVebgCO-auswahl-410.png)

Nun haben wir alle Bereiche zugeordnet. Für Birdsview und Frigate, habe Ich den Bereich SmarthomeTechnik gewählt. Ich hab einen Bereich wo alle Smarthome relevanten Sachen rein kommen. wie Z-Wave Server, Bluetooh etc. Was nicht wirklich ein Gerät zum steuern ist

[![Auswahl_411.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/eQeEN2kwUD9EXPMm-auswahl-411.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/eQeEN2kwUD9EXPMm-auswahl-411.png)

Nun auf Fertig.  
Das wars, jetzt können wir die Geräte benutzen.

# Friagte Lovelace Card

### Beschreibung:

Eine eigene Karte um Frigate in Lovelace einzubinden.  
Somit mussman nicht unbedingt über den Menüpunkt in der Seitenleiste gehen.

### Vorrausetzung:

- Frigate installiert mit MQTT
- In der Frigate Konfigurations ist go2rtc aktiviert
- In den Stream webrtc aktiv
- Die HACS Frigate integration installiert.

### Installation:

Im HACS Store auf frontend gehen, dann auf repositoren durchsuchen als suchbegriff frigate eingeben.  
Dann bekommt man dies ergebnis.  
und dann herunterlande.  
Browser neu laden

[![Auswahl_399.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/tbzroQz482LqG1r9-auswahl-399.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/tbzroQz482LqG1r9-auswahl-399.png)

[![Auswahl_400.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/scaled-1680-/rILe21caCWicLP52-auswahl-400.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-08/rILe21caCWicLP52-auswahl-400.png)

Home Assistant Neustarten und den Cache leeren STRG+F5 !!!!!! Wichtig

### Konfiguration:

Nun kann im Dashboard eine Karte hingefügt werden, dann auf oben in der suche Frigate eingeben.  
Diese dann anklicken.[![Auswahl_082.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/s8U4EObCkanm9Hc0-auswahl-082.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/s8U4EObCkanm9Hc0-auswahl-082.png)

Nun unter Camera die Kamera auswählen die man haben möchte. Wir wählen in unserem Beispiel Innenhof Cam Mobil

[![Auswahl_083.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/taS7z7RP8M6WVf2s-auswahl-083.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/taS7z7RP8M6WVf2s-auswahl-083.png)

Bei Live Video Provider wählen wir go2rtc aus .

[![Auswahl_084.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/fMvAwiNZZHUsFUgd-auswahl-084.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/fMvAwiNZZHUsFUgd-auswahl-084.png)

Dann runter scrollen bis Live Provider options und dann go2rtc options

[![Auswahl_085.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/POdxqkEZUREAlfX4-auswahl-085.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/POdxqkEZUREAlfX4-auswahl-085.png)

Nu wählen wir go2rtc modes: Media Source Extension aus

[![Auswahl_086.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/j27S4K8SlaDrC3cs-auswahl-086.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/j27S4K8SlaDrC3cs-auswahl-086.png)

Und als Streamname, der Stream der für das Live Video benutzt werden soll.  
Die Streamnamen sind in der frigate.yml defniert im Abschnitt go2rtc.  
Sollte kein go2rtc vorhanden sein. Schaut nochmals in den Abschnitt   
[Installation in Home Assistant](https://wiki.hacker-net.de/books/home-assistant/page/installation-in-home-assistant "Installation in Home Assistant")  
  
Hier ist unser Streamname Innehof\_medium

[![Auswahl_087.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/jEafaDSksjLpfdEL-auswahl-087.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/jEafaDSksjLpfdEL-auswahl-087.png)

Nu kann man wenn möchte die Nächste Kamera Definieren, so kann man in dieser Karte dann durch die Kameras wechseln.  
Da dann die Sachen wieder ausfüllen, nur in diesem Fall mit anderer Cam und dann logischerweise auch anderem Live Stream

[![Auswahl_088.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/ZHU3X4plOrV9FOGO-auswahl-088.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/ZHU3X4plOrV9FOGO-auswahl-088.png)Hier der Quellcode für eine Kamera, dann braucht man nur im Text die Kamera austauschen.

<div id="bkmrk-hinweis%3A-dies-ist-ei" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** In der Auswahl werden die Kameras mit Leerzeichen dargestellt.   
Ich definiere in der Konfiguration alle Namen mit "_" dazwischen.   
Home Assistant interpretiert dieses dann als Leerzeichen.  
Deswegen muss in der Karte natürlich der Name mit "_" rein und nicht mit leerzeichen  
</div>```
type: custom:frigate-card
cameras:
  - camera_entity: camera.innenhof_cam_mobil
    live_provider: go2rtc
    go2rtc:
      modes:
        - mse
      stream: Innenhof_medium

```

# Fehlerbehebungen

### Beschreibung:

Was tun Wenns mal hakt, für Fehler oder Misskonfigurationen, hier die Lösung:

### Fehler:

#### Cache Warning Weil zu wenig RAM

```
WARNING : Unable to keep up with recording segments in cache for Innenhof_CAM_Mobil. Keeping the 6 most recent segments out of 7 and discarding the rest...
2024-09-08 07:27:02.556983431  [2024-09-08 09:27:02] frigate.record.maintainer      
WARNING : Unable to keep up with recording segments in cache for Innenhof_CAM. Keeping the 6 most recent segments out of 7 and discarding the rest...
2024-09-08 07:27:02.648738143  172.30.32.1 - - [08/Sep/2024:09:27:02 +0200] "GET /api/birdseye/latest.jpg?h=276 HTTP/1.1" 200 4335 "-" "HomeAssistant/2024.8.3 aiohttp/3.10.5 Python/3.12" "-"
```

##### Lösung:

In den Record Eingenschaften wo Ihr auch die Aufbewahrungszeit einstellt, angeben das das Aufnahmen nur bei Bewegung getätigt werden soll und nicht durchgehend. Denn Standard mäßig ist es immer eine riesige Video Datei die so groß ist, wie die Aufbewahrungszeit, woraus die Clips raus geschnitten werden.  
Gleichzeitig legen wir dann auch mit fest wie viel Sekunden vor und nach dem Ereignis noch mit aufgenommen werden soll.

Ich finde 10 Sekunden vor und 10 Sekunden nach, gar nich mal so schlecht als Wert. Hat aber mit dem Fehler hier nichts zu tun, dachte nur wenn wir eh das bearbeiten und Ihr eventuell noch keine Vor Nachlaufzeit habt, kann man das ja ergänzen.

```
 record:
      enabled: true
      retain:
        days: 1
        mode: motion #nimmt nur auf wenn Bewegung erkannt wurde und nicht komplett durchgehend, dies ist Lösung für die Cach Warning
      events:
        retain:
          default: 30
          mode: active_objects
        pre_capture: 10    # Anzahl der Sekunden vor dem Ereignis, die ebenfalls aufgenommen werden
        post_capture: 10  # Sekunden nach einem Ereignis
```

Eine weitere Möglichkeit kann sein, wenn Ihr einen Google Coral USB Stick benutzt der Coral Stick zu langsam ist wenn er in Proxmox per USB einfach durchgeschliffen wird.  
Abhilfe USB PCI Karte in die VM durchreichen oder einen LXC Container aufsetzten.  
Denn eine normale Response sind 10-15 ms aber nicht 50 ms und höher

[![Auswahl_128.png](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/scaled-1680-/aFUEnV0KUpKm6AAz-auswahl-128.png)](https://wiki.hacker-net.de/uploads/images/gallery/2024-09/aFUEnV0KUpKm6AAz-auswahl-128.png)

Kein Camera Bild obwohl URL richtig gesetzt in go2rtc:

Testen der URL von go2rtc im Browser.  
Denn damit prüfen wir kann Frigate die Kamera überhaupt erreichen bzw. läuft go2rtc überhaupt.

<div id="bkmrk-hinweis%3A-dies-ist-ei" style="border: 1px solid #ffc107; background-color: #fff3cd; padding: 15px; margin-bottom: 20px;">**Hinweis:** Damit das klappt muss in Konfiguration des Addons der Port 1984 bei go2rtc API eingetragen sein und das Addon neugestartet werden. Wenn alles klappt den Port wieder entfernen  
  
</div>```
http://<FRIGATE_IP>:1984/streams/<camera_name>
http://<FRIGATE_IP>:1984/streams/parkplatz
```

Funktioniert das nicht, dann in Frigate in der Seitenleiste öffnen dann auf Einstellungen -&gt; System logs -&gt; Dann go2rtc

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/kgPrUQaAf31rWQ27-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/kgPrUQaAf31rWQ27-grafik.png)

Wie wir hier sehen kann friagte die Kamera warum auch immer einfach nicht erreichen.  
Im Home Assitant ein terminal aufmachen, in den Container einloggen und mal schauen kommen wir da hin

```
docker exec -it <container_name> ffprobe rtsp://<url>

Hier
docker exec -it addon_ccab4aaf_frigate-fa-beta ffprobe rtsp://192.168.177.92:554/s0
```

Ausgabe:  
hier zu sehen, paketverlust, rtsp ist Standardmäßig UDP

```
➜  ~ docker exec -it addon_ccab4aaf_frigate-fa-beta ffprobe rtsp://192.168.177.92:554/s0 
ffprobe version 5.1.6-0+deb12u1+rpt3 Copyright (c) 2007-2024 the FFmpeg developers
  built with gcc 12 (Debian 12.2.0-14)
  configuration: --prefix=/usr --extra-version=0+deb12u1+rpt3 --toolchain=hardened --incdir=/usr/include/aarch64-linux-gnu --enable-gpl --disable-stripping --disable-mmal --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libglslang --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librist --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sand --enable-sdl2 --disable-sndio --enable-libjxl --enable-neon --enable-v4l2-request --enable-libudev --enable-epoxy --libdir=/usr/lib/aarch64-linux-gnu --arch=arm64 --enable-pocketsphinx --enable-librsvg --enable-libdc1394 --enable-libdrm --enable-vout-drm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-libplacebo --enable-librav1e --enable-shared
  libavutil      57. 28.100 / 57. 28.100
  libavcodec     59. 37.100 / 59. 37.100
  libavformat    59. 27.100 / 59. 27.100
  libavdevice    59.  7.100 / 59.  7.100
  libavfilter     8. 44.100 /  8. 44.100
  libswscale      6.  7.100 /  6.  7.100
  libswresample   4.  7.100 /  4.  7.100
  libpostproc    56.  6.100 / 56.  6.100
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 2 packets
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 4 packets
[h264 @ 0x55bc6a05b0] left block unavailable for requested intra mode
[h264 @ 0x55bc6a05b0] error while decoding MB 0 36, bytestream 80666
[h264 @ 0x55bc6a05b0] concealing 3889 DC, 3889 AC, 3889 MV errors in I frame
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 1 packets
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 1 packets
[rtsp @ 0x55bc698cb0] max delay reached. need to consume packet
[rtsp @ 0x55bc698cb0] RTP: missed 2 packets
Input #0, rtsp, from 'rtsp://192.168.177.92:554/s0':
  Metadata:
    title           : s0
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Audio: aac (LC), 48000 Hz, mono, fltp
  Stream #0:1: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn
➜  ~ 
```

jetzt , wir erzwingen in der config TCP

# Frigate Notifcations with Preview

### Beschreibung:

Ein Blueprint für HA Automatiserung, ja ausnhamsweise mal nicht Node Red.  
Weils halt von Frigate kommt

Die URL zum Git Repo : [https://github.com/SgtBatten/HA\_blueprints/tree/main/Frigate\_Camera\_Notifications](https://github.com/SgtBatten/HA_blueprints/tree/main/Frigate_Camera_Notifications)

### Vorrausetzungen

Damit das funktioniert muss frigate mit MQTT eingerichtet sein

### Blueprint installation:

Wir installieren die Beta.  
Dazu link öffnen und auf Beta klicken.  
Wer möchte kann auch die Stable installieren   
(In den Screenshots zu Installation ist noch Stable drin, weil die Beta hat neue Funktionen für Android 12+, was ich aber erst später wusste. Allerdinsg ist die installations vorhergehen weise die selbe)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/WPdEN7UPbU1xR11U-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/WPdEN7UPbU1xR11U-grafik.png)

Change url to your instance and click save

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/NWfpyK6bSofVPmUb-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/NWfpyK6bSofVPmUb-grafik.png)

Nun auf öffnen klicken, dann anmelden

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/cqrgfNyWoSfVpMW4-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/cqrgfNyWoSfVpMW4-grafik.png)

Nun auf Vorschau klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/SbpGJaC4AYUR3kkR-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/SbpGJaC4AYUR3kkR-grafik.png)

Und auf importieren klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/P3XTpCJ5NDGOSWam-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/P3XTpCJ5NDGOSWam-grafik.png)

Blueprint installiert

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/uZAq6IpkJA7Ko1vJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/uZAq6IpkJA7Ko1vJ-grafik.png)

Notification mit dem Blueprint einrichten

Auf einstellungen und Dann Automationen und Szenen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/J08dUCVHOWHNiwza-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/J08dUCVHOWHNiwza-grafik.png)

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/X5rK6qrldd87JgC4-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/X5rK6qrldd87JgC4-grafik.png)

Unten Rechts auf Automation erstellen klicken

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/xd5XercQlDpPzxKJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/xd5XercQlDpPzxKJ-grafik.png)

Nun Frigate auswählen

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/KBTIf038m5k0sjLJ-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/KBTIf038m5k0sjLJ-grafik.png)

Nun die Einstellungen vornehmen

Kameras auswählen, Das mobilgerät auswählen.  
Wenn mehrer Mobilgeräte vorhanden sind muss für jedes Gerät eine Automation erstellt werden.

Die URL ZUm Home Assistenten eintragen MQTT Topic so lassen.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/wxqLDicNuHJFaAhT-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/wxqLDicNuHJFaAhT-image.png)

Notifications:

Notification title, der Titel der über dem Bild erscheint.   
Label ist die Variable für Dog, Person, Car usw.  
und camera\_name die Variable für den Kamera namen.  
  
Critical nofitication auf true, damit auch die Benachrichtung beim lautlos modus rein kommt.  
Interruption Level (iOS) wird eigentlich schon überschrieben da Critical Notification angehakt haben.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/L5teYWsBGiSQpcaK-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/L5teYWsBGiSQpcaK-image.png)

Inital Attachment Snapshot with Bounding box.  
So kann man sehen wo das Objekt erkannt wurde  
  
Subsequent Attachment Thumbnail

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/dFnLvwa4xaNxmoQR-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/dFnLvwa4xaNxmoQR-image.png)

icon ändern auf CCTV

iOS hat die Möglichkeit auch ein Livebild einzublenden über den Wert Live View Entity.  
Das würde hier aber nur Sinn machen wenn die Automation sich nur auf eine Kamera bezieht, also möchte man Live view, für jede Kamera eine Automation anlegen. Und natürlich auch nur wenn man iOS Geräte hat.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/mMa5M6RtLfyB325W-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/mMa5M6RtLfyB325W-image.png)

Sticky rein, damit die Nachricht bestehen bleib und im Vollbild geöffnet wird wenn sie das oberste Element in der Liste ist.  
Notification Channel, lass ich hier leer, aber möchte man einen eigenen Kanal so kann man in Benachrichtungen Home Assistant app hier einen eigenen Klingelton angeben. Denn dieser Kanalname wird beim ersten senden in der App registriert, so das man nach dem ersten Senden den Tpon anpassen kann. SOnst wird der Standard Wecker / Alram ton vom System genommen, wenn das Feld leer bleibt. Ich lasse es leer.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/P6sjdp93lzLevep4-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/P6sjdp93lzLevep4-image.png)

Filter

Über Filter kann man definieren, ob die Automatisierung statt findet oder nicht.  
  
Event Type, alles anhaken.

Über eine Master condition kann man auswählen ob aktiv oder nicht aktiv.  
Zum Biespiel ein Schalter auf dem Dashboard oder so.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/8uqiGwrLidSx7qgm-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/8uqiGwrLidSx7qgm-image.png)

Objekt filter, Nur wenn es Auto und Person ist benachrichtigen, wenns ein Hund ist ignorieren. Das heißt der Hund kommt nicht mit in die Liste

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/J7wFmYfTkJ5XjBh4-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/J7wFmYfTkJ5XjBh4-image.png)

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/ADjATReYfBIwTOSh-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/ADjATReYfBIwTOSh-image.png)

Presence Filter, Benachrichtung nur wenn alle ausgewählten Personen NICHT Zuahsue sind.  
Oder verknüpft zu allen Personen. Erst wenn keiner mehr zu Hause ist, dann Benachrichtigen.  
Auch ziemelich Cool

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/KENWWPp0heAuahh7-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/KENWWPp0heAuahh7-image.png)

State filter kann ein Entität ausgewählt werden, und dann wird die Automatisierung nur aktiv wenn dann der Wert übereinstimmt  
In diesem Fall sollen nur Ereignisse gesendet werden, wenn der Rauchmelder rauch meldet.  
Das dies kein Sinn macht ist schon klar, es geht um die Verwendung.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/uDwsOMYf8GSAKX7P-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/uDwsOMYf8GSAKX7P-image.png)

Action Buttons

Die Texte für die Action Buttons ändern.

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/wGjbYbY9jtgFcnJU-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/wGjbYbY9jtgFcnJU-image.png)

Action Button 3 ist Speziell, dieser Dient eigentlich dazu weitere Benachrichtigungen zu deaktivieren /pausieren, da man eventuell weiß das weitere kommen.   
Wenn man aber permanent Benachrichtigt werden möchte, ohne aus versehen auf den Button zu kommen (denn das würde die Automation für Zeit X deaktivieren), können wir künstlich diese Funktion ausschalten mit Variante 2  
  
Hier gibts zwei Möglichkeiten.

1. Button Text ändern in Später benachrichtigen, in den Timer Setting kann eingestellt werden nach wie viel Minuten die Benachrichtigung wieder eingeschaltet werden soll.
2. Oder eine Custom Action auswählen und Als Text ein Kamera Symbol. Leerzeichen gehen leider nicht  
    Ich poste mal dieses Symbol, so kann man es per Copy &amp; Paste nehmen 📹

Screenshot für Variante 2, Variante 1 kommt da drunter weils noch die Timer Settings gibt

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/JraE4U6ierHKwqMY-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/JraE4U6ierHKwqMY-image.png)

Variante 1

Den Action button 3 Text anpassen auf die Zeit in Minuten die beim Timer eingestellt ist, siehe nächsten Schritt.  
Also bei 30 Minuten, lautet der Text in 30 min fortsetzten

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/PPQ11cabAE6DAjH3-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/PPQ11cabAE6DAjH3-image.png)

Nun im Timer die gewünschte Zeit einstellen

In unserem Beispiel 30 Minuten

[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/a67hdmGsuUkcAdjr-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/a67hdmGsuUkcAdjr-image.png)

Fertig ;-)

Screenshots vom Android

Variante 1:

[![IMG_20250421_144721.jpg](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/scaled-1680-/FIYkK4URyEOnruIS-img-20250421-144721.jpg)](https://wiki.hacker-net.de/uploads/images/gallery/2025-04/FIYkK4URyEOnruIS-img-20250421-144721.jpg)

Variante 2, mit Kamera Bild als Platzhalter. Die Funktion des Button 3 ist deaktiviert.  
Alle Benachrichtungen lassen sich wegwischen

# URMET Kameras einbinden

### Beschreibung:

Urmet Kameras einbinden in frigate:

Die Urmet Kameras laufen nach Werkseinstellung nicht auf DHCP.  
Die Cams liegen im IP-Kreis 192.168.1.x  
Meisten haben die Cams die ip 2 oder 200 am ende.

### Einbindung:

#### Kamera selbst konfigurieren:

Auf die Weboberfläche einloggen  
Dort unter Allgemeine Einstellungen -&gt; Allgemeine Einstellungen -&gt; gehen  
Dort die Auflösung für die 3 Streams anpassen.  
Die Nr ist auch die Channel nummer für die URL.   
Dann noch eine Bezeichnung für Die Kamera angeben und Datumsformat angeben Tag.Monat.Jahr, dann speichern

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/zczffMa7QdjTTVT8-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/zczffMa7QdjTTVT8-grafik.png)

Danndann unter Netzwerk -&gt; Allgemeine Einstellungen -&gt; Andere  
Dort sieht man die Ports und die Zusammensetzung der URL.  
Durch die angabe von rtsp wird schon port 554 genommen und muss nicht mehr explizit angegeben werden, außer ihr habt Ihn selbst geändert. Der Parameter Stream wird nicht angegeben

Beispiel :

<table border="1" id="bkmrk-stream-url-default-r" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>**Stream**</td><td>**URL**</td></tr><tr><td>Default</td><td>rtsp://admin:password@ip/0</td></tr><tr><td>Stream Nr 1</td><td>rtsp://admin:password@ip/1</td></tr><tr><td>Stream Nr 2</td><td>rtsp://admin:password@ip/2</td></tr><tr><td>Stream Nr 3</td><td>rtsp://admin:password@ip/2</td></tr></tbody></table>

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/C5QAY02CdNQEjACK-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/C5QAY02CdNQEjACK-grafik.png)

##### Nun Datum Uhrzeit einstellen.

Dazu auf System -&gt; System -&gt; Zeit gehen

Die Region einstellen beu uns GMT+1  
NTP Anhaken und auf Prüfung klicken.  
Wenn Meldung Operation Erfolgreich dann auf speichern.  
Für NTP muss die Kamera ins Internet können und DNS Auflösuen können ansonsten weiter unten beschroíeben Manuell

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/fZhZtCtaeZiVwGeX-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/fZhZtCtaeZiVwGeX-grafik.png)

manuell

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/aK9xruq8NVuv1HvM-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/aK9xruq8NVuv1HvM-grafik.png)

Sommerzeit

Startzeit: Juni und dann letzte. Beudeutung letzte Sonntag im Monat  
Stoppzeit: Dezember und dann letzte. Beudeutung letzte Sonntag im Monat

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/CbBUpzGPplux5VwH-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/CbBUpzGPplux5VwH-grafik.png)

#### Einbindung in Frigate:

Auschnitt Kameras

```
go2rtc:
  streams:
    parkplatz: 
      - rtsp://admin:password@ip/1
    parkplatz_sub: 
      - rtsp://admin:password@ip/2
     
  #in dem Streams abschnitt kann man über die RTSP Eigenschaft den Timeout und ein Buffer einstellen.
  #Ich habe diesen nicht benutzt, kann man aber aktivieren.
  #rtsp:
   # mediatimeout: 10s  # Erhöht die Timeout-Zeit für den RTSP-Stream
  #buffer:
   # size: 8388608 # Puffergröße in Bytes, hier etwa 8 MB
  #enable webrtc für flüssigeres bild in der lovlace Karte
  webrtc:
    candidates:
      - 127.0.0.1:8555
      - stun:8555  

cameras:
  parkplatz_CAM:
    ffmpeg:
      inputs:
        #full resolution for recording
        - path: rtsp://127.0.0.1:8554/parkplatz?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record
        #low resoultion for detect
        - path: rtsp://127.0.0.1:8554/parkplatz_sub?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 640
      height: 480 
      fps: 5
    snapshots:
      enabled: True
    record:
      enabled: True
      retain: 
        mode: motion #nimmt nur auf wenn Bewegung erkannt wurde und nicht komplett durchgehend, dies ist Lösung für die Cach Warning wenn zu wenig RAM vorhanden ist
        days: 1 #ich möchte ja nur die clips haben wo auch objekte erkannt werden. Es wird aber in frigate tatsächlich die ganze zeit aufgenommen. 
        #das brauch ich aber nicht, also noch einem Tag wegschmeißen. Denn den Record brauchen wir leider, damit frigate die Clips daraus schneiden kann.
      events:
        retain: 
          default: 14


...
```

---

Ergebnis:

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/scaled-1680-/zU2LZd6zR8PHiAlX-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-07/zU2LZd6zR8PHiAlX-grafik.png)

# Camera Stream URLs

### Beschreibung:

Hier die Streams verschiedener Kamera Modelle

### Kameras:

#### Reolink:

##### TrackMix Series P760:

<table border="1" id="bkmrk-stream-typ-aufl%C3%B6sung" style="border-collapse: collapse; width: 100%; height: 119.188px;"><colgroup><col style="width: 11.323%;"></col><col style="width: 17.2825%;"></col><col style="width: 23.8379%;"></col><col style="width: 23.8379%;"></col><col style="width: 23.8379%;"></col></colgroup><tbody><tr style="height: 29.7969px;"><td style="height: 29.7969px;">**Stream-TYP**</td><td style="height: 29.7969px;">**Auflösung**</td><td style="height: 29.7969px;">**Codec**</td><td style="height: 29.7969px;">**URL**</td><td style="height: 29.7969px;">**Bild**</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Main Clear</td><td style="height: 29.7969px;">3840\*2160</td><td style="height: 29.7969px;">h264</td><td style="height: 29.7969px;"><div><div>rtsp://admin:pass@ip:554/h264Preview_01_main</div></div></td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)

</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Sub low</td><td style="height: 29.7969px;">896\*512</td><td style="height: 29.7969px;">h264</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h264Preview\_01\_sub</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">Main Clear Zoom</td><td style="height: 29.7969px;">3840\*2160</td><td style="height: 29.7969px;">h264</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h264Preview\_02\_main</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr><td>Sub Zoom low</td><td>896\*512</td><td>h264</td><td>rtsp://admin:pass@ip:554/h264Preview\_02\_sub</td><td>[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr><td style="height: 29.7969px;">Main Clear</td><td style="height: 29.7969px;">3840\*2160</td><td style="height: 29.7969px;">h265</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h265Preview\_01\_main</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)

</td></tr><tr><td style="height: 29.7969px;">Sub low</td><td style="height: 29.7969px;">896\*512</td><td style="height: 29.7969px;">h265</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h265Preview\_01\_sub</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr><td style="height: 29.7969px;">Main Clear Zoom</td><td style="height: 29.7969px;">3840\*2160</td><td style="height: 29.7969px;">h265</td><td style="height: 29.7969px;">rtsp://admin:pass@ip:554/h265Preview\_02\_main</td><td style="height: 29.7969px;">[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr><tr><td>Sub Zoom low</td><td>896\*512</td><td>h265</td><td>rtsp://admin:pass@ip:554/h265Preview\_02\_sub</td><td>[![image.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/scaled-1680-/gN1x6MOZ0to79b65-image.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-08/gN1x6MOZ0to79b65-image.png)</td></tr></tbody></table>