La vidéo-surveillance avec la domotique

Rédaction le 08/12/2018
Mise à jour en Mars 2019 et Septembre 2020

Dans Jeedom et dans MotionEye !

Cet article va être divisé en trois parties :

  • une première pour vous expliquer mon approche de la vidéo-surveillance car il en existe plusieurs ;
  • une seconde pour l’utilisation de MotionEye, applicatif que vous avez installé dans votre machine virtuelle dédiée ;
  • une troisième pour son intégration dans Jeedom, bein oui !

Pré-requis :

Je vous rappelle que vous pouvez ajouter les flux de caméras sur votre bureau Android par l’application Domowidget. Par contre, en gros, faut rester scotché devant… ce qui ne présente aucun intérêt pour moi. L’intérêt est d’être notifié sur une détection de mouvement fiable et intelligente. C’est donc l’objet de cet article !

Ma philosophie de la vidéo-surveillance

Chacun la sienne ! Personnellement la vidéo-surveillance doit avoir ces contraintes de mise en place :

  • pas d’enregistrement continu ;
  • qu’il soit privé ou non – sur votre serveur ;
  • pas de caméra intérieure activée sauf en cas d’intrusion ;
  • une détection de mouvement continue mais uniquement active (notifications) quand nous ne sommes pas là ;
  • mais elle reste active – sans être notifié tout le temps – si nous sommes chez nous pour avoir la capacité en cas de mauvaise surprise d’avoir une trace ;
  • un enregistrement en cas d’intrusion ;
  • fiable – trop de notifications inutiles conduisent à une absence de véritable prise en compte par les utilisateurs de la maison – Pierre & le loup …
  • facile à prendre en main – Jeedom impose le chargement d’un design ou d’une page Web ; MotionEye en un clic sur mon téléphone portable.

D’autres solutions existent mais vous connaissez mon cahier des charges :

  • enregistrement continu ;
  • envoi sur cloud Google, Amazon ;
  • autonomie de caméras …

MotionEye – rapide, simple !

Nous avons mis en place notre machine virtuelle MotionEye. Avant d’en finir avec l’intégration dans Jeedom, j’ai fait le choix d’accéder à l’interface de MotionEye avec un applicatif simple un peu comme Aprox pour Proxmox.

Pour cela, facile. On installe par le Playstore Google sur son téléphone Android, l’applicatif suivant : motionEye app – Home Surveillance. Attention, il y a plusieurs applications sur le market qui lui ressemblent.

L’application MotionEye app en lien avec notre VM MotionEye

Petit rappel ou à vous d’adapter ! Si vous souhaitez accéder à MotionEye depuis l’extérieur, 3 cas se présentent à vous :

Personnellement, ce sera VPN. Donc, en local, je me connecte directement par l’application MotionEye. A distance, j’active déjà mon VPN puis je lance l’application.

Piqure de rappel sinon l’article à relire !

Installez votre application, ouvrez-la. Cliquez sur le bouton + pour ajouter votre configuration MotionEye.

Vous êtes connectés en Wifi sur votre réseau local donc entrez les paramètres suivants :

  • l’IP de la machine virtuelle MotionEye ;
  • le port par défaut 8765 ;
  • son petit “nom”.
Configuration de votre serveur MotionEye dans l’application

Validez, puis connectez-vous.

Please wait !

Entrez votre login / mot de passe comme dans l’interface WEB de MotionEye.

En cliquant sur vos caméras, vous allez retrouver la même interface que dans votre navigateur WEB : relecture, prise de photos, paramétrage etc.

Voilà, vous avez accès à vos caméras facilement en local ou à l’extérieur !

L’intégration dans Jeedom

Concernant JPI, je vous recommande si vous avez des tablettes à l’intérieur de piloter le streaming de vos caméras par Jeedom et JPI directement. Plus facile par scénario. Relisez l’article sur JPI, tout est expliqué dedans. Même l’ajout des caméras à MotionEye. Le flux est dispo dans le plugin Caméras de Jeedom et/ou dans MotionEye.

Voilà, vous avez MotionEye configuré et fonctionnel ainsi que la détection de mouvement. Mais ce serait super de recevoir cela en utilisant Jeedom. Non ?

C’est comme ça que tu vois que la police vient faire des rondes en plein milieu de la nuit !

Vous avez préalablement :

  • installé un plugin de notifcation comme Telegram ;
  • installé un plugin Cameras pour pouvoir prendre une photographie par vos caméras et elles sont configurées.

Créez un interrupteur virtuel par caméra pour remonter la détection de mouvement dans Jeedom :

  • Plugin Virtuel / Nouveau ;
  • 1 information Mouvement ;
  • 2 commandes ON/OFF où vous reportez le passage à 1 ou 0 de votre information Mouvement.

Pour les débutants, il s’agit d’un état d’interrupteur (info) ; 2 actions à votre interrupteur binaire (ON=1 ; OFF= 0).

Une information Motion_Camera_Nom de type binaire ; Deux actions Motion & Off pour mettre à VRAI (1) ou FAUX (0) l’état de la détection de votre caméra – à faire autant de triplets que de caméras !

Relevez le numéro à gauche (ici 9939/9940 etc) de votre ID pour ON/OFF (pas l’information).

Relevez votre API Jeedom.

Construisez la commande suivante (dans le cas d’un sous-domaine / domaine) :

https://sousdomaine.domaine.ovh/core/api/jeeApi.php?apikey=APIJEEDOM&type=cmd&id=ID

puis l’action curl “cettecommande”

Avec cette commande vous pouvez “allumer” / “éteindre” votre interrupteur

Vous pouvez aussi récupérer cette commande en cliquant sur l’engrenage de votre interrupteur ON ou OFF en cliquant sur URL dans URL directe :

Obtention de l’URL pour piloter votre interrupteur depuis l’extérieur par l’API de Jeedom

Rendez-vous dans l’interface MotionEye, section Motion Notifications et entrez la commande correspondante à votre interrupteur :

  • ON dans Run A command ;
  • OFF dans Run An End Command.
Envoi de la commande à Jeedom pour la détection de mouvement

A cet instant, vous pouvez être notifié simplement dès qu’il y a une détection de mouvement. Personnellement, j’ai créé :

  • un mode pré-alarme – un interrupteur ON/OFF ;
  • qui s’active dès qu’une alarme est activée (nuit, été, hiver) ;
  • et j’ai réalisé le scénario suivant qui sur conditions de pré-alarme activée (=1) et sur détection de mouvement (l’info de chaque interrupteur donc chaque caméra) ;
  • envoie une photo prise par la caméra par Telegram à madame et moi-même – si nous sommes tous les deux que moi ; si je suis absent tous les deux (d’où l’importance de bien régler vos paramètres de détection) ;
  • et je n’oublie pas que MotionEye a stocké des prises de vue AVANT et APRES !
Le scénario s’active sur détection de mouvement de mes caméras
Le scénario comme expliqué plus haut de notification de détection de mouvement

Note : j’ai ajouté une condition sur un dépôt de lettre/courrier pour éviter d’avoir une détection quand le facteur passe… voir l’article concerné par la condition suivante :

(lastChangeStateDuration(#[Capteurs et Actionneurs][BAL (virtuel)][Fente]#,1) > 180 OU lastChangeStateDuration(#[Capteurs et Actionneurs][BAL (virtuel)][Porte]#,1) > 180)

J’ai aussi intégré mes caméras dans les designs :

  • je peux les orienter (plugin Camera) ;
  • je peux enregistrer manuellement une ou plusieurs caméras ;
  • je peux piloter tout ce qui est en rapport avec la surveillance :pré-alarme ; infra-rouge ; caméras intérieures ;
  • sur un design téléphone ou tablette.
Design sur téléphone
Design sur tablette

Mise à jour de décembre 2018 :

Si vos caméras possèdent un mode “nuit” avec l’activation/désactivation des IR, cela va générer des faux positifs de détection de mouvement lors du changement mode nuit/jour ou l’inverse.

Pour cela : deux possibilités. Soit vous confiez à MotionEye la capacité de “créer” un mode IR logiciellement mais le résultat n’est pas terrible – forcément ce n’est pas du vrai infrarouge.

Soit vous désactivez ce mode AUTO dans vos caméras ou forcez-le en ON ou OFF.

IR LED Control – AUTO à ON ou OFF

Vous récupérez la commande API pour activer ou non l’infra-rouge. Par exemple sur les Wanscan, voici les 2 commandes ON/OFF nécessaires. Ajoutez-les pour chacune de vos caméras dans le plugin “Caméra”, onglet Commandes de vos caméras respectives.

/cgi-bin/hi3510/param.cgi?cmd=setinfrared&-infraredstat=open&usr=#username#&pwd=#password#
/cgi-bin/hi3510/param.cgi?cmd=setinfrared&-infraredstat=close&usr=#username#&pwd=#password#

Ajout des 2 commandes IR_on / IR_off

Ajoutez un scénario programmé pour minuit – 0 0 * * *. Utilisez les commandes de lever-coucher de soleil (voir l’article sur le mode jour/nuit) dans votre scénario pour programmer tous les jours à 2 heures distinctes le passage IR ON/OFF et OFF/ON.

Petite astuce pour éviter un faux positif le temps du changement dans le cas où la pré-alarme est active :

Pour l’activation des IR (jour vers nuit)
Pour la désactivation des IR (nuit vers jour)

Depuis le passage en 3.3, la fonction A ne fonctionne plus comme avant avec le time_op qui ne fait plus l’opération en temps comme il faut. Un calcul de 5h45 + 30 donnera 5h75… incompréhensible par Jeedom.

J’ai mis en place deux solutions. Pour la fonction “plus tard”, il suffit de faire DANS au lieu de A.

Pour la fonction AVANT, j’utilise un code qui calcule (exemple ici avec 30 minutes avant) et décale l’heure et minute.

Mise à jour Jeedom 3.3

Mise à jour Jeedom 3.3 : dans le cas du IR_ON avec la fonction DANS :

Fonction IR_ON pour Jeedom 3.3

Mise à jour Jeedom 3.3 : dans le cas du IR_OFF avec un petit scénario pour décaler l’heure correctement :

Fonction IR_OFF pour Jeedom 3.3

Voilà, Jeedom vous notifie en cas de détection de mouvement et vous avez le pouvoir de voir vos caméras facilement ! Finalement, pas si compliqué non ?

La conclusion de cet article !

On se retrouve pour un article d’utilisation de Domowidget sur tablette ou téléphone portable ou comment facilement récupérer des informations – capteurs sans design !

Si vous avez aimé cet article, faites le savoir, partagez-le ! Et n’hésitez pas à me supporter 🙂

Merci à vous !

One thought on “La vidéo-surveillance avec la domotique

  1. Bonjour et bravo pour le boulot sur ce site et sur le forum. une vrai source d’inspiration.
    Une petite question. Les caméras de JPI tu les crées aussi dans le plugin caméra? si oui quels paramètres?
    Je n’ai mis que mes 2 caméras JPI dans motion eye. si j’ai bien compris lui se charge de la detection.
    Ensuite avec les virtuels tu passe l’ordre a jeedom d’enregistrer. c’est bien ça?

    1. Bonjour, merci pour ton message.
      Relis, tu ne peux pas faire de détection sur le streaming JPI.
      Uniquement visualiser, c’est pour cela que je passe par motioneye pour voir les flux.
      Comme expliqué sur le forum jeedom, il est impossible de voir des flux MJPEG de mémoire sur le plugin camera.

      1. Oui c’est bien ce que je fais. j’ ai ajouté mon telephone et ma tablette équipés de JPI à motioneye.
        Mais dans tes scénarios je vois que tu lance un enregistrement sur détection de ces dernières par motioneye. Donc j’imagine que tu les as mises au travers de JPI dans le plugin camera. ou alors j’ai mal compris. ce qui est possible aussi 🙂

        1. Non. Ce n’est pas possible. Je l’ai écrit dans l’article. La détection de mouvement par JPI c’est dans l’article de JPI 😊. Là c’est uniquement camera en visu par JPI ou detection visu enregistrement par le plugin camera pour les autres. J’étais persuadé de l’avoir écrit. Je vérifierai.

  2. Très bon article, comme tous les autres.
    Pour l’intégration et la gestion dans le plugin Caméra, tu as fait comment :
    1) Intégration des cameras venant de MotionEyes
    2) Intégration des caméras en RTSP donc en direct ?

    Pour ma part, j’ai tenté l’intégration des caméras en direct avec affichage du flux et pas par image : cela m’a fait planté Jeedom au niveau de la RAM après 30 min d’utilisation à chaque fois. Je pense que ça faisait trop 3 flux en full HD…

    Si jamais on peut passer par Motion en intermédiaire cela va surement m’éviter ce type de plantage.

    1. Bonjour,

      Côté Jeedom, je n’ai aucun souci et pourtant je tourne en flux HD rtsp. C’est tout l’intérêt.
      C’est bien Jeedom qui stocke mes images détectées en haute définition.
      Là où MotionEye se limite en 640×480 ou 320 suivant la taille de la caméra.
      Passer par motioneye pour renvoyer un nouveau flux à Jeedom alourdit inutilement MotionEye alors que là cette VM tourne pourrait tourner à 1 Go sans souci de mémoire.
      J’avais testé Shinobi et Zoneminder, gourmand au possible ! ZM demandait presque 4 à 8 Go !

      Au cas où une copie pour les wanscam :
      https://i.imgur.com/oguqCLE.png

      Pour les Xiafang :
      https://i.imgur.com/0HTbmIx.png

      Le doorbird je passe directement par la caméra ajoutée par le plugin du même nom !

  3. Merci pour l’info, cela doit venir d’autre chose alors.
    De mon côté je suis en mode de capture : flux et toi tu es en snapshot.
    Est-ce que cela ne viendrait pas de là.
    Il faut que je regarde la config de caméra pour mieux gérer cela du coup.

  4. Bonjour
    J’ai installé MotionEye sur un raspberry 2 avec carton sd. J’arrive à voir ma caméra. Par contre, il y a un décallage de temps sur la restitution de la video. un Raspberry 2 est il suffisant ?
    De plus, pour la communcation avec Jeedom l’adresse doit être précédée de wget ou curl ?
    Merci de votre aide

  5. Bonjour,
    merci pour ton site très intéressant…et cet article sur MotionEye qui mérite d’être vraiment plus connu.
    Comme toi avant j’avais ZoneMinder, quelle loudeur…
    Je suis étonné que les Jeedomien ne le se soit pas plus approprié
    Sinon j’avais une approche légèrement différente pour envoyer la détection à Jeedom et j’en avait fait un post
    https://www.jeedom.com/forum/viewtopic.php?f=91&t=31241
    Cdt,

  6. Bonjour ,
    Je débute seulement et j aimerai savoir si il est possible d integrer jeedom a la camera 360 degres bosh .
    J ai acquis la freebox delta que je vais intégrer à jeedom.
    Merci d avance pour votre aide
    Bien cirfiakement

      1. Merci , quelle type de produits utilisez vous .
        En fête j ai besoin d une camera 360 qui me permet de détecter et suivre un individu dans une grande pièce et de pouvoir l integrer a jeedom .
        Bonne fêtes fêtes à vous aussi .

  7. Bonjour,
    Tout d’abord super article.
    J’ai environ deux minutes de décalage entre motioneyes et jeedom en streaming. De ce fait, lorsque que motioneye détecte un mouvement par exemple à 18h00 (donc avec 2 minutes de retard), jeedom lui possède l’heure juste, soit 18h02. Et à 18h02, jeedom envoie une prise de vue sans personne à telegram. Avez-vous une solution?
    Cordialement
    Laurent

    1. Bonsoir,
      Cela ressemble plus à un souci de synchro time ?
      Vous avez bien la même heure sur les VM en ligne de commande ? (commande date)
      Perso, j’ai eu à de nombreuses reprises sur des VM (NAS QNAP) des heures décalées…
      Bonne soirée,
      Benjamin

  8. Bonsoir Benjamin,

    Non je ne pense pas que ce soit un problème de synchro.
    Aussi, pour plus de précision (pardon j’aurai dû le faire d’emblée) je n’utilise pas de VM. J’ai deux raspberry 3B+ l’un avec jeedom et l’autre avec motioneyes. Lors du message précédent j’avais jeedom et motioneyes sur le même raspberry. J’ai ensuite dédié un raspberry pour jeedom et un à motioneyes ce qui m’a réduit le décalage à 10 secondes entre jeedom et motioneyes, et j’ai aussi baissé la qualité de l’image en 800×600. J’ai aussi mis un convertisseur usb/rj45 sur motioneyes, pour augmenter le débit réseau mais toujours 10s. Quand je regarde la vidéo en streaming de la caméra sur motioneyes, il y a deux heures différentes avec 15 secondes de décalage. Comme la vidéo en streaming de jeedom a 5 secondes de retard avec l’heure de motioneyes la plus à jour, ça me réduit à 10s le décalage. Je n’arrive pas à faire mieux. Du coup dans le scénario jeedom j’ai mis 20 snap mais le problème n’est pas complètement corrigé.
    Prochain test, je vais essayer d’installer motioneyes sur le virtualbox de mon ordi. J’ai un nas DS218+ mais il ne permet pas la virtualisation apparemment.
    Une idée?

    Bonne soirée
    Cordialement
    Laurent

    1. Clairement, c’est une des raisons qui font que j’ai vite lâché ces PI trop limitées …
      Avec un htop que te donne les ressources CPU/RAM ? Car là franchement ça ressemble à un problème de débit réseau et de temps réel souhaité… trop limitant.
      J’ai installé plusieurs VM (même sur des NAS en Atom bien limite) pour Jeedom et MotionEye et j’ai bien retenu MotionEye pour sa légèreté ! Justement ZM, Shinobi etc sont bien bien plus gourmands !

  9. Bravo pour ces tutos et le partage d’expérience.
    Perso je viens de eedomus et j’expérimente jeedom v4.
    Difficile donc de refaire tes designs. Il y a peu de retour encore sur le net.
    Je me suis inspiré de ton tuto présence et caméra
    J’espère que tu pourras partager aussi ton tuto alarme qui est un sujet clé en domotique.
    a quoi sert précisément ton on/off Pré-alarme ?
    merci

    1. Merci. Comme je l’explique dans l’article, elle gère la détection de mouvement pour nous envoyer des mouvements extérieurs quand nous ne sommes pas là. A défaut, c’est stocké mais sans notification.

  10. Bonjour, merci pour ce blog fantastique pour toute personne en quête d’informations et d’idées 🙂
    Je suis en projet de construction d’une maison neuve, et j’aurai besoin de conseils pour la vidéo-surveillance.
    – Comment avez-vous connecté les caméras extérieures ? Quelle connectique prévoir à l’emplacement des caméras ?
    Des sorties de fil suffisent ? Prises électriques étanches en hauteur ? Prise Ethernet POE à l’intérieur avec câble traversant le mur ?
    Merci d’avance pour votre retour.

    1. Bonsoir,
      Pour ma part, ayant privilégié un rapport qualité/prix en rénovation et tirant l’électricité dans le toit (notamment pour un second routeur, passage des câbles enceintes par le plafond, VMC etc), j’ai tiré l’électricité.
      J’ai monté chargeur sur une boite de dérivation par une prise et un boitier IP65 (de mémoire) pour chaque alimentation. Les caméras sont livrées avec un connecteur PoE donc pas de besoin de prise à l’extérieur.
      J’ai un switch 8 ports dans le toit qui me distribue plusieurs câbles ethernet (bureau, ampli audio vidéo et les caméras). J’ai testé pendant plus de 6 mois le wifi et j’ai laissé tomber. Le streaming vidéo en HD 720p est nettement meilleur en Ethernet.
      Après sur du neuf, perso, oui PoE et boite de dérivation dans le toit.
      Bon weekend pascal !

  11. Bonsoir et merci pour tous tes articles !
    Une question concernant la configuration de MotionEYE. J’ai suivi ton tuto et tout fonctionnement correctement, j’ai cependant des faux positifs sans arrêt avec un nuage qui passe ou la luminosité qui augmente. J’ai testé beaucoup de paramétrage sans réussi à trouver la solution.

    Merci pour ton aide !

    1. Bonjour,

      Ce n’est pas un petit sujet et en aucun cas avec une baguette magique.
      Il faut prendre le temps de comprendre chaque paramètre et le ? à côté de chaque paramètre est là pour ça.
      Il ne faut pas oublier que le % correspond au nombre de pixels qui bougent par rapport au total. Attention, aussi si un masque est appliqué le % est donc différent puisqu’il n’est que sur le nombre de pixels réellement vu par Motion.

      Prendre le temps de lire et d’exploiter le wiki de Motion (et non celui de MotionEye):
      https://motion-project.github.io/motion_config.html#Configuration_OptionsAlpha
      Chaque paramètre se pilote :
      Exemple le noise level :
      https://motion-project.github.io/motion_config.html#noise_level

  12. Bonjour,

    Que de tutos ultra efficaces!! J’ai une petite question sur le design caméra, les onglets pour regrouper les 3 caméras par orientation, ce n’est pas natif dans le plugin? Un virtuel peut-être?

    Encore bravo

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *