nous devrions parler en anglais T.T
@bulolo nous avons une catégorie internationale pour discuter en anglais
\n\nhttps://community.gladysassistant.com/c/international/45
Salut à tous,
Je viens de tester la clé ZZH (CC2652R) après l’avoir flashée avec le coordinator firmware. J’ai suivi le tutoriel pour activer l’intégration Zigbee2Mqtt et avant d’avoir pu scanner le moindre équipement, je me suis rendu compte que le module Bluetooth ne fonctionnait plus… Après reboot de Gladys, le menu de scan d’équipements Bluetooth me dit que le module est désactivé.
J’ai vu dans un autre sujet que @Tlse-vins a aussi la clé ZZH. Est-ce que tu as constaté le même genre de dysfonctionnements au niveau du Bluetooth ?
Hello,
J’ai aussi la clé ZZH mais de mon côté le Bluetooth fonctionne parfaitement, j’ai déjà eu des problèmes avec le Bluetooth mais dans mon cas un reboot de l’hôte et pas seulement du conteneur suffisait à résoudre le problème…
Moi aussi, je n’ai jamais eu de problème avec le Bluetooth. Même avant la clef, la détection de périphériques ce fesait sans problème.
Mince ! Du coup j’ai réinstallé mon instance car impossible de réactiver le Bluetooth que j’utilise beaucoup, surtout avec l’arrivée de la 4.3 ! J’ai quand même gardé la log pour fouiller quand j’aurai un peu de temps.
@Mastho tu avais quoi comme problème le Bluetooth ?
Après avoir branché et installé Zigbee2Mqtt, j’ai vu que les utilisateurs étaient marqués comme absents sur le Dashboard depuis exactement la même durée. Pour vérifier, j’ai essayé un scan des périphériques Bluetooth qui s’est mis à mouliner sans jamais rien afficher. J’ai essayé d’arrêter puis relancer le service Bluetooth sans succès. J’ai fini par faire un reboot du Raspberry et quand je suis revenu sur la page de scan Bluetooth, un bandeau jaune indiquait que le module Bluetooth était désactivé.
Aïe, ok il y a peut-être une incompatibilité entre bluetooth et zigbee2mqtt…
Le bluetooth on utilise malheureusement une dépendance NPM qui est affreusement buggées (il n’y a pas mieux sur le marché malheureusement). On va investiguer du coup
@VonOx @AlexTrovato une idée sur ce qui pourrait bloquer ici ?
Pas de conflit pour moi, le firmware zigbee2mqtt pour la zzh! n’exploite pas le Bluetooth de la puce donc aucun lien.
Ok, c’est rassurant 
@Mastho on veut bien les logs du coup
D’ac, je te transfère ça dès que possible 
Je reposte ici l’erreur que tu m’as envoyé par email @Mastho 
2021-04-25T15:20:35+0200 <error> index.js:16 (process.<anonymous>) Error: Could not start scanning, state is unknown (not poweredOn)
at Noble.scan (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/noble.js:107:21)
at Noble.startScanning (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/noble.js:136:10)
at /src/server/services/bluetooth/lib/commands/bluetooth.scan.js:67:24
at Promise._execute (/src/server/services/bluetooth/node_modules/bluebird/js/release/debuggability.js:384:9)
at Promise._resolveFromExecutor (/src/server/services/bluetooth/node_modules/bluebird/js/release/promise.js:518:18)
at new Promise (/src/server/services/bluetooth/node_modules/bluebird/js/release/promise.js:103:10)
at BluetoothManager.scan (/src/server/services/bluetooth/lib/commands/bluetooth.scan.js:35:12)
at BluetoothManager.scanPresence (/src/server/services/bluetooth/lib/commands/bluetooth.scanPresence.js:26:36)
2021-04-25T15:21:35+0200 <error> index.js:15 (process.<anonymous>) unhandledRejection catched: Promise {
<rejected> Error: Could not start scanning, state is unknown (not poweredOn)
at Noble.scan (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/noble.js:107:21)
at Noble.startScanning (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/noble.js:136:10)
at /src/server/services/bluetooth/lib/commands/bluetooth.scan.js:67:24
at Promise._execute (/src/server/services/bluetooth/node_modules/bluebird/js/release/debuggability.js:384:9)
at Promise._resolveFromExecutor (/src/server/services/bluetooth/node_modules/bluebird/js/release/promise.js:518:18)
at new Promise (/src/server/services/bluetooth/node_modules/bluebird/js/release/promise.js:103:10)
at BluetoothManager.scan (/src/server/services/bluetooth/lib/commands/bluetooth.scan.js:35:12)
at BluetoothManager.scanPresence (/src/server/services/bluetooth/lib/commands/bluetooth.scanPresence.js:26:36)
}
J’ai cherché un peu sur internet, et j’ai trouvé ça:
J’ai l’impression qu’il y a un petit problème de lifecycle avec le service bluetooth.
@AlexTrovato tu en pense quoi ?
J’en pense qu’il y a un trou dans la raquette.
@Mastho dans les settings de Gladys, tu devrais trouver la liste des services, peux-tu tenter de réactiver le Bluetooth, en capturant les logs ?
On peux passer en message privé pour les échanges “sensibles” si tu préfères.
Salut @AlexTrovato,
J’ai été obligé de faire une réinstallation car je n’ai pas trouvé le moyen de refaire fonctionner le Bluetooth donc je ne pourrais pas faire le test. Par contre, dans la log que j’ai gardée et transférée à @pierre-gilles, il y a un moment où je fais une relance du service Bluetooth. Je vais essayer de te retrouver ça 
2021-04-25T15:15:32+0200 index.js:16 (process.) Erreur : Impossible de démarrer la numérisation, l’état est inconnu (non allumé)
at Noble.scan (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/noble.js:107:21)
at Noble.startScanning (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/noble.js:136:10)
at /src/server/services/bluetooth/lib/commands/bluetooth.scan.js:67:24
at Promise._execute (/src/server/services/bluetooth/node_modules/bluebird/js/release/debuggability.js:384:9)
at Promise._resolveFromExecutor (/src/server/services/bluetooth/node_modules/bluebird/js/release/promise.js:518:18)
at new Promise (/src/server/services/bluetooth/node_modules/bluebird/js/release/promise.js:103:10)
at BluetoothManager.scan (/src/server/services/bluetooth/lib/commands/bluetooth.scan.js:35:12)
at BluetoothManager.scanPresence (/src/server/services/bluetooth/lib/commands/bluetooth.scanPresence.js:26:36)
2021-04-25T15:15:32+0200 index.js:26 (Object.stop) Arrêt du service Bluetooth
2021-04-25T15:15:32+0200 bluetooth.stop.js:13 (BluetoothManager.stop) Configuration Bluetooth : arrêt du scanner de présence
2021-04-25T15:15:35+0200 index.js:15 (Object.start) Démarrage du service Bluetooth
2021-04-25T15:15:35+0200 bluetooth.initPresenceScanner.js:18 (BluetoothManager.initPresenceScanner) Configuration Bluetooth : démarrage du scanner de présence
2021-04-25T15:15:35+0200 index.js:15 (process.) unhandledRejection catched: Promise {
Erreur : Impossible de démarrer la numérisation, l’état est inconnu (non allumé)
at Noble.scan (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/noble.js:107:21)
at Noble.startScanning (/src/server/services/bluetooth/node_modules/@abandonware/noble/lib/noble.js:136:10)
at /src/server/services/bluetooth/lib/commands/bluetooth.scan.js:67:24
at Promise._execute (/src/server/services/bluetooth/node_modules/bluebird/js/release/debuggability.js:384:9)
at Promise._resolveFromExecutor (/src/server/services/bluetooth/node_modules/bluebird/js/release/promise.js:518:18)
at new Promise (/src/server/services/bluetooth/node_modules/bluebird/js/release/promise.js:103:10)
at BluetoothManager.scan (/src/server/services/bluetooth/lib/commands/bluetooth.scan.js:35:12)
at BluetoothManager.scanPresence (/src/server/services/bluetooth/lib/commands/bluetooth.scanPresence.js:26:36)
}
Ok super, on dirait que c’est “simple”. Le scanner de presence est lancé alors que le Bluetooth n’est pas initialisé.
En revanche, @Mastho tu confirmes que le Bluetooth n’est jamais revenu dans un état fonctionnel ?
Oui, je n’ai pas réussi à le rétablir. En plus de la relance du service Bluetooth, j’ai tenté de stopper le service Zigbee2Mqtt vu que c’est à ce moment-là que j’ai perdu le Bluetooth mais sans succès. Et j’ai fini par un reboot du Raspberry.
@AlexTrovato Je suis allé voir le code de l’ancien service bluetooth dans Gladys 3, et effectivement on ne lançais un scan que quand le state était “poweredOn” (cf gladys-bluetooth/scan.js at master · GladysAssistant/gladys-bluetooth · GitHub)
Dans le cas du service bluetooth sur Gladys 4, visiblement on lance le scan sans vérification du state!
cf => Gladys/bluetooth.scan.js at master · GladysAssistant/Gladys · GitHub
Pourtant on enregistre bien dans une variable “ready” quand le bluetooth est prêt. il faudrait juste utiliser la variable 
Est-ce que par hasard si on rajoutait “this.ready” avant de lancer le scan:
if (!this.scanning && this.ready) {
this.bluetooth.startScanning([], true);
}
ça ferait le job ?
C’est le seul endroit ou on appelle la fonction “startScanning”, et ça éviterait l’erreur qu’on voit