Aller au contenu principal

Intégration domotique Foscam, gratuite et open source

Intégration Foscam pour Gladys Assistant

Caméras IP Foscam de votre réseau : images, alarmes de mouvement, PTZ et positions.

Cette intégration relie Gladys à vos caméras IP Foscam, directement sur votre réseau local : images des caméras, alarmes de mouvement / personne / son, détection de mouvement activée ou non, vision nocturne et, pour les modèles motorisés, orientation et positions enregistrées.

Elle parle à chaque caméra via son API HTTP intégrée (la « CGI » Foscam). Pas de cloud Foscam, pas de compte Foscam, pas de connexion internet : le badge de transport de chaque caméra indique local.

Caméras compatibles​

Les caméras Foscam HD, qui partagent toutes la même API : FI98xx et FI99xx, R2 / R4 / R5, C1 / C2 / C5, G2 / G4, SD2 / SD4, X1 / X2 / X5 et la plupart des modèles intérieurs et extérieurs actuels.

Non compatibles :

  • les anciens modèles MJPEG (FI8xxx, port 80) : leur API est différente ;
  • les modèles qui ne fonctionnent qu'avec l'application et le cloud Foscam (certaines caméras sur batterie) : ils ne répondent pas sur le réseau local.

En cas de doute, le bouton Tester la connexion vous dit en quelques secondes si une caméra répond.

Avant de commencer​

  1. Donnez une adresse IP fixe à chaque caméra, dans votre box (bail DHCP réservé) ou dans la caméra (Paramètres → Réseau → Configuration IP). L'intégration identifie chaque caméra par son adresse MAC : une nouvelle adresse ne fait pas perdre la caméra, mais il faut la ressaisir dans la configuration.
  2. Notez le port HTTP de la caméra : Paramètres → Réseau → Port, le port HTTP. Il vaut 88 d'origine.
  3. Créez un utilisateur dédié sur chaque caméra (Paramètres → Système → Gestion des comptes), avec le même nom et le même mot de passe sur toutes les caméras si possible :
    • rôle administrateur si vous voulez activer ou couper la détection de mouvement et changer la vision nocturne depuis Gladys ;
    • rôle opérateur sinon (images, alarmes, PTZ).
  4. Réglez la détection dans la caméra : Paramètres → Alarme → Détection de mouvement (et Détection sonore, Détection humaine sur les modèles qui l'ont). C'est la caméra qui décide de ce qu'est une détection — zones, sensibilité, planning ; l'intégration lit ses alarmes.

Configuration​

ChampQuoi y mettre
CamérasL'adresse de chaque caméra, voir ci-dessous
Nom d'utilisateurL'utilisateur des caméras (admin par défaut)
Mot de passeSon mot de passe
Rafraîchissement de l'image (s)Secondes entre deux images envoyées à Gladys, 60 par défaut, 5 minimum. 0 n'en envoie aucune seul
Lecture des alarmes (s)Secondes entre deux lectures des alarmes de la caméra, 2 par défaut
Pas PTZ (ms)Durée d'un mouvement avant que l'intégration ne l'arrête, 800 par défaut, 5000 au plus

La liste des caméras​

Saisissez les adresses IP, séparées par des virgules (ou des points-virgules, ou une par ligne) :

192.168.1.20, 192.168.1.21

Ajoutez :port si le port HTTP n'est pas 88, et Nom= devant pour choisir le nom de la caméra dans Gladys (sinon, c'est le nom enregistré dans la caméra) :

Entrée=192.168.1.20, Jardin=192.168.1.21:8080

Une caméra qui a besoin de son propre utilisateur ou mot de passe, ou dont il faut forcer les capacités, se décrit dans une liste JSON (tout le champ est alors cette liste) :

[
{ "host": "192.168.1.20", "name": "Entrée" },
{ "host": "192.168.1.22", "port": 88, "name": "Garage", "username": "gladys", "password": "…" },
{ "host": "192.168.1.23", "name": "Salon", "ptz": true, "zoom": true }
]
CléSignification
hostAdresse IP ou nom d'hôte (obligatoire)
portPort HTTP, 88 par défaut
nameNom dans Gladys
usernameUtilisateur de cette caméra, à la place de celui de la configuration
passwordSon mot de passe. Préférez le champ Mot de passe : celui-ci n'est pas masqué dans le formulaire
ptztrue / false pour forcer les commandes d'orientation (détectées sinon)
zoomtrue pour les rares modèles à zoom motorisé : ajoute Zoom avant / arrière aux commandes

