Xiaomi Yeelight compatibilité


#81

Pour utiliser “smooth”, il faut ajouter un timing (500ms comme pour power), je pense…


#82

en effet et ça fonctionne ! tout me semble bon, je te laisse vérifier si ça te convient :slight_smile:


#83

J’ai mergé la PR sur develop et fait un peu de refactoring pour généraliser le connect() à chaque appel.
Un dernier test et je passe tout ça sur master, puis mise à jour du module dans Gladys :wink:


#84

Ah quand la release, j’ai pas encore passé la nouvelle version sur mon gladys de prod, j’ai hâte :stuck_out_tongue:


#85

C’est déployé sur le Store :wink:


#86

j’ai eu un soucis pendant la configuration (quand je clique sur le bouton), le périphérique n’est donc pas créé :

 Yeelight - Device found, IP: 192.168.0.12, type: undefined
0|gladys   | Sending 500 ("Server Error") response: 
0|gladys   |  TypeError: Cannot read property 'includes' of undefined
0|gladys   |     at Object.isColor (/home/pi/gladys/api/hooks/yeelight/lib/utils.js:6:32)
0|gladys   |     at Promise.mapSeries (/home/pi/gladys/api/hooks/yeelight/lib/setup.js:66:16)
0|gladys   |     at tryCatcher (/home/pi/gladys/node_modules/bluebird/js/release/util.js:16:23)
0|gladys   |     at Object.gotValue (/home/pi/gladys/node_modules/bluebird/js/release/reduce.js:155:18)
0|gladys   |     at Object.gotAccum (/home/pi/gladys/node_modules/bluebird/js/release/reduce.js:144:25)
0|gladys   |     at Object.tryCatcher (/home/pi/gladys/node_modules/bluebird/js/release/util.js:16:23)
0|gladys   |     at Promise._settlePromiseFromHandler (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:512:31)
0|gladys   |     at Promise._settlePromise (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:569:18)
0|gladys   |     at Promise._settlePromiseCtx (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:606:10)
0|gladys   |     at Async._drainQueue (/home/pi/gladys/node_modules/bluebird/js/release/async.js:138:12)
0|gladys   |     at Async._drainQueues (/home/pi/gladys/node_modules/bluebird/js/release/async.js:143:10)
0|gladys   |     at Immediate.Async.drainQueues (/home/pi/gladys/node_modules/bluebird/js/release/async.js:17:14)
0|gladys   |     at runCallback (timers.js:789:20)
0|gladys   |     at tryOnImmediate (timers.js:751:5)
0|gladys   |     at processImmediate [as _immediateCallback] (timers.js:722:5)
0|gladys   | Server Error:
0|gladys   | TypeError: Cannot read property 'includes' of undefined
0|gladys   |     at Object.isColor (/home/pi/gladys/api/hooks/yeelight/lib/utils.js:6:32)
0|gladys   |     at Promise.mapSeries (/home/pi/gladys/api/hooks/yeelight/lib/setup.js:66:16)
0|gladys   |     at tryCatcher (/home/pi/gladys/node_modules/bluebird/js/release/util.js:16:23)
0|gladys   |     at Object.gotValue (/home/pi/gladys/node_modules/bluebird/js/release/reduce.js:155:18)
0|gladys   |     at Object.gotAccum (/home/pi/gladys/node_modules/bluebird/js/release/reduce.js:144:25)
0|gladys   |     at Object.tryCatcher (/home/pi/gladys/node_modules/bluebird/js/release/util.js:16:23)
0|gladys   |     at Promise._settlePromiseFromHandler (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:512:31)
0|gladys   |     at Promise._settlePromise (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:569:18)
0|gladys   |     at Promise._settlePromiseCtx (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:606:10)
0|gladys   |     at Async._drainQueue (/home/pi/gladys/node_modules/bluebird/js/release/async.js:138:12)
0|gladys   |     at Async._drainQueues (/home/pi/gladys/node_modules/bluebird/js/release/async.js:143:10)
0|gladys   |     at Immediate.Async.drainQueues (/home/pi/gladys/node_modules/bluebird/js/release/async.js:17:14)
0|gladys   |     at runCallback (timers.js:789:20)
0|gladys   |     at tryOnImmediate (timers.js:751:5)
0|gladys   |     at processImmediate [as _immediateCallback] (timers.js:722:5)

#87

Étrange, je n’ai pas ce problème chez moi…

Pourrais-tu ajouter la ligne suivante (ligne 6) au fichier “/home/pi/gladys/api/hooks/yeelight/lib/utils.js” :

5	isColor : function isColor(yeelight) {
6		sails.log.debug(`${JSON.stringify(yeelight)}`);
7		return yeelight.capabilities.includes('set_rgb') && yeelight.capabilities.includes('set_hsv');
8	},

puis relancer Gladys, et refaire la configuration.

Ca me permettra de voir ce qui cloche.


#88

voilà ce que j’ai en plus :
{"host":"192.168.0.12","port":55443}


#89

Quelle est le modèle de l’ampoule correspondant à l’adresse IP, car avec celles que j’ai chez moi, j’ai beaucoup plus de données dans la réponse ?


#90

c’est le modèle avec la lumière blanche, mais bizaremment quand j’ai fais ma PR cela fonctionnait parfaitement. Je ne me souviens pas du tout avoir touché à ça par contre, quand j’ai plus de temps je regarde les différences


#91

Bizzarement, ça fonctionne sur une instance vierge de Gladys… du coup j’ai créé mes devices à la main comme je connais les adresses IP de mes lampes et ça fonctionne… Peut être des restes de l’ancien module en bdd je sais pas


#92

Le but est quand même de les créer en automatique lors de la configuration du module…
Au pire, je peux ajouter une sécu pour que ça ne plante plus.


#93

Bonjour je vais commencer par
souhaiter une bonne année ainsi qu’une bonne santé à tout le monde !!!:gift::tada::sparkler:

Par contre j’ai un petit problème avec ce module depuis la mise à jour 3.0.0 (avec yeelight-awesome ?)
pour les scripts j’obitient un : ReferenceError: yeelight is not defined
voila mon script :
gladys.modules.yeelight.send({identifier: '192.168.1.31', method: 'set_power', params: ['off']}); (rien de compliqué pour démarrer).

j’ai appliquer temporairement la solution de ItsJimi :

est-ce que quelqu’un sait d’où sa peut venir ?
Merci d’avance.