Automatisation de la vidéosurveillance

Bonjour,

Comme certains d’entre vous, je m’amuse à mettre en place des systèmes qui ne servent pas à grand chose, du moment que c’est sympa à construire. J’ai ainsi mis en place une vidéosurveillance de mon domicile, où il n’y a pas grand chose à voler. J’ai utilisé Motion pour cela (il y a plein de tuto). Et puis j’ai voulu ajouter une couche d’automatisation pour le lancer. Je vous propose aujourd’hui de partager ce code. Il vérifie si mon téléphone mobile est connecté au réseau via un ping (j’ai affecté une adresse fixe à mon téléphone) et lance motion si je viens de sortir, ou le tue si je viens de rentrer. J’ai également mis en place une log pour pouvoir contrôler la bonne exécution. Je le lance toutes les 10 minutes via crontab.

Si vous le réutilisez, merci de me laisser un petit mot.

#!/usr/bin/python3.7
import datetime

# Récupération de la dernière valeur de connexion au réseau
# 0 : déconnecté ; 1 : connecté
texte = open('/home/pi/ping.txt' , mode='r')
M = int(texte.read())
texte.close()
ip = '192.168.1.xxx'
Mouv = "Pas de mouvement"

# Test de la connexion réseau actuelle
import os
ping = os.system('ping -c 1 -w 1 ' + ip)
M1 = int(ping)
# Attention : la valeur du ping est nulle si la connexion est établie

# Impact sur Motion
if M==0 and M1==0 :
os.system('sudo pkill motion')
M = 1
Mouv = "Retour"
if M==1 and M1!=0:
os.system('sudo motion')
M=0
Mouv = "Sortie"

# Enregistrement du nouveau statut de connexion
texte = open('/home/pi/ping.txt' , mode='w')
texte.write(str(M))
texte.close()

# Enregistrement de la log
log = open('Controle presence telephone.log' , mode='a')
log.write(str(datetime.datetime.utcnow()) + " " + Mouv + "\n")
log.close()

2 « J'aime »

hello,

sans doute une ‹ coquille ›. Au moins chez moi c’est l’inverse :wink: en tout cas merci pour le script.

Avec plaisir. Effectivement, je voulais dire le contraire. Merci de la remarque. :smiley:

Je rectifie. Tu peux aussi modifier ‹ datetime.datetime.utcnow() › en ‹ datetime.datetime.now() › pour avoir l’heure locale dans la log.

Merci pour le script !

Je me permet d’ajouter une chose pour certains utilisateurs; assurez-vous de laisser le wifi actif sur votre téléphone si il n’est pas utilisé ou en économie d’énergie, car sinon sur certain téléphone, la connection Wifi est coupé si non sollicité.

Juste une note pour certains qui ont des ping perdus et qui ce demande pourquoi.

Une autre note pour les utilisateurs de ce script (n’hésitez pas à proposer des pistes d’amélioration) : il faut utiliser motion en mode daemon, sans quoi votre script tournera en tâche de fond et ne s’arrêtera jamais dès qu’il aura lancé motion.