Un clavier Zigbee sous MQTT

Un clavier Zigbee sous MQTT

Depuis le temps que je suis dans le monde de la domotique, j'ai souvent entendu la difficulté de trouver un matériel bien spécifique : un clavier pour contrôler les entrées / sorties du domicile ou encore lancer des scènes.
Après quelques recherches, j'ai donc trouvé un pack d'alarme fonctionnant sous le protocole Zigbee. Vous l'aurez donc compris, nous allons dans cet article voir l'intégration du clavier dans Zigbee2MQTT, qui communique avec Jeedom dans mon cas. Les autres équipements du pack seront détaillés dans un prochain article.


Présentation du clavier

C'est le premier test de produit que j'écris, donc je vais essayer de faire au mieux pour vous le présenter. Pour commencer, voici quelques photos de l'emballage, où vous trouverez un descriptif en anglais et en allemand. Dans le kit est fourni une fixation par adhésif 3M ou par vis pour chaque équipement.

Nous allons voir plus en détails le clavier en lui-même, avec ci-dessous le dos de celui-ci. On y trouve un petit orifice pour permettre l'inclusion (entouré en rouge), ainsi qu'un contact anti sabotage (entouré en bleu). Le clavier est alimenté par 2 piles CR123A fournies. Je n'est pas encore assez de recul sur son autonomie pour le moment, qui variera d'un utilisateur à l'autre selon le nombre d'utilisation par jour, mais le fabricant annonce une autonomie de 6 mois.

Nous passons maintenant sur la partie avant, où se situe les touches du clavier, qui sont rétro-éclairées (un point positif) :

  • Sur le haut se trouvent 3 voyants qui indiquent l'état de la batterie (cercle rouge), un point d'exclamation (Not ready, que nous expliquerons plus loin (cercle vert)), et un voyant réseau (cercle bleu).
  • Au centre, nous avons le pavé numérique (cadre orange).
  • En bas se trouvent les boutons pour valider ou annuler la saisie d'un code (cercle noir).
  • Sur la droite, les 4 boutons de mode (cadre violet) prennent place et permettent les actions suivantes de haut en bas : Désarmement, Armement partiel, Armement total et SOS, qui peuvent être allumés en vert afin de remonter l'état de l'alarme.
  • Tout en bas, au niveau des 2 petit trous (cadre rose), se trouve le capteur de proximité, qui permet l'allumage du rétro-éclairage sur détetion de l'approche d'une main.

On retrouve sur le côté gauche du clavier les références, et sur le côté droit une zone avec des trous, qui correspond à l'emplacement du buzzer.

Pour utiliser le clavier, le principe est de choisir un des modes (hors SOS), puis de taper votre code et enfin de valider.
Pour déclencher le mode SOS, il faut rester le doigt appuyé durant 3 secondes sur le bouton adéquat.


Configuration

Pour intégrer ce clavier dans votre instance Zigbee2mqtt, vous devrez simplement vous munir d'un trombone et appuyer pendant quelques secondes dans le petit trou à l'arrière du clavier,  jusqu'à ce que le voyant réseau clignote rapidement en vert. Vous trouverez le trou dans la zone où le clip de fixation mural sera placé.

Vérifiez que l'inclusion est bien complète. Bravo, vous avez réussi !
Nous allons maintenant rentrer dans le vif du sujet, et cela ne fonctionne pas comme un périphérique plus classique.
Dans un premier temps, il faut initialiser la connexion pour lui permettre de communiquer avec le broker. Car si vous essayez une combinaison du type "Mode" + "code" + "Valider", le voyant réseau commencera par clignoter en vert (en attente de connexion) puis après quelques secondes deviendra rouge et émettra un bip sonore, et surtout vous ne constaterez aucune remontée d'information dans Zigbee2mqtt.

Initialisation de la connexion

Afin d'initialiser correctement cette dernière, vous devez envoyer l'information d'état de l'alarme. Pour cela, vous devez utiliser MQTT explorer dont nous vous avons déjà parlé dans cet article. Il faudra envoyer la commande suivante au topic MQTT que vous avez créé pour le clavier, en lui ajoutantla commande /set :

{
    "arm_mode": {
        "mode": "disarm"
    }
}

