Z wave Qubino dimmer zmnhsd1


#1

Bonjour à tous,

j’ai acheté un qubino rail din zmnhsd1 pour remplacer mon télérupteur et ainsi gérer la lumière de mon couloir avec mon capteur de présence xiaomi.
j’ai inclus le qubino avec ma clé zwave mais je rencontre quelques problèmes.
Dans la configuration de Z wave, le qubino apparait bien mais le type est manquant :

et dans les périphériques, je n’ai aucune trace de mon device. J’ai inclus et exclu plusieurs fois le qubino et redémarré gladys 3 fois, ainsi que désinstallé et réinstaller le module z wave plusieurs fois.
Dans les logs, j’ai réussi a trouvé des valeurs et j’ai donc créé un device a la main et a force de tester plusieurs valeurs, j’ai réussi a identifier celui qui me permet d’allumer ou éteindre la lumière.
Avec un scenario couplé a mon capteur xiaomi, la lumière s’allume bien quand je passe dans le couloir et s’arrête au bout de 60s.

Le seul hic a tout ca, c’est que sur les 7 valeurs que j’ai récupéré des logs, je n’ai réussi a en identifier que 2. Et que mes boutons poussoir physique ne fonctionne plus. J’ai lu sur différents site que le qubino fonctionne avec des boutons poussoirs, j’ai bien changé le paramètre dans la config du qubino mais rien n’y fait.
Je me demande dons si le fait que le qubino ne soit pas ‘correctement’ intégré peut avoir un impact sur mes boutons.
voici les logs que j’ai capturé

Si vous avez des idées, je suis preneur :slight_smile:

Merci d’avance


#2

Hello @benji57 !

Tu as visiblement le même problème que @link39 ici => Zwave : wallmote

Tu peux suivre la procédure que je lui ai indiqué pour savoir si mon hypothèse est bonne ?
Avant tout essayons de résoudre se problème de création à l’inclusion et on verra si ça résous ton second soucis :slightly_smiling_face:


#3

Hello @MathieuA ,

Oui j’avais lu se post et effectivement je pense avoir le meme probleme. J’ai reinstallé gladys se matin et je me suis rendu compte que mm la clé ZWave a du mal a s’installer.
Je suis passé sur Jeedom pour tester et voir a quoi correspond mes valeurs du qubino. Je vais aller acheter une 2eme SD pour y reinstaller gladys et tester ta procédure.
Je t’informe dans la semaine


#4

Hello @MathieuA,

voila les logs après avoir ajouté le console.log dans le module Z-wave

