Zwave : wallmote


#1

Bonjour à tous,

je rencontre quelques difficultés avec le module zwave.

Config :

  • Raspberry Pi 3
  • Image raspbian avec Gladys pré-installée
  • Gladys 3.11.6
  • Zwave 3.0.0

Associé à ma clef zwave (Aeotec Stick GEN5) j’ai :

  • 1 module fibaro FGS213 Switch
  • 1 wallmote aeotec

Je voudrais activer les vibrations quand j’appuie sur la wallmote. Je suis donc allé dans “configurer” au niveau de la Wallmote. Au passage on remarque que le type n’est pas renseigné, ce qui me parait étrange.

J’active l’option qui va bien et j’applique la configuration mais rien ne change.

Avec un “pm2 logs” je remarque une erreur lors de la création du node 2 et c’est justement ma wallmote :

0|gladys | Zwave module : Error while creating device of node 2 : [Error (E_VALIDATION) 1 attribute is invalid] Invalid attributes sent to Device:
0|gladys | • name
0|gladys | • “required” validation rule failed for input: ‘’
0|gladys | Specifically, it threw an error. Details:
0|gladys | undefined

Pouvez-vous m’aider à comprendre ce qui cloche?


#2

Je pense que @MathieuA pourra venir à ton aide : c’est lui qui a développé ce magnifique module ! :slight_smile:


Z wave Qubino dimmer zmnhsd1
#3

Salut @link39 !

Excuse moi ça faisait un moment que je n’était pas passer par la :slightly_smiling_face:

Il semblerait que ton périphérique Zwave ne renvoi pas toutes les infos nécessaires à sa création :thinking:

Tu peux ouvrir le fichier zwave.connect.js dans le dossier lib du module Zwave avec FileZila et ajouter

console.log(newDevice);

A la ligne 158, sauvegarder les modifications avec FileZila, redemarrer Gladys et retenter l’inclusion pour confirmer mon hypothèse ?

N’oublie pas de me coller les logs ici quand tu refais l’inclusion que je puisse inspecter ^^

Note: Le dossier du module Zwave se trouve dans le dossier gladys/api/hooks/


#4

Salut !

voici le résultat après modification du zwave.connect.js.

--- logs zwave --- :  { device: { name: '', protocol: 'zwave', service: 'zwave', identifier: 5 },
0|gladys   |   types:
0|gladys   |    [ { name: 'Basic',
0|gladys   |        type: 'byte',
0|gladys   |        identifier: '5-32-0',
0|gladys   |        sensor: false,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 255,
0|gladys   |        display: false },
0|gladys   |      { name: 'Switch',
0|gladys   |        type: 'binary',
0|gladys   |        identifier: '5-37-0',
0|gladys   |        sensor: false,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 1,
0|gladys   |        display: false },
0|gladys   |      { name: 'Level',
0|gladys   |        type: 'byte',
0|gladys   |        identifier: '5-38-0',
0|gladys   |        sensor: false,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 255,
0|gladys   |        display: false },
0|gladys   |      { name: 'Bright',
0|gladys   |        type: 'button',
0|gladys   |        identifier: '5-38-1',
0|gladys   |        sensor: false,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 0,
0|gladys   |        display: false },
0|gladys   |      { name: 'Dim',
0|gladys   |        type: 'button',
0|gladys   |        identifier: '5-38-2',
0|gladys   |        sensor: false,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 0,
0|gladys   |        display: false },
0|gladys   |      { name: 'Alarm Type',
0|gladys   |        type: 'byte',
0|gladys   |        identifier: '5-113-0',
0|gladys   |        sensor: true,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 255,
0|gladys   |        display: false },
0|gladys   |      { name: 'Alarm Level',
0|gladys   |        type: 'byte',
0|gladys   |        identifier: '5-113-1',
0|gladys   |        sensor: true,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 255,
0|gladys   |        display: false },
0|gladys   |      { name: 'SourceNodeId',
0|gladys   |        type: 'byte',
0|gladys   |        identifier: '5-113-2',
0|gladys   |        sensor: true,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 255,
0|gladys   |        display: false },
0|gladys   |      { name: 'Power Management',
0|gladys   |        type: 'byte',
0|gladys   |        identifier: '5-113-11',
0|gladys   |        sensor: true,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 255,
0|gladys   |        display: false },
0|gladys   |      { name: 'Battery Level',
0|gladys   |        type: 'byte',
0|gladys   |        identifier: '5-128-0',
0|gladys   |        sensor: true,
0|gladys   |        unit: '%',
0|gladys   |        min: 0,
0|gladys   |        max: 255,
0|gladys   |        display: false } ] }
0|gladys   | gladys.utils.sqlUnique was not able to find element
0|gladys   | Query = "
0|gladys   |     SELECT devicetype.id
0|gladys   |     FROM device
0|gladys   |     JOIN devicetype ON (device.id = devicetype.device)
0|gladys   |     WHERE devicetype.identifier = ? AND device.service = ?;
0|gladys   |   "
0|gladys   | Params = "["5-128-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
0|gladys   | Zwave module : Error while creating device of node 5 : [Error (E_VALIDATION) 1 attribute is invalid] Invalid attributes sent to Device:
0|gladys   |  • name
0|gladys   |    • "required" validation rule failed for input: ''
0|gladys   | Specifically, it threw an error.  Details:
0|gladys   |  undefined

Comme tu le soupçonnait, l’attribut name n’est pas envoyé par ma wallmote. De même pour type.
Du coup j’ai modifié le code du zwave.connect ligne 111, j’ai ajouté ceci :

if(!nodeinfo.type) nodeinfo.type = 'Wall Switch'; qui est juste avant if(!nodeinfo.name) nodeinfo.name = nodeinfo.type;. De cette manière, même si c’est écris en dur je devrais avoir un type et un name.

Maintenant dans “Mes périphériques” j’ai bien un Wall Switch, comme attendu. Par contre dans Noeuds, j’ai rien dans la colonne Type…

Et plus étrange, je n’arrive pas à configurer correctement le module. Une fois dans l’assistant de configuration j’ai changé un paramètre : “Disable sound on touch”. Parfait ça fonctionne, mais après impossible de retoucher la configuration, quand je veux retourner changer la conf ça me recrée des objets dans l’interface gladys.

Je sèche un peu :smiley: