VideoSurveillance avec Motion et SMS

Configuration du programme Motion sous LinuxMint avec gestion de notification SMS si intrusion.

Caméras de surveillance sur la voie publique à Cognac (France) ; Auteur de la photo : Pierre-Alain Dorange
Source de l’image : https://fr.wikipedia.org ; Auteur de la photo : Pierre-Alain Dorange

Dans le domaine de la VidéoSurveillance, j’ai déjà installé une Caméra IP de la marque Heden depuis Ubuntu (voir caméra IP HEDEN sous Linux) puis “monté” un serveur web de VidéoSurveillance avec ZoneMinder sous Linux (Debian) afin de surveiller mon domicile via une WebCam mais aussi via la camera IP Heden (récupération du flux).

En cherchant tout autre chose, je suis tombé sur une option de mon forfait Free Mobile (Forfait à 2 euros) vraiment intéressante : la possibilité de programmer des notifications SMS gratuites sur son propre téléphone via une action “Web”.

(il suffit d’activer l’option gratuite sur l’interface utilisateur)

Je n’y connais rien en codage (juste un peu de HTML et de CSS) et je viens donc de passer “quelques” heures à tâtonner … mais … J’ai réussi !
Ouf … (ce n’est pas avec ça que ma modestie légendaire va progresser … Enfin, bon …)

Je travaille, pour ce test, sur un PC portable (EasyNote-TJ65) de récupération (Merci Lise T) qui tourne sous LinuxMint 17.1, mais ça sera forcément pareil pour Ubuntu et Debian puisque LinuxMint est basé sur Ubuntu lui même basé sur Debian.

Le test de base est réalisé via sa WebCam intégrée.

Edit du 26/04/2015 au soir :
Motion gère le flux de la Caméra IP et la notification SMS y est rattachée.
Voir en fin de page

Edit du 29/04/2015 :
installation testée avec succès sur un vieux portable tournant sous Debian Wheezy (avec connection caméra IP Heden).
Idem sur mon MediaCenter de fabrication maison tournant sous LinuxMint 17.1 et tournant dans le salon.

Edit important du 04/05/2015:
J’ai modifié l’installation pour gérer 1 WebCam ET 1 Caméra IP de manière indépendante. Chaque caméra a SES paramètres et enregistre son flux et ses images dans 1 dossier différent.
Je ferai une page spécifique ultérieurement.
OK ; c’est fait –> Tutorial réalisé le 05/05/2015 :
Voici la procédure d’installation de Motion avec plusieurs caméras et gestion des notifications SMS sous LinuxMint (ou Ubuntu ou Debian)

Voici les différentes étapes (pour le système de base) :

– Installer le programme motion :

sudo apt-get install motion

Créer le dossier de stockage des images

mkdir /home/alban/motion
chmod 755 /home/alban/motion

– Édition du fichier de configuration :

sudo chmod 555 /etc/motion/motion.conf
sudo gedit /etc/motion/motion.conf

1 – Pour des raisons de simplicité, modification de la ligne 14 :

process_id_file /home/alban/motion/motion.pid

2 – Personnellement, sur ce PC, j’ai passé la prise de photos en 640 par 480 pixels en modifiant les lignes 70 et 73 :

width 640

et

height 480

3 – Puis, j’ai passé le délai de remise à zéro à 15 secondes (le temps passé sans détection de mouvement) à la place de 60. C’est ligne 207

gap 15

4 – Pour des raisons perso, j’ai modifié le format date en jj/mm/aaaa en changeant la ligne la ligne 319 en

text_right %d-%m-%Y\n%T-%q

5 – Pour retrouver mes photos aisément, modification du lieu de stockage en changeant la ligne 359 en

target_dir /home/alban/motion

6 – Afin de gérer les notifications SMS, j’ai inséré un lien vers un script qui s’exécutera au moment du démarrage d’un événement (d’où le Gab baissé à 15 auparavant). Insertion d’une ligne à la ligne 514

on_event_start /etc/motion/notification_SMS.sh

Je crois que c’est tout ce que j’ai modifié … Mais bon … Je tripatouille le fichier de configuration depuis ce matin, alors que j’ai une femme et 4 enfants ce fut donc un peu décousu. En plus, cette page a été écrite entre 01h et 02h du matin … Alors …

– Ensuite, création du script “notification_SMS.sh”

sudo gedit /etc/motion/notification_SMS.sh

Voici le contenu de mon fichier :

#!/bin/sh

# Script pour envoyer une notification SMS lors d'une détection de mouvement par 'motion'
#
Ajouter "on_event_start /etc/motion/notification_SMS.sh" à la ligne 514
du fichier de configuration de motion qui doit être ici :
/etc/motion.motion.conf

wget --no-check-certificate
"https://smsapi.free-mobile.fr/sendmsg?user=XXXXXXXX&pass=XXXXXXXXXXXXXX&msg=Attention%20Alarme%20via%20Motion"

A vous de changer les informations de “user”, de “pass” et du message.

Afin de ne pas avoir d’erreur d’exécution, on se refait un petit

sudo chmod 555 /etc/motion/motion.conf

Puis un

sudo chmod 555 /etc/motion/notification_SMS.sh

Normalement, si vous lancez Motion en tapant simplement, dans un terminal, son joli nom

motion

Vous devriez voir quelque chose de la sorte :

alban@alban-EasyNote-TJ65 ~ $ motion
[0] Processing thread 0 - config file /etc/motion/motion.conf
[0] Motion 3.2.12 Started
[0] ffmpeg LIBAVCODEC_BUILD 3547904 LIBAVFORMAT_BUILD 3544067
[0] Thread 1 is from /etc/motion/motion.conf
[1] Thread 1 started
[0] motion-httpd/3.2.12 running, accepting connections
[0] motion-httpd: waiting for data on port TCP 8080
[1] cap.driver: "uvcvideo"
[1] cap.card: "CNF7017"
[1] cap.bus_info: "usb-0000:00:1d.7-5"
[1] cap.capabilities=0x84000001
[1] - VIDEO_CAPTURE
[1] - STREAMING
[1] Config palette index 8 (YU12) doesn't work.
[1] Supported palettes:
[1] 0: YUYV (YUV 4:2:2 (YUYV))
[1] Selected palette YUYV
[1] Test palette YUYV (640x480)
[1] Using palette YUYV (640x480) bytesperlines 1280 sizeimage 614400 colorspace 00000008
[1] found control 0x00980900, "Brightness", range -64,64
[1] "Brightness", default 0, current 0
[1] found control 0x00980901, "Contrast", range 0,95
[1] "Contrast", default 0, current 0
[1] found control 0x00980902, "Saturation", range 0,128
[1] "Saturation", default 75, current 75
[1] found control 0x00980903, "Hue", range -40,40
[1] "Hue", default 4, current 4
[1] found control 0x0098090e, "White Balance Red Component", range 1,500
[1] "White Balance Red Component", default 100, current 100
[1] found control 0x0098090f, "White Balance Blue Component", range 1,500
[1] "White Balance Blue Component", default 100, current 100
[1] found control 0x00980910, "Gamma", range 72,500
[1] "Gamma", default 120, current 120
[1] mmap information:
[1] frames=4
[1] 0 length=614400
[1] 1 length=614400
[1] 2 length=614400
[1] 3 length=614400
[1] Using V4L2
[1] Resizing pre_capture buffer to 1 items
[1] Started stream webcam server in port 8081

En lançant FireFox (ou autre) avec cette adresse “https://localhost:8081“, vous devez voir l’image en direct.

En cas de détection de mouvement, j’ai ceci à l’écran :

[1] File of type 8 saved to: /home/alban/motion/01-20150426012813.swf
[1] File of type 1 saved to: /home/alban/motion/01-20150426012813-01.jpg
--2015-04-26 01:28:13-- https://smsapi.free-mobile.fr/sendmsg?user=XXXXXXXX&pass=XXXXXXXXXXXXXX&msg=Attention%20Alarme%20via%20Motion
Résolution de smsapi.free-mobile.fr (smsapi.free-mobile.fr)... 212.27.40.200
Connexion vers smsapi.free-mobile.fr (smsapi.free-mobile.fr)|212.27.40.200|:443... connecté.
AVERTISSEMENT : impossible de vérifier l'attribut smsapi.free-mobile.fr du certificat, émis par «/C=US/O=GeoTrust, Inc./CN=RapidSSL CA» :
Impossible de vérifier localement le certificat autorité de l'émetteur.
requête HTTP transmise, en attente de la réponse... 200 OK
Taille : non spécifié
Enregistre : «sendmsg?user=XXXXXXXX&pass=XXXXXXXXXXXXXX&msg=Attention%20Alarme%20via%20Motion.7»

[ <=> ] 0 --.-K/s ds 0s

2015-04-26 01:28:14 (0,00 B/s) - «sendmsg?user=XXXXXXXX&pass=XXXXXXXXXXXXXX&msg=Attention%20Alarme%20via%20Motion.7» enregistré [0]

Et là, le téléphone sonne (ou vibre compte tenu de l’heure inappropriée aux tests 😉 évidemment) avec un joli SMS disant “Attention Alarme via Motion”.

Pour couper Motion, ouvrez un autre Terminal et taper :

pkill motion

En conclusion :

Ce petit truc basique peut être très pratique si, comme moi, vous n’avez pas de forfait internet illimité mais le forfait à 2 Euros : Vous passez en mode “connexion de données” juste pour vérifier pourquoi il y a une alarme SMS.

Bon, OK, pour le moment, ce n’est pas très utile puisque je n’ai pas configuré le transfert des images par FTP sur serveur distant ni mis l’accès externe au serveur Web de motion … Mais … ça démontre une certaine utilité et surtout une vraie possibilité puisque ça marche (enfin, ça fonctionne).

Et si un mec comme moi y arrive, vous pouvez le faire !

Au pire, cette page me servira de mémoire pour refaire la même chose de manière beaucoup plus rapide car je testerais bien ça sur de vieilles machines (de récupération) pour prêter/donner des systèmes de videosurveillance gratuits à des ami(e)s.

Le futur ?

Voir si je peux utiliser ce genre de truc pour recevoir un SMS via ma caméra IP ou peut-être plutôt “piloter” la CamIP depuis motion.

Pour tout retour et/ou améliorations, vous pouvez passer par le Formulaire de contact.

Bon … Ben … Bonne nuit.

Moi, j’y vais, j’ai un footing dans quelques heures !!!

Edit du 26/04/2015 au soir :

Motion gère le flux de la Caméra IP et la notification SMS y est rattachée.

Il suffit de rajouter une ligne après la ligne 86 :

netcam_url https://192.168.0.54:8080/videostream.cgi?user=XxXxXxXxXxX&pwd=XxXxXxXx

Et de modifier l’adresse IP de votre caméra ainsi que les champs “user” et “pass” (je rappelle que j’ai une Caméra IP Heden mais ça doit être pareil avec une Foscam).

Sur ce, bonne nuit ! –> après 40 ans, il faut éviter les nuits courtes à la chaine 😉

 

A propos de Alban

Papa de 4 enfants étant lui même resté un enfant. Tombé par obligation dans l'informatique à 22 ans pour le boulot et s'étant "un peu" pris au jeu ... Pas un génie de l'informatique (loin de là), mais intéressé et carrément orienté Linux et entraide.

7 commentaires à propos de “VideoSurveillance avec Motion et SMS”

  1. Bonjour Alban,

    Comme d’habitude tuto sympa même si il date un peu, la question que je me pose c’est aujourd’hui je suis en train de monter un system raspberry sous rasbian avec motioneyes et plusieurs caméra Arlo.
    Pense tu qu’il serait adaptable l’envoi de SMS sous MotionEyes et si oui comment pour ne pas tout cassé 😉
    Merci d’avance

    • Yo,

      Alors, pour faire simple, tu pars de ton installation de MotionEye sur Raspbian.
      Tu intègres tes caméras si tu y arrives (ils sont pénibles avec leurs système “embarqués” propriétaires parfois).
      Si les caméras sont intégrées dans MotionEye (c’est à dire si MotionEye est capable d’afficher leur flux), alors il suffit de réaliser un script et de l’ajouter dans “Motion Notifications” dans “Run A Command” pour chaque caméra.
      Je dois refaire un tuto complet pour installation de Raspbian + MotionEye + intégration des caméras (1 en local + 1 Raspberry Pi B+ et un Rpi Zero en “simple caméra” + 2 caméras IP) avec leurs scripts … mais … c’est un peu de boulot 😉
      Pour le moment, tu peux lire ce Tutoriel d’installation de MotionEyeOs sur RaspBerry et aller à “Edit du 28/10/2016” pour avoir quelques infos.
      Après, tu sais où me trouver si besoin 🙂

      ++

  2. Rétroliens : VidéoSurveillance avec plusieurs Caméras – TREVILLY.COM

  3. Rétroliens : VidéoSurveillance_avec_RaspBerry_Pi_et_MotionEyeOs – TREVILLY.COM

Laisser un commentaire

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

*