Gladys Assistant 4.2 est disponible avec la compatibilitĂ© Zigbee2mqtt ! 🚀

we shoule talk in english T.T

@bulolo we have an international category for english talk :slight_smile:

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 :slight_smile:

@Mastho on veut bien les logs du coup

D’ac, je te transfùre ça dùs que possible :slight_smile:

Je reposte ici l’erreur que tu m’as envoyĂ© par email @Mastho :slight_smile:

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 :slight_smile:

2021-04-25T15:15:32+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:15:32+0200 <info> index.js:26 (Object.stop) Stopping Bluetooth service
2021-04-25T15:15:32+0200 <info> bluetooth.stop.js:13 (BluetoothManager.stop) Bluetooth configuration: stopping presence scanner
2021-04-25T15:15:35+0200 <info> index.js:15 (Object.start) Starting Bluetooth service
2021-04-25T15:15:35+0200 <info> bluetooth.initPresenceScanner.js:18 (BluetoothManager.initPresenceScanner) Bluetooth configuration: starting presence scanner
2021-04-25T15:15: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)
}

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 :slight_smile:

1 « J'aime »

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

1 « J'aime »