Frigate est un logiciel NVR à base d'IA dont l'objectif est de gérer des caméras IP et tout ce qui va avec : snapshot, détection, enregistrement
Voici ses avantages à mon sens :
Je l'utilise depuis un an environ, dans un premier temps en parallèle de Surveillance Station, avant de basculer complètement sur Frigate.
L'achat d'un tpu Coral est souvent conseillé pour gérer la détection de manière plus rapide et économiser la ressource CPU du serveur, en ce qui me concerne je n'en vois pas l'utilité sur mon mini PC en Ryzen 5650u.
Il peut être installé en tant qu'addon pour Home Assistant, ou en tant que conteneur Docker. C'est cette deuxième solution que j'ai choisi et que je vais décrire.
Voici la documentation d'installation : https://docs.frigate.video/frigate/installation/
Le plus simple est de créer un stack avec Portainer, voici mon docker compose :
Le volume "video-surveillance" correspond à un partage NFS qui se situe sur mon NAS afin de stocker les enregistrements des caméras.
Tout le reste sera stocké (base de données et configuration) en local sur le mini pc.
Voici mon fichier de configuration config.yml à positionner dans le répertoire que vous avez défini sur votre docker composer (dans mon cas : /home/aurelien/frigate/config/config.yml) :
La partie MQTT correpond à votre broker mqtt (en ce qui me concerne, ce broker tourne sur home assistant, c'est donc l'ip Home Assistant qu'il faudra saisir si vous faites comme moi.
La partie Go2RTC permet de déclarer vos flux de caméras, j'en utilise 2 par caméra, un en basse résolution pour la détection et un en haute résolution pour l'enregistrement.
Une fois votre configuration réalisée, vous pouvez redémarrer votre stack Docker depuis Portainer (par exemple) et accèder à l'interface Web pour vérifier que tout est ok : http://ipdocker:5000/
L'étape suivante consiste à ajouter l'intégration Frigate pour Home Assistant afin de pouvoir visualiser vos caméras et vos enregistrements depuis l'application Home Assistant (il n'existe pas d'application Frigate à ma connaissance) : https://github.com/blakeblackshear/friga...ntegration
Vous pourrez enfin ajouter des cartes frigate dans vos dashboards pour visualiser vos caméras, mais également les switchs créés automatiquement pour activer / désactiver la détection :
J'essaierai de compléter un peu ce tuto et d'ajouter des images quand j'aurai un peu plus de temps, d'ici la si il vous manque des infos n'hésitez pas à me le signaler !
	
	
	
Voici ses avantages à mon sens :
- Excellente détection
 - Pas de licence à payer
 - Intégration parfaite dans Home Assistant
 
Je l'utilise depuis un an environ, dans un premier temps en parallèle de Surveillance Station, avant de basculer complètement sur Frigate.
L'achat d'un tpu Coral est souvent conseillé pour gérer la détection de manière plus rapide et économiser la ressource CPU du serveur, en ce qui me concerne je n'en vois pas l'utilité sur mon mini PC en Ryzen 5650u.
Il peut être installé en tant qu'addon pour Home Assistant, ou en tant que conteneur Docker. C'est cette deuxième solution que j'ai choisi et que je vais décrire.
Voici la documentation d'installation : https://docs.frigate.video/frigate/installation/
Le plus simple est de créer un stack avec Portainer, voici mon docker compose :
Code :
version: "3.9"
services:
  frigate:
    container_name: frigate
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "128mb" # update for your cameras based on calculation above
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /home/aurelien/frigate/config/:/config/
      - video-surveillance:/media/frigate
      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000"
      - "8555:8555/tcp" # WebRTC over tcp
      - "8555:8555/udp" # WebRTC over udp
      - "8554:8554"
    environment:
      FRIGATE_RTSP_PASSWORD: "password"
volumes:
 video-surveillance:
    driver: local
    driver_opts:
      type: "nfs4"
      o: "addr=192.168.1.10,rw"
      device: ":/volume1/surveillance"Le volume "video-surveillance" correspond à un partage NFS qui se situe sur mon NAS afin de stocker les enregistrements des caméras.
Tout le reste sera stocké (base de données et configuration) en local sur le mini pc.
Voici mon fichier de configuration config.yml à positionner dans le répertoire que vous avez défini sur votre docker composer (dans mon cas : /home/aurelien/frigate/config/config.yml) :
Code :
mqtt:
  host: 192.168.1.11
  port: 1883
  user: frigate
  password: 'password'
objects:
  track:
    - person
  filters:
    person:
      min_area: 5000
      max_area: 100000
      min_score: 0.7
      threshold: 0.8
birdseye:
  enabled: false
rtmp:
  enabled: false
detectors:
  cpu1:
    type: cpu
    num_threads: 3
  cpu2:
    type: cpu
    num_threads: 3
  cpu3:
    type: cpu
    num_threads: 3
  cpu4:
    type: cpu
    num_threads: 3
  cpu5:
    type: cpu
    num_threads: 3
go2rtc:
  streams:
    jardin:
      - rtsp://admin:password@192.168.1.19:554/Streaming/Channels/101
    jardin_sub:
      - rtsp://admin:password@192.168.1.19:554/Streaming/Channels/102
    terrasse:
      - rtsp://admin:password@192.168.1.15:554/Streaming/Channels/101
    terrasse_sub:
      - rtsp://admin:password@192.168.1.15:554/Streaming/Channels/102
    garage:
      - rtsp://admin:password@192.168.1.18:554/Streaming/Channels/101
    garage_sub:
      - rtsp://admin:password@192.168.1.18:554/Streaming/Channels/102
    devanture:
      - rtsp://admin:password@192.168.1.16:554/Streaming/Channels/101
    devanture_sub:
      - rtsp://admin:password@192.168.1.16:554/Streaming/Channels/102
    salon:
      - rtsp://admin:password@192.168.1.17:554/Streaming/Channels/101
    salon_sub:
      - rtsp://admin:password@192.168.1.17:554/Streaming/Channels/102
        
    
cameras:
  jardin:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/jardin
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/jardin_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 640
      height: 360
      fps: 4
    snapshots:
      enabled: True
    record:
      enabled: True
      retain:
        days: 0
      events:
        retain:
          default: 10
          mode: active_objects
  terrasse:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/terrasse
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/terrasse_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 640
      height: 360
      fps: 4
    snapshots:
      enabled: True
    record:
      enabled: True
      retain:
        days: 0
      events:
        retain:
          default: 10
          mode: active_objects
  devanture:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/devanture
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/devanture_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 640
      height: 360
      fps: 4
    snapshots:
      enabled: True
    record:
      enabled: True
      retain:
        days: 0
      events:
        retain:
          default: 10
          mode: active_objects
  salon:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/salon
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/salon_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 640
      height: 480
      fps: 4
    snapshots:
      enabled: True
    record:
      enabled: True
      retain:
        days: 0
      events:
        retain:
          default: 10
          mode: active_objects
  garage:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/garage
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/garage_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
    detect:
      width: 640
      height: 480
      fps: 4
    snapshots:
      enabled: True
    record:
      enabled: True
      retain:
        days: 0
      events:
        retain:
          default: 10
          mode: active_objectsLa partie MQTT correpond à votre broker mqtt (en ce qui me concerne, ce broker tourne sur home assistant, c'est donc l'ip Home Assistant qu'il faudra saisir si vous faites comme moi.
La partie Go2RTC permet de déclarer vos flux de caméras, j'en utilise 2 par caméra, un en basse résolution pour la détection et un en haute résolution pour l'enregistrement.
Une fois votre configuration réalisée, vous pouvez redémarrer votre stack Docker depuis Portainer (par exemple) et accèder à l'interface Web pour vérifier que tout est ok : http://ipdocker:5000/
L'étape suivante consiste à ajouter l'intégration Frigate pour Home Assistant afin de pouvoir visualiser vos caméras et vos enregistrements depuis l'application Home Assistant (il n'existe pas d'application Frigate à ma connaissance) : https://github.com/blakeblackshear/friga...ntegration
Vous pourrez enfin ajouter des cartes frigate dans vos dashboards pour visualiser vos caméras, mais également les switchs créés automatiquement pour activer / désactiver la détection :
Code :
type: entities
entities:
  - entity: switch.frigate_detect
  - entity: switch.devanture_detect
  - entity: switch.terrasse_detect
  - entity: switch.jardin_detect
  - entity: switch.garage_detect
  - entity: switch.salon_detect
title: Détection
show_header_toggle: falseJ'essaierai de compléter un peu ce tuto et d'ajouter des images quand j'aurai un peu plus de temps, d'ici la si il vous manque des infos n'hésitez pas à me le signaler !

