Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

Récupérer le niveau de batterie des Nut Mini ET des Nut Find 3

Répondre
Avatar de l’utilisateur
snorlax
Timide
Messages : 202
Inscription : 01 févr. 2016, 15:16

Récupérer le niveau de batterie des Nut Mini ET des Nut Find 3

Message par snorlax » 10 nov. 2018, 15:20

************************************************************
***************** Nouvelle mise à jour le 01/07 *****************
01/07:
* Rétablissement conversion Hex => Dec pour le niveau de batterie remonté

19/06:
* Correction affichage niveau de batterie
+ Ajout de l'option -e pour que le script retourne le vrai code d'erreur
02/06:
* Correction système de log
24/02:
* Correction d'un bug du fichier de log
06/01:
+ Ajout du paramètre "-r" pour gérer les Nut Find 3
+ Ajout de la variable IP_JEEDOM si jamais le script tourne sur une
machine différente de votre Jeedom
04/01:
* Correction pour prise en compte de l'interface bluetooth paramétrée
(avant cela prenait systématiquement hci0... :roll:)
************************************************************
************************************************************

Bonjour à tous,

Cela fait un moment que je cherchais car ce qui me manque cruellement avec les Nut Mini c'est la remontée de leur niveau de batterie...

Donc j'ai enfin trouvé le temps d'adapter un script Domoticz trouvé ici pour pouvoir récupérer cette info !!!

Code : Tout sélectionner

#!/bin/bash

#############################
### PARAMETRES A MODIFIER ###
#############################
# Interface bluetooth de votre machine (généralement hci0)
INTERFACE_BLUETOOTH="hci0"
# API Key à récupérer dans vos paramètres Jeedom
API_KEY="A_CHANGER avec la vôtre"
# IP du Jeedom cible (127.0.0.1 ou votre IP du type xxx.xxx.xxx.xxx)
IP_JEEDOM=127.0.0.1
#############################
#############################


##############################################
# NE PLUS RIEN MODIFIER SOUS CETTE LIGNE !!! #
##############################################
URL_JEEDOM_1="http://${IP_JEEDOM}/core/api/jeeApi.php?plugin=virtual&apikey=${API_KEY}&type=virtual&id="
URL_JEEDOM_2="&value="
BATTUUID="0x2a19"
VERBOSE=0
UPDATEVIRTUAL=0
MODE_EXPRESS=0
EXIT_REAL_STATUS=0
HCITOOL_RANDOM="--random"
GATTTOOL_RANDOM="-t random"
LOGFILE="$(dirname $0)/$(basename $0 .sh).log"


function restartHCI () {
    if (( $VERBOSE == 1 )); then
        echo "Redémarrage ${INTERFACE_BLUETOOTH}..." | tee -a $LOGFILE
        sudo hciconfig ${INTERFACE_BLUETOOTH} down 2>&1 | tee -a $LOGFILE
        if (( $? == 1 )); then
            echo "KO: sudo hciconfig ${INTERFACE_BLUETOOTH} down" | tee -a $LOGFILE
            return 1
        fi
        if (( MODE_EXPRESS == 0 )); then
            sleep 1
        fi
        sudo hciconfig ${INTERFACE_BLUETOOTH} up 2>&1 | tee -a $LOGFILE
        if (( $? == 1 )); then
            echo "KO: sudo hciconfig ${INTERFACE_BLUETOOTH} up" | tee -a $LOGFILE
            return 1
        fi
        echo "${INTERFACE_BLUETOOTH} redémarrée" | tee -a $LOGFILE
    else
        sudo hciconfig ${INTERFACE_BLUETOOTH} down 2>&1 | tee -a $LOGFILE
        if (( $? == 1 )); then
            return 1
        fi
        if (( MODE_EXPRESS == 0 )); then
            sleep 1
        fi
        sudo hciconfig ${INTERFACE_BLUETOOTH} up 2>&1 | tee -a $LOGFILE    
        if (( $? == 1 )); then
            return 1
        fi
    fi
    return 0
}

