Plugin créé par Sagitaz et Noodom
Le plugin et le support sont gratuits, vous souhaitez néanmoins m’offrir un café ou des couches pour bébé, je vous remercie par avance.
Pour toute demande d’aide sur Community ou Discord, merci de fournir le maximum d’informations possibles. (matériel, type de caméra, version de Jeedom, de Frigate, de votre système, etc…)
Sur la page configuration, le bouton assistance permet déjà d’en remplir automatiquement certaines.
Assurez-vous d’avoir un matériel compatible avec Frigate et que ce dernier fonctionne correctement avant de demander de l’aide sur le plugin. (voir la documentation officielle de Frigate pour les configurations matérielles recommandées).
Donnez aussi des logs en mode debug. (ceux du plugin et du serveur Frigate).
Aucun support ne sera apporté sur d’autres moyens de communication que ceux-ci.
Merci
Le plugin n’installe pas et ne configure pas le serveur Frigate, il vous faut donc l’installer et le configurer vous-même. Voir la documentation officielle de Frigate pour plus d’informations.
Comme pour tous les autres plugins, après l’avoir installé, il faut l’activer.
Le plugin sera toujours compatible avec la dernière version stable connue (le temps de s’adapter). Par contre, on ne fera pas plusieurs développements pour rester opérationnel avec les anciennes versions. Donc si quelque chose ne fonctionne pas, commencez par mettre à jour votre serveur Frigate avant de demander de l’aide.
Au 30-09-2026 le plugin fonctionne avec les versions suivantes de Frigate :
Frigate 0.16.0 est la version minimale. Certaines fonctions ne sont disponibles qu’à partir de Frigate 0.18 : statut des flux des caméras, profils et paramètre pre_capture des évènements créés manuellement. Je ne garantis pas un suivi des anciennes versions du serveur Frigate.
La récupération des caméras, des anciens évènements, la suppression d’évènements, etc… De nombreuses fonctions du plugin utilisent la connexion à l’API Frigate. Celle-ci est accessible par le port 5000 sur votre réseau local, il est impératif que vous l’ayez configuré, sans quoi le plugin ne pourra fonctionner. Si vous souhaitez utiliser un autre port, vous pouvez le faire du moment que vous mappez vers le port 5000 (5054:5000) dans la configuration du serveur Frigate.
La configuration MQTT permet de recevoir les informations du serveur Frigate en temps réel. Cela améliore l’expérience utilisateur du plugin, mais n’est pas nécessaire pour son fonctionnement. Un broker sécurisé (user:mdp) est obligatoire pour que le plugin mqtt-manager dont dépend le plugin frigate fonctionne correctement.
Le plugin comporte des sous-logs, pour qu’ils soient visibles sur Jeedom 4.4.19, il est nécessaire de passer les logs globaux en niveau info minimum.

