Ce n’est franchement pas pratique d’envoyer des messages, y aurait pas moyen de faire mieux que ça ?
C’est vraiment laborieux pour voir ce qui se lance ou non…
Alors après, je me dis que je pourrais peut etre envoyer un message mqtt que j’enregistrerais dans un csv mais bon…
Non j’utilise pas telegram, pas envie d’ajouter encore un soft…
Passer par un truc externe ne me botte pas trop non plus…
Du coup, j’ai fait un message mqtt qui m’envoie le nom du détecteur ou autre qui s’active, j’ajoute une ligne un csv en ajoutant la date et l’heure.
Pour ceux que ça intéresse, mon code bash :
#/bin/bash
############################################
## Envoi de la température du PC à Gladys ##
############################################
### Variables à personnaliser
# Connexion au brocker MQTT
User="gladys"
Pass="MonMDP"
Host="Le_PC_avec_Gladys"
# Adresse du topic de l'appareil
Topic="gladys/master/device/mqtt:maison:Informations/feature/mqtt:maison:Informations:Texte/text"
CSVFile="/home/hizoka/SurveillanceActiviteGladys.csv"
### Variables à personnaliser
function CommandCheck()
{
# Fonction vérifiant la présence des commandes nécessaires
# Paramètre : Nom de la commande et du paquet (facultatif) séparés par :
# Ex : mosquitto_pub:mosquitto-clients
# Si aucun paramètre n'est donné
[[ -z ${1} ]] && return 1
# Limitation des variables à la fonction
local Command Package Parameter ReturnValue
ReturnValue=0
# Traite tous les paramètres
for Parameter in "${@}"
do
Command="${Parameter%%:*}"
Package="${Parameter##*:}"
# Si la commande n'existe pas
if ! which ${Command} &>/dev/null
then
# Valeur de retour à 1 pour afficher tous les echo avant de stopper
ReturnValue=1
echo -e "[${ROUGE}Erreur${RAZ}] Arrêt du script car la commande ${BLEUFONCE}${Command}${RAZ} est introuvable." 1>&2
# Si un paquet est donné
[[ ${Package} ]] && echo -e "Pour ubuntu : ${FUCHSIA}sudo apt-get install ${Package}${RAZ}" 1>&2
fi
done
return ${ReturnValue}
}
# Couleurs pour l'affichage des retours
FUCHSIA="\e[1;35m"
RAZ="\e[m"
BLEUFONCE="\e[1;34m"
ROUGE="\e[1;31m"
ORANGE="\e[1m\e[38;5;202m"
# Vérification de la présence des commandes qui si absentes provoquent l'arrêt du script
# Nécessite la commande mosquitto_sub du paquet mosquitto-clients
! CommandCheck "mosquitto_sub:mosquitto-clients" && exit 1
# Boucle infinie nécessaire si le programme est lancé avec @reboot de cron
# Sinon il faut ajouter un sleep avant l'appel du script
while true
do
# Boucle écoutant en permanence le topic de l'appareil de Gladys
# Récupération des retours dans la variable Value
while read Value
do
# Pour éviter d'indiquer des lignes doublons se suivants
if [[ $(tail -n 1 "${CSVFile}") != "${Value};$(date +'%d/%m/%y');$(date +'%H:%M')" ]]
then
echo "${Value};$(date +'%d/%m/%y');$(date +'%H:%M')" >> "${CSVFile}"
fi
done < <(mosquitto_sub -h "${Host}" -u "${User}" -P "${Pass}" -t "${Topic}")
sleep 1
done