function getBLEBatteryLevel () {

    if (( $VERBOSE == 1 )); then
        echo "Démarrage de l'analyse du Nut ${NUT_MAC}..." | tee -a $LOGFILE
    fi

    # Gestion du Handle
    if (( $VERBOSE == 1 )); then
        echo "  Récupération du handle avec la commande sudo hcitool -i ${INTERFACE_BLUETOOTH} lecc ${HCITOOL_RANDOM} ${NUT_MAC} | awk '{print \$3}'" | tee -a $LOGFILE
        HANDLE=$(sudo hcitool -i ${INTERFACE_BLUETOOTH} lecc ${HCITOOL_RANDOM} $NUT_MAC | awk '{print $3}')
        if [[ $HANDLE == "" ]]; then
            echo "  KO: pas de handle pour ${NUT_MAC} !" | tee -a $LOGFILE
            return 1
        else
            echo "  Ok: Handle récupéré (${HANDLE})" | tee -a $LOGFILE
        fi
    else
        HANDLE=$(sudo hcitool -i ${INTERFACE_BLUETOOTH} lecc ${HCITOOL_RANDOM} $NUT_MAC 2>/dev/null | awk '{print $3}')
        if [[ $HANDLE == "" ]]; then
            return 1
        fi
    fi

    # Attente
    if (( MODE_EXPRESS == 0 )); then
        sleep 1
    fi

    # Lecture Handle
    if (( $VERBOSE == 1 )); then
        echo "  Lecture du handle avec la commande sudo hcitool -i ${INTERFACE_BLUETOOTH} ledc ${HANDLE}" | tee -a $LOGFILE
        sudo hcitool -i ${INTERFACE_BLUETOOTH} ledc $HANDLE 2>&1 | tee -a $LOGFILE
        if (( $? == 1 )); then
            echo "  KO: Erreur de lecture du handle !" | tee -a $LOGFILE
            return 1
        else
            echo "  Ok: Handle lu avec succès" | tee -a $LOGFILE
        fi

    else
        sudo hcitool -i ${INTERFACE_BLUETOOTH} ledc $HANDLE 2>&1 | tee -a $LOGFILE
        if (( $? == 1 )); then
            return 1
        fi
    fi
    
    # Récupération de la valeur "Batterie"
    if (( $VERBOSE == 1 )); then
        echo "  Lecture valeur batterie avec la commande sudo gatttool ${GATTTOOL_RANDOM} -i ${INTERFACE_BLUETOOTH} --char-read --uuid ${BATTUUID} -b ${NUT_MAC} | awk '{print \$4}'" | tee -a $LOGFILE
        BATHEX=$(sudo gatttool ${GATTTOOL_RANDOM} -i ${INTERFACE_BLUETOOTH} --char-read --uuid $BATTUUID -b $NUT_MAC | awk '{print $4}')
        if [[ $BATHEX == "" ]]; then
            echo "  KO: Impossible de lire la valeur !" | tee -a $LOGFILE
            return 1
        else
            echo "  Ok: Valeur Hex lue = ${BATHEX}" | tee -a $LOGFILE
        fi
    else
        BATHEX=$(sudo gatttool ${GATTTOOL_RANDOM} -i ${INTERFACE_BLUETOOTH} --char-read --uuid $BATTUUID -b $NUT_MAC 2>/dev/null | awk '{print $4}')
        if [[ $BATHEX == "" ]]; then
            return 1
        fi
    fi

    # Conversion en décimal
    BATDEC=$((0x$BATHEX))
    # ...ou pas
    #BATDEC=$BATHEX

    if (( $VERBOSE == 1 )); then
        echo "  Niveau de batterie=${BATDEC}%" | tee -a $LOGFILE
    else
        echo $BATDEC | tee -a $LOGFILE
    fi

    if (( $UPDATEVIRTUAL == 1 )); then
        if (( $VERBOSE == 1 )); then
            echo "  Lancement curl -s ${URL_JEEDOM_1}${VIRTUAL_ID}${URL_JEEDOM_2}${BATDEC}" | tee -a $LOGFILE
        fi
        if [[ $(curl -s "${URL_JEEDOM_1}${VIRTUAL_ID}${URL_JEEDOM_2}${BATDEC}") != "" ]]; then
            return 1
        fi
    fi

    return 0
}

function Usage() {
    echo 
    echo " Usage: ${0} [-v] [-x] <<Virtual_Id>> <<MacAdresseDuNut>>"
    echo "   Format adresse Mac Nut: \"xx:xx:xx:xx:xx:xx\""
    echo "   -v: mode verbeux"
    echo "   -x: mode express (n'attend pas entre les commandes, ne redémarre pas l'interface BT)"
    echo "   -r: compatibilté Nut Find 3"
    echo "   -e: exit status = 1 en cas d'erreur (sinon toujours 0)"
    echo
}