Le nombre de jours de suppression ne peut pas être plus petit que le nombre de jours de récupération. Dans le cas contraire, ce sera alors le nombre de jours de récupération qui sera utilisé.
Les évènements mis en favori ne sont jamais supprimés, ni par l’ancienneté ni par la taille. Les captures manuelles suivent les mêmes règles que les évènements : mettez-les en favori pour les garder.
Une activité de Frigate (review) peut regrouper plusieurs objets suivis, par exemple une personne puis une voiture. Le plugin suit l’objet par lequel l’activité a commencé : lui seul met à jour les commandes et déclenche les actions, une seule fois pour toute l’activité. À la fin de l’activité, les autres objets sont enregistrés avec leurs médias et apparaissent sur la page des évènements, sans mettre à jour les commandes ni exécuter d’action.
Un évènement dont la fin n’a jamais été reçue (coupure MQTT, redémarrage de Frigate) reste incomplet. Trois heures après son début, le cron suivant (30 minutes, horaire ou journalier) demande à Frigate où il en est : terminé, il est complété avec son clip, sans exécuter d’action ; inconnu de Frigate, il est supprimé ; encore en cours, il est gardé jusqu’au cron suivant.
Le démon démarre automatiquement après avoir sauvegardé la partie configuration et y avoir configuré le topic Frigate. Pour pouvoir utiliser MQTT, il faut que vous ayez correctement configuré votre serveur Frigate et que vous ayez le plugin mqtt-manager (mqtt2) installé et correctement configuré. Votre broker MQTT doit être sécurisé pour que le plugin mqtt-manager fonctionne. Si vous utilisez MQTT, vous pouvez mettre le cron à Hourly ou Daily.
Démon NOK : Si vous n’avez pas mqtt-manager, il est normal que le démon reste sur NOK. Aucun problème, le plugin fonctionne quand même, cependant certaines fonctions seront indisponibles ou limitées. Avec mqtt-manager, NOK signifie que le plugin ne reçoit plus les messages de Frigate, par exemple juste après une mise à jour du plugin. Jeedom relance le démon dans les 5 minutes si la gestion automatique est activée ; sinon, cliquez sur (Re)Démarrer.
Les commandes infos de tous les équipements sont créées automatiquement à la prochaine réception d’événements ou de statistiques. Si vous ne les voyez pas à la première installation du plugin, c’est que vos événements récents ont plus de 3 heures, il faut donc attendre le prochain événement pour voir les commandes.
Les commandes actions sont créées seulement quand vous utilisez le bouton “Rechercher / MAJ”.
Les boutons de gestion :
Sous les boutons, la version de votre serveur Frigate s’affiche en orange quand une mise à jour est disponible.
L’équipement est créé de manière automatique en même temps que les caméras. Celui-ci comporte des commandes infos avec la valeur du dernier évènement reçu. Il comporte aussi 2 commandes actions : Cron on et Cron off, ceci afin de mettre en pause la recherche de nouveaux évènements. Avec MQTT, ses commandes Détection xxx et Détection tout valent 1 tant qu’au moins une caméra active détecte l’objet, et repassent à 0 quand plus aucune ne le détecte.
Il est possible de créer des actions communes à toutes les caméras (voir la section dédiée) Cocher “autoriser les actions” si vous souhaitez sur une détection exécuter les actions présentes dans l’équipement events et dans les équipements caméras.
L’équipement est créé de manière automatique en même temps que les caméras. Celui-ci comporte des commandes infos avec quelques statistiques disponibles.
Il comporte aussi la commande action permettant de redémarrer le serveur Frigate.
Avec Frigate 0.18 ou plus et MQTT, deux commandes masquées par défaut permettent de suivre et de changer le profil actif de Frigate :
Après installation du plugin et la configuration de l’URL et du port de votre serveur Frigate, il vous suffit de cliquer sur le bouton Rechercher. Les caméras trouvées seront automatiquement créées. Il est nécessaire de patienter car à la première recherche sont également importés les évènements de la dernière journée. Cela peut prendre un peu de temps.
ui -> order) à chaque « Rechercher / MAJ » ; une position saisie n’est jamais modifiée.La qualité, la hauteur et le format ne s’appliquent qu’aux images téléchargées après leur modification.
A droite, les quelques paramètres disponibles pour la visualisation. Refresh de l’image suivant votre configuration.
Les informations sur le dernier évènement de la caméra : caméra, label, score, top score, zones, id, type, timestamp, durée, clip disponible, snapshot disponible, URL snapshot, URL clip et URL thumbnail. Et les statistiques de la caméra.
L’info LABEL correspond à l’objet qui a déclenché la détection (person, vehicle, cat, dog, etc…)
Si la reconnaissance faciale, la lecture de plaques, des modèles de classification ou l’IA générative sont activés dans Frigate, la caméra reçoit par MQTT le résultat de la dernière reconnaissance. Les commandes sont créées au premier résultat.
Pour avoir les commandes actions suivantes, il est obligatoire d’utiliser MQTT. Sans cela, les commandes ne seront pas créées. Je vous invite à lire la documentation de Frigate pour la configuration de votre serveur MQTT. Chacune a un état et des commandes on, off et toggle.
Les commandes PTZ, preset et audio ne sont créées que si la configuration de votre serveur Frigate possède les informations.
Dans l’onglet PTZ & HTTP d’une caméra, le bouton Ajouter une commande HTTP crée une commande action qui appelle l’URL indiquée, par exemple pour piloter une fonction de la caméra que Frigate ne propose pas.
Dans l’URL, #user# et #password# sont remplacés par l’identifiant et le mot de passe de l’équipement, par exemple :
http://192.168.1.50/cgi-bin/api.cgi?cmd=Snap&user=#user#&password=#password#
L’appel utilise aussi l’authentification Digest avec cet identifiant et ce mot de passe. La réponse de la caméra est enregistrée dans la commande info Etat HTTP command. Le mot de passe est masqué dans les logs.
Les commandes HTTP sont créées masquées. Une fois rendues visibles, elles apparaissent dans la liste déroulante des actions du widget, avec les presets. Le bouton crayon de la commande permet de modifier son URL.
Les actions sur évènements sont disponibles pour l’équipement Events et pour chaque équipement caméras. Les actions configurées sur l’équipement Events seront exécutées par les évènements provenant de toutes les caméras sauf si elles possèdent des actions configurées et activées. Si vous souhaitez regrouper sur l’équipement Events des actions communes et ensuite ajouter des actions pour chaque caméra, pensez à cocher sur l’équipement Events la case “autoriser les actions”.
Déroulé de l'action :

Indiquer ici dans quel cas les actions NE DOIVENT PAS être exécutées.
Par exemple, vous configurez la condition comme ceci : #[Maison][Mode maison][Mode]# == “présent” Les actions ne seront exécutées que si le mode est tout autre que présent.
Vous pouvez indiquer ici les actions à effectuer à chaque nouvel évènement.
Une checkbox vous permet de désactiver la vérification de la condition générale.
LABEL : Pour rappel, le label est ce qui déclenche la détection (person, vehicle, animal, etc…) Dans la case label, il vous suffit d’indiquer le(s) label(s) pour lesquels vous souhaitez que l’action soit exécutée. Si ce champ est vide ou que vous mettez all, alors l’action sera exécutée pour tous les nouveaux évènements. Vous pouvez indiquer plusieurs labels en les séparant par des virgules. Les majuscules et les accents sont ignorés, donc si vous indiquez “Vélo” ou “velo”, les deux seront considérées comme identiques.
TYPE : Avec MQTT, ils peuvent être de type new, update et end. Sans MQTT, il sera toujours de type end. Dans la case type, il vous suffit d’indiquer le type pour lequel vous souhaitez que l’action soit exécutée. Vous pouvez en mettre plusieurs en les séparant par des virgules. Si aucun type n’est spécifié, l’action sera exécutée seulement pour les évènements de type end. les majuscules et les accents sont ignorés, donc si vous indiquez “update” ou “UPDATE”, les deux seront considérées comme identiques.
ZONES :
Dans la case zone d’entrée, il vous suffit d’indiquer la ou les zones pour lesquelles vous souhaitez que l’action soit exécutée. Vous pouvez indiquer plusieurs zones en les séparant par des virgules.
La case zone de sortie permet de gérer le sens de la détection. Cela ne fonctionne qu’avec une zone d’entrée définie. Si la zone d’entrée est déclenchée avant la zone de sortie alors l’action sera exécutée.
Les majuscules et les accents sont ignorés, donc si vous indiquez “Allée” ou “allee”, les deux seront considérées comme identiques.
CONDITION DE L'ACTION : Indiquer ici dans quel cas les actions DOIVENT être exécutées.
Par exemple, vous configurez la condition comme ceci : #[Maison][Mode maison][Mode]# == “absent” Les actions ne seront exécutées que si le mode est configuré comme absent.
Si aucune condition n’est spécifiée, l’action sera réalisée.
BON À SAVOIR :
Variables disponibles pour les conditions:
Variables disponibles pour les actions: Une liste de variables est disponible afin de personnaliser les actions, ces variables sont remplacées par leur valeur lors de l’exécution de l’action.
https://URL/plugins/frigate/data/frigate1/1718992955.613576-zulr2q_snapshot.jpg/var/www/html/plugins/frigate/data/frigate1/1718992955.613576-zulr2q_snapshot.jpghttps://URL/plugins/frigate/data/frigate1/1718992955.613576-zulr2q_clip.mp4/var/www/html/plugins/frigate/data/frigate1/1718992955.613576-zulr2q_clip.mp4https://URL/plugins/frigate/data/frigate1/1718992955.613576-zulr2q_thumbnail.jpg/var/www/html/plugins/frigate/data/frigate1/1718992955.613576-zulr2q_thumbnail.jpghttps://URL/plugins/frigate/data/frigate1/1718992955.613576-zulr2q_preview.gif/var/www/html/plugins/frigate/data/frigate1/1718992955.613576-zulr2q_preview.giftitle=votre titre;;bigPicture=#snapshot#title=votre titre;;bigPicture=#preview#title=votre titre;;bigPicture=#thumbnail#title=votre titre;;bigPicture=#clip#Pour une notification automatique, ajouter frigate=#jeemate# (JeeMate v3)
title=votre titre;;bigPicture=#snapshot#;;frigate=#jeemate#title=votre titre;;bigPicture=#clip#;;frigate=#jeemate#Testez les 2 commandes snapshot. Selon les configurations, il se peut qu’une des deux ne fonctionne pas.
title=votre titre | snapshot=#snapshot#title=votre titre | file=#snapshot_path#title=votre titre | file=#clip_path##preview#votre message | file=#snapshot_path#title=votre titre | files=#snapshot_path#title=votre titre | files=#clip_path#Title:votre titre;Attach:#snapshot#Title:votre titre;Attach:#clip#
ATTENTION : le bouton “supprimer” supprime l’évènement en database Jeedom mais aussi sur votre serveur Frigate. En aucun cas, je ne serai responsable de votre mauvaise utilisation de ce bouton. Néanmoins, une popup de confirmation est présente.
Les évènements mis en favoris ne sont pas supprimés.

