Extraction de données

Salut,

j’ai doute sur des changements d’état inopinés de certains détecteurs zigbee.

Est il possible de ressortir leurs changements d’état et leur horaire ?

Je m’envoie des messages dans la discussion mais l’historique est trop court pour avoir une bonne vision.

Quelle serait la meilleure solution ?

Merci

Envoie toi un message telegram sinon :slight_smile:

Je me permets de relancer le sujet.

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…

Tu utilise pas Telegram? Sur Telegram, pas de limite.

Sinon fait un appel HTTP avec le bloc « Requête HTTP », tu peux faire un appel vers un service genre IFTT qui rajoute une ligne dans un Google Sheet

Il y a plein de possibilités :stuck_out_tongue:

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
3 « J'aime »