function readParams () {
    until (( $# == 0 )); do
        if [[ $1 == "-v" ]]; then
            VERBOSE=1
            shift
            continue
        fi
        if [[ $1 == "-x" ]]; then
            MODE_EXPRESS=1
            shift
            continue
        fi
        if [[ $1 == "-r" ]]; then
            HCITOOL_RANDOM=""
            GATTTOOL_RANDOM=""
            shift
            continue
        fi
        if [[ $1 == "-e" ]]; then
            EXIT_REAL_STATUS=1
            shift
            continue
        fi
        if [[ $VIRTUAL_ID == "" ]]; then
            VIRTUAL_ID=$1
            #echo "ID du virtuel: ${VIRTUAL_ID}" | tee -a $LOGFILE
            shift
            continue
        elif [[ $NUT_MAC == "" ]]; then
            NUT_MAC=$1
            #echo "MAC du Nut: ${NUT_MAC}" | tee -a $LOGFILE
            shift
            continue
        else
            shift
            continue
        fi
    done

    if [[ $NUT_MAC == "" || $VIRTUAL_ID == "" ]]; then
        Usage
        exit 1
    fi

    # Forcer le mode update du Virtuel
    UPDATEVIRTUAL=1
}

# Programme principal
# Lecture des paramètres de la ligne de commande
readParams $*

# Redémarrage de l'interface bluetooth
if (( MODE_EXPRESS == 0 )); then
    restartHCI
    # S'il y a eu un pb
    if (( $? == 1 )); then
        if (( $VERBOSE == 1 )); then
            echo "Impossible de redémarrer l'interface bluetooth !" | tee -a $LOGFILE
        fi
    fi
fi

echo " " | tee -a $LOGFILE
echo "==============" | tee -a $LOGFILE
date | tee -a $LOGFILE

# Récupération du niveau de batterie et mise à jour du virtuel
getBLEBatteryLevel
ExitStatus=$?
if (( $ExitStatus == 1 )); then
    if (( $VERBOSE == 1 )); then
        echo "Une erreur s'est produite..."  | tee -a $LOGFILE
    fi
#    getBLEBatteryLevel
#    ExitStatus=$?
#    if (( $ExitStatus == 1 )); then
#        echo "Une erreur s'est produite..." | tee -a $LOGFILE
#    fi

fi

if (( $EXIT_REAL_STATUS == 1 )); then
    exit $ExitStatus
else
    exit 0
fi
Explication des paramètres sur la ligne de commande :
* 1er paramètre: ID du virtuel
* 2nd paramètre: adresse MAC du Nut Mini
Attention l'orde est donc important
Il a 3 paramètres optionnels :
* "-v" pour le mode verbeux (utile lorsque vous testez en ligne de commande pour voir tout ce qui se passe bien ou mal)
* "-x" pour le mode rapide qui n'attend pas entre les appels de fonction bluetooth ET SURTOUT qui ne redémarre par l'interface Bluetooth. Je ne conseille PAS d'utiliser l'option -x
* "-r" pour assurer la compatibilité avec les Nut Find 3. Ne pas utiliser ce paramètre pour les Nut Mini
* "-e" pour que le script sorte en erreur -1 en cas d'erreur. Sans cette option le script retourne toujours 0 (donc "tout s'est bien passé...")

Donc en gros la syntaxe est : <<nom du script>> [-v] [-r] [-x] <<ID du virtuel>> <<Adresse Mac du Nut mini>>
Attention il ne faut pas oublier de changer dans le script la valeur de votre API_KEY et si besoin celle de votre interface bluetooth (hciX).

Attention : ce script ne fonctionne pas à chaque coup si jamais l'interface Bluetooth est déjà utilisée (par le plugin Blea par exemple).
Donc il faut soit le relancer jusqu'à ce que cela passe ou mieux, stopper (temporairement) le process qui utilise l'interface Bluetooth avant de lancer le script...ou mieux, mais plus cher ;), installer un dongle bluetooth dédié pour ce script (et donc modifier le paramètre INTERFACE_BLUETOOTH en conséquence au début du script)
Dernière édition par snorlax le 01 juil. 2019, 09:11, édité 18 fois.

MadSTalker
Timide
Messages : 26
Inscription : 09 nov. 2018, 13:47

Re: Récupérer le niveau de batterie des Nut Mini

Message par MadSTalker » 10 nov. 2018, 15:38

Super !

Mais quand le clic tester sur le script crée dans le plugin script j'ai cela :
Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : Array ( [0] => Could not create connection: Connection timed out Could not create connection: Input/output error )

comment as tu mis cela en place dans jeedom avec le plugin script ?

Avatar de l’utilisateur
snorlax
Timide
Messages : 202
Inscription : 01 févr. 2016, 15:16

Re: Récupérer le niveau de batterie des Nut Mini

Message par snorlax » 10 nov. 2018, 16:29

Ok j'ai changé le script pour éviter qu'il ne tombe en erreur. cf. 1er post

Donc maintenant s'il y a une erreur, il remonte une valeur vide sans erreur. Si tout se passe bien il remonte la bonne valeur ;)

Et voici l'intégration dans le plugin Script :
Capture d’écran 2018-11-10 à 16.19.00.png
Capture d’écran 2018-11-10 à 16.19.00.png (406.07 Kio) Consulté 6714 fois
Le souci, comme ce n'est pas (encore ? ;)) intégré directement dans Blea, c'est qu'on est donc obligé de saisir manuellement l'adresse Mac en argument du script (je n'ai pas réussi à le récupérer depuis la config du Nut dans Blea car c'est n'est pas une valeur/commande exposée...)

Par contre si le script ne remonte rien, alors l'ancienne valeur numérique est conservée et ça c'est plutôt pas mal :)
Dernière édition par snorlax le 16 nov. 2018, 22:33, édité 1 fois.

MadSTalker
Timide
Messages : 26
Inscription : 09 nov. 2018, 13:47

Re: Récupérer le niveau de batterie des Nut Mini

Message par MadSTalker » 10 nov. 2018, 16:54

merci de ton retour
effectivement cela fonctionne mais en retour j'ai toujours une valeur vide.
pourtant j'ai un nut mini bleu... je comprends pas

Avatar de l’utilisateur
snorlax
Timide
Messages : 202
Inscription : 01 févr. 2016, 15:16

Re: Récupérer le niveau de batterie des Nut Mini

Message par snorlax » 10 nov. 2018, 18:36

Il faut tenter de rafraîchir la commande du script jusqu'à ce que cela marche... chez moi non plus cela ne marche pas à chaque coup malheureusement...

variamus
Timide
Messages : 45
Inscription : 13 mars 2018, 22:38

Re: Récupérer le niveau de batterie des Nut Mini

Message par variamus » 10 nov. 2018, 23:00

De mon côté ça ne fonctionne pas non plus malheureusement.
Valeur constamment vide si j'exécute via le plugin script de Jeedom et si j'exécute directement via tty résultat identique (le retour n'est par contre pas immédiat mais prend un certain temps).
Retour d'erreur dans le dmesg en tty:
[2147011.363123] Bluetooth: HCI request failed to create LE connection: status 0
x0c

Etant donné que mon antenne est déportée sur une autre machine, le problème semble venir de là -> Du coup y'a t-il une solution pour indiquer la bonne antenne ?
NUC7I5BNH - ESXi 6.7
VM Debian 9

Avatar de l’utilisateur
Sabato
Timide
Messages : 291
Inscription : 23 janv. 2017, 11:25

Re: Récupérer le niveau de batterie des Nut Mini

Message par Sabato » 10 nov. 2018, 23:48

Salut,

Je crois que sarakha ne vient plus sur le forum... Tu devrais proposer la modif sur github du plugin blea
Jeedom SMART zwave avec :
- 3xFibaro FGR222, 1xFGK-101, 1xFGMS-001-ZW5, 1xFGS-213
- Broadlink RM PRO
- Nest
- 4xDash button
- Gateway Xiaomi 3 sondes de T°,1 capteur d'ouverture
- 3xBandeau led yeelight xiaomi
- 2xNut Find3
- 1xGH et 3xmini

Avatar de l’utilisateur
snorlax
Timide
Messages : 202
Inscription : 01 févr. 2016, 15:16

Re: Récupérer le niveau de batterie des Nut Mini

Message par snorlax » 11 nov. 2018, 10:32

variamus a écrit :
10 nov. 2018, 23:00
De mon côté ça ne fonctionne pas non plus malheureusement.
Valeur constamment vide si j'exécute via le plugin script de Jeedom et si j'exécute directement via tty résultat identique (le retour n'est par contre pas immédiat mais prend un certain temps).
Retour d'erreur dans le dmesg en tty:
[2147011.363123] Bluetooth: HCI request failed to create LE connection: status 0
x0c

Etant donné que mon antenne est déportée sur une autre machine, le problème semble venir de là -> Du coup y'a t-il une solution pour indiquer la bonne antenne ?
Bon j'ai rendu le script verbeux (en utilisant l'option -v): cf. 1er post

Si ton antenne est sur une autre machine, il faut faire tourner ce script sur cette autre machine...

Je vous conseille de tester d'abord en ssh directement (ce qui permet de la lancer facilement plusieurs fois d'affilée) et une fois que ça marche, de tester dans le plugin script.
Dernière édition par snorlax le 16 nov. 2018, 22:34, édité 2 fois.

variamus
Timide
Messages : 45
Inscription : 13 mars 2018, 22:38

Re: Récupérer le niveau de batterie des Nut Mini

Message par variamus » 11 nov. 2018, 12:23

snorlax a écrit :
11 nov. 2018, 10:32
variamus a écrit :
10 nov. 2018, 23:00
De mon côté ça ne fonctionne pas non plus malheureusement.
Valeur constamment vide si j'exécute via le plugin script de Jeedom et si j'exécute directement via tty résultat identique (le retour n'est par contre pas immédiat mais prend un certain temps).
Retour d'erreur dans le dmesg en tty:
[2147011.363123] Bluetooth: HCI request failed to create LE connection: status 0
x0c

Etant donné que mon antenne est déportée sur une autre machine, le problème semble venir de là -> Du coup y'a t-il une solution pour indiquer la bonne antenne ?
Bon j'ai rendu le script verbeux (en utilisant l'option -v):

Code : Tout sélectionner

#!/bin/bash

# SETTING UP PARAMETERS
HCIINTERFACE="hci0"


# DO NOT MODIFY
BATTUUID="0x2a19"
VERBOSE=0

function restartHCI () {
    if (( $VERBOSE == 1 )); then
        echo "Redémarrage ${HCIINTERFACE}..."
        sudo hciconfig ${HCIINTERFACE} down
        sleep 1
        sudo hciconfig ${HCIINTERFACE} up
        echo "${HCIINTERFACE} redémarrée"
    else
        sudo hciconfig ${HCIINTERFACE} down 2>/dev/null
        sleep 1
        sudo hciconfig ${HCIINTERFACE} up 2>/dev/null    
    fi
}

function getBLEBatteryLevel () {

    if (( $VERBOSE == 1 )); then
        echo "Démarrage de l'analyse du Nut ${NUT_MAC}..."
    fi

    # Gestion du Handle
    if (( $VERBOSE == 1 )); then
        echo "  Récupération du handle avec la commande sudo hcitool lecc --random ${NUT_MAC} | awk '{print $3}'"
        HANDLE=$(sudo hcitool lecc --random $NUT_MAC | awk '{print $3}')
        if [[ $HANDLE == "" ]]; then
            echo "  KO: pas de handle pour ${NUT_MAC} !"
            return 1
        else
            echo "  Ok: Handle récupéré (${HANDLE})"
        fi
    else
        HANDLE=$(sudo hcitool lecc --random $NUT_MAC 2>/dev/null | awk '{print $3}')
        if [[ $HANDLE == "" ]]; then
            return 1
        fi
    fi

    # Attente
    sleep 1

    # Lecture Handle
    if (( $VERBOSE == 1 )); then
        echo "  Lecture du handle avec la commande sudo hcitool ledc ${HANDLE}"
        sudo hcitool ledc $HANDLE
        if (( $? == 1 )); then
            echo "  KO: Erreur de lecture du handle !"
            return 1
        else
            echo "  Ok: Handle lu avec succès"
        fi

    else
        sudo hcitool ledc $HANDLE 2>/dev/null
        if (( $? == 1 )); then
            return 1
        fi
    fi
    
    # Récupération de la valeur "Batterie"
    if (( $VERBOSE == 1 )); then
        echo "  Lecture valeur batterie avec la commande sudo gatttool -t random --char-read --uuid ${BATTUUID} -b ${NUT_MAC} | awk '{print $4}'"
        BATHEX=$(sudo gatttool -t random --char-read --uuid $BATTUUID -b $NUT_MAC | awk '{print $4}')
        if [[ $BATHEX == "" ]]; then
            echo "  KO: Impossible de lire la valeur !"
            return 1
        else
            echo "  Ok: Valeur Hex lue = ${BATHEX}"
        fi
    else
        BATHEX=$(sudo gatttool -t random --char-read --uuid $BATTUUID -b $NUT_MAC 2>/dev/null | awk '{print $4}')
        if [[ $BATHEX == "" ]]; then
            return 1
        fi
    fi

    # Conversion en décimal
    BATDEC=$((0x$BATHEX))

    if (( $VERBOSE == 1 )); then
        echo "  Niveau de batterie="$BATDEC"%"
    else
        echo $BATDEC
    fi
    return 0
}

function Usage() {
    echo
    echo " Usage: "$0" [-v] <<MacAdresseDuNut>>"
    echo "   Format adresse Mac Nut: \"xx:xx:xx:xx:xx:xx\""
    echo
}

# Main
# Aucun argument passé !
if [[ $1 == "" ]]; then
    Usage
    exit 1
fi

# Si mode verbeux
if [[ $1 == "-v" ]]; then
    # S'il manque l'adresse Mac du Nut
    if [[ $2 == "" ]]; then
        Usage
        exit 1
    else
        VERBOSE=1
        NUT_MAC=$2
    fi
else
    NUT_MAC=$1
fi

restartHCI

getBLEBatteryLevel
if (( $? == 1 )); then
    if (( $VERBOSE == 1 )); then
        echo "Une erreur s'est produite la 1ère fois, retetons..."
    fi
    getBLEBatteryLevel
fi
exit 0
Si ton antenne est sur une autre machine, il faut faire tourner sur script sur cette autre machine...

Je vous conseille de tester d'abord en ssh directement (ce qui permet de la lancer facilement plusieurs fois d'affilée) et une fois que ça marche, de tester dans le plugin script.
Effectivement je n'avais pas pensé que l'on pouvait exécuter des scripts sur une machine distante.. donc ça fonctionne.
En revanche, il me renvoie la valeur "100" ce qui me paraît étrange; de votre côté, pas de problème de ce côté ?
NUC7I5BNH - ESXi 6.7
VM Debian 9