Indiquer le label
message : score=80 | video=1 | duration=20 | pre_capture=5
pre_capture (Frigate 0.18 ou plus) : nombre de secondes enregistrées avant la création de l’évènement. Sans ce paramètre, Frigate applique le pré-enregistrement de la caméra.
Pour la durée des clips, il faut penser aussi au fait que Frigate ajoute du temps avant et après la vidéo, 5 sec. par défaut, donc en paramétrant à 20 sec. vous obtiendrez une vidéo de 30 sec.
Attention sur les évènements créés manuellement, si dans votre configuration Frigate pour record -> retain -> mode vous avez motion alors les clips ne seront disponibles que s’il y a du mouvement détecté, mettre à all si vous voulez tout avoir.Vous ne souhaitez pas créer un évènement manuellement, mais vous souhaitez avoir une capture instantanée de la caméra ? Vous pouvez créer une action sur la caméra qui va capturer l’image de la caméra.
Dans les actions des caméras se trouvent deux commandes :
Chaque capture est aussi enregistrée comme un évènement avec le label capture, visible sur la page Events. Les captures sont supprimées selon les mêmes règles que les évènements (ancienneté et taille du dossier data) : mettez en favori celles que vous voulez garder.
L’URL est de la forme /plugins/frigate/data/snapshots/id_snapshot.jpg afin de s’adapter au maximum de plugins de communication.
Par exemple si vous souhaitez une URL complète, vous pouvez mettre ceci dans configuration, calcul et arrondi de la commande info :
str_replace('"','',"https://monjeedom.eu.jeedom.link"#value#)
Ou bien pour ceux ayant besoin du path :
str_replace('"','',"/var/www/html"#value#)
ATTENTION : La modification de la configuration du serveur Frigate est à vos risques et périls ! Aucun support ne sera donné !
L’éditeur affiche le fichier de configuration du serveur Frigate et vérifie la syntaxe YAML pendant la saisie.
Visualiser les logs de votre serveur Frigate : Frigate, go2rtc et nginx. Le bouton de téléchargement enregistre les logs affichés.
Si vous n’utilisez pas MQTT : un cron régulier vous permet de récupérer les derniers events et donc d’exécuter les actions associées.
Si vous utilisez MQTT : tous les nouveaux events sont reçus automatiquement, un cron heure ou jour est suffisant : il permet de mettre à jour les infos de l’évènement.
Dans tous les cas, laisser au moins un cron actif car il sera vérifié à chaque fois si les fichiers sauvegardés correspondent bien à un évènement et dans le cas contraire, ils seront supprimés.
Le cronDaily est le seul à vérifier la version de votre serveur frigate : si une maj est disponible, vous aurez un message.
Mon conseil : Sans MQTT : cron ou cron5 (suivant puissance machine) + cronDaily Avec MQTT : cronDaily
Dans tous les cas, si un cron est en cours d’exécution, le suivant ne sera pas lancé et en MQTT, les crons 1, 5, 10 et 15 sont désactivés.
Vous y trouverez la visualisation de la caméra et les boutons cochés visibles :
Un bouton n’apparaît que si ses commandes sont visibles.
Dans le plugin Frigate il n’y a pas de lecteur pour le flux vidéo, cette configuration sert pour les plugins compatibles.
L’URL du flux vidéo enregistré dans le plugin est celle de votre serveur Frigate et pas celle de la caméra.
En résumé, si vous avez plusieurs caméras et que vous souhaitez une gestion centralisée, le flux RTSP de Frigate pourrait être plus avantageux. Si vous préférez une solution plus simple et directe, utiliser le flux RTSP de la caméra pourrait être suffisant.
Si votre configuration Frigate comporte plusieurs flux par caméra, il vous faudra indiquer dans le champ flux vidéo de votre équipement celui que vous souhaitez utiliser, la même chose si vous préférez utiliser le flux d’origine de la caméra.
Configuration Frigate avec un seul flux, ici je n’ai pas besoin d’indiquer le flux, celui par défaut conviendra.
frigate1:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/frigate1
Configuration Frigate avec plusieurs flux, indiquer l’url du flux voulu sur la page de votre équipement, celui par défaut ne conviendra pas, remplacer 127.0.0.1 par l’ip du serveur Frigate.
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/frigate1_high # Flux principal haute résolution
input_args: preset-rtsp-restream
roles:
- record # Utilisé pour l’enregistrement
- path: rtsp://127.0.0.1:8554/frigate1_low # Flux secondaire basse résolution
input_args: preset-rtsp-restream
roles:
- detect
Attention, en aucun cas il ne vous est demandé de modifier la configuration sur Frigate
Après chaque modification de l’URL du flux dans le plugin Frigate, il vous faudra sauvegarder aussi dans le plugin JeeMate puis faire une synchronisation complète dans l’application.
N’oubliez pas d’activer la page panel dans la configuration générale, puis pour chaque caméra de cocher la case “Panel”.
Le topic frigate/reviews correspond aux review items (périodes d’activité détectée) qui sont générés après la détection et l’enregistrement des objets. Ce système de revue s’appuie fortement sur la fonction d’enregistrement (recording) pour fonctionner :
Frigate organise les review items comme des plages temporelles regroupant plusieurs détections
Si l’enregistrement est désactivé (record.enabled: false), aucun segment vidéo n’est stocké, et donc la plateforme ne construit pas de review items → rien n’est publié dans frigate/reviews.
Pour fonctionner le plugin a donc besoin de :
record:
enabled: true
Veuillez noter que c’est mon fichier, mes réglages et qu’il fonctionne pour ma situation, à vous de l’adapter ou de comparer avec le vôtre si jamais toutes les fonctions du plugin n’étaient pas fonctionnelles chez vous.
Je ne pourrai être tenu responsable de tout dysfonctionnement causé par cette configuration, vous devez donc adapter la configuration à votre propre serveur et à vos besoins.
J’ai mis des commentaires afin de vous aider.
Ce fichier correspond à Frigate 0.18. Il est raccourci : une seule caméra, prompts abrégés.
# Rappel, le plugin mqtt-manager nécessite un broker mqtt sécurisé.
mqtt:
host: 192.168.2.22 # Adresse IP de votre serveur MQTT
port: 1883 # Port du broker MQTT
user: '***' # Nom d'utilisateur (masqué ici)
password: '***' # Mot de passe (masqué ici)
stats_interval: 300 # Fréquence (en secondes) des messages de statistiques MQTT
detectors:
coral:
type: edgetpu # Utilise un accélérateur Coral (Edge TPU) pour la détection
device: usb # Type de connexion : USB
timestamp_style:
position: tr # Position du timestamp sur l'image (tr = coin supérieur droit)
format: '%d/%m/%Y %H:%M:%S' # Format du timestamp affiché (jour/mois/année heure:min:sec)
birdseye:
enabled: false # Désactive le mode Birdseye (vue multi-caméras combinée)
model:
labelmap: # Remappage des classes de détection vers des noms personnalisés
0: personne
1: vehicule
2: vehicule
3: vehicule
5: vehicule
7: vehicule
16: animale
17: animale
18: animale
19: animale
20: animale
detect:
enabled: true # Active la détection d'objets pour toutes les caméras
snapshots:
enabled: true # Active les captures d'image (snapshots) des évènements
timestamp: false # Ne superpose pas la date/heure sur les images
bounding_box: false # Ne dessine pas de cadre autour des objets détectés
crop: false # Ne recadre pas sur l'objet détecté
retain: # Durée de conservation des snapshots
default: 3 # Par défaut, 3 jours
objects:
personne: 7 # 7 jours pour une "personne"
vehicule: 3 # 3 jours pour un "vehicule"
record:
enabled: true # Active l'enregistrement vidéo, obligatoire pour que le plugin reçoive les évènements
alerts:
retain:
days: 7 # Conserve les clips d'alerte pendant 7 jours
mode: active_objects # Seulement si un objet actif a été détecté
pre_capture: 5 # Enregistre 5 secondes avant le début de l'évènement
post_capture: 5 # Enregistre 5 secondes après la fin de l'évènement
detections:
retain:
days: 7 # Conserve les clips de détection pendant 7 jours
mode: active_objects
pre_capture: 3
post_capture: 5
semantic_search:
enabled: true # Active la recherche sémantique des évènements
face_recognition:
enabled: true # Reconnaissance faciale (commandes Reconnaissance du plugin)
lpr:
enabled: true # Lecture des plaques d'immatriculation
classification:
custom:
Porte entrée: # Modèle d'état : commande "Reconnaissance - Etat Porte entrée"
enabled: true
name: Porte entrée
threshold: 0.8
state_config:
cameras:
Porte:
crop: [0.0, 0.39, 0.34, 0.99] # Partie de l'image analysée
motion: true
Parking: # Modèle d'objet : variable #sublabel# des actions
enabled: true
name: Parking
threshold: 0.8
object_config:
objects:
- vehicule
classification_type: sub_label
genai:
default: # Fournisseur d'IA générative (plusieurs possibles depuis Frigate 0.18)
provider: gemini
api_key: '***' # Clé API (masquée ici)
model: gemini-2.5-flash
roles: # Tâches confiées à ce fournisseur
- descriptions
- chat
review:
genai: # Descriptions des activités par l'IA
enabled: true
alerts: true
detections: true
cameras:
Porte: # Nom de la caméra
detect:
fps: 2 # Images analysées par seconde
width: 1280 # Résolution du flux analysé
height: 720
stationary:
interval: 50 # Vérifie les objets immobiles toutes les 50 images
threshold: 30 # Nombre d'images sans déplacement pour qu'un objet soit considéré immobile
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/Porte_1 # Flux principal haute résolution
input_args: preset-rtsp-restream
roles:
- record # Utilisé pour l'enregistrement
- path: rtsp://127.0.0.1:8554/Porte_2 # Flux secondaire basse résolution
input_args: preset-rtsp-restream
roles:
- detect # Utilisé pour la détection
objects:
track: # Liste des objets à détecter
- personne
- vehicule
- animale
filters:
personne:
min_score: 0.73 # Score minimum pour commencer à suivre
threshold: 0.8 # Score minimum pour déclencher un évènement
genai: # Descriptions des objets par l'IA
enabled: true
use_snapshot: true
prompt: Analyse le {label} dans ces images provenant de la caméra de sécurité {camera}...
object_prompts: # Prompts personnalisés pour chaque type d'objet, à vous de les adapter
personne: Commence IMMÉDIATEMENT et DIRECTEMENT la description de l'action...
vehicule: Décris IMMÉDIATEMENT et DIRECTEMENT le comportement du véhicule...
zones:
entree: # Zone utilisable dans les actions du plugin
coordinates: 0.379,0.307,0.985,0.533,0.99,0.986,0.003,0.994
objects:
- personne
- vehicule
go2rtc:
streams: # Flux des caméras, relayés par Frigate
Porte_1: rtsp://***:***@192.168.2.36:554/1 # Flux haute qualité
Porte_2: rtsp://***:***@192.168.2.36:554/2 # Flux basse qualité
version: 0.18-0 # Version du format de configuration de Frigate