Xiaomi Yeelight compatibilité


#41

J’ai lancé une configuration, pour l’instant il n’a découvert que ma desklamp et mes bulbs, en attendant qu’il découvre les autres les contrôles semblent bons ! :smiley:

EDIT : J’ai voulu changer la brightness de la Desklamp :

0|gladys | Event : create : new Event with code : devicetype-new-value
0|gladys | Scenario : Trigger : New event : devicetype-new-value
0|gladys | Scenario : Trigger : Found 0 launchers with code devicetype-new-val ue.
0|gladys | Event : create : new Event with code : devicetype-new-value
0|gladys | SyntaxError: Unexpected token { in JSON at position 27
0|gladys | at JSON.parse ()
0|gladys | at Yeelight.formatResponse (/home/pi/gladys/api/hooks/yeelight/ node_modules/yeelight-wifi/build/Yeelight.js:241:25)
0|gladys | at emitOne (events.js:116:13)
0|gladys | at Socket.emit (events.js:211:7)
0|gladys | at addChunk (_stream_readable.js:263:12)
0|gladys | at readableAddChunk (_stream_readable.js:250:11)
0|gladys | at Socket.Readable.push (_stream_readable.js:208:10)
0|gladys | at TCP.onread (net.js:594:20)
PM2 | App [gladys] with id [0] and pid [3182], exited with code [1] via s ignal [SIGINT]
PM2 | Starting execution sequence in -fork mode- for app name:gladys id:0
PM2 | App name:gladys id:0 online


#42

Oui, j’ai aussi déjà rencontré ce problème, mais très rarement.

0|gladys | SyntaxError: Unexpected token { in JSON at position 27
0|gladys | at JSON.parse ()
0|gladys | at Yeelight.formatResponse (/home/pi/gladys/api/hooks/yeelight/node_modules/yeelight-wifi/build/Yeelight.js:241:25)

Comme l’indique le message ci-dessus, il semble que lors de l’envoi de commande aux lampes, la réponse (en JSON) a été mal formatée et donc générer une erreur lors de son parsage par la librairie que j’utilise (yeelight-wifi).

Pour ce problème, je ne peux malheureusement rien faire, il n’est pas directement lié à mon module :worried:
Il faudrait voir avec le développeur de la librairie…


#43

@pierre-gilles, c’est publié :wink:


#44

Pas de soucis alors, par contre, le module n’est pas utilisable via le chat ? Mes bulbs sont attribués à “Chambre”, et quand je dis “allume les lumières de la chambre”, il ne trouve aucun appareil a allumer :

0|gladys   |   label: 'set-device-on',
0|gladys   |   conversationMessages: [] }
0|gladys   | DeviceType.command : Found 0 deviceType in room Chambre
0|gladys   | DeviceType.command : Found 0 deviceType in room Chambre
0|gladys   | Brain : answer : Answering with label default in language fr-FR
0|gladys   | Brain : answer : Found 2 possible.
0|gladys   | Brain : answer : Trying to contact telegram
0|gladys   | Message sent with success with telegram. Aborting the chain.
0|gladys   | brain : classify : Answered in 0s, 810.898 ms

#45

Peut être la même erreur que là :


#46

Le module n’est pas sensé le faire au setup ?


#47

J’ai mis Power sur “Lumière” pour les bulbs, j’ai bien 2 appareils détectés du coup, mais Telegram lève une erreur, et je ne peux pas controler mes périphériques depuis l’onglet de gestion… Les sliders ne renvoient marchent plus et les switchs de power non plus, rien ne se passe mais rien n’est dit non plus dans les logs.

Pour Telegram :

0|gladys   | Telegram : Received message on chat ID = , from = "Clément Poiret" with content = "Allume la chambre"
0|gladys   | brain : classify : Identified label deviceType;set-device-on
0|gladys   | Getting conversation , found 1 messages.
0|gladys   | { deviceTypes: [],
0|gladys   |   rooms:
0|gladys   |    [ RowDataPacket {
0|gladys   |        name: 'Chambre',
0|gladys   |        house: 1,
0|gladys   |        permission: null,
0|gladys   |        id: 3,
0|gladys   |        createdAt: 2018-08-20T17:15:16.000Z,
0|gladys   |        updatedAt: 2018-08-20T17:15:16.000Z },
0|gladys   |      RowDataPacket {
0|gladys   |        name: 'Chambre',
0|gladys   |        house: 3,
0|gladys   |        permission: null,
0|gladys   |        id: 6,
0|gladys   |        createdAt: 2018-08-28T12:14:37.000Z,
0|gladys   |        updatedAt: 2018-08-28T12:14:37.000Z } ],
0|gladys   |   houses: [],
0|gladys   |   times: [],
0|gladys   |   replacedText: 'Allume la chambre',
0|gladys   |   allHouses:
0|gladys   |    [ RowDataPacket {
0|gladys   |        uuid: 'd52b130c-b301-4606-9146-f159f0885db9',
0|gladys   |        name: 'Appartement',
0|gladys   |        address: '',
0|gladys   |        city: '',
0|gladys   |        postcode: '',
0|gladys   |        country: 'France',
0|gladys   |        latitude: 49,
0|gladys   |        longitude: 1,
0|gladys   |        id: 3,
0|gladys   |        createdAt: 2018-08-27T16:50:28.000Z,
0|gladys   |        updatedAt: 2018-08-27T16:50:28.000Z } ],
0|gladys   |   language: 'fr',
0|gladys   |   user:
0|gladys   |    RowDataPacket {
0|gladys   |      id: 1,
0|gladys   |      firstname: 'Clément',
0|gladys   |      lastname: 'POIRET',
0|gladys   |      email: '',
0|gladys   |      birthdate: 1997-12-10T00:00:00.000Z,
0|gladys   |      gender: 0,
0|gladys   |      language: 'fr-FR',
0|gladys   |      assistantName: 'Gladys',
0|gladys   |      preparationTimeAfterWakeUp: 4500,
0|gladys   |      role: 'admin',
0|gladys   |      createdAt: 2018-08-20T17:10:58.000Z,
0|gladys   |      updatedAt: 2018-08-27T16:51:00.000Z },
0|gladys   |   label: 'set-device-on',
0|gladys   |   conversationMessages: [] }
0|gladys   | DeviceType.command : Found 0 deviceType in room Chambre
0|gladys   | DeviceType.command : Found 2 deviceType in room Chambre
0|gladys   | Brain : classify : Error while executing command in service = deviceType, label = set-device-on
0|gladys   | undefined
0|gladys   | Brain : answer : Answering with label error in language fr-FR
0|gladys   | Brain : answer : Found 2 possible.
0|gladys   | Brain : answer : Trying to contact telegram
0|gladys   | Message sent with success with telegram. Aborting the chain.
0|gladys   | Sentence : create : Inserting sentence Allume la chambre
0|gladys   | brain : classify : Answered in 0s, 936.398 ms

#48

J’ai testé chez moi et pas de soucis.
Le problème ne viendrais pas du fait que tu as 2 houses ?

0|gladys   | { deviceTypes: [],
0|gladys   |   rooms:
0|gladys   |    [ RowDataPacket {
0|gladys   |        name: 'Chambre',
0|gladys   |        house: 1,
0|gladys   |        permission: null,
0|gladys   |        id: 3,
0|gladys   |        createdAt: 2018-08-20T17:15:16.000Z,
0|gladys   |        updatedAt: 2018-08-20T17:15:16.000Z },
0|gladys   |      RowDataPacket {
0|gladys   |        name: 'Chambre',
0|gladys   |        house: 3,
0|gladys   |        permission: null,
0|gladys   |        id: 6,
0|gladys   |        createdAt: 2018-08-28T12:14:37.000Z,
0|gladys   |        updatedAt: 2018-08-28T12:14:37.000Z } ],

Perso, j’ai ça :

0|gladys   | { deviceTypes: [],
0|gladys   |   rooms:
0|gladys   |    [ RowDataPacket {
0|gladys   |        name: 'Chambre',
0|gladys   |        house: 1,
0|gladys   |        permission: null,
0|gladys   |        id: 4,
0|gladys   |        createdAt: 2018-06-10T09:40:26.000Z,
0|gladys   |        updatedAt: 2018-06-10T09:40:26.000Z } ],

#49

Dans ce cas il faut que tu catch ce genre d’erreur avec un try { } catch {}, ce n’est pas normal que Gladys reboot avec ce genre d’erreurs! :slight_smile:

Je vais attendre la résolution des autres problèmes avant de valider sur le store :wink:


#50

Hmm, je n’avais pas remarqué effectivement j’avais avant une “house” avec une piece “chambre” mais je l’ai supprimée pour en refaire une autre, même si elle n’apparaît plus, elle doit certainement encore être dans la BDD, je vais refaire une install propre :slight_smile:


#51

Je viens d’accepter le module sur le store! :wink:


#52

Salut,
Je viens d’installer Gladys sur RPI 3 et j’ai configuré une maison, des pièces. J’ai installé le nouveau module Yeelight pour contrôler 3 lampes (1 ampoule, 1 strip LED, 1 lampe de chevet). Seulement après démarrage de Gladys, les logs indiquent bien la détection des trois lampes sur le réseau :
0|gladys | Yeelight - Device found, id: 0x0000000003001066, type: stripe
0|gladys | Yeelight - Device unknown! Please launch module configuration again.
0|gladys | Yeelight - Device found, id: 0x0000000004cae774, type: color
0|gladys | Yeelight - Device unknown! Please launch module configuration again.
0|gladys | Yeelight - Device found, id: 0x00000000048010d1, type: bslamp1
0|gladys | Yeelight - Device unknown! Please launch module configuration again.
Mais lorsque je clique sur “Configuration” dans le module, rien ne se passe, aucun device n’est ajouté et rien n’apparait dans les logs.
Est-ce que quelqu’un a rencontré ce problème ?

Merci d’avance


#53

Bonjour,
Je viens d’installer le module, mon périphérique est bien créé :

mais quand je souhaite faire une action sur la lampe j’ai une erreur dans la console du navigateur (aucune erreur côté back). Par exemple pour allumer la lampe :

Erreur d’analyse XML : aucun élément trouvé Emplacement : http://192.168.XX.XX/devicetype/1/exec Numéro de ligne 1, Colonne 1 :

et quand je vais sur cette url j’ai une 404…


#54

résolu en désinstallant et en réinstallant le module, la configuration n’avait pas du bien se faire


#55

en fait c’est pas résolu… j’ai voulu éteindre la lumière via un script, ça a fonctionné mais gladys a reboot à cause d’une erreur :

0|gladys | SyntaxError: Unexpected token { in JSON at position 28
0|gladys | at JSON.parse ()
0|gladys | at Yeelight.formatResponse (/home/pi/gladys/api/hooks/yeelight/node_modules/yeelight-wifi/build/Yeelight.js:241:25)
0|gladys | at emitOne (events.js:116:13)
0|gladys | at Socket.emit (events.js:211:7)
0|gladys | at addChunk (_stream_readable.js:263:12)
0|gladys | at readableAddChunk (_stream_readable.js:250:11)
0|gladys | at Socket.Readable.push (_stream_readable.js:208:10)
0|gladys | at TCP.onread (net.js:594:20)

et j’ai maintenant de nouveau la même erreur avec une 404 sur http://192.168.XX.XX/devicetype/1/exec en get et en post


#56

Salut @Exilon62,
pourrais-tu me donner le script que tu exécutes et qui te donne une erreur?

Lors d’action via le dashboard, as-tu aussi des erreurs?


#57

Salut @QuentUn,
Après redémarrage de Gladys, c’est l’init des lampes qui est effectué (récupération des valeurs courantes), pas leur installation.

Si tu as correctement suivi la procédure d’installation, tu aurais du voir apparaitre tes lampes dans le panneau “Périphériques” de Gladys et une trace dans les logs de la création, du style :

1|gladys   | Yeelight - Device found, id: 0x000000000359f0b9, type: color
1|gladys   | Yeelight - Device found, id: 0x00000000035ac052, type: color
1|gladys   | Yeelight - Device 0x00000000035ac052 created!
1|gladys   | Yeelight - Device 0x000000000359f0b9 created!

Je t’invite donc à recommencer en visualisant les log de Gladys, en même temps, pour voir si elle trouve bien tes lampes.

Je remarque que tu as un type de lampe qui n’est pas géré actuellement (bslamp1) peux tu me dire de quel modèle il s’agit que je l’ajoute à la liste?


#58

voici le script :
gladys.modules.yeelight.send({identifier: '0x00000000052c5520', method: 'set_power', params: ['off']});

quand je l’éxecute maintenant j’ai l’erreur :
Error in script : TypeError: Cannot read property 'sendRequest' of undefined

J’ai exactement les même erreurs quand j’effectue les actions sur le dashboard


#59

Je pense que tu as ce problème car tes lampes ne sont pas correctement initialisées lors du démarrage de Gladys.
Au démarrage, tu dois voir apparaitre, pour chacune de tes lampes, les lignes suivantes dans les logs :

0|gladys   | Yeelight - Device found, id: 0x000000000359f0b9, type: color
0|gladys   | Yeelight - Device, id: 0x00000000052c5520 exists in Gladys
0|gladys   | Yeelight - Device: 0x00000000052c5520 (type) initialized

Si ce n’est pas le cas, c’est qu’elles n’ont pas été détectées et donc initialisées.


#60

en effet je n’ai pas ces lignes dans la console après un redémarrage :confused:
quand je retente la configuration ça ne fait rien, elles n’apparaissent pas non plus alors que la première fois ça a fonctionné.

Edit : ces lignes apparaissent très longtemps après en fait, et je ne sais dire pourquoi ça met autant de temps. Une Fois qu’elles apparaissent ça fonctionne de nouveau