> Zwave module: Setting the product id param
0|gladys   | Zwave module: Setting the com name param
0|gladys   | Zwave module: Running connection
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 = "["1-32-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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-38-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-38-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["7-37-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
0|gladys   | { device:
0|gladys   |    { name: 'Static PC Controller',
0|gladys   |      protocol: 'zwave',
0|gladys   |      service: 'zwave',
0|gladys   |      identifier: 1 },
0|gladys   |   types:
0|gladys   |    [ { name: 'Basic',
0|gladys   |        type: 'byte',
0|gladys   |        identifier: '1-32-0',
0|gladys   |        sensor: false,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 255,
0|gladys   |        display: false } ] }
0|gladys   | Zwave module : Device of node 1 created
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 = "["6-37-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-50-0","zwave"]"
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 = "["6-113-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-113-1","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-50-8","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-50-32","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-113-2","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-113-11","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-37-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-38-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-50-32","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-50-0","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-50-32","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-50-8","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-113-0","zwave"]"
0|gladys   | { device: { name: '', protocol: 'zwave', service: 'zwave', identifier: 6 },
0|gladys   |   types:
0|gladys   |    [ { name: 'Switch',
0|gladys   |        type: 'binary',
0|gladys   |        identifier: '6-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: '6-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: '6-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: '6-38-2',
0|gladys   |        sensor: false,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 0,
0|gladys   |        display: false },
0|gladys   |      { name: 'Unknown',
0|gladys   |        type: 'decimal',
0|gladys   |        identifier: '6-50-0',
0|gladys   |        sensor: true,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 0,
0|gladys   |        display: false },
0|gladys   |      { name: 'Power',
0|gladys   |        type: 'decimal',
0|gladys   |        identifier: '6-50-8',
0|gladys   |        sensor: true,
0|gladys   |        unit: 'W',
0|gladys   |        min: 0,
0|gladys   |        max: 0,
0|gladys   |        display: false },
0|gladys   |      { name: 'Exporting',
0|gladys   |        type: 'binary',
0|gladys   |        identifier: '6-50-32',
0|gladys   |        sensor: true,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 1,
0|gladys   |        display: false },
0|gladys   |      { name: 'Alarm Type',
0|gladys   |        type: 'byte',
0|gladys   |        identifier: '6-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: '6-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: '6-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: '6-113-11',
0|gladys   |        sensor: true,
0|gladys   |        unit: '',
0|gladys   |        min: 0,
0|gladys   |        max: 255,
0|gladys   |        display: false } ] }
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
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 = "["6-113-1","zwave"]"
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 = "["6-113-2","zwave"]"
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 = "["6-113-11","zwave"]"
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
0|gladys   | Zwave module: Fail to save deviceState : Error: NotFound
0|gladys   | Zwave module : Error while creating device of node 6 : [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

Sur jeedom j’ai intégré une prise electrique Zwave, donc dans les logs, ça doit aussi apparaitre je pense.
Après une semaine de test sur jeedom, mon matos fonctionne correctement. donc je dirais que ca vient de Gladys. Je programme avec javascript et jquery au boulo, donc si besoin de mettre les mains dans le code, je devrais être apte. Si ca peut aider la communauté je suis partant :smiley:


#5

Salut,

Tu es dans le même cas que moi. Le paramètre ‘name’ n’est pas envoyé par ton équipement Zwave, or c’est un paramètre obligatoire pour la création du device.

Pour forcer la création de ton device, tu peux modifier le code du zwave.connect ligne 111, tu ajoutes ceci :

if(!nodeinfo.type) nodeinfo.type = 'zmnhsd1'; juste avant if(!nodeinfo.name) nodeinfo.name = nodeinfo.type; .

Ce n’est pas une méthode pérenne, mais ça te permettra de valider que le problème vient bien de là.


#6

Merci pour ton retour, je viens de faire la manip et effectivement le device est bien remonté. Je n’y connais rien dans le code de gladys mais il faudrait reussir a trouver pourquoi ca ne fonctionne pas en automatique


#7

Content d’avoir pu t’aider. Comme précisé c’est une méthode temporaire.

Ça fait 2 équipements zwave qui ne remonte pas de champs type et par conséquent pas de champs name.
Il faudrait donc réfléchir à un autre moyen de remplir le champs name.

Soit en se basant sur un autre champs qui est forcement remonté par zwave, soit en laissant une ligne de ce style :
if(!nodeinfo.type) nodeinfo.type = 'unknow';

et laisser remplir ce champs par l’utilisateur.

@MathieuA, tu en penses quoi ?


#8

Hello !

Effectivement c’est bien ce qui me semblais, tous les périphériques ne remonte pas forcement toutes les infos :thinking: @link39 j’ai un meilleur correctif en tête ^^

J’ai commencé a bosser sur un mappage des périphériques Zwave ! Je m’explique.
Actuellement les périphériques Zwave remonte une quantité monstrueuse et inutile d’info, et de la fçon dont c’est fais pour le moment, Gladys enregistre absolument tout… ce qui crée des device, devicetypes et devicestates à n’en plus finir !

Du coup mon idée est de mapper les périphériques avec leurs infos et les fonctionnalités essentielle, d’autant plus que certaines fonctionnalités dépendent directement de certain paramètres réglé par l’utilisateur à la première configuration. Sauf que le réseau Zwave est peu spécial pour ça et ne remonte pas forcément les bon paramètres au bon moment… Ce qui crée des décalage…

Exemple chez moi avec mes fibaro dimmer: Dans les paramètres du noeud la luminosité maximal est à 100 pour certains, à 70 pour d’autres etc. Sauf que quand le noeud est interrogé il remonte systématiquement la luminosité à 255 (la valeur max) du coup sur Gladys ça crée des décalages :triumph:

Donc le but est de mieux contrôler ce comportement absurde !

Donc voilà ce que j’ai fais =>

J’ai créé un schéma avec toutes les infos nécessaires pour contrôler la façon dont le périphérique sera integré dans Gladys :slightly_smiling_face:
Et comme vous pouvez le voir il y a les champs name et type :wink:
Donc ce problème de manque d’infos sera comblé par cette feature !

Bon ce n’est qu’un premier jet, le schéma n’est pas définitif mais à terme on pourras ajouter des schémas très facilement et on aura un meilleur contrôle du réseau Zwave !

Je vais avoir du temps à consacrer a ce module la semaine prochaine, j’espère pouvoir sortir une beta très vite ! Evidemment j’aurais besoin de votre aide pour mapper vos périphériques étant donner que je ne possède pas tout les périphériques Zwave au monde ^^

Je vous demande donc d’être un peu patient :slightly_smiling_face:


#9

Salut Mathieu,

Si je comprend bien, soit :

  • le module est référencé, il a un schéma, et la création des devicetypes se base dessus.
  • le module n’est pas connu, on a pas prévu de schéma, donc il y a création des devicetypes en se basant sur les infos remontées par zwave.

#10

Tout à fait !

Après le but à terme est que n’importe quel utilisateur puisse proposer de rajouter un schema de device simplement en remplissant un formulaire (c’est du moins ce que j’ai en tête) mais en attendant je le ferais de façon manuelle :slightly_smiling_face: