La vidéo-surveillance avec la domotique

Rédaction le 08/12/2018
Mise à jour le 31/03/2019

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

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.

Image
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#

Image
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,

Répondre à Benjamin Annuler la réponse

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