Renvoyer un playload en intégrant une variable / Clavier Zigbee compatible Zigbee2mqtt

Bonjour,

J’essaie de faire fonctionner mon clavier Linkind mais je rencontre des problèmes liés probablement à mon manque de connaissance. J’en fais donc appel à votre aide.

Le mode de fonctionnement du clavier est de renvoyer une valeur pour confirmer la commande (transaction_code) mais je ne sais pas comment interpréter cette variable.
Le détails est ici : Linkind ZS130000078 control via MQTT | Zigbee2MQTT

Le clavier publie sur ce playload :

{
    "action": "arm_all_zones", // This is the example
    "action_code": "123", // The code being entered
    "action_zone": 0, // The zone being armed (always 0)
    "action_transaction": 99 // The transaction number
}

Et je dois faire « répondre » par

{
    "arm_mode": {
        "transaction": 99, // Transaction number (this must be the same as the keypad request `action_transaction`)
        "mode": "arm_all_zones" // Mode (this must be the same as the keypad request `action`)
    }
}

Comment gérér cela ? Et surtout comment gérer la validation du code rentré pour déclencher une action ?
Merci d’avance.

Mathieu

Bonjour mjacoulet,

Pour que ton clavier zigbee fonctionne il faut que tu crées 2 commandes action (JMQTT) ou ordre (ZigbeeLinker).

La première sera une commande mode qui va servir à activer le clavier après la première inclusion. En effet tant que cette commande n’est pas envoyée, le clavier ne transmet aucun code.

Sous JMQTT, case Topic : zigbee2mqtt/Clavier/set et case Valeur : { "arm_mode": { "mode": "disarm" }}

Sous ZigbeeLinker, ordre par payload : { "arm_mode": { "mode": "disarm" }}

Après cela tu devrais recevoir les codes saisis sur ton clavier.

La deuxième commande à créer sera une commande retour qui qui renverra la transaction et l’action reçue.

{ "arm_mode": { "transaction": #[Zigbee][Clavier][Transaction]#,"mode": "#[Zigbee][Clavier][Action]#"}}

Ensuite il faut créer un scénario provoqué par la commande info Transaction de ton clavier. (Sa valeur change à chaque saisie de code). Au début de ton scénario tu ajoute une Action qui exécute la commande Retour que tu as créé précédemment.

image

Après tu peux ajouter une action SI pour comparer l’action et le code envoyé par le clavier.

image

image

Si ça correspond tu exécutes l’action souhaitée.
Cela fonctionne chez moi avec un clavier Linkind et un Centralite 3400.
J’espère avoir été suffisamment clair.

1 « J'aime »

Bonsoir JGR,
Et merci beaucoup pour cette réponse que j’attendais avec impatience :slightly_smiling_face:
Je vais tester tout ça prochainement et je ferai un retour ici.

Bonne soirée,
Mathieu

Salut merci beaucoup pour tes infos, j’ai également acheté ce keypad.
Petite question quelle est le comportement de ton clavier une fois la réponse reçu, le mien émet un bip long cela semble dire que la réponse est bonne mais le retour d’état n’est pas bon le voyant qui témoigne le mode activé ne change pas. As-tu le même soucis?

Hello,

Pour ma part, impossible de faire valider le code. J’ai toujours le même comportement, 2 bips puis le voyant « réseau » du clavier qui devient rouge. En plus je n’ai pas vraiment le meme tableau pour les commandes sous zigbee2linker. Décidément ! :confused:

La commande retour faut la faire avec jmqtt car zigbeelinker ne prend pas les commandes type #[aaaa][bbbb]# en playload qui sont les variables.

Merci pour l’info. Je connais encore moins jMQTT. Il n’y a pas de risque de faire doublon avec zig2linker ? Ca va pas me casser toute la config ?

Non moi j’ai les deux car je communique aussi avec des ESP notamment jamais eu de problème de conflits.

Salut,

J’ai le même soucis que toi pour le voyant du mode activé, il ne change pas automatiquement.
Pour changer l’affichage du mode activé sur le clavier, je renvoi une commande mode avec le mode correspondant au code saisi.
Exemple:
{ "arm_mode": { "mode": "arm_day_zones" }}
ou
{ « arm_mode »: { « mode »: « arm_all_zones » }}

1 « J'aime »

Hello,

Du coup j’ai fait ça mais c’est peut-être pas très académique. Enfin ça fonctionne :slight_smile:

En effet c’est ce que j’ai fini par faire merci

Pour une erreur de code j’ai pour ma part créer une deuxième commande retour NOK avec not_ready ça permet d’allumer le voyant attention du clavier

{ "arm_mode": { "transaction": #[Zigbee][Clavier][Transaction]#,"mode": "not_ready"}}

1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.