Cela forcera le clavier en mode désarmé, prêt à être utilisé comme il se doit.
Vous pouvez maintenant appuyer sur l'un des boutons "mode" sur la droite, entrer un code et appuyer sur le symbole validé. Vous devriez voir une information remonter dans Zigbee2Mqtt contenant le mode d'action sélectionné et le code. Mais là encore, le clavier bip et le voyant réseau clignotera en rouge. Ceci est normal, car le clavier attend la confirmation de la bonne réception par le système domotique.

Confirmer la réception

Sous Jeedom, j'utilise le plugin ZigbeeLinker pour communiquer avec Zigbee2Mqtt, mais pour le clavier j'ai dû utiliser le plugin JMQTT car sous ZigbeeLinker il n'est pas possible d'utiliser des variable comme #[aaa]# #[bbb] #.
Pour résumer, ZigbeeLinker me sert à recevoir des informations du clavier.

Tandis que JMQTT me sert à envoyer des informations au clavier.

Pour confirmer la bonne réception d'une information, il va falloir créer une commande avec des variables. Il faut donc créer un équipement avec le bon topic sous JMQTT :

On va créer une commande de retour contenant un playload adapté à votre configuration. Voici la mienne : {"arm_mode": {"transaction": #[Préparation][Keypad][Dernière action]#,"mode":"#[Préparation][Keypad][Action]#"}}

Maintenant, nous allons dans le plugin ZigbeeLinker pour créer un envoi d'ordre, qui pour toute réception de transaction, nous permettra de confirmer la bonne réception de celle-ci.

Un nouveau test et le clavier devrait faire un joli bip long avec le voyant vert réseau.

Retour d'état

Les voyants d'action permettent d'avoir un retour d'état de l'installation.
Pour les commander, il va falloir créer des commandes séparées pour chaque état, toujours dans JMQTT, même si celles-ci passent correctement avec ZigbeeLinker. Il est possible de créer des commandes pour l'ensemble des modes suivants : disarm, arm_day_zones, arm_night_zones, arm_all_zones, exit_delay, entry_delay, not_ready, in_alarm, arming_stay, arming_night, arming_away. Dans mon cas,  je vais créer uniquement les commandes qui me seront utiles, et une commande avec une variable qui reprend l'état de mon système d'alarme, pour lequel j'ai utilisé les mêmes termes que ceux du clavier pour plus de facilité.

Automatiser l'initialisation

Il nous reste à automatiser l'initialisation en cas de perte de communication. J'ai dû chercher un moment mais je ne trouvais rien de fiable, j'ai donc finalement opté pour utiliser la présence, car oui je vous le rappelle, il y a un capteur de proximité qui détecte quand la main s'approche du clavier. A chaque détection de présence de la main, je renvoi l'état de l'alarme, ce qui a pour effet également d'initialiser la connexion.
On sait maintenant comment procéder, et on va le réaliser à l'aide d'une action sur valeur.

Nous prenons la direction du plugin ZigbeeLinker, pour nous rendre dans la configuration de la commande Présence. Il faudra définir que si la valeur d'état est 1, alors nous envoyons l'état actuel de l'alarme.


Conclusion

Nous avons vu comment intégrer le clavier dans Zigbee2Mqtt et l'utiliser avec Jeedom, pour l'ensemble des fonctions proposées. Je vais continuer à travailler sur l'intégration du reste du matériel inclus dans le kit et vous en proposerais également des articles.
Je pense au final utiliser le plugin Alarme pour gérer le tout, sur lequel je ferais également un article pour vous montrer l'ensemble de l'automatisation.

Kit alarme avec clavier

Linkind Kit de démarrage de système de sécurité Intelligent pour la Maison - 5 pièces - avec sirène de 110 DB - Détecteur de Mouvement PIR - Capteur de Porte/fenêtre

Acheter
Info ! Je n'ai pas encore essayé d'intégrer la sirène, mais d'après mes lectures, il ne faut pas l'intégrer avec l'application sur le téléphone au préalable, donc un peu de patience, un article spécifique viendra vous donner les étapes à suivre.

Si vous avez des questions sur la sirène ou son intégrtion dans Jeedom suite à cet article, ou souhaitez simplement  échanger avec nous, n'hésitez pas à laisser des commentaires ou à venir sur notre groupe Telegram.