Tuto Installation de Frigate LXC (+ HA Core LXC + MQTT LXC) via Proxmox

Bonjour à tous,

Sujet déjà abordé de nombreuses fois ou je vois souvent des références au tuto d’installation de Frigate via Docker et c’est un peu l’usine à gaz je trouve.

D’autre part, j’utilisais précédemment une VM HA lourde et peu stable, chargée d’Addons et notamment avec une erreur de type :

xhci_hcd 0000:13:00.0: Error Transfer event TRB DMA prt not part of current TD ep_index 2 comp_code 1

qui saturait la mémoire de ma VM HA sans explication.

Du coup, j’ai voulu tout réinstaller proprement et je suis parti sur une solution Proxmox à base de LXC natifs.
Pour Frigate, il existe une solution plus récente d’un Frigate LXC nettement plus simple a déployer je trouve que celle via Docker :

Pour ma part j’ai :

  1. installé un HA Core LXC via
    Proxmox VE Helper-Scripts

  2. installé un Frigate LXC via
    Proxmox VE Helper-Scripts

  3. installé un MQTT LXC via
    Proxmox VE Helper-Scripts

proxmox lxc

Vous fixez vos IP pour les 3 sur votre réseau local (soit par un IP statique ou bail DHCP dans votre box Internet par exemple)

Puis installation de Frigate via HACS dans Home Assistant
Puis configuration de Frigate via le menu Paramètres, appareils et services, puis dans l’ajout de la nouvelle entrée Frigate, l’URL que vous saisissez en bas est l’IP de votre LXC Frigate local:
http://ip_de_mon_frigate_en_local:5000

Concernant la config de Frigate, il y a deux fichiers à éditer.

  1. Fichier de configuration du container LXC Frigate

Le premier directement dans le Shell de proxmox:
nano /etc/pve/lxc/104.conf

(ici 104.conf est l’identifiant du container LXC comme vous pouvez le voir dans la capture d’écran du début)

et vous ajoutez en bas de ce fichier les 2 lignes pour l’accélération hardware via le CPU + Google Coral :

# entree pour le CPU
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file 0, 0
#entree pour le Google Coral en USB
lxc.mount.entry: /dev/bus/usb/002/ dev/bus/usb/002/ none bind,optional,create=dir 0,0
  1. Configuration de Frigate

Après pour la config de Frigate, allez dans le shell du LXC et faire la config via :
nano /opt/frigate/docker-compose.yml

Puis ajout du broker MQTT:
(pour info, MQTT vous sert à récupérer les commandes PTZ de vos caméras dans HA ou par exemple à remonter les switch vous permettant d’activer/désactiver la détection des caméras directement dans HA)

Concrètement, dans Frigate vous auriez ça pour activer la détection d’une caméra
enable_detect_dans_frigate

Grace à MQTT, vous pourriez intégrer cette fonctionnalité dans une carte HA :
enable_detect_dans_ha

mqtt:
  enabled: true
  host: 192.168.1.xxx #===> ip locale de mon broker MQTT LXC
  port: 1883
  user: login #==> nom d'utilisateur du broker MQTT
  password: mot_de_passe #==> mot de passe défini pour le broker MQTT

Il y a un topic complémentaire Post Install sur MQTT LXC pour le mot de passe :

PS: Si ces commandes (detect ou autres) Frigate ne sont pas disponibles dans HA, supprimer votre intégration Frigate dans HA et réajouter l’entrée Frigate.

Puis ajout de la section detectors avec une particularité, j’ai viré mon Google Coral USB remplacé par OpenVino qui gère efficacement le CPU + GPU intégré au processeur Intel à partir de la 6eme gen.

detectors:
#  coral:       
#    type: edgetpu
#    device: usb
ov:
  type: openvino
  device: CPU
model:
  width: 300
  height: 300
  input_tensor: nhwc
  input_pixel_format: bgr
  path: /openvino-model/FP16/ssdlite_mobilenet_v2.xml
  labelmap_path: /openvino-model/coco_91cl_bkgr.txt

