Aller au contenu principal

Intégration domotique MJPEG & snapshot cameras, gratuite et open source

Intégration MJPEG & snapshot cameras pour Gladys Assistant

ESP32-CAM, caméras IP MJPEG et à image fixe de votre réseau dans Gladys, sans RTSP.

Amène dans Gladys les caméras qui parlent simplement HTTP : un ESP32-CAM, une ancienne caméra IP, une webcam servie par motion, motionEye ou mjpg-streamer. Deux types d'adresse fonctionnent : une URL d'image JPEG fixe et un flux MJPEG (multipart/x-mixed-replace). Sans ffmpeg, sans RTSP, rien dans le cloud : tout reste sur votre réseau local.

Pour une caméra RTSP, utilisez plutôt l'intégration caméra RTSP intégrée à Gladys : celle-ci est la voie légère pour les caméras qui n'offrent que HTTP. Sans lien avec aucun fabricant de caméras ; les marques citées ci-dessous servent seulement à identifier des produits compatibles.

Ce que vous obtenez​

SurfaceContenu
AppareilUn appareil caméra par adresse, avec son image dans le widget caméra du tableau de bord
Vue en directUne image fraîche à chaque demande de Gladys (vue en direct, « montre-moi la caméra », l'action « envoyer une image de caméra »)
DéclencheursCaméra hors ligne (3 captures échouées de suite) et Caméra de nouveau en ligne
Bouton des réglagesTester les caméras : une image de chaque caméra, avec son type, sa résolution, sa taille et sa durée, ou l'erreur
Badge de l'appareil« Local » tant que la caméra répond, « Injoignable » une fois hors ligne, un point orange quand ses images doivent être réduites

Installation​

Saisissez les adresses dans Caméras, séparées par des virgules. Chaque adresse peut être suivie d'un nom, après une espace ou un | :

http://192.168.1.50:81/stream Jardin, http://192.168.1.20/cgi-bin/snapshot.cgi|Entrée

Ouvrez ensuite Découverte et ajoutez les caméras. Seules les caméras ajoutées sont lues. Le bouton Tester les caméras vérifie chaque adresse.

Adresses courantes (vérifiez la documentation de votre caméra ; <ip> est son adresse sur votre réseau) :

CaméraImage fixeFlux
ESP32-CAM (croquis « CameraWebServer »)http://<ip>/capturehttp://<ip>:81/stream
mjpg-streamerhttp://<ip>:8080/?action=snapshothttp://<ip>:8080/?action=stream
motionEyehttp://<ip>:8765/picture/1/current/http://<ip>:8081/
motion-http://<ip>:8081/
Beaucoup de caméras IP (Dahua, Amcrest…)http://<ip>/cgi-bin/snapshot.cgi-
Hikvisionhttp://<ip>/ISAPI/Streaming/channels/101/picture-
Axishttp://<ip>/axis-cgi/jpg/image.cgihttp://<ip>/axis-cgi/mjpg/video.cgi
Application Android « IP Webcam »http://<ip>:8080/shot.jpghttp://<ip>:8080/video

Une adresse d'image fixe est le choix le plus léger quand la caméra en propose une. Un ESP32-CAM ne sert son flux qu'à un client à la fois : tant qu'un navigateur regarde :81/stream, Gladys attend ; /capture évite ce problème.

Mots de passe​

  • Saisissez-les dans l'adresse : http://utilisateur:[email protected]/…. Un caractère spécial du mot de passe s'écrit encodé (@ devient %40, une virgule %2C).
  • Ou saisissez seulement le nom d'utilisateur dans l'adresse (http://[email protected]/…) et le mot de passe dans Mot de passe des caméras : il reste masqué dans l'écran de configuration, contrairement à un mot de passe saisi dans l'adresse.
  • Les authentifications Basic et Digest (MD5, SHA-256) sont prises en charge. Le mot de passe n'est jamais envoyé avant que la caméra le demande, jamais en clair à une caméra qui propose Digest, et seulement à cette caméra (jamais à une autre adresse vers laquelle elle redirige, sauf la même caméra en https).
  • Une adresse qui porte un jeton dans sa requête (?user=…&pwd=…) fonctionne aussi : les journaux et les statuts ne montrent jamais d'adresse, seulement le nom et l'hôte de la caméra.
  • Une caméra https avec un certificat auto-signé nécessite Accepter les certificats auto-signés.

Images et rythme​

  • Chaque caméra ajoutée envoie une image à Gladys toutes les 10 secondes par défaut (Rafraîchissement de l'image, 5 secondes au minimum : Gladys accepte 12 images par minute et par caméra ; 0 pour la demande uniquement). La vue en direct et les scènes reçoivent une image fraîche quel que soit ce réglage.
  • Gladys accepte des images de 150 Ko au plus. Une image plus grande est réduite (divisée par deux jusqu'à tenir) dans l'intégration, ce qui coûte du processeur : une telle caméra est alors rafraîchie toutes les 30 secondes au plus, et le statut et le badge de l'appareil le signalent. Choisissez plutôt une résolution plus basse sur la caméra : VGA (640×480) ou SVGA (800×600) avec une qualité JPEG autour de 12 sur un ESP32-CAM.
  • Une image est lue une seule fois à la fois par caméra, quel que soit le demandeur : l'image périodique, la vue en direct et le bouton de test la partagent.
  • Un flux MJPEG n'est jamais regardé en continu : l'intégration prend sa première image, puis ferme la connexion.

Scènes​

  • Caméra hors ligne : une caméra qui envoyait des images a échoué 3 captures de suite. Variables : name, error, failures.
  • Caméra de nouveau en ligne : la même caméra envoie de nouveau des images. Variables : name, offline_minutes.

Les deux ont un filtre Caméra facultatif (vide : toutes les caméras). Ils vont par paires : une caméra déjà en panne au démarrage de l'intégration n'annonce rien, et son retour n'est pas annoncé non plus. Une caméra hors ligne est retentée chaque minute.

Pour envoyer une image dans un message, utilisez l'action « envoyer une image de caméra » de Gladys avec l'une de ces caméras.

Messages de statut et erreurs​

MessageSignification
no image within 10 sLa caméra ne répond pas (adresse, alimentation, un ESP32-CAM occupé par un navigateur)
the camera asks for a user name and passwordAjoutez-les à l'adresse (voir Mots de passe)
user name or password refusedIdentifiants incorrects
not a JPEG image (text/html)L'adresse affiche une page web (page de connexion, accueil de la caméra) : corrigez le chemin
certificate not trustedUne caméra https avec un certificat auto-signé : voir Mots de passe
TLS handshake failedUne ancienne caméra https (TLS 1.0 ou 1.1) : utilisez son adresse http
frame over 4 MB ou too big to downscale hereBaissez la résolution de la caméra

Confidentialité​

Rien ne quitte votre réseau et rien n'est écrit sur le disque : les images vont uniquement à votre Gladys. La configuration garde les adresses ; les appareils caméra ne montrent que l'hôte de chaque caméra.

Paramètres de configuration​

Voici les paramètres demandés par MJPEG & snapshot cameras dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Caméras sans RTSPsectionNonPour les caméras qui parlent simplement HTTP : un ESP32-CAM, une ancienne caméra IP, une webcam derrière motion, motionEye ou mjpg-streamer. Chaque adresse ci-dessous devient une caméra dans Découverte ; son image arrive sur le tableau de bord toutes les quelques secondes et à chaque ouverture de la vue en direct. Les deux types d'adresse fonctionnent : une URL d'image JPEG fixe et un flux MJPEG (la première image est prise, puis la connexion est fermée). Tout reste sur votre réseau local, sans ffmpeg. Pour une caméra RTSP, utilisez plutôt l'intégration caméra RTSP intégrée à Gladys. Sans lien avec aucun fabricant de caméras.
CamérasstringNonAdresses séparées par des virgules, chacune suivie d'un nom facultatif après une espace ou |. Un mot de passe peut figurer dans l'adresse (http://utilisateur:motdepasse@…, Basic ou Digest), ou seulement le nom d'utilisateur, avec le mot de passe dans le champ ci-dessous.
Mot de passe des caméras (facultatif)secretNonUtilisé pour les adresses qui portent un nom d'utilisateur sans mot de passe (http://[email protected]/…) : il reste masqué ici, contrairement à un mot de passe saisi dans l'adresse.
Rafraîchissement de l'image (secondes)numberNonFréquence d'envoi de l'image de chaque caméra à Gladys : 5 au minimum (Gladys accepte 12 images par minute et par caméra), 0 pour la demande uniquement (la vue en direct et les scènes reçoivent quand même une image fraîche).
Accepter les certificats auto-signés (caméras https de votre réseau)booleanNon

Comment installer MJPEG & snapshot cameras dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : MJPEG & snapshot cameras apparaît dans le catalogue, aux côtés des intégrations natives, avec un badge communautaire.
  2. Cliquez sur Installer. Gladys télécharge l'image Docker (ghcr.io/lm1lc3n7/gladys-mjpeg-camera:0.1.1), la démarre dans un bac à sable isolé du cœur, et génère l'interface de l'intégration (appareils, découverte et configuration).
  3. Ouvrez l'écran Configuration de l'intégration, remplissez les paramètres, puis enregistrez.
  4. Vous pouvez aussi l'installer directement depuis l'URL de son dépôt : https://github.com/LM1LC3N7/gladys-mjpeg-camera.

MJPEG & snapshot cameras nécessite Gladys >=5.1.0. Le catalogue dans Gladys se rafraîchit toutes les heures : une nouvelle version est donc disponible au plus tard une heure après sa sortie.

Vous n'utilisez pas encore Gladys ? C'est gratuit et open source : suivez le guide d'installation pour démarrer.

À propos des intégrations externes​

MJPEG & snapshot cameras est une intégration externe : une intégration communautaire empaquetée dans un conteneur Docker et publiée sur GitHub, que Gladys installe en un clic et exécute dans un bac à sable isolé de son cœur. Elle est publiée et maintenue par LM1LC3N7, et non par l'équipe cœur de Gladys.

Inscrivez-vous à la newsletter Gladys Assistant

Quelques emails par mois sur les nouveautés et l'actualité du projet. Envoyés par Pierre-Gilles Leymarie, le fondateur du projet. Désinscription possible à tout moment 🙂