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()