Installation de Frigate sur Proxmox

Ce guide complet vous explique comment installer et configurer Frigate, un système de surveillance intelligent et open source, sur un container LXC Proxmox utilisant Docker.
Installation de Frigate sur Proxmox

Sommaire

Dans cet article, vous serez guidé pas à pas pour installer Frigate sur une instance hors de votre Home assistant avec Proxmox.

⚠️
Ce tutoriel s'adresse à des utilisateurs avancés, utilisateurs de Proxmox, et désireux d'installer Frigate sur une machine dédiée.

Une solution plus simple (mais moins performante) serait d'installer Frigate directement dans Home Assistant.

En effet, la version add-on de Frigate existe, mais elle peut vite être gourmande en ressources et saturer votre hardware.

Si vous avez prévu de sauter le pas et passer du monde raspberry pour aller vers les mini-PC, installer vos applications clés hors de home-assistant sous Proxmox devient une bonne démarche, tout en gardant les fonctionnalités précieuses de Home-assistant.

Frigate, c'est quoi

Frigate permet de créer un NVR ("Net Video Recorder") avec de la détection intelligente, et de l'intégrer dans Home Assistant. Frigate est un programme open source de gestion de caméras de surveillance et enregistrement de vidéos qui se distingue par son approche basée sur de l'intelligence artificielle pour la détection d'objets et un traitement local.

Fonctionnalités principales :

  • Détection d'objets en temps réel : Frigate utilise des modèles d'apprentissage automatique pour identifier et différencier les personnes, les voitures, les vélos, les animaux domestiques et bien plus encore.
  • Traitement local : Toutes les analyses sont effectuées localement sur votre propre matériel, garantissant la confidentialité et la sécurité de vos données.
  • Intégration facile : Frigate s'intègre parfaitement à Home Assistant et d'autres plateformes domotiques, vous permettant de créer des automatisations et des notifications puissantes.
  • Configuration flexible : Personnalisez les zones de détection, les notifications, les actions et bien plus encore pour répondre à vos besoins spécifiques.

Avantages de Frigate :

  • Respect de la vie privée : Vos données vidéo ne quittent jamais votre domicile.
  • Faible coût : Solution gratuite et open source, sans frais d'abonnement.
  • Simple à utiliser : Interface intuitive et documentation complète.
  • Extensible : Large communauté de contributeurs et de développeurs.
  • Carte personnalisable pour le dashboard.

Frigate est la solution idéale pour :

  • Sécuriser votre maison et vos biens.
  • Surveiller vos enfants ou vos animaux domestiques.
  • Automatiser votre éclairage ou d'autres appareils domotiques.
  • Garder un œil sur votre propriété en votre absence.

Pour en savoir plus :

Ma configuration

J'ai choisi d'installer Frigate sur un mini PC de type NUC via Proxmox (la dernière version v8). Dans mon cas, Home Assistant tourne sur une machine différente (un autre NUC), mais c'est un choix. Ainsi, les performances de Home Assistant ne sont pas impactées par Frigate.

Pourquoi j'ai utilisé Proxmox : c'est à la fois un système d'exploitation léger basé sur Linux et une solution de virtualisation. Il permet de créer et de gérer des machines virtuelles, des conteneurs et des stockages, le tout via une interface web. Frigate sera donc installé sur une machine virtuelle dédiée de Proxmox, mais via Docker.

J'ai utilisé les scripts d'installation tteck : ces scripts permettent aux utilisateurs de créer un conteneur Linux ou une machine virtuelle de manière interactive, en proposant des configurations simples ou avancées.

Pour doper les performances de Frigate, j'utilise une clé Google Coral : elle contient une puce dite TPU ("Tensor Processing Units") dédiée à l'exécution de réseaux de neurones Tensor Flow et à l'IA de Google, utile en particulier pour les détections d'objets.

