Intégration dans zigbee2mqtt des interrupteurs sans pile Green Power
Ayant pas mal galéré pour réussir à utiliser mon interrupteur Green Power (dans mon cas présent unTrio2sys ) avec zigbee2mqtt, j’ai décidé de faire partager les résultats de mon expérience.
Configuration :
Clef combee2 (si vous testez avec d’autres clefs, vos retours sont les bienvenus)
Zigbee2mqtt installé sur un pi3 en autonome sur un autre pi que celui de jeedom, mais il n’y a aucune raison que ce ne soit pas la même chose avec l’utilisation de zigbeelinker.
Interrupteur sans pile green power Trio2sys
Documentation
Un réflexe à avoir, est de trouver sur le site https://www.zigbee2mqtt.io/supported-devices/ le device correspondant à notre interrupteur. Dans le cas présent, ici : https://www.zigbee2mqtt.io/devices/PTM_215ZE.html
La procédure d’appairage y est décrite. Je vais la donner plus bas en français.
Procédure d’inclusion de l’interrupteur :
Auparavant, il faut bien sûr faire rentrer zigbee2mqtt en mode inclusion. Je l’ai fait en utilisant l’interface graphique :
Si vous avez un interrupteur avec un seul bouton, vous devez retirer les capuchons pour pouvoir agir sur les 4 boutons. Un bouton peut être enfoncé en maintenant le contact de ce bouton, puis en appuyant sur la barre d'énergie.
Pour l'appairer,
* commencez par appuyer brièvement (moins de 7 secondes) sur deux boutons différents l'un après l'autre. N'importe quel bouton de l'appareil (A0, A1, B0, B1) peut être utilisé.
Ensuite, sélectionnez un bouton de l'appareil (A0, A1, B0 ou B1) et **exécutez la séquence longue-courte-longue suivante** (ne pas changer de bouton au milieu de la manip):
* Appuyez et maintenez enfoncé le bouton sélectionné pendant plus de 7 secondes avant de le relâcher.
* Appuyer rapidement sur le bouton sélectionné (maintenir moins de 2 secondes).
* Appuyez à nouveau sur le bouton sélectionné et maintenez-le enfoncé pendant plus de 7 secondes avant de le relâcher.
* Appuyez brièvement sur le bouton sélectionné (< 7s) pour sélectionner le canal radio 11.
* Continuez à appuyer brièvement sur le bouton sélectionné (< 7s) pour incrémenter le canal radio. Si le canal 26 a été atteint, alors le canal 11 sera utilisé ensuite. (Je n'ai pas fait cette manipulation car je suis resté en canal 11, mais j'ai fait la suivante)
* Une fois l'appareil couplé, vous devez confirmer le canal. Pour cela, appuyez sur n'importe quel bouton autre que celui utilisé précédemment.
Si vous utilisez l’interface zigbee2mqtt, vous devez voir apparaitre une ligne supplémentaire correspondant à votre device :
Comme sur la capture écran ci-dessus, je vous conseille d’utiliser un nom simplifié car c’est lui qui donnera le topic à utiliser dans jmqtt. pour moi, le topic sera : zigbee2mqtt/InterDouble01
Pour indiquer un nom simplifié :
Commandes disponibles et intégration dans jmqtt
Toujours dans cette page https://www.zigbee2mqtt.io/devices/PTM_215ZE.html vous trouverez :
Exposes
# Action (enum)
Triggered action (e.g. a button click). Value can be found in the published state on the
action
property. It’s not possible to read (/get
) or write (/set
) this value. The possible values are:press_1
,release_1
,press_2
,release_2
,press_3
,release_3
,press_4
,release_4
,press_1_and_2
,release_1_and_2
,press_1_and_3
,release_1_and_3
,press_1_and_4
,release_1_and_4
,press_2_and_3
,release_2_and_3
,press_2_and_4
,release_2_and_4
,press_3_and_4
,release_3_and_4
,press_energy_bar
,release_energy_bar
,press_or_release_all
.# Linkquality (numeric)
Concrètement, dans jmqtt, après avoir indiqué le topic et pour l’instant en ayant coché la case « ajout automatique… »
cela donne ça après avoir cliqué sur l’interrupteur une nouvelle fois :
En cliquant sur Json
et en donnant des noms puis
Vous obtenez en fonction du bouton sur lequel vous appuyez l’une des valeurs décrites plus haut à savoir :
press_1
,release_1
,press_2
,release_2
,press_3
,release_3
,press_4
,release_4
,press_1_and_2
,release_1_and_2
,press_1_and_3
,release_1_and_3
,press_1_and_4
,release_1_and_4
,press_2_and_3
,release_2_and_3
,press_2_and_4
,release_2_and_4
,press_3_and_4
,release_3_and_4
,press_energy_bar
,release_energy_bar
,press_or_release_all
.
Pour ce qui est de la qualité de service, je ne sais pas si c’est vraiment exploitable car au cours de mes essais, la valeur n’a jamais changé. Ni via jmqtt
ni via l’interface zigbee2jmqtt
Donc je suppose inexploitable.
Cas particulier des interrupteurs Trio2sys
Les interrupteurs Trio2sys habillé en Odace fonctionnent mal car ils ont un défaut de fabrication.
Le principe de ces interrupteurs, est que lorsque l’on appui sur un bouton, deux choses se passent :
- Un des 4 boutons au centre est appuyé (dans la photo plus bas, ils sont déjà habillés avec du scotch bleu),
puis il y a un mouvement d’une des deux barres qui produit le courant nécessaire pour déclencher l’envoi des informations dont le bouton qui a été appuyé ou relâché.
Si on appui sur un bouton àl a fois on a un message du typepress_1
puisrelease_1
,
Si on appui sur deux boutons à la fois, on a un message du typepress_3_and_4
puisrelease_3_and_4
Le problème de la version Odace, est que la petite patte qui vient appuyer sur un des 4 boutons du centre n’est pas assez longue de quelques dixièmes. On a donc, des fois, lorsque l’on appui par exemple sur le bouton 1 un massage `press_energy_bar’ qui ne dit pas sur quel bouton on a appuyé puisqu’il ne le sait pas. De même, si on presse sur deux boutons à la fois, il peur croire que l’on a appuyé que sur un seul bouton.
D’où la solution qui consiste à mettre du scotch sur les boutons (chez moi, deux épaisseurs). C’est ce que l’on voit sur la photo (scotch bleu).