Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Toute la communauté vous remercie

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

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

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

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

*** Mis à jour ***

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 !!!

Voici ce que cela donne pour le script qui renvoie la valeur trouvée :

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
Ce script prend en paramètre l'adresse MAC du Nut Mini.
Pour des raisons que je ne m'explique pas (encore... mais je pense que cela vient du fait que le script essaye peut-être de parler à l'interface bluetooth en même temps que le plugin Blea...), le script ne fonctionne pas à chaque coup (j'ai l'impression que les commandes hcitool et gatttool sont parfois capricieuses...), c'est d'ailleurs la raison du "retentons..." mais globalement cela permet bien de récupérer l'info et sans avoir à déconnecter le Nut Mini de Jeedom !

Je rajoute, à la demande presque générale :D, le script qui permet de mettre à jour directement un virtuel :

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"
#############################
#############################


##############################################
# NE PLUS RIEN MODIFIER SOUS CETTE LIGNE !!! #
##############################################
URL_JEEDOM_1="http://127.0.0.1/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


function restartHCI () {

    if (( $VERBOSE == 1 )); then
        echo "Redémarrage ${INTERFACE_BLUETOOTH}..."
        sudo hciconfig ${INTERFACE_BLUETOOTH} down 
        if (( $? == 1 )); then
            echo "KO: sudo hciconfig ${INTERFACE_BLUETOOTH} down"
            return 1
        fi
        if (( MODE_EXPRESS == 0 )); then
            sleep 1
        fi
        sudo hciconfig ${INTERFACE_BLUETOOTH} up
        if (( $? == 1 )); then
            echo "KO: sudo hciconfig ${INTERFACE_BLUETOOTH} up"
            return 1
        fi
        echo "${INTERFACE_BLUETOOTH} redémarrée"
    else
        sudo hciconfig ${INTERFACE_BLUETOOTH} down 2>/dev/null
        if (( $? == 1 )); then
            return 1
        fi
        if (( MODE_EXPRESS == 0 )); then
            sleep 1
        fi
        sudo hciconfig ${INTERFACE_BLUETOOTH} up 2>/dev/null    
        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}..."
    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
    if (( MODE_EXPRESS == 0 )); then
        sleep 1
    fi

    # 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

    if (( $UPDATEVIRTUAL == 1 )); then
        if (( $VERBOSE == 1 )); then
            echo "  Lancement curl -s ${URL_JEEDOM_1}${VIRTUAL_ID}${URL_JEEDOM_2}${BATDEC}"
        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)"    
    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 [[ $VIRTUAL_ID == "" ]]; then
            VIRTUAL_ID=$1
            shift
            continue
        elif [[ $NUT_MAC == "" ]]; then
            NUT_MAC=$1
            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
restartHCI
# S'il y a eu un pb
if (( $? == 1 )); then
    if (( $VERBOSE == 1 )); then
        echo "Impossible de redémarrer l'interface bluetooth !"
    fi
fi

# Récupération du niveau de batterie et mise à jour du virtuel
getBLEBatteryLevel
if (( $? == 1 )); then
    if (( $VERBOSE == 1 )); then
        echo "Une erreur s'est produite la 1ère fois, je retente une nouvelle fois..."
    fi
    getBLEBatteryLevel
fi

#exit $?
exit 0


Celui-ci prend en 1er paramètre l'ID du virtuel et en 2nd l'adresse MAC du Nut Mini (attention l'orde est donc important).
Il a 2 paramètres optionnels : "-v" pour le mode verbeux et "-x" pour le mode rapide qui n'attend pas entre les appels de fonction bluetooth (pas sur que cela soit une bonne idée, mais bon).
Donc en gros la syntaxe est : <<nom du script>> [-v] [-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).

J'essayerai plus tard, si je réussi à joindre Sarakha63, d'intégrer ça à Blea pour qu'on ait l'info directement sur chaque Nut...
Dernière édition par snorlax le 17 nov. 2018, 16:17, édité 4 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 : 131
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é 207 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 : 131
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 : 30
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 : 250
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 mini
- 1xgoogle home et 1xmini

Avatar de l’utilisateur
snorlax
Timide
Messages : 131
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 : 30
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 : 177
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 3.2.11 | DIY RPI3/SSD , Zwave - Rfxcom - ...

Avatar de l’utilisateur
snorlax
Timide
Messages : 131
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 : 131
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%

kerdale
Actif
Messages : 976
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 et 1 RPI3 V3.2.10, Dongles EnOcean, Z-wave,
Rflink, IPX800V3, carte 8 relais IP, IR_V3, Xiaomi gateway, JPI/APK sur tel Android dédié
Modules: Enocean, Somfy RTS, Rf433Mhz, Xiaomi, Bm280 (baro,Hydro,t°), Broadlink,

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 : 131
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 : 177
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 3.2.11 | 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

kerdale
Actif
Messages : 976
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 et 1 RPI3 V3.2.10, Dongles EnOcean, Z-wave,
Rflink, IPX800V3, carte 8 relais IP, IR_V3, Xiaomi gateway, JPI/APK sur tel Android dédié
Modules: Enocean, Somfy RTS, Rf433Mhz, Xiaomi, Bm280 (baro,Hydro,t°), Broadlink,

Titof2375
Timide
Messages : 252
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
Timide
Messages : 449
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 1 invité