Une entrée illisible (faute de frappe dans l'adresse, port hors limites, même caméra deux fois) est ignorée, et Tester la connexion dit laquelle et pourquoi.

Dans Gladys​

Une caméra apparaît dans la Découverte dès qu'elle a répondu une fois. Ses fonctionnalités (nommées en anglais à la création ; vous pouvez les renommer dans Gladys) :

FonctionnalitéCe qu'elle fait
ImageL'image de la caméra, rafraîchie toutes les Rafraîchissement de l'image secondes et dès que Gladys en demande une
Enabled in Gladys (activée)Coupée : Gladys n'affiche plus la caméra, et l'intégration n'envoie plus ses images ni ses détections
Motion (mouvement)1 tant que la caméra signale un mouvement (ou une personne), 0 sinon
Motion detection (détection)La détection de mouvement de la caméra, activée (1) ou non (0). Pilotable depuis Gladys
Night vision (vision nocturne)Les LED infrarouges, allumées ou éteintes. La piloter depuis Gladys les force ; set_night_vision les remet en auto
Move (motorisées)Gauche / droite, haut / bas (et zoom, s'il est déclaré)
Preset (motorisées)Les positions enregistrées dans la caméra, par leur nom

Enabled in Gladys est un interrupteur de confidentialité côté Gladys : la caméra elle-même continue de tourner, d'enregistrer sur sa carte SD et d'envoyer ses propres notifications.

Images​

Gladys accepte des images de 150 Ko au plus. Une photo Foscam est une image du flux principal (souvent 200 à 400 Ko en 1080p) : l'intégration la réduit avant de l'envoyer, en gardant les proportions.

Chaque détection envoie aussi une image fraîche aussitôt : une scène qui envoie l'image de la caméra sur une détection envoie l'image de cette détection.

Caméras motorisées​

L'API Foscam n'a pas de mouvement « d'un pas » : un mouvement dure jusqu'à ce qu'on l'arrête. L'intégration arrête donc chaque mouvement après Pas PTZ millisecondes (5 s au plus), pour qu'un arrêt perdu ne laisse jamais la caméra forcer contre sa butée. Allongez le pas pour un mouvement plus ample.

Les positions sont lues à la découverte de la caméra. Après en avoir ajouté ou renommé une dans la caméra, relancez une recherche dans la Découverte : la liste est mise à jour sans recréer la caméra.

Tester la connexion​

Le bouton Tester la connexion de l'écran de configuration interroge chaque caméra, tout de suite. Pour chacune, vous obtenez le modèle, le firmware et si elle est motorisée — ou la raison exacte pour laquelle elle ne répond pas :

MessageQue faire
rien ne répond à cette adresseVérifiez l'adresse IP et le port HTTP ; la caméra doit être sur le même réseau que Gladys
pas de réponse à tempsLa caméra est éteinte, redémarre, ou son Wi-Fi est trop faible
nom d'utilisateur ou mot de passe incorrectVérifiez-les sur la caméra. Après quelques échecs, la caméra bloque le compte quelques minutes
ce compte n'a pas le droitDonnez à l'utilisateur le rôle administrateur ou opérateur
pas l'API d'une caméra FoscamAutre chose répond sur ce port : vérifiez le port HTTP

Après un mauvais mot de passe, l'intégration cesse d'interroger la caméra pendant cinq minutes : insister ferait bloquer le compte.

Scènes et tableau de bord (Gladys 5.1+)​

Déclencheurs de scène​

  • Détection par une caméra (detection) : une caméra a déclenché une alarme. Filtrez sur la caméra et sur ce qui a été détecté : motion (mouvement), person (personne), sound (son), io (l'entrée alarme de la caméra). La scène lit {{triggerEvent.data.kind}} et {{triggerEvent.data.camera_name}}. Un événement par alarme, jamais un par lecture.
  • Caméra hors ligne ou revenue (camera_connection) : une caméra ne répond plus (trois lectures de suite, ou un mauvais mot de passe), ou répond de nouveau. La scène lit {{triggerEvent.data.state}} (offline / online), {{triggerEvent.data.camera_name}} et {{triggerEvent.data.reason}}.

La fonctionnalité Mouvement alimente aussi le déclencheur standard « état d'un appareil » de Gladys.

Actions de scène​

Chaque action renvoie un résultat que les actions suivantes peuvent tester ; une caméra qui ne peut pas l'exécuter renvoie false au lieu d'arrêter la scène.

ActionChampsRésultat
Prendre une photo (take_snapshot)caméracaptured
Envoyer la caméra à une position (goto_preset)caméra, nom de la positionmoved
Activer ou couper la détection (set_motion_detection)caméra, activéeapplied
Régler la vision nocturne (set_night_vision)caméra, automatique / allumée / éteinteapplied
Redémarrer une caméra (reboot_camera)camérarebooted

take_snapshot suivi de l'action Gladys Envoyer l'image de la caméra envoie une photo prise à cet instant précis. Scènes typiques : activer la détection de toutes les caméras quand la maison est vide, envoyer la caméra sur sa position « porte » quand on sonne.

Widgets​

  • Caméra Foscam : une caméra, choisie dans les réglages du widget : sa dernière image, la tuile mouvement en direct, la connexion, la détection, la vision nocturne, la dernière détection, et des boutons pour rafraîchir l'image et activer ou couper la détection.
  • Caméras Foscam : toutes les caméras d'un coup d'œil (en ligne, hors ligne, en alarme), avec un bouton qui rafraîchit toutes les images.

Sécurité​

  • L'API Foscam reçoit l'utilisateur et le mot de passe dans l'adresse de chaque requête, en HTTP simple : ils traversent votre réseau local en clair. Utilisez un utilisateur dédié, pas le compte principal de la caméra, et gardez les caméras sur un réseau de confiance.
  • N'exposez pas les caméras sur internet (redirection de port, UPnP) : l'intégration n'en a pas besoin. Coupez l'UPnP et le P2P dans la caméra si vous n'utilisez pas l'application Foscam.
  • Gardez le firmware des caméras à jour.
  • Le mot de passe est stocké par Gladys dans un champ secret ; l'intégration ne l'écrit jamais dans ses logs ni dans ses propres fichiers.

Dépannage​

  • La caméra n'apparaît pas dans la Découverte : elle n'a jamais répondu. Lancez Tester la connexion.
  • Motion reste à 0 : la détection de mouvement doit être activée et réglée dans la caméra (zones, planning). La fonctionnalité Motion detection indique si elle est activée.
  • « Motion detection » ne se pilote pas : l'utilisateur doit avoir le rôle administrateur.
  • L'image est en retard : baissez Rafraîchissement de l'image ; Gladys accepte 12 images par minute et par caméra au plus, donc 5 s est le minimum.
  • Logs détaillés : ils sont dans les logs de l'intégration (Gladys, Intégrations, Foscam, logs).

Paramètres de configuration​

Voici les paramètres demandés par Foscam dans son écran de configuration dans Gladys.

ParamètreTypeObligatoireDescription
Pour commencersectionNonL'intégration parle directement à vos caméras Foscam sur votre réseau local, via leur API HTTP (CGI) : pas de cloud Foscam, pas de compte, pas d'internet. Donnez une adresse IP fixe à chaque caméra dans votre box, puis saisissez ces adresses ci-dessous. Créez un utilisateur dédié sur chaque caméra (rôle opérateur) plutôt que d'utiliser le compte admin.
CamérasstringOuiAdresses IP de vos caméras, séparées par des virgules. Ajoutez :port s'il ne vaut pas 88, et Nom= devant pour nommer une caméra, par ex. Entrée=192.168.1.20, Jardin=192.168.1.21:8080. Un tableau JSON est aussi accepté, pour une caméra avec ses propres identifiants (voir la documentation).
Nom d'utilisateurstringOuiUtilisateur des caméras (le même sur toutes, sauf s'il est précisé par caméra dans une liste JSON).
Mot de passesecretNonMot de passe de cet utilisateur. Attention : après quelques mauvais mots de passe, une caméra Foscam bloque le compte un moment.
Rafraîchissement de l'image (s)numberNonSecondes entre deux images envoyées à Gladys (5 minimum). 0 n'en envoie aucune : Gladys demande alors une image seulement quand vous ouvrez la caméra.
Lecture des alarmes (s)numberNonSecondes entre deux lectures des alarmes de la caméra (mouvement, personne, son). 2 suffit à toutes les voir.
Pas PTZ (ms)numberNonCaméras motorisées : durée d'un mouvement avant que l'intégration ne l'arrête, en millisecondes (5000 au plus).

Comment installer Foscam dans Gladys​

  1. Dans Gladys, ouvrez Intégrations : Foscam 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/prohand/gladys-foscam:0.0.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/prohand/gladys-foscam.

Foscam 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​

Foscam 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 prohand, 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 🙂