[Retour d'expérience + Proposition] Vidéosurveillance locale universelle dans Gladys — go2rtc + Frigate (détection person/chien/cheval... sans cloud)

@mutmut merci pour les logs, ils sont parlants :backhand_index_pointing_down:

1. La barre de progression — En effet : sur les ~4 minutes, c’est le téléchargement de l’image Frigate qui prend ~3 min à lui seul (le reste est quasi instantané). Bonne nouvelle : même si c’est « une seule étape », Docker nous remonte la progression du téléchargement — on va donc afficher une vraie barre « Téléchargement de l’image Frigate… X % » pendant ces 3 minutes, plus les libellés des étapes suivantes (broker MQTT, configuration, démarrage). C’est en préparation.
J’ai reproduis en lançant l’image sur raspberry-pi, à peu prêt le même temps que toi pour l’installation.

2 & 3. Les brokers MQTT / le nom eclipse-mosquitto — on est d’accord. Le broker dédié à Frigate est un choix assumé (isolation, identifiants propres), et mosquitto est ultra-léger (quelques Mo), donc aucune inquiétude ressources. Pour la question « et si on mutualisait / mieux nommait », ça rejoint pile ce que prépare Pierre-Gilles sur les intégrations en conteneurs externes — le bon endroit pour en discuter est le sujet dédié où ça en discute : Intégrations externes dans Gladys Assistant

4. Ton iGPU Intel HD 530 — oui, c’est déjà supporté : l’intégration détecte automatiquement le GPU Intel et active l’accélération (décodage vidéo + détection OpenVINO). La seule condition tient à ton montage : il faut exposer /dev/dri dans ton conteneur LXC Proxmox puis dans le conteneur Docker de Gladys. Une fois fait, dis-moi ce qu’affiche la section « Accélération matérielle » de la page de configuration Frigate — on validera ensemble.

5. Le redémarrage de Frigate — même principe que le point 1 : on va afficher « Frigate redémarre… » puis « Frigate opérationnel », en s’appuyant sur le signal que Frigate nous envoie quand il est de nouveau en ligne.

6. Ta Myfox — le message connection refused …:554 veut dire que la caméra elle-même ne répond pas sur ce port : c’est bien côté caméra qu’il faut « rebidouiller », comme tu l’as senti. Le bandeau rouge « Aucun flux reçu » est justement là pour ça. On va aussi enrichir le bouton « Proposer cette caméra au catalogue » pour qu’il embarque automatiquement les logs utiles (Gladys, MQTT, Frigate, go2rtc) — ça nous permettra de t’aider bien plus vite sur ce genre de cas, et d’ajouter ta Myfox au catalogue.

Et je n’oublie pas de regarder si la eufy Security Solar Wall Light Cam S120 peut être facilement prise en charge avant que tu l’achètes. Mais sans test, je ne pourrais pas confirmer à 100% je pense …

Eh bien, on dirait que quelque-chose est mal fait, sans doute de mon côté. En effet, même lorsque le container tourne, la db n’est pas stockée là. Et de même dans l’autre dossier de test (tuya), je n’ai que le dossier mosquitto.

Donc, pour répondre à la question, il reste le dossier mosquitto mais c’est déjà ça qu’il y avait avant…

Au niveau des droits, ça m’a l’air bon aussi…

On est d’accord, le risque que ça arrive est proche de l’inexistant en prod ! Et c’est un cas qui n’est logiquement pas géré car jamais apparu !

Je mets à jour et je teste en fin d’aprem !

OMG :heart_eyes: Désolé, je ne trouve pas d’autre expression adaptée à ce que je viens de lire dans l’ensemble de vos messages. En fait, vous êtes de grands malades et je trouve ça juste incroyable :star_struck:

Je ne peux que chaleureusement adhérer à cette proposition d’intégration, que j’ai mis en place également, mais juste via MotioEyes … Donc, aucune intégration, ni optimisation, juste des notifications lorsqu’une vidéo est sauvegardée après un mouvement.

Si je peux vous aider d’une quelconque manière, je le ferais avec joie :grin:

Merci à vous tous,

Jean

Du coup j’ai commencé à tester et j’utilise de mon côté mqtts au lieu de mqtt via un mosquitto externe.
Du coup Gladys n’arrive pas a se connecter :

gladys  | 2026-07-15T23:38:34+0200 <info> connect.js:27 (FrigateManager.connect) Connecting Gladys to mqtt://mqtt.xxxx.local:8883 MQTT broker...
gladys  | 2026-07-15T23:38:34+0200 <warn> connect.js:48 (MqttClient.<anonymous>) Error while connecting to Frigate MQTT broker - Error: read ECONNRESET

Est-il possible de rajouter mqtts ? :slight_smile:

Merci

j’ai une question bête : il ne serait pas possible d’utiliser le mqtt configuré dans gladys ? (il y a déjà le login / mdp, l’url et le statut)

Salut @prohand,
Je pense que oui, enfin j’espère ^^ Je fais ça le plus rapidement possible et te tiens au courant !

Salut @ProtZ,
C’est tout à fait possible, nous (bizarre ce nous, mais va falloir s’y faire ^^) avons choisi de l’implémenter comme ça pour le moment pour une cohérence avec Zigbee2mqtt. Mais je pense qu’à la fin ce sera la solution retenu. Enfin plus large que cela, on devrait pouvoir définir n’importe quel mqtt, ou proposer celui de Gladys. Pour ma part, mon serveur mqtt est externe à Gladys. Mon but, comme @prohand étant de passer en mqtts.

Merci :slight_smile:

Effectivement le choix devrait être d’utiliser le même que Gladys (Qu’ils soit externe ou integré) ou bien utiliser un mqtt externe :slight_smile:

Beau travail ! C’est vraiment une feature sympa !

J’ai fait un peu joujou avec ce midi et le test est réussi avec MQTT externe et Frigate externe concluant (j’ai utilisé des urls au lieu d’ip et j’avais juste oublié que j’avais un basicauth sur mon frigate en plus de l’auth classique), mes 6 caméras sont détectées et les events fonctionnent + retours d’images.
Je continuerai quelques tests ce soir. Pour le moment je n 'ai de retour que sur l’écran de configuration qui pourrait peut-être être amélioré (cf utilisé la config mqtt de gladys).

Je pourrais enfin pouvoir faire comme les frères poulain avec Gladys : https://www.youtube.com/watch?v=Go2ERXdH3gg&list=PLuyMGpc2xoZsA1I3FZja4zWzV-m3GZmfA
d’ailleurs j’ai les même cam pourries en stock.

Salut !

Je viens de relancer un test, sans succès…

Opérations faites : installation, création de compte, activation de l’intégration frigate et erreur : L’installation de Frigate a échoué.

Le log de Gladys :

2026-07-16T20:42:27+0200 <info> detectHardware.js:78 (FrigateManager.detectHardware) Frigate: no compatible render node found, video decoding on CPU
2026-07-16T20:42:27+0200 <info> allocatePorts.js:33 (FrigateManager.allocatePorts) Frigate: allocated port 1885 for MQTT broker
2026-07-16T20:42:27+0200 <info> allocatePorts.js:33 (FrigateManager.allocatePorts) Frigate: allocated port 8971 for Frigate UI
2026-07-16T20:42:27+0200 <info> allocatePorts.js:33 (FrigateManager.allocatePorts) Frigate: allocated port 5000 for Frigate API
2026-07-16T20:42:27+0200 <info> allocatePorts.js:33 (FrigateManager.allocatePorts) Frigate: allocated port 8554 for Frigate RTSP restream
2026-07-16T20:42:27+0200 <info> allocateContainerNames.js:54 (FrigateManager.allocateContainerNames) Frigate: allocated container name gladys-frigate                                                              -mqtt for the MQTT broker
2026-07-16T20:42:27+0200 <info> allocateContainerNames.js:63 (FrigateManager.allocateContainerNames) Frigate: allocated container name gladys-frigate                                                              -server for Frigate
2026-07-16T20:42:27+0200 <info> checkForContainerUpdates.js:14 (FrigateManager.checkForContainerUpdates) Checking for current installed versions and                                                               required updates...
2026-07-16T20:42:27+0200 <info> checkForContainerUpdates.js:18 (FrigateManager.checkForContainerUpdates) Frigate MQTT container: update #1 of the con                                                              tainer required...
2026-07-16T20:42:27+0200 <info> checkForContainerUpdates.js:32 (FrigateManager.checkForContainerUpdates) Frigate MQTT container: update #1 of the con                                                              tainer done
2026-07-16T20:42:27+0200 <info> checkForContainerUpdates.js:37 (FrigateManager.checkForContainerUpdates) Frigate container: update #1 of the containe                                                              r required...
2026-07-16T20:42:27+0200 <info> checkForContainerUpdates.js:51 (FrigateManager.checkForContainerUpdates) Frigate container: update #1 of the containe                                                              r done
2026-07-16T20:42:27+0200 <info> installMqttContainer.js:26 (FrigateManager.installMqttContainer) Frigate MQTT broker is being installed as Docker con                                                              tainer...
2026-07-16T20:42:27+0200 <info> installMqttContainer.js:27 (FrigateManager.installMqttContainer) Pulling eclipse-mosquitto:2.0.15 image...
2026-07-16T20:42:27+0200 <info> installMqttContainer.js:31 (FrigateManager.installMqttContainer) Preparing Frigate broker environment...
2026-07-16T20:42:27+0200 <info> installMqttContainer.js:40 (FrigateManager.installMqttContainer) Writing Mosquitto config file in /var/lib/gladysassi                                                              stantfrigate/frigate/mqtt/mosquitto.conf
2026-07-16T20:42:28+0200 <info> installMqttContainer.js:57 (FrigateManager.installMqttContainer) Creating container with data in "/var/lib/gladysassi                                                              stant" on host...
2026-07-16T20:42:28+0200 <info> installMqttContainer.js:70 (FrigateManager.installMqttContainer) Frigate MQTT broker is restarting...
2026-07-16T20:42:33+0200 <info> installMqttContainer.js:78 (FrigateManager.installMqttContainer) Creating user/pass...
2026-07-16T20:42:33+0200 <error> installMqttContainer.js:97 (FrigateManager.installMqttContainer) Frigate MQTT broker container failed to start: Erro                                                              r: (HTTP code 409) container stopped/paused - Container 097cd7cedd297728a2687b09135c89e59e7f7938854f7b31914d19e6174eb21b is restarting, wait until th                                                              e container is running
    at /src/server/node_modules/docker-modem/lib/modem.js:336:17
    at getCause (/src/server/node_modules/docker-modem/lib/modem.js:366:7)
    at Modem.buildPayload (/src/server/node_modules/docker-modem/lib/modem.js:335:5)
    at IncomingMessage.<anonymous> (/src/server/node_modules/docker-modem/lib/modem.js:303:16)
    at IncomingMessage.emit (node:events:531:35)
    at endReadableNT (node:internal/streams/readable:1698:12)
    at processTicksAndRejections (node:internal/process/task_queues:89:21) {
  reason: 'container stopped/paused',
  statusCode: 409,
  json: {
    message: 'Container 097cd7cedd297728a2687b09135c89e59e7f7938854f7b31914d19e6174eb21b is restarting, wait until the container is running'
  }
}
2026-07-16T20:42:33+0200 <warn> errorMiddleware.js:68 (errorMiddleware) Error: (HTTP code 409) container stopped/paused - Container 097cd7cedd297728a                                                              2687b09135c89e59e7f7938854f7b31914d19e6174eb21b is restarting, wait until the container is running
    at /src/server/node_modules/docker-modem/lib/modem.js:336:17
    at getCause (/src/server/node_modules/docker-modem/lib/modem.js:366:7)
    at Modem.buildPayload (/src/server/node_modules/docker-modem/lib/modem.js:335:5)
    at IncomingMessage.<anonymous> (/src/server/node_modules/docker-modem/lib/modem.js:303:16)
    at IncomingMessage.emit (node:events:531:35)
    at endReadableNT (node:internal/streams/readable:1698:12)
    at processTicksAndRejections (node:internal/process/task_queues:89:21) {
  reason: 'container stopped/paused',
  statusCode: 409,
  json: {
    message: 'Container 097cd7cedd297728a2687b09135c89e59e7f7938854f7b31914d19e6174eb21b is restarting, wait until the container is running'
  }
}

Et ce que je suspecte être la raison, le log du service mqtt :

1784227505: Error: Unable to open config file /mosquitto/config/mosquitto.conf.

Car le fichier .conf est dans /mosquitto/mosquitto.conf… En voici le contenu :

sudo nano /var/lib/gladysassistantfrigate/mosquitto/mosquitto.conf

allow_anonymous false
connection_messages false
password_file /mosquitto/config/mosquitto.passwd
listener 1883

et pareil, le mosquitto.passwd n’est pas dans un dossier config…

Et le mystère est toujours entier, pas de fichier de DB :distorted_face:

Salut @GBoulvin,

Tu ne te serais pas planter ici :


En jaune, c’est le chemin dans le container qu’il faut … donc normalement /var/lib/gladysassistant/gladys-production.db

chez moi :

docker run -d \
  --log-opt max-size=10m \
  --restart=no \
  --privileged \
  --network=host \
  --name frigate-test-externe \
  -e NODE_ENV=production \
  -e SERVER_PORT=81 \
  -e TZ=Europe/Paris \
  -e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production-test.db \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /home/pi/Gladys-test:/var/lib/gladysassistant \
  -v /dev:/dev \
  terdious/gladys:Frigate-test-externe

Ahhhhh, si c’est le chemin dans le container, alors, en effet, c’est pas juste !

Tout de suite, ça va mieux ! :rofl:

Voilà voilà, j’ai réussi à passer la myfox en trendnet (mais pas à 100% car il reste un morceau de myfox) et je peux avoir des analyses avec frigate.
Par contre je n’ai pas un flux 100% opérationnel mais ça fonctionne sur la détection.

J’ai néanmoins une question sur les infos du dashboard : oin doti avoir quoi dans image :


Par contre il m’a détecté un chat et une voiture dans la maison alors que je n’ai ni l’un ni l’autre.

:grimacing:

@Terdious, je suis en train de préparer une integration externe TAPO pour les caméras et Claude à trouvé comment décoder le flus propriétaire pour lire la video sur ma caméra à batterie. Ci dessous son explication:

Le protocole vidéo de la C610

Le point de départ

Cette caméra n’expose ni RTSP (554) ni ONVIF (2020) — les deux ports sont fermés. C’est ce qui a fait conclure, à tort, qu’elle bloquait tout accès local. En réalité un seul port est ouvert : le 8800, qui parle un protocole propriétaire TP-Link, celui-là même qu’utilise l’application mobile.

Comment ça marche

Le protocole ressemble à HTTP sans en être. Une connexion TCP est ouverte, puis :

  1. Défi d’authentification. Une première requête POST /stream sans identifiants provoque un 401 — qui n’est pas un refus mais le défi lui-même :

WWW-Authenticate: Digest realm=« TP-Link IP-Camera »,
algorithm=« MD5 », encrypt_type=« 3 », nonce=« … »

Le encrypt_type=« 3 » est déterminant : il signifie que le mot de passe doit être haché en SHA256 avant le digest (qui, lui, reste en MD5). C’est le mot de passe du compte cloud TP-Link qui sert ici, pas un compte caméra.

  1. Échange de clés. Une fois authentifié, la caméra renvoie un en-tête Key-Exchange contenant un nonce. On en dérive une clé et un IV AES-128-CBC par une recette imposée par le firmware :

clé = MD5(nonce + « : » + SHA256(motdepasse))
IV = MD5(username + « : » + nonce)

  1. Le flux. On demande le flux, et la caméra envoie un corps multipart sans fin, découpé par une frontière. Chaque partie contient du MPEG-TS chiffré en AES. Il faut déchiffrer, puis réaligner les paquets de 188 octets — une frontière peut tomber au milieu d’un paquet.

Un détail vital : la caméra cesse d’émettre si le client n’acquitte pas régulièrement les paquets reçus.

Super !! Je regarderais pour reprendre ça pour frigate du coup !!

Merci @Will_71 !!

Après pour pas trop dégradé l’état de la batterie, il faut pas lire le flux video en permanence sinon l’autonomie tombe vite.
Pour l’instant pour l’intégration je fait que des snapshot pour avoir une image toute les minutes. En un matin j’ai perdu que 7% avec un temps couvert. A voir sur le long terme si il faut pas que j’augmente le delai entre chaque image

Ah oui oui, c’est ce que je disais précédemment !! en 5h, batterie à plat chez moi. Pour utiliser le flux comme ça il faut absolument prévenir que la caméra doit etre branchée au secteur comme je l’ai fait !! (voir une condition d’un % batterie supérieur à 50% !!)

Du coup, je peux même retrouver le % batterie et l’info de détection de mouvement

Il m’a sorti aussi un bouton, mais je ne sais pas ce que c’est