[Bash] Script pour connaitre l'état d'un poele PALAZZETTI + Alerte SMS
Publié : 10 janv. 2017, 18:26
Bonjour,
Je continue de tester et approfondir la connexion box. J'ai écrit un script pour Domoticz qui me log tous les changements d'état poêle et qui m'envoie un SMS si le niveau de pellet est trop bas.
Prérequis : connexion box opérationnelle, domoticz (linux) sur le réseau local, abonnement Free Mobile.
Il y a 3 choses à modifier : l'adresse IP du poele, l'adresse IP de Domoticz et les identifiants pour SMS
Le script est le suivant. Il faut créer le fichier etat_poele.sh, copier le script dedans, lui donner les droits d'éxécution et ensuite le mettre dans le crontab : @reboot /home/pi/etat_poele.sh > /dev/null
Je continue de tester et approfondir la connexion box. J'ai écrit un script pour Domoticz qui me log tous les changements d'état poêle et qui m'envoie un SMS si le niveau de pellet est trop bas.
Prérequis : connexion box opérationnelle, domoticz (linux) sur le réseau local, abonnement Free Mobile.
Il y a 3 choses à modifier : l'adresse IP du poele, l'adresse IP de Domoticz et les identifiants pour SMS
Le script est le suivant. Il faut créer le fichier etat_poele.sh, copier le script dedans, lui donner les droits d'éxécution et ensuite le mettre dans le crontab : @reboot /home/pi/etat_poele.sh > /dev/null
Code : Tout sélectionner
#!/bin/bash
# Initialisation des variables
statut=0
var_stat=0
oldstatut=0
# Le programme tourne en boucle :
while true;
do
# On récupère la variable du statut :
var_stat=$(curl -s "http://192.168.XXX.XXX/sendmsg.php?cmd=get+stat" | jq '. | ."Status".STATUS')
# La commande n'est pas très réactive, on attend 10 sec
sleep 10
# On traduit le code du statut par sa signification
case $var_stat in
"0")
statut="Le%20poële%20est%20éteind"
;;
"1")
statut="Le%20poële%20est%20éteind%20selon%20la%20programmation"
;;
"2")
statut="Vérification"
;;
"3")
statut="Préchauffage"
;;
"4")
statut="Chargement%20de%20pellets"
;;
"5")
statut="Test%20d'allumage"
;;
"6")
statut="En%20chauffe"
;;
"9")
statut="Refroidissement%20du%20fluide%20caloporteur"
;;
"10")
statut="Arrêt%20de%20la%20flamme"
;;
"11")
statut="Brûlage%20des%20derniers%20pellets"
;;
"12")
statut="Refroidissement"
;;
"253")
statut="Pellet%20bas"
esac
# On vérifie si le statut a changé depuis la dernière fois
if [ $statut != $oldstatut ]
# Dans ce cas on envoi la variable vers le compteur domoticz :
then
curl -s "http://192.168.XXX.XXX:8080/json.htm?type=command¶m=udevice&idx=54&nvalue=0&svalue=$statut"
fi
# On test si la variable est "Pellet bas"
if [ $var_stat = "253" ]
# Dans ce cas on envoi un SMS
then
curl -sk "https://smsapi.free-mobile.fr/sendmsg?user=USERFREE&pass=PASSFREE&msg=Attention%20niveau%20de%20pellets%20bas!"
fi
# On passe le nouveau statut en ancien statut
oldstatut=$statut
# On attent 45 secondes avant de relancer
sleep 45
done