scotty92fr
Timide
Messages : 262
Inscription : 07 mars 2017, 20:31

Re: Récupérer le niveau de batterie des Nut Mini

Message par scotty92fr » 11 nov. 2018, 16:29

Bonjour à tous,

Merci snorlax pour ce partage de script. Malheureusement, cela ne semble pas fonctionner pour moi: j'ai des NUT3 et en le lançant manuellement en Shell j'obtiens systématiquement que ce soit sur le Raspberry Pi principal ou bien sur les antennes : (AA:BB:CC:DD:EE:FF étant l'adresse MAC du NUT)

Code : Tout sélectionner

root@jeedom:~# ./nutbattery.sh -v AA:BB:CC:DD:EE:FF
Redémarrage hci0...
hci0 redémarrée
Démarrage de l'analyse du Nut AA:BB:CC:DD:EE:FF...
  Récupération du handle avec la commande sudo hcitool lecc --random AA:BB:CC:DD:EE:FF | awk '{print }'
Could not create connection: Connection timed out
  KO: pas de handle pour AA:BB:CC:DD:EE:FF !
Une erreur s'est produite la 1ère fois, retetons...
Démarrage de l'analyse du Nut AA:BB:CC:DD:EE:FF...
  Récupération du handle avec la commande sudo hcitool lecc --random AA:BB:CC:DD:EE:FF | awk '{print }'
Could not create connection: Input/output error
  KO: pas de handle pour AA:BB:CC:DD:EE:FF !
  
Si quelqu'un a une idée ...
Jeedom 4.0.35 DIY RPI3/SSD , Zwave - Rfxcom - ...

Avatar de l’utilisateur
snorlax
Timide
Messages : 202
Inscription : 01 févr. 2016, 15:16

Re: Récupérer le niveau de batterie des Nut Mini

Message par snorlax » 11 nov. 2018, 16:36

Essaye avec des guillemets : ./nutbattery.sh -v "AA:BB:CC:DD:EE:FF"

Avatar de l’utilisateur
snorlax
Timide
Messages : 202
Inscription : 01 févr. 2016, 15:16

Re: Récupérer le niveau de batterie des Nut Mini

Message par snorlax » 11 nov. 2018, 16:43

variamus a écrit :
11 nov. 2018, 12:23
[...]
En revanche, il me renvoie la valeur "100" ce qui me paraît étrange; de votre côté, pas de problème de ce côté ?
Ben s'il te remonte une valeur alors c'est bien ce que le Nut mini lui a remonté...

Moi j'ai plusieurs Nut mini et plusieurs antennes et cela me remonte des valeurs comme 87%, 18% en fonction des Nut. Et pour un Nut mini tout neuf, ça me remonte 100%

Avatar de l’utilisateur
kerdale
Actif
Messages : 1644
Inscription : 25 sept. 2016, 11:38
Localisation : Penn-ar-Bed

Re: Récupérer le niveau de batterie des Nut Mini

Message par kerdale » 11 nov. 2018, 16:49

Pareil pour moi avec un NUT mini à portée de l'antenne (1m !) Rssi -73 avec ou sans ""

Code : Tout sélectionner

[2018-11-11 16:46:08][DEBUG] : Result : Redémarrage hci0... hci0 redémarrée Démarrage de l'analyse du Nut FD:8F:59:25:6C:37...   Récupération du handle avec la commande sudo hcitool lecc --random FD:8F:59:25:6C:37 | awk '{print }' Could not create connection: Input/output error   KO: pas de handle pour FD:8F:59:25:6C:37 ! Une erreur s'est produite la 1ère fois, retetons... Démarrage de l'analyse du Nut FD:8F:59:25:6C:37...   Récupération du handle avec la commande sudo hcitool lecc --random FD:8F:59:25:6C:37 | awk '{print }' Could not create connection: Input/output error   KO: pas de handle pour FD:8F:59:25:6C:37 !
par contre quand je lance en console un hcitool lescan j'obtient bien:
FD:8F:59:25:6C:37 nut
Pour avancer:
J'ai deux nterface BLEA sur mon nuc:
l'interne en hci0 qui est utilisée par le plugin BLEA et qui me donne actuellement des Rssi conforme à la position des NUTS min.
De temps en temps(1 à 2 fais par an) sans que je sache pourquoi cette interface disparait. J'ai donc en place sur un port USB un dongle BLEA que je passe dans la prog du plugin BLEA en attendant de retrouver l'interface interne.
Actuellement j'ai les deux en place.
Le plugin BLEA est sur hci0
Le script avec hci0 me retourne systématiquement
Could not create connection: Input/output error KO: pas de handle pour FD:8F:59:25:6C:37
Si je passe le script sur hci1, bingo

Code : Tout sélectionner

Redémarrage hci1...
hci1 redémarrée
Démarrage de l'analyse du Nut FD:8F:59:25:6C:37...
  Récupération du handle avec la commande sudo hcitool lecc --random FD:8F:59:25:6C:37 | awk '{print }'
  Ok: Handle récupéré (3585)
  Lecture du handle avec la commande sudo hcitool ledc 3585
  Ok: Handle lu avec succès
  Lecture valeur batterie avec la commande sudo gatttool -t random --char-read --uuid 0x2a19 -b FD:8F:59:25:6C:37 | awk '{print }'
  Ok: Valeur Hex lue = 64
  Niveau de batterie=100%
je laisse la suite aux spécialistes, moi je suis largué à ce niveau
Dernière édition par kerdale le 11 nov. 2018, 17:04, édité 1 fois.
1 NUC & 1 RPI3/Msata V3.3.31, EnOcean, Z-wave,
Rflink, IPX800V3, carte 8 rl IP, IR_V3, Xiaomi gateway, JPI/APK/tel Android dédié, Somfy RTS, Rf433Mhz, Xiaomi, Bm280 , Broadlink,WifiLights

MadSTalker
Timide
Messages : 26
Inscription : 09 nov. 2018, 13:47

Re: Récupérer le niveau de batterie des Nut Mini

Message par MadSTalker » 11 nov. 2018, 16:57

j'ai tout essayé en ligne de commande, etc...
j'ai toujours rien
Redémarrage hci0...
hci0 redémarrée
Démarrage de l'analyse du Nut CB:E1:23:95:17:EB...
Récupération du handle avec la commande sudo hcitool lecc --random CB:E1:23:95:17:EB | awk '{print }'
Could not create connection: Connection timed out
KO: pas de handle pour CB:E1:23:95:17:EB !
Une erreur s'est produite la 1ère fois, retetons...
Démarrage de l'analyse du Nut CB:E1:23:95:17:EB...
Récupération du handle avec la commande sudo hcitool lecc --random CB:E1:23:95:17:EB | awk '{print }'
Could not create connection: Input/output error
KO: pas de handle pour CB:E1:23:95:17:EB !

Avatar de l’utilisateur
snorlax
Timide
Messages : 202
Inscription : 01 févr. 2016, 15:16

Re: Récupérer le niveau de batterie des Nut Mini

Message par snorlax » 11 nov. 2018, 16:58

Oui malheureusement cela me fait aussi cela de temps en temps. Mais en le relançant (parfois plusieurs fois sont nécessaires...) cela se met à "tomber en marche" ;).