Pour moi ça marche nickel, j’ai entre 10 et 20% de charge CPU sur le LXC Frigate pour 6 caméras en détection, juste avec le CPU Intel sans le Google Coral. (Oui j’ai un vieux CPU Intel(R) Core™ i3-6100T CPU @ 3.20GHz mais il est de 6eme gen, donc ca passe…)
N’hésitez pas à allouer des cœurs à votre container LXC afin qu’il soit très à l’aise sur 4 cœurs par exemple plutôt qu’il ne force sur 1 seul. Cela lissera la charge de votre CPU vers le bas et donc sa conso.

Concernant le stockage des vidéos, j’ai mis 50Go de disque dur pour le LXC Frigate et ca me suffit largement. (A voir selon vos usages directement dans la partie monitoring du stockage Frigate.)

Puis ajout des cams selon la documentation Frigate classique.

Autre particularité de ce HA Core, il n’y a pas d’éditeur de fichier de configuration natif.
J’ai trouvé une astuce qui consiste à lancer la commande suivante directement dans le shell de HA LXC, ce qui permet d’installer Filebrowser.
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/ct/homeassistant-core.sh)"

To Update, Install HACS or Filebrowser, run the command below (or type update) in the LXC Console .

En deux mots, cela permet d’accéder à tous les fichiers de configuration HA directement sur l’IP locale de votre Home Assistant en local en ajoutant le port 8080
http://ip_de_mon_ha_en_local:8080

Au final, j’ai 3 container LXC ultra légers et dédiés plutôt qu’une énorme VM HA avec tous les Addons. :grinning:
La VM était beaucoup trop lourde en terme de ressources matérielles et surtout moins stable.

La ca tourne sans broncher avec une faible charge du serveur Proxmox. :ok_hand:
charge_proxmox

3 « J'aime »

Merci pour ce partage bien documenté.
Tu devrais mettre dans la catégorie Tuto plutôt que dans entreaides.

1 « J'aime »

Pour info ce très cher TTECK est décédé il y’a très peu je serait vois je iterai l’utilisation de ses scripts qui risquent de ne plus jamais recevoir de mise à jour

J’ai d’ailleurs tjs pensé que ces scripts étaient un piège à débutant qui installait tout et n’importe quoi dans même comprendre le moindre mécanisme

Hélas maintenant suite à cette circonstance des plus tragiques le piège vient de se refermer

2 « J'aime »

Salut messieurs,

Je suis assez d’accord, si le débutant ne cherche pas par la suite à comprendre ce que fait le script.

Mais bon, on ne va pas se leurrer, ceux qui creusent doivent représenter un faible pourcentage…

À voir les scripts ont été repris pas une « communauté ».

https://community-scripts.github.io/ProxmoxVE/

2 « J'aime »

Merci pour l’info que je n’avais pas.
Effectivement il semblerait que la communauté va poursuivre son travail via :

En tous cas, je vais modifier les liens de ce post ainsi que ceux du [Tuto] vers leur version community-scripts plus pérenne.

Merci beaucoup pour ce tuto qui en effet sans clé coral me permet d’avoir le flux de ma caméra correct et une « VM » LXC qui tourne entre 5 et 10%

Dans mon frigate du coup, j’ai activé la détection avec des masks etc…
J’ai installer l’addon frigate et j’ai mis mon ip du LXC, nickel, le flux de la caméra remonte ainsi que la détection.
Dans frigate LXC j’ai bien dans l’historique la mini video de la détection.

Mais comment maintenant puis-je avoir depuis HA une notification vers mon iphone avec l’image de la détection ? Si vous savez m’aider sur cette partie svp ?

Tu as un blueprint dédié à cela qui le fait très bien.

Oui j’ai trouvé hier soir, pas eu le temps de venir en parler ici.
Par contre çà fonctionne bien mais la réception de l’image ne se fait pas en notification. Pourtant j’ai choisi Snapshot with bounding box comme j’ai pu le voir dans une video.

Une résolution à ce souci ?

Merci