Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 Scripts, programmes et robots » Raspberry PI & Prises connectée MEROSS » 30-01-2020 10:19:22

Françoué
Réponses : 0
Bonjour à tous !
Je reviens par ici pour solliciter votre aide !
Après avoir réussi ça avec succès: https://debian-facile.org/viewtopic.php?id=16480
J'ai une autre idée en tête !

Grâce à vous, je suis capable de récupérer via mon Rasp la température via bluetooth de ma station météo Hector.
J'ai fais l'acquisition récemment de prises connectée "Meross" modèle MSS310fr. Celle-ci se pilote grâce à l'appli Meross. Avec ça, vous l'aurez deviner, je pilote les prises pour éteindre ou allumer à ma guise depuis mon mobile divers appareils. Lumières, etc...
Début de semaine, je me suis dis pourquoi pas aller plus loin. J'ai donc connecté mes 2 prises connecté directement à mes radiateurs électrique. Je peux donc les allumer et éteindre comme je le souhaite.

Sauf que, je souhaiterais ne plus intervenir (du genre termostat).
En gros, puisque je suis capable d'avoir la température grâce à ma station météo, je souhaite déclencher dune action en fonction de la température. J'aimerais pouvoir allumer/éteindre les radiateurs en fonction de la température ambiante. Du genre si la température est inférieur, allumé les radiateurs. Sinon les éteindre.
Je vous épargne pour le moment la parti script via un shell;

J'ai besoin de vous pour commander mes prises via mon raspPi. J'ai trouvé ça; https://pypi.org/project/meross-iot/0.1.3.0/
Je sais que c'est possible en cherchant un peu mais j'aurais besoin d'aide smile
J'ai vu quelques projets via github etc mais tout est en anglais et je ne comprends pas certaines chose. par exemple, je suis bloqué dès le début sur cette commande !
@root> pip install meross-iot==0.1.3.0
Mais je pensais à passer par du CURL -X pour dire à la prise ON ou OFF.

Par avance, merci de votre aide smile
Cordialement,
François

#2 Re : Présentations » BlueTooth LE, Gatttool via rasbberry pi, ruban LED » 06-09-2019 14:14:29

Si ça peut t'éclairer, j'ai converti quelques valeurs HEXA des handles; Plutôt logique mais pas assez parlent:

handle: 0x0001, uuid: 00002800-0000-1000-8000-00805f9b34fb  0018 -> CAN
handle: 0x0002, uuid: 00002803-0000-1000-8000-00805f9b34fb  12 ->  DC2
handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb  69 68 6f 6d 65 6e 74 5f 48 36 31 32 37 5f 35 30 41 45 -> ihoment_H8127_50AE
handle: 0x0004, uuid: 00002803-0000-1000-8000-00805f9b34fb  02 -> STX
handle: 0x0007, uuid: 00002a04-0000-1000-8000-00805f9b34fb  14 00 28 00 00 00 e8 03 ->  DC4
handle: 0x0013, uuid: 00002901-0000-1000-8000-00805f9b34fb  54 65 6c 69 6e 6b 20 53 50 50 3a 20 4d 6f 64 75 6c 65 2d 3e 50 68 6f 6e 65 00 -> TeIink SSP: Module->Phone
handle: 0x0016, uuid: 00002901-0000-1000-8000-00805f9b34fb  54 65 6c 69 6e 6b 20 53 50 50 3a 20 50 68 6f 6e 65 2d 3e 4d 6f 64 75 6c 65 00 -> TeIink SSP: Phone->Module

#3 Re : Présentations » BlueTooth LE, Gatttool via rasbberry pi, ruban LED » 06-09-2019 14:02:13

Je ne l'ai pas fait mais vu le contenu sur internet. ça ne m'inspire rien. Ou du moins pas de compétences assez poussées pour comprendre. 6 fil,  + et - et 4 autres fil qui alimente le ruban led. Petit circuit de base + le microphone pour permettre au ruban de s’illuminer en fonction de l'environnement sonore.

Pour les 3 valeurs modifiable, je ne pense pas que ça soit liée au RGB, puisque les 3 valeurs par défaut sont à 00 ce qui ne correspond en rien au code couleur en Hexa. D'ailleurs en Hexa, le code 00 n'a pas de valeur. Il correspond à "NUL". Ou autrement dit, NULL CHAR.

#4 Re : Présentations » BlueTooth LE, Gatttool via rasbberry pi, ruban LED » 05-09-2019 20:19:50

Voilà ce que ça donne pour le moment:

handle: 0x0001, uuid: 00002800-0000-1000-8000-00805f9b34fb  0018
handle: 0x0002, uuid: 00002803-0000-1000-8000-00805f9b34fb  12
handle: 0x0003, uuid: 00002a00-0000-1000-8000-00805f9b34fb  69 68 6f 6d 65 6e 74 5f 48 36 31 32 37 5f 35 30 41 45 -> Le nom de l'appareil et oui, je me suis amusé à convertir !
handle: 0x0004, uuid: 00002803-0000-1000-8000-00805f9b34fb  02
handle: 0x0005, uuid: 00002a01-0000-1000-8000-00805f9b34fb  00 00
handle: 0x0006, uuid: 00002803-0000-1000-8000-00805f9b34fb  02
handle: 0x0007, uuid: 00002a04-0000-1000-8000-00805f9b34fb  14 00 28 00 00 00 e8 03
handle: 0x0008, uuid: 00002800-0000-1000-8000-00805f9b34fb  01 18
handle: 0x0009, uuid: 00002803-0000-1000-8000-00805f9b34fb  20
handle: 0x000a, uuid: 00002a05-0000-1000-8000-00805f9b34fb  00 00 00 00
handle: 0x000b, uuid: 00002902-0000-1000-8000-00805f9b34fb  00  Ecriture possible
handle: 0x000c, uuid: 00002800-0000-1000-8000-00805f9b34fb  0a 18
handle: 0x000d, uuid: 00002803-0000-1000-8000-00805f9b34fb  02
handle: 0x000e, uuid: 00002a50-0000-1000-8000-00805f9b34fb  02 8a 24 66 82 01 00
handle: 0x000f, uuid: 00002800-0000-1000-8000-00805f9b34fb  10 19 0d 0c 0b 0a 09 08 07 06 05 04 03 02 01 00
handle: 0x0010, uuid: 00002803-0000-1000-8000-00805f9b34fb  12
handle: 0x0011, uuid: 00010203-0405-0607-0809-0a0b0c0d2b10  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
handle: 0x0012, uuid: 00002902-0000-1000-8000-00805f9b34fb  01 00 Ecriture possible
handle: 0x0013, uuid: 00002901-0000-1000-8000-00805f9b34fb  54 65 6c 69 6e 6b 20 53 50 50 3a 20 4d 6f 64 75 6c 65 2d 3e 50 68 6f 6e 65 00
handle: 0x0014, uuid: 00002803-0000-1000-8000-00805f9b34fb  06
handle: 0x0015, uuid: 00010203-0405-0607-0809-0a0b0c0d2b11  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Ecriture possible
handle: 0x0016, uuid: 00002901-0000-1000-8000-00805f9b34fb  54 65 6c 69 6e 6b 20 53 50 50 3a 20 50 68 6f 6e 65 2d 3e 4d 6f 64 75 6c 65 00
handle: 0x0017, uuid: 00002800-0000-1000-8000-00805f9b34fb  12 19 0d 0c 0b 0a 09 08 07 06 05 04 03 02 01 00
handle: 0x0018, uuid: 00002803-0000-1000-8000-00805f9b34fb  06
handle: 0x0019, uuid: 00010203-0405-0607-0809-0a0b0c0d2b12  00 ecriture possible
handle: 0x001a, uuid: 00002901-0000-1000-8000-00805f9b34fb  4f 54 41

#5 Re : Présentations » BlueTooth LE, Gatttool via rasbberry pi, ruban LED » 05-09-2019 18:06:12

Un truc que je vais essayer aussi, c'est de télécharger une VM android, la faire tourner sur virtualbox. J'ai vu que c'était possible d'y avoir le bluetooth. Si j'y arrive, je pourrais faire tourner wireshark... Et une autre chose, comme j'avais fais pour Hector, écrire au constructeur directement...

#6 Re : Présentations » BlueTooth LE, Gatttool via rasbberry pi, ruban LED » 05-09-2019 17:41:11

Aucune doc... Je ne vois pas comment connecter l'appli au rasp... L'app est compatible uniquement Android... J'ai pensé faire une MITM entre mon mobile et la guirlande pour sniffer tout le trafique, mais il faut un dongle spécifique que je n'ai pas... Donc oui, y a du level pour déchiffrer tout ça... J'ai même essayé un coup de wireshark avec mon PC mais sans résultat. J'ai aussi essayé de virtualiser l'appli via bluestack mais pas compatible Bluetooth. Idem récupéré les logs bluetooth du téléphone en activent les logs dans le mode développeur du téléphone mais le fichier log n'est pas généré. Et en effet, il s'agit de faire du reverse engineering...

#7 Présentations » BlueTooth LE, Gatttool via rasbberry pi, ruban LED » 05-09-2019 16:50:52

Françoué
Réponses : 8
Bonjour à tous ! Je reviens vers vous pour solliciter votre aide après une semaine de galère sans réussite sad
Ancien projet ici -> https://debian-facile.org/viewtopic.php?id=16480

Du coup, ce nouveau projet perso est un peu différent de l'ancien même si il se rejoignent via l'utilisation du Bluetooth.

Je m'explique; J'ai acheté il y a 2, 3 mois, un ruban LED; lien: https://www.amazon.fr/gp/product/B0796V … UTF8&psc=1
Celui ci est pilotable via un boitier pour l'allumer, l'éteindre et choix des modes mais aussi via une application mobile nommée "Govee Home".

Cette appli est bien pratique pour choisir ses couleurs, une scène, un mode aléatoire, etc...
Cependant, ça devient pénible de devoir l'ouvrir à chaque fois etc... C'est long !

Mon souhaits: (Attention, y a du niveau !)
Je souhaite, via mon RASP piloter ce ruban via le Bluetooth LE afin d'allumer le ruban et une couleur automatiquement via mon rasp.
Je maitrise tout ce qui est script et Shell pour gérer ça (voir mon ancien post), mais là ça se complique !
Je voudrait interagir avec le module BLE de la guirlande via Gatttool.
Voici ce que j'ai commencer:
#gatttool -i hci0 -b A4:C1:38:44:50:AE -t random -I
#connect
>primary
0c0001, uuid: 0002a05-0000-1000-8000-00805f9b34fb
.... etc,  j'ai environ 25 handles
J'obtiens une liste de tout les handles et leur UUID et en faisant un char-read-uuid 2a05, j'arrive à lire le contenu en convertissant le résultat qui est donnée en hexa.
Sauf que je ne sais pas quel est celui qui me permettra de changer les couleurs...
Il n'y a que 3 handles que je peux modifier, le 0x000b, 0x0012, 0x0019, mais je ne sais pas quelle valeur leur envoyé ni même à quoi il corresponde hmm
J'espère que vous m'avez compris !

Exemple de ce que j'ai pu essayer:
# gatttool -i hci0 -b A4:C1:38:44:50:AE --char-write-req --value=ad45 --handle=0x0019
Un bon début, la guirlande réagit mais de façon simple, elle fait sont signal RGB basique, comme si on venait de la mettre sous tension.
J'ai essayé quelques autres valeurs, mais, résultat identique hmm

Hâte de vous lire smile

#8 Re : Scripts, programmes et robots » Utilisation de Gatttool (bluetooth LE) dans un script shell » 13-01-2017 20:56:45

Sinon j'ai mis les photos sur 800mon serveur, elle sont dispo ici -> http://176.129.173.15/BLE/

Il y a le rasp, les interrupteur relais, l'historique, l'app hector avec l'humidité, la photo du vivarium en général et 2 photos de phasme.

Il est beau ce phasme

Edit à bendia : une photo, mais elles sont balèzes tongue N'héistes pas à éditer pour voir comment on utilise la balise img wink

#10 Re : Scripts, programmes et robots » Utilisation de Gatttool (bluetooth LE) dans un script shell » 13-01-2017 18:26:02

Bon bah c'est terminé ! voilà le script final >


#!/bin/bash
date >> histo.txt # je garde un historique et je le balance dans /var/www/ pour garder un oeil même si je suis pas chez moi
humax="85" #Comme je vous le disais c'est une espèce particulière donc en humidité max je dois pas trop monté au dessus de 85%
humini="75" # pas en dessous de 75%
hum=$(gatttool -t random -b E0:E5:CF:DE:F8:3B --char-read --handle 0x003c | cut -c34-35,37-38) # ça vous connaissez !
hum=$((16#$hum))
hum=$(python -c "print $hum/10.0")
echo $hum % "d'humidité">> histo.txt # Je check l'humidité toujours dans l'historique
if [[ "$humini" > "$hum" ]] # Si l'humidité de l'air est inférieur à 75% je rentre dans la condition
then
        while [[ "$hum" < "$humax" ]] #un petit tant que -> l'humidité est inférieur à 85% je boucle
        do
                gpio write 0 1 #Déclenchement de l'humidificateur, je dis à la GPIO 0 de passer à 1. L'interrupteur relais passe à 1 donc ferme le circuit sur lequel le brumisateur est plugé
                echo "Déclenchement de l'humidificateur">>histo.txt #un petit coup dans l'historique pour surveiller !
                sleep 15 # Je fais une pause de 15s pour laisser le brumisateur tourner un peu
                hum=$(gatttool -t random -b E0:E5:CF:DE:F8:3B --char-read --handle 0x003c | cut -c34-35,37-38) #Je mesure à nouveau l'humidité et la redéfinie dans $hum
                hum=$((16#$hum))
                hum=$(python -c "print $hum/10.0")
                echo $hum % "d'humidité">> histo.txt
        done # Et si l'humidité est remonté au delà de 85% je quitte la boucle
else #Si l'humidité est supérieur à 75% il n'est pas nécessaire d'humidifier d'avantage
        echo "l'humidité est supérieur à 75%, fin du programme">>histo.txt
        exit
fi
gpio write 0 0 # Je coupe le circuit, le brumisateur s'éteint
echo "fin d'humidification, fin du programme">>histo.txt
exit



Et voilà, niveau historique ça donne ->

vendredi 13 janvier 2017, 18:06:42 (UTC+0100)
75.9 % d'humidité
l'humidité est supérieur à 75%, fin du programme
vendredi 13 janvier 2017, 18:07:36 (UTC+0100)
74.8 % d'humidité
Déclenchement de l'humidificateur
75.7 % d'humidité
Déclenchement de l'humidificateur
79.2 % d'humidité
Déclenchement de l'humidificateur
82.7 % d'humidité
Déclenchement de l'humidificateur
85.6 % d'humidité
fin d'humidification, fin du programme

Du coup je vois exactement ce qui se passe !

Et pour finir, il faut que le script bosse tout seul sans que j'ai besoin de l'actionner, j'ajoute une ligne au fichier /etc/crontab ->

*/5 *    * * *    root    /root/hum.sh

Je lui demande de se déclencher toutes les 5 minutes tous les jours.
Enfin le script est "intelligent" car je dois vaporiser les ronces histoire que les phasme puise boire un peu. C'est une "simulation" de la rosé du soir et du matin.
Donc l'humidité est relativement importante. Du coup bah le script ne se déclenche pas !

#12 Re : Scripts, programmes et robots » Utilisation de Gatttool (bluetooth LE) dans un script shell » 13-01-2017 16:04:32

Hello,
Voilà le script, merci du coup de pouce ->

#!/bin/bash
var=$(gatttool -t random -b E0:E5:CF:DE:F8:3B --char-read --handle 0x003c | cut -c34-35,37-38) #Je "découpe le résultat pour obtenir une chaine de type xxxx sans espace
echo $var #vérification de la valeur hexa au cas ou !
var=$((16#$var)) #Je converti en décimal
var=$(($var/10)) #Division /10
echo $var # Je vérifie une dernière fois c'est le bon résultat !

Par contre pas de virgule après la division !

Je vous enverrai une photo plus rendu du script final à venir smile

#13 Re : Scripts, programmes et robots » Utilisation de Gatttool (bluetooth LE) dans un script shell » 13-01-2017 03:09:35

Trouvé !:

root@raspberrypi:~#

gatttool -t random -b E0:E5:CF:DE:F8:3B --char-read --handle 0x003c


Characteristic value/descriptor: 02 f6





Donc là j'ai Characteristic value/descriptor: 02 f6 en retour de la commande. Maintenant il me faudrait un coup de pouce pour récupérer dans la variable uniquement 02f6 pour que ça donne:

$hum=02f6


Sans l'espace afin que je puisse traduire cette variable en décimal et la diviser par 10.. je pensais à truc du genre:

$var=02f6



à titre d'info ça donne -> 758 en décimal et je divise par 10. J'obtiens 75,8% d'humidité !

Je pensais à un truc comme ça:

var=$(gatttool -t random -b E0:E5:CF:DE:F8:3B --char-read --handle 0x0034 | cut -cxx)



Merci d'avance pour vos retours !

Edit à toto :
Mis les balises du forum, etc...

#14 Re : Scripts, programmes et robots » Utilisation de Gatttool (bluetooth LE) dans un script shell » 13-01-2017 02:27:59

Sinon ça marche aussi comme ça:

root@raspberrypi:~#

hcitool lecc --random E0:E5:CF:DE:F8:3B


Connection handle 64    
root@raspberrypi:~# bluetoothctl
[NEW] Device E0:E5:CF:DE:F8:3B hector          
[hector          ]# info
Device E0:E5:CF:DE:F8:3B
  Name: hector          
  Alias: hector          
  Paired: no
  Trusted: no
  Blocked: no
  Connected: yes
  LegacyPairing: no
[hector          ]

#

En gros je suis connecté mais je gratte encore pour trouver mes valeurs !

Edit à toto :
Mis la commande en Commande root du forum.

#16 Re : Scripts, programmes et robots » Utilisation de Gatttool (bluetooth LE) dans un script shell » 12-01-2017 22:58:34

Et en faisant un bypass de l'option I, il n'en veut pas non plus et il me balance la page "help" hmm

#17 Re : Scripts, programmes et robots » Utilisation de Gatttool (bluetooth LE) dans un script shell » 12-01-2017 22:56:43

Hello !

Oui c'est bien ça, j'initialise la connexion sur la station météo via le Bluetooth LE et je dois taper à la main pour checker les infos que je veux.
PS: Bluez, j'ai essayé et c'est mort hmm
J'ai déjà check le "help"... et non la commande #

gatttool -b @mac hector  -t random --char-read-uuid -a af51


me redirige vers la page help -_-

Edit à toto :
Mis la commande root sous la balise Commande root de la fenêtre d'édition du forum pour que ce soit plus lisible par tous.

#18 Scripts, programmes et robots » Utilisation de Gatttool (bluetooth LE) dans un script shell » 12-01-2017 18:11:47

Françoué
Réponses : 18
Bonjour à tous,

Je suis équipé d'un raspberry pi qui tourne sous jessie, celui ci à le bluetooth. J'ai aussi une station météo (hector) qui fonctionne en bluetooth.

A ce jour je suis capable via gatttool de récupéré les info d'hector via le bluetooth LE:

root@raspberrypi:~#

gatttool -b @mac hector -I -t random


[@mac hector][LE]> connect
Attempting to connect to @mac hector
Connection successful
[@mac hector][LE]> char-read-uuid af51 # récupération du taux d'humidité dans l'air -> Valeur en hexadécimal, conversion en décimal puis divisé par 10 et ça me donne l'humidité
handle: 0x003c   value: 03 3a
[@mac hector][LE]> char-read-uuid 3c81 # récupération de la température en °C -> Idem que l'humidité
handle: 0x0034   value: 00 fa




En gros, j'ai un vivarium avec une espèce de phasme tropical que j'élève et qui nécessite un micro climat particulier.
Le RASP est équipé d'une carte interrupteur relais 8 canaux 5V -> 230V que je pilote grâce aux GPIO du RASP. Je suis donc en mesure de contrôler des résistances chauffante pour la température et aussi un brumisateur pour l'humidité de l'air.

Ma question; J'aimerais via un script SH qui se déclenchera via crontab, automatiser la récupération des valeurs température et humidité et les injecter dans des variables.
Après c'est relativement simple de traiter les variables et de déclencher ou non les résistances et brumisateur selon les mesures récupérées. Mais je suis complètement bloqué pour automatiser la connexion, la récupération des valeurs et les injecter dans les variable.
J'aimerais que ça soit automatique sans mon intervention.

En vous remerciant par avance pour votre aide !

Françoué

Edit à bendia : séparation commande et retour comme indiqué là Voir le tuto : Le code, ça pique moins les yeux en couleur wink

#19 Présentations » Encore un nouveau ! » 12-01-2017 17:44:49

Françoué
Réponses : 7
Bonjour à tous !

Je viens de m'inscrire sur ce forum et j'ai déjà un soucis ! J'aimerais poster un message pour sollicité votre aide ! Attention c'est du HARD ! Du bluetooth LE en ligne de commande ! J'attends vos réponses avant de poster !

Merci par avance.
Françoué

Pied de page des forums

Propulsé par FluxBB