Essayez de lancer le script 4 ou 5 fois de suite...

Si je trouve le temps je continuerai de chercher pourquoi ce n’est pas stable mais de toute façon l’info batterie ne varie pas tant que ça donc ce n’est pas grave si de temps à autre elle ne remonte pas. L’important c’est de réussir à l’avoir une fois de temps en temps afin d’etre alerté lorsqu’elle devient trop basse pour savoir quand changer la pile.

scotty92fr
Timide
Messages : 262
Inscription : 07 mars 2017, 20:31

Re: Récupérer le niveau de batterie des Nut Mini

Message par scotty92fr » 11 nov. 2018, 17:03

Malheureusement j'ai essayé plus de 20 fois (au moins) par machine et c'est toujours identique
Jeedom 4.0.35 DIY RPI3/SSD , Zwave - Rfxcom - ...

MadSTalker
Timide
Messages : 26
Inscription : 09 nov. 2018, 13:47

Re: Récupérer le niveau de batterie des Nut Mini

Message par MadSTalker » 11 nov. 2018, 17:08

perso j'ai lancé idem 20 fois dans jeedom et 20 fois eh SSH avec -v et rien, nada

Avatar de l’utilisateur
kerdale
Actif
Messages : 1644
Inscription : 25 sept. 2016, 11:38
Localisation : Penn-ar-Bed