Voici ma configuration complète :

  • NUC 1 (Home Assistant) : HA est installé sur une VM Proxmox avec 8 Go de RAM et 2 cœurs. Une clé Zigbee Sonoff Dongle P-plus et un RFlink DIY pour le 433Mhz sont branchés sur des ports USB de la machine.
  • NUC 2 (Frigate) : Docker est installé sur un container LXC. C'est dans le LXC-docker de ce NUC 2 que j'ai ensuite installé Frigate. Une clé Coral est branchée en USB pour l'usage sur Frigate. J'ai également installé le bloqueur de publicité Adguard sur un autre container LXC.
  • Synology DS920+ (médias) : il héberge la partie DATA, avec en particulier InfluxDB, MariaDB (connecté à HA) et la zone Media de Frigate. Ainsi toutes les vidéos et snapshot enregistrés par Frigate sont déportés sur ce NAS.

Installation

Nous allons maintenant suivre les étapes qui m'ont permis d'arriver à cette configuration fonctionnelle de Frigate.
Je ne détaillerai pas du tout les autres parties, comme l'installation de HA et autres addons.

À plusieurs moments, plutôt que de retranscrire ce qui existe déjà, j'ai mis des liens vers les tutoriels pertinents en fonction des étapes. Ce sont en tout cas ceux qui m'ont beaucoup servi.

⚠️
Il peut y avoir des erreurs, des choses inapplicables à votre configuration ou même de mauvais conseils. Vous restez seul responsable de ce qui peut arriver à votre installation en suivant ce post.
À utiliser donc judicieusement, et n'hésitez pas à poser des questions.
💡
Depuis l'émission initiale de cet article, une procédure d'installation plus facile des premières étapes a été faite sur le site de Tteck qui permet de se passer de l'étape docker et de ne le faire que sur LXC.
C'est sur le site https://helper-scripts.com/scripts?id=Frigate
Vous pourrez l'adapter et ensuite y adjoindre certaines touches présentes dans cet article concernant le lien avec un TPU, le montage d'un lien NFS, etc.

Les étapes :

  • Configuration d'un container LXC pour Docker
  • Montage du disque déporté (NAS synology) en NFS
  • Préparation pour la connexion de la Clé TPU Coral
  • Installation de Frigate en mode Docker
  • Première configuration de Frigate
  • Paramétrage (sera complété dans une v2)
    • Ajout de caméras
    • gestion des enregistrements
    • gestion d'évènements

Je vous ferai part également de quelques éléments utiles à connaitre sur Frigate

Container LXC pour Docker

Pour cette partie, le plus simple est de prendre le script correspondant de Tteck pour l'installation de Docker dans un LXC.

J'ai choisi la version Portainer + Compose v2. Vous pouvez rester avec les configurations par défaut. Personnellement, j'ai tout de même ajouté un peu de taille disque (8Go au lieu de 4Go) pour éviter parfois des blocages lors de mise à jour pour des raisons d'espace disque insuffisant).

Aussi, cocher bien la case "Priviledged", cela simplifie la vie ensuite pour la connexion du disque externe et le passage de la clé Coral en USB.

À la fin, cocher l'installation de docker-compose et Portainer.

💡
Portainer très utile pour avoir les logs de lancement de Frigate, en particulier pour débuguer quand il ne se lance pas.

Vous pouvez suivre aussi la video youtube de "Homeautomationguy" qui correspond à ce que j'ai fait.

Toutes les étapes sont aussi retranscrites par écrit sur son blog. C'est en anglais, mais les moyens de traduction sont valables !

