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 :
-
installé un HA Core LXC via
Proxmox VE Helper-Scripts -
installé un Frigate LXC via
Proxmox VE Helper-Scripts -
installé un MQTT LXC via
Proxmox VE Helper-Scripts
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.
- 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
- 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
Grace à MQTT, vous pourriez intégrer cette fonctionnalité dans une carte 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.
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.