Re: Récupérer le niveau de batterie des Nut Mini

Message par kerdale » 11 nov. 2018, 17:11

@ snorlax
Précision finalement je récupère bien le handle avec mes deux interfaces hci0 et hci1 mais en hci1 c'est toujours dès la première tentative tandis qu'avec le hci0 je viens pour la première fois de récupèrer le handle à la seconde tentative du script. Va savoir ??
1 NUC & 1 RPI3/Msata V3.3.31, EnOcean, Z-wave,
Rflink, IPX800V3, carte 8 rl IP, IR_V3, Xiaomi gateway, JPI/APK/tel Android dédié, Somfy RTS, Rf433Mhz, Xiaomi, Bm280 , Broadlink,WifiLights

Titof2375
Helper
Messages : 656
Inscription : 22 août 2017, 18:59

Re: Récupérer le niveau de batterie des Nut Mini

Message par Titof2375 » 15 nov. 2018, 14:07

bonjour, je vient de lire tout vos commentaires, mes je suis un peut perdu pour faire comme vous.
si j'ai bien compris, il faut le plugin script. il faut après que je mette quelle script dedans , car j'en voie plusieurs
Rpi 3 avec jeedom
Plugins zwave, Plugins volets, Plugins rflinq, Plugins blea,Plugin

GiDom
Actif
Messages : 513
Inscription : 26 oct. 2016, 18:52
Localisation : Haute Saône (70)

Re: Récupérer le niveau de batterie des Nut Mini

Message par GiDom » 16 nov. 2018, 22:21

Au top Shrek !!!

J'avais réussi il y a qq temps en cli mais un script dépassait mes compétences. Execution du script et récupération du niveau bat en one shot.

Astuce :
créer le script via notepad++ => faire un dos2unix
ou le créer directement via vi ou nano
ensuite il faut lui donner les droits d'éxécution chmod 744 monscript.sh
NUC sous EXSI et Jeedom 3.2.11 sur VM Debian9 / Zwave / MySensors / Remora / RFXCOM433E / Xiaomi Home / Volets sous ESPEASY / Squeezebox / ZoneMinder

Répondre

Revenir vers « [Plugin Officiel] BLEA »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 6 invités