J’utilise depuis quelques temps mes iPCam comme capteur de luminosité. J’ai également depuis peu monté le disque de ma Freebox sur mon Raspberry. Pour créer un minimum de vidéo surveillance, il ne me restait plus qu’a enregistrer avec mon Raspberry les images de mes IPCam sur le disque de ma FreeBox (histoire de ne pas tuer ma carte SD). L’idée est simplement d’enregistrer une image de chaque IPCam toutes les minutes  dans un répertoire (videosurv) de la FreeBox. Histoire de ne pas combler le disque de la Box trop rapidement, on ne garde que les fichiers des X derniers jours. Le X jours dépendant de la taille des images et de l’espace disponible sur le disque.

Enregistrer les images

Créer un script python domoticz/scripts/python/videosurveillance.py

import os, sys
import datetime
from subprocess import Popen, PIPE

now=datetime.datetime.now()

process = Popen(['wget','-O','/media/freebox/videosurv/'+'foscam'+now.strftime('%Y-%m-%d_%Hh%Mm%S')+'.jpg','http://[IP de l'IPCAM]'+'/snapshot.cgi?user=[LOGIN IPCAM]&pwd=[PWD IPCAM]&count=0'], stdout=PIPE)
(output, err) = process.communicate()
exit_code = process.wait()

Si vous avez plusieurs IPCam, il suffit de dupliquer les lignes vertes dans le même script à la suite et de nommer l’image de chaque cam comme vous le souhaiter (en rouge)

Ne conserver que X jours

Créer un deuxième script bash domoticz/scripts/clean_ipcam.sh

#!/bin/bash
find /media/freebox/videosurv/ -type f -mtime +6 -exec rm -f {} \;

Le 6 rouge est le nombre de jour de rétention des images.

Faire un chmod 755 domoticz/scripts/clean_ipcam.sh pour le rendre exécutable.

Lancer les scripts automatiquement

Là rien de plus simple, on ajoute les entrées correspondantes dans la crontab

crontab -e

Puis ajouter les lignes suivantes :

* * * * * python ./domoticz/scripts/python/videosurveillance.py
0 1 * * * sudo ./domoticz/scripts/clean_ipcam.sh

Le script videosurveillance.py sera exécuté toutes les minutes, et clean_ipcam.sh une fois par jour à 1h du matin.

Résultat

Vous pouvez aller regarder dans le répertoire videosurv de votre Freebox, les images sont là.

Bonus, utiliser chaque image comme capteur de luminosité

Liens vers mon article correspondant.

On peux utiliser le même script pour enregistrer l’image est calculer sa luminosité  pour mettre à jour dans Domoticz. Le script s’enrichi alors des lignes suivantes :

process = Popen(["convert /media/freebox/videosurv/foscam"+now.strftime("%Y-%m-%d_%Hh%Mm%S")+".jpg -colorspace hsb -resize 1x1 txt: | grep \",*%)\" | cut -f 6 -d ',' | cut -c -5"], stdout=PIPE, shell=True)
(output, err) = process.communicate()
exit_code = process.wait()
value = str(output).replace('\n','')
url = 'http://127.0.0.1:8080/json.htm?type=command&param=udevice&idx=[IDX Domoticz]&nvalue=0&svalue=' + value
process = Popen(['curl' , url], stdout=PIPE)
(output, err) = process.communicate()
exit_code = process.wait()

Sources

http://www.magdiblog.fr/domotique/systeme-de-tele-surveillance-abordable-avec-des-raspberry-pi/

Publicités