Accueil > Domotique, Raspberry > Tester le fonctionnement de Domoticz en Python

Tester le fonctionnement de Domoticz en Python

Le but de cet article est de tester le fonctionnement de Domoticz sur le Raspberry en Python.

Il va tester 2 choses :

– l’existence du process Domoticz.

– l’accès au serveur Web (pour ma part j’y accède via le port 443 uniquement et non le port 8080 par défaut).

Si le process ne tourne pas ou si l’accès au serveur Web par le port 443 n’aboutit pas, je redémarre le service Domoticz et j’envoie un Email.

Voici le contenu du script en Python que j’ai nommé pifab-state.py :

#!/usr/bin/env python
# importation des librairies
import smtplib
import os
import socket

# importation des modules email
from email.mime.text import MIMEText

USERNAME = "user@gmail.com"
PASSWORD = "motdepasse"
MAILTO = "user@gmail.com"

# teste presence process domoticz
process = os.popen("ps -Af").read()
proccount = process.count("domoticz")

# teste access https
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result = s.connect_ex((‘192.168.1.21’, 443))
s.close()

if proccount == 0 or result > 0:
        os.system(‘service domoticz.sh start’)
        msg = MIMEText(‘Le serveur Domoticz a redemarre’)
        msg[‘Subject’] = ‘Domoticz’
        msg[‘From’] = USERNAME
        msg[‘To’] = MAILTO
        # parametres necessaires pour utiliser gmail
        server = smtplib.SMTP(‘smtp.gmail.com:587’)
        server.ehlo_or_helo_if_needed()
        server.starttls()
        server.ehlo_or_helo_if_needed()
        server.login(USERNAME,PASSWORD)
        server.sendmail(USERNAME, MAILTO, msg.as_string())
        server.quit()

 

Ensuite j’édite le crontab en tapant la commande crontab –e et j’y ajoute la ligne suivante :

*/5 * * * * python /home/pi/programmation/pifab-state.py >/dev/null 2>/dev/null

Le script sera exécuté toutes les 5 minutes. La redirection vers /dev/null permet de ne pas tenter d’envoyer un mail.

Catégories :Domotique, Raspberry Étiquettes : , , ,
  1. philippe
    28/06/2019 à 09:10

    bonjour,
    j’ai testé votre script mais j’ai une erreur, et python je connais pas!

    SyntaxError: Non-ASCII character ‘\xe2’ in file ./pifab-state.py on line 21, but no encoding declared;

    merci pour votre aide

  1. No trackbacks yet.

Laisser un commentaire