Désolé de ne pas avoir avoir donné de nouvelle sur ce sujet mais je n’ai pas pris le temps de me repencher dessus.
Voici néanmoins les données que j’avais pu identifier en regardant rapidement dans les trames bluetooth. Bon, j’y ai quand même passé un peu de temps et certainement quelques litres d’eau (un comble pour un pommeau qui est censé faire economiser l’eau
)
- le volume d’eau
sudo gatttool -i hci1 -b 50:8C:E6:5D:FF:0D --char-read --handle=0x0012
Characteristic value/descriptor: 6a 00 04 00
=> 106 (6a) litres semble correspondre au volumes des X dernières douches suivant ce qui est configuré
=> 4 litres correspond au volume de la douche en cours
- Les seuils de volume et les couleurs associées
sudo gatttool -i hci1 -b 50:8C:E6:5D:FF:0D --char-read --handle=0x0020
Characteristic value/descriptor: 08 00 ff 00 10 00 00 ff 18 ff 00 ff 20 ff 00 00
=> 08 : 8 litres en décimal => Volume seuil 1
=> 00 ff 00 : Couleur seuil 1
=> 10 : 16 litres en décimal => Volume seuil 2
=> 00 00 ff : Couleur seuil 2
=> 18 : 24 litres en décimal => Volume seuil 3
=> ff 00 ff : Couleur seuil 3
=> 20 : 32 litres en décimal => Volume seuil 4
=> ff 00 00 : Couleur seuil 4
- la version du firmware
sudo gatttool -i hci1 -b 50:8C:E6:5D:FF:0D --char-read --handle=0x000e
Characteristic value/descriptor: 32 30 31 38 31 31 31 38
=> conversion en ASCII : 20181118
- la version du hardware
sudo gatttool -i hci1 -b 50:8C:E6:5D:FF:0D --char-read --handle=0x0032
Characteristic value/descriptor: 08 00
=> 08 : version hardware
- Le device UUID
sudo gatttool -i hci1 -b 50:8C:E6:5D:FF:0D --char-read --handle=0x0010
Characteristic value/descriptor: 31 38 47 02 38 31 36 39 45 00 4b 00
=> 02473831-39363138-004b0045
Pour les plus téméraires, voici les fichiers hydrao.zip.txt (136,7 Ko) avec lesquels j’ai fait mes tests. Ils sont à ajouter (ne pas oublier de mettre les bons droits et utilisateur) dans le plugin BLEA pour prendre en charge les pommeaux.
Dans cette version, j’ai commenté une grande partie du code pour ce conserver que l’interrogation du volume afin de ne pas surcharger le pommeau. Si vous voulez tester le reste, il faudra décommenter une partie du code.
A copier dans le répertoire \plugins\blea\core\config\devices\hydrao\
- hydrao.json
- hydrao_aloe.jpg
- hydrao_cereus.jpg
- hydrao_first.jpg
- hydrao_yucca.jpg
A copier dans le répertoire \plugins\blea\resources\blead\devices\
- hydrao.py
Pour le moment, cela tourne sur un RPI3 de test avec une clé Sena UD100 depuis plusieurs mois avec les réglages suivants sur lequel il n’y a pas d’autre device Blea (seulement 2 pommeaux) :
Comme indiqué dans mon message précédent, il faut interroger le pommeau très frequemment, ce qui peut avoir des répercutions sur le fonctionnement global du plugin
On peut voir sur les graphs qu’il y a parfois des valeurs qui ne remontent pas car il arrive assez régulièrement que le pommeau ne réponde pas.
Pour l’ajout d’un pommeau, il faut sélectionner « Hydrao » lors du scan :
Il est ensuite possible de choisir le type de pommeau pour avoir la bonne illustration :
Côté widget, ca donne ceci :
Comme indiqué, c’est une version pour tester et il y a pas mal de chose que je j’aurai voulu améliorer dans le code, mais je n’ai pas eu le temps. S’il y a des partants, n’hésitez pas .
-
Par exemple, récupérer le firmware, le hardware et le DeviceUUID une seule fois à la création de l’équipement car ce sont des données qui ne changeront pas. Il n’est donc pas necessaire de surcharger le pommeau à chaque fois pour récupérer ces infos.
-
Pour les seuils de couleurs et volumes, c’est un peu la même chose, je ne pense pas qu’il soit necessaire de les récupérer à chaque fois. On pourrait imaginer le faire à la première connexion lorsque le pommeau est de nouveau détecter ou bien de façon manuel.
-
Pour le polling, peut être faudrait-il créer un thread dédié qui renverrait les infos au plugin et s’arrêterait lorsque le pommeau n’est plus détecter. Ca éviterait d’avoir un polling toutes les 20 secondes, 24/24 alors que le pommeau n’est finalement visible que quelques (dizaines de) minutes par jour.
-
Pour les commandes de seuil, il faudrait s’assurer que seuil 1 < seuil 2 < seuil 3 < Seuil 4 avant de les envoyer au pommeau.