Repérez bien l'adresse IP de votre container. Si nécessaire, vous pourrez la changer via l'UI de proxmox (en sélectionnant le LXC concerné, aller dans le menu "Réseau", surlignez la ligne Net0 (ou celle avec l'adresse IP à changer), puis "Editer", et mettez celle choisie. Redémarrer le container (ou même l'hote-node).

💡
Coté Routeur/serveur DHCP, il est conseillé de rendre cette adresse statique, c'est plus sûr.

Création du disque NFS


Sur votre NAS Synology (ou équivalent si vous avez autre chose), créez un Dossier partagé : dans mon cas : frigate.

Choisissez la taille en fonction de la durée de stockage et votre nombre de caméras. Prévoyez assez large.

Dans la configuration de ce disque dans le dernier onglet "autorisation NFS", créez la connexion NFS vers l'adresse IP de votre container LXC.

Dans ce dossier partagé, créez 3 dossiers :

  • clips
  • recordings
  • exports

Paramétrage du disque dans Proxmox

Coté Proxmox et docker, il faut traverser deux couches : Syno vers LXC, puis LXC vers dossier.

Pour la couche Syno vers LXC, au niveau du centre de données, connectez le dossier partagé à votre serveur proxmox.

Positionnez-vous bien au plus haut, sur le centre de données (pas sur le node, ni sur le LXC). Puis à droite, sélectionnez "stockage", et cliquez sur "Ajouter", puis "NFS" :

  • ID est le nom de votre serveur NAS
  • Serveur : adresse IP du NAS
  • Export :chemin du dossier partagé, pour nous /volume1/frigate.

Ensuite, ça se passe dans le shell de proxmox :

Coté container LXC, choisissez un dossier où vous allez mettre votre point de montage (/mnt, ou /media). En général, pour voir ces dossiers, il faut souvent commencer par remonter à la racine en faisant cd /.

Créez alors un dossier (j'ai moi choisi de le mettre dans /mnt. J'ai donc un dossier de point de montage /mnt/frigate). Cela servira pour configurer ensuite le docker-compose de frigate.

Ensuite, vous pouvez créer le point de montage entre le LXC et le syno.

pct set <CONTAINER ID> -mp0 <PATH_TO_DIRECTORY>,mp=<MOUNT_POINT>
  • Container ID : souvent trois chiffres, qui apparaissent à gauche du nom de votre LXC. Dans sa vidéo c'est 108; pour moi, c'était 101.
  • path to directory : l'emplacement où vous avez créé le dossier : ici /mnt/frigate
  • mount point : le dossier sur la NAS tel qu'il sera référencé après, ici /volume1/frigate

Une fois cela fait, Proxmox devrait vous montrer le point de montage si vous retournez voir l'onglet "Ressources".

Montage du disque NFS déporté

Je vous propose 3 méthodes pour monter le volume. À vous de choisir celle qui vous convient le mieux.

Méthode 1 : (celle de la vidéo)

Dans le shell de votre container, il faudra déjà probablement installer le package nfs-common :

apt install nfs-common

puis créer le point de montage :

mount -t nfs <IP_du_NAS>:/volume1/frigate /mnt/frigate -o vers=4

en remplaçant <IP_du_NAS>, et éventuellement appliquez le bon volume. Dans mon cas, c'était volume1. Vous avez cela dans la fenêtre "autorisation NFS" coté synoloy.

chemin_nfs|690x461

Voilà, on a donc monté le dossier NFS du NAS dans le dossier du LXC /mnt/frigate.

Méthode 2

Cette autre méthode a, à mon sens, l'avantage de la stabilité, car j'ai eu l'impression à plusieurs reprises que le montage n'était pas stable.

Dans la fenêtre shell Proxmox de votre LXC, remontez à la racine cd /
et allez dans /etc.

Puis éditer le fichier fstab : nano ftab

Sous la ligne écrite par défaut ("# UNCONFIGURED FSTAB FOR BASE SYSTEM") ajoutez la ligne

<IP_du_NAS>:/volume1/frigate /mnt/frigate nfs defaults 0 0

Puis sauvegardez et fermer (ctrl+O, enter, Ctrl+X)

Redémarrer le LXC.

Méthode 3

Cette dernière méthode s'appuie sur la fonctionnalité de montage du volume directement dans le docker avec docker-compose.

À la fin de votre fichier docker-compose.yaml (que nous abordons plus tard), on ajoute les références à l'option :

volumes:  ## Définition des volumes déclarés ci-dessus
  frigate: ## Le nom de mon volume en montage NFS
    driver: local
    driver_opts: ## Définition des options du montage
      type: nfs ## Choix du type de montage
      o: addr=xxx.xxx.xxx.xxx,nolock,soft,rw ## Indication de l'adresse IP du stockage et des options d'accès
      device: :/volume1/frigate  ## Indication du chemin du montage sur le stockage

Notez que ce n'est pas l'option que je développe ensuite. J'ai implémenté la méthode 2.

Pour les 3 méthodes, vous pourrez après coup vérifier que le montage s'est bien fait et est effectif avec la commande (pour cela, il faut avoir installé les fonctionnalités NFS du pack nfs-common, comme montré en début de la méthode 1) :

showmount -e <IP_du_NAS>

Sources

Clé TPU Coral (+ accélération Hw)

De même, pour que l'USB passe bien vers le docker concerné, il faut autoriser le passage de l'USB.

Dans la console proxmox, on va aller modifier le fichier de configuration du LXC directement. Celui-ci est dans /etc/pve/lxc où se trouve chaque lxc avec un nom en xxx.conf (xxx est l'identifiant de votre lxc).

Editez celui de notre container avec nano xxx.conf
et ajoutez à la fin :

lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file 0, 0
lxc.mount.entry: /dev/bus/usb/002/ dev/bus/usb/002/ none bind,optional,create=dir 0,0

Attention, remplacez /dev/bus/usb/002 par le chemin qui vous concerne.
Pour connnaître ce chemin, faites un '''lsusb''' dans la console et regardez la ligne qui semble indiquer une clé google ou coral, ou autre indication "inhabituelle"... Par exemple, pour certain, la clé Coral ressort avec le nom "Global Unichip Corp". A ce stade, il faudra sans doute faire quelques essais.

Par exemple, pour moi :


root@picostation:/# lsusb
Bus 002 Device 002: ID 8087:8000 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:8008 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 002: ID 18d1:9302 Google Inc. 
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

et j'en ai déduit qui fallait ajouter :

lxc.mount.entry: /dev/bus/usb/004 dev/bus/usb/004 none bind,optional,create=dir 0, 0

À ce stade, on est donc prêt à installer le container Frigate dans Docker sous proxmox.

Pour information, voici mon fichier de conf de LXC (101.conf) :

101.conf :
arch: amd64
cores: 2
features: mount=nfs;cifs,nesting=1
hostname: docker-frigate
memory: 8192
mp1: nas:101/vm-101-disk-3.raw,mp=/volume1/frigate,backup=1,size=100G
net0: name=eth0,bridge=vmbr0,gw=192.168.1.1,hwaddr=BC:24:11:92:3A:AE,ip=192.168.1.211/24,type=veth
onboot: 1
ostype: debian
rootfs: local-zfs:subvol-101-disk-0,size=8G
swap: 1024
tags: proxmox-helper-scripts
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: c 188:* rwm
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.cgroup2.devices.allow: c 29:0 rwm
lxc.mount.auto: cgroup:rw
lxc.mount.entry: /dev/serial/by-id  dev/serial/by-id  none bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0       dev/ttyUSB0       none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1       dev/ttyUSB1       none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM0       dev/ttyACM0       none bind,optional,create=file
lxc.mount.entry: /dev/ttyACM1       dev/ttyACM1       none bind,optional,create=file
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file 0, 0
lxc.mount.entry: /dev/bus/usb/004 dev/bus/usb/004 none bind,optional,create=dir 0, 0

Additif pour ceux ayant un TPU Coral en PCI (ce qui n'est pas le cas de ma conf, et donc non testé) : le device à créer pour le linux du container est différent. Pour savoir quel lxc.c2group autoriser pour faire du GPU passthrough, effectuez un

ls -al /dev/apex_0
crw-rw-— 1 root apex 120, 0 Jan  6 08:54 /dev/apex_0

qui va retourner deux numéro (XXX, X) après apex; ensuite dans le fichier .conf du LXC, ajouter seulement ceci:

lxc.cgroup2.devices.allow: c XXX:X rwm

Enfin, dans de nombreux cas, il est probable que vous deviez installer des packages spécifiques pour la clé CORAL pour être entièrement utilisée en tant que TPU. Vous trouverez les indications pour cela sur le site donnant ces packages (Get started with the USB Accelerator | Coral 1).

Installer Frigate sur Docker

On prépare la configuration de ce container par un ficher docker-compose (voir vidéo de homeautomationguy).

Perso, je l'ai créé dans le dossier /opt comme la vidéo.

On commence par créer ce fichier avec la commande nano docker-compose.yaml
et on y colle :

# a mettre dans repertoire /opt
# lancer par "docker-compose up -d"
version: '3.9'

services:

  frigate:
    container_name: frigate
    privileged: true
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:stable
    shm_size: "256mb" # update for your cameras based on calculation above
    devices:
      - /dev/bus/usb:/dev/bus/usb
      - /dev/dri/renderD128 # for intel hwaccel, needs to be updated for your hardware
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /opt/frigate/config:/config
      - /mnt/frigate:/media/frigate
      - type: tmpfs # Optional: 1GB of memory, reduces SSD/SD Card wear
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000"
      - "1935:1935" # RTMP feeds


#to update : 
#dans /opt
# docker-compose pull
# docker-compose up -d

Les parties à customiser en particulier sont :

  • /etc/localtime:/etc/localtime
  • /opt/frigate/config:/config
  • /mnt/frigate:/media/frigate

À gauche, il faut mettre les noms de dossiers créés précédemment dans le LXC. A droite, il faut laisser tel quel, c'est ce dont frigate a besoin pour sa configuration.

Il y a aussi la taille de mémoire shm : 256 pour moi, mais dépend de votre nombre de caméras.

Ensuite, on crée les dossiers de fonctionnement en local de frigate, c'est-à-dire /opt/frigate et /opt/frigate/config

mkdir /opt/frigate
mkdir /opt/frigate/config

On est presque prêt à lancer l'installation et le démarrage, mais il manque encore la configuration spécifique de Frigate, qui doit être un fichier config.yml dans le dossier config créé juste avant.

Il peut aussi manquer certaines librairies pour l'usage d'un TPU. Dans ce docker, les instructions de Google sont :

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install libedgetpu1-std

Puis, on peut passer à la dernière étape, qui concerne vraiment Frigate cette fois :

Première configuration de Frigate

Initialiser votre fichier de conf avec des choses très basiques, une seule caméra pour commencer.

Choisissez une caméra donc vous connaissez le flux rtsp et testez-le avec VLC.

Imaginons que c'est rtsp://a.b.c.d:554/flux0 pour le flux de haute définition et rtsp://a.b.c.d:554/flux1 pour le flux de basse définition
où a.b.c.d est l'adresse IP de la caméra.

Allez dans le dossier /opt/frigate/config et faites nano config.yml, puis collez :

mqtt:
  enabled: false
ffmpeg:
  hwaccel_args: preset-vaapi
detectors:
  coral:
    type: edgetpu
    device: usb
#Global Object Settings
objects:
  track:
    - person
  filters:
    person:
      min_area: 5000
      max_area: 100000
cameras:
  nom_de_la_caméra:
    ffmpeg:
      inputs:
        # High Resolution Stream
        - path: rtsp://a.b.c.d:554/flux0
          roles:
            - record
        # Low Resolution Stream
        - path: rtsp://a.b.c.d:554/flux1
          roles:
            - detect

On est prêt à tout lancer :

Dans le dossier /opt/frigate/config, entrez la commande
docker compose -f docker-compose.yaml up -d

Surveillez dans le shell l'installation.

Avec l'adresse IP du docker frigate et le port 5000 (exemple : http://192.168.1.100:5000), vous devriez avoir une fenêtre avec votre première caméra.

Vous pouvez aussi surveiller le bon lancement avec portainer en cliquant sur l'icône correspondante.

log_portainer|690x145

Si vous ne voyez qu'une fenêtre frigate avec un sablier qui tourne, c'est qu'il y a une erreur dans le fichier de conf de frigate.

Il faut au moins une caméra qui marche. Commencez donc par cela.

Si vous ne voyez même pas cette fenêtre, c'est que la configuration du docker ou du LXC n'est pas correcte (pb d'adresse IP ...)

Enfin, si tout va bien, vous devriez voir votre première caméra.

💡
Si, par malchance, vous avez une config qui bloque le démarrage de frigate, il faut alors retourner dans le shell de proxmox et aller ré-éditer le fichier opt/frigate/config/config.yml

Paramétrage

Ensuite, vous pouvez interagir avec votre fichier de configuration Frigate directement dans Frigate, menu de gauche /Config.

config_frigate|690x186

Je vous conseille d'en avoir un fichier quelque part en local sur votre PC, faites y les modifications, et ensuite coller l'ensemble dans la fenêtre de configuration de Frigate, puis "save & restart". Cela vous permet de procéder pas à pas, et aussi revenir en arrière.

Ajout de caméra

Si votre caméra est en rtsp, tant mieux, c'est le plus simple.

Le site iSpyConnect donne les configuration possible de la plupart des caméras, mais il faut souvent faire par essai-erreur.

Si elle n'est pas rtsp, alors il faut configurer Frigate pour qu'il transforme le flux en rtsp par go2rtc.

Enregistrement

Cela se fait par la section record du fichier de configuration. Dans mon cas :

record:
  enabled: True
  retain:
    days: 1   #7 choisi, mettre 0 pour purger
    mode: motion
  events:
    retain:
      default: 15   #15 choisi, mettre 0 pour purger
      mode: active_objects
    pre_capture: 2
    post_capture: 5

Avec cela, je garde l'enregistrement de TOUS les mouvements détectés pendant 24h, et l'enregistrement des évènements (reconnaissance par l'AI d'une forme demandée) durant 30 jours.

À noter que dans Frigate, vous pouvez accéder aux enregistrements des évènements, mais pas à ceux des mouvements ("motion"). Ceux-là ne sont accessibles qu'en allant directement sur votre lieu de stockage. Il y a un fichier par détection de mouvement.

Lien avec Home Assistant

Comme notre Frigate est dans un docker à part, et pas dans un add-on de home assistant, le lien ne se fait pas naturellement. J'ai personnellement choisi de passer par l'add-on Frigate-proxy. En le mettant dans la barre de gauche dans HA, cela permet d'interagir comme si on était connecté à l'interface UI de Frigate directement.

Voici à titre d'exemple mon fichier de config.

mqtt:
#    enabled: false
  host: 192.168.1.xxx
  port: 1883
  topic_prefix: frigate
  client_id: frigate
  user: user
  password: pwd
  stats_interval: 60

birdseye:
  enabled: True
  mode: motion

objects:
  track:
    - person
    - bird
    - cat
    - dog
    - car
    - umbrella
    - mouse
#
#  filters:
#    person:
#      min_area: 5000
#      max_area: 100000

ffmpeg:
  hwaccel_args: preset-vaapi
#    - -hwaccel
#    - vaapi
#    - -hwaccel_device
#    - /dev/dri/renderD128
#    - -hwaccel_output_format
#    - yuv420p

detectors:
#  cpu1:
#    type: cpu
  coral:
    type: edgetpu
    device: usb

record:
  enabled: True
  retain:
    days: 1   #7 choisi, mettre 0 pour purger
    mode: motion
  events:
    retain:
      default: 15   #15 choisi, mettre 0 pour purger
      mode: active_objects
    pre_capture: 2
    post_capture: 5

snapshots:
  enabled: True
  timestamp: True
  bounding_box: True
  retain:
    default: 30

motion:
  # Optional: The threshold passed to cv2.threshold to determine if a pixel is different enough to be counted as motion. (default: shown below)
  # Increasing this value will make motion detection less sensitive and decreasing it will make motion detection more sensitive.
  # The value should be between 1 and 255.
  threshold: 60
  # Optional: Minimum size in pixels in the resized motion image that counts as motion (default: shown below)
  # Increasing this value will prevent smaller areas of motion from being detected. Decreasing will
  # make motion detection more sensitive to smaller moving objects.
  # As a rule of thumb:
  #  - 10 - high sensitivity
  #  - 30 - medium sensitivity
  #  - 50 - low sensitivity
  contour_area: 20  
  # Optional: The percentage of the image used to detect lightning or other substantial changes where motion detection
  #           needs to recalibrate. (default: shown below)
  # Increasing this value will make motion detection more likely to consider lightning or ir mode changes as valid motion.
  # Decreasing this value will make motion detection more likely to ignore large amounts of motion such as a person approaching
  # a doorbell camera.
  lightning_threshold: 0.7  


cameras:
#  
  cctv_exemple: #D-Link DCS-2330
    ffmpeg:
      inputs:
      #high resolution
        - path: rtsp://admin:pwd@192.168.1.140:554/live1.sdp
          roles:
            - record
#            - detect
#            - rtmp
      #low resolution
        - path: rtsp://admin:pwd@192.168.1.140:554/live2.sdp
          roles:
            - detect
            - rtmp
    motion:
      mask:
        - 462,0,461,44,0,39,0,0

Je n'ai pas mis toutes mes caméras 😉

Voilà, si Frigate marche parfaitement depuis son interface WEB, il ne vous reste plus qu'à réaliser l'intégration dans Home Assistant via Frigate Proxy et la carte Frigate. Ce n'est pas l'objet de cet article.

Bonne configuration à tous,

Autres sources utiles