Plugin ZigbeeLinker pourrait-il évoluer pour suporter zigbee2tasmota en plus de zigbee2mqtt?

Bonjour a tous,

Zigbee2tasmota est un serveur léger inspiré de « zigbee2mqtt ». Zigbee2tasmota se contente pour fonctionner d’un microcontrôleur de chez espressif comme les ESP8266, ESP8285 et surtout les ESP32 qui supportent tous le WiFI.

Comme je veux restructurer mon réseau domotique et le fragmenter, je cherchais une solution me permettant de répartir dans ma maison des contrôleurs Zigbee. Idéalement ces contrôleurs sont connectés en ethernet (pour la robustesse) et si possible alimenté en POE (pour pouvoir secourir leurs alimentations de manière centralisée).

Sur le papier un ZigBee2Tasmota installé sur un OLIMEX ESP32-POE avec une clé SONOFF ZigBee 3.0 USB Dongle Plus (TI CC2652P) rempli tous ces critères. Le tout coûte une trentaine d’euro (et quelques soudures). J’ai donc installé le zigbee2tasmota et appairé, quelques équipements zigbee : aqara, SONOFF et OSRAM. Tout fonctionne bien. D’ailleurs si ça vous intéresse je peu faire un tuto…

Tasmota supporte aussi BLE, mais je dois avouer ne pas avoir regardé cette partie.

Comme je veux continuer à utiliser Jeedom comme superviseur de l’ensemble de l’installation domotique, j’ai regardé comment intégrer zigbee2tasmota avec Jeedom. Une solution utilisant JMQTT est possible mais elle nécessite une quantité de travail que je ne peu fournir.

J’en viens donc à ma question : ZigbeeLinker pourrait-il évoluer pour supporter zigbee2tasmota en plus de zigbee2mqqt ?

1 « J'aime »

Salut

Le set-up de jMQTT sera plus rapide que de faire un add-on à zigbeelinker. C’est l’affaire d’une soirée.

Antoine

1 « J'aime »

Cela fonctionne comment ? Parce qu’il ne me semble pas y avoir de port USB sur ces cartes. Il faut brancher directement les GPIO de l’ESP32 sur la puce CC2652P, c’est cela ?

Une option intéressante aussi ce sont les boitiers existant en ethernet et les flasher. Il y a plusieurs exemples sur le site de Tasmota Zigbee - Tasmota comme le Eachen eWeLink ZbBridge Pro Ethernet. Par contre pas de POE, il faut du coup utiliser un répartiteur.

seb821,
L’esp32 peut supporter des ports USB, mais je ne crois pas que cela soit supporté par les firmware de Tasmota.
J’ai donc démonté la clé pour bypasser la partie USB et brancher l’ESP32 directement sur la liaison série entre le CC2652P et le composant USB. Il faut faire 4 soudures 2 pour l’alimentation et 2 pour la liaison série.

Tonio16,
Comme je ne suis pas très rapide ça va me prendre plus de temps :slight_smile:
J’ai lu ce file de discutions, qui n’est pas très encourageant sur le sujet :

Qu’en penses-tu ?

Sinon il y a aussi des coordinateurs ethernet directement compatibles avec Zigbee2mqtt : Supported Adapters | Zigbee2MQTT

Un peu plus cher et pas forcément simple à trouver, mais derrière c’est quand même un sacré gain de temps quand les équipements remontent tout seuls grâce au plugin.

Je pense que le lien doit être fait entre mosquitto et jmqtt et que cela reste simple quand on a compris la logique des topics. J’ai eu du mal pour mon premier dispositif sous zwavejs puis c’est venu tout seul.

Antoine

Seb821,

J’ai aussi évaluer la solution zigbee2mqtt. Ça fonctionne très bien mais :

Si on trouve beaucoup de solution pour déporter le dongle zigbee, en revanche pour déporter le zigbee2mqtt il faut un vrai OS, et pas juste un microcontrôleur, et je n’ai rien trouvé en dehors de raspberry. Mais je me trompe peut-être… La solution a base de raspberry ne me convient pas, car elle est trop cher et demande trop de maintenance (update des OS, PB de SDcard,…).

Du coup, toujours pour utiliser zigbee2mqtt, j’ai envisager d’héberger plusieurs zigbee2mqtt sur un serveur central avec des dongles zigbee déportés. Un Synology DS220+ par exemple avec des VM et un peu de RAM ferait l’affaire comme serveur central et j’utilise déjà un Synology comme DHCP, reverse DNS et surveillance station. Sur le papier c’est pas mal, la maintenance est simplifiée. En effet il n’y a plus de raspberry aux quatre coins de la maison. Mais l’architecture est relativement compliquée et entraîne de nombreux aller-retour réseau (dongle zigbee déporté/zigbee2mqtt/mosquittos/jeedom). Du coup j’ai peur que le temps de réaction soit impacté par cette complexité. En terme de taux de defaillance le fait d’utiliser des VMs sur un seul serveur physique, qui peut aussi héberger mosquittos et jeedom, arrange bien les choses !

Dans Zigbee2Tasmota ce qui me motive, comme ‹ midi30 › d’ailleurs, ce sont les possibilités de programmation de Tasmota et en particulier les ‹ rule › qui permettent d’implanter, au plus près du réseau radio zigbee, certains ‹ reflex › incluant des tests conditionnels et qques variables : Rules - Tasmota

Une rule Tasmota permet de faire des choses simples avec un temps de réaction optimisé (enfin je l’espère). On peut par exemple :

  • Sur un appui d’interrupteur, naviguer entre plusieurs configurations d’éclairage de la pièce.
  • Contourner des bugs ou limitations matériels comme ceux de certains interrupteurs aqara interdisant le binding ( Xiaomi WXKG11LM cannot be bound · Issue #5695 · Koenkk/zigbee2mqtt · GitHub, impossibilité du a une inversion de propriété entre source et target si j’ai bien compris). Du coup en ajoutant un reflex (rule) comme celui ci-dessous on contourne le problème et le temps de réaction est raisonnable :
    "
    rule1
    on ZbReceived#0x01B0#Endpoint=1 do
    ZbSend {« Device »:0x5163, « Send »:{« Power »:2}} endon
    "

Mais je ne suis sur de rien en matière de temps de réponse, l’ID est de mettre toutes les chances de mon côté pour obtenir le meilleur temps de réponse possible.

1 « J'aime »

Tonio,

J’ai donc investigué un peu plus et effectivement l’intégration Zigbee2tasmota avec le plugin JMQTT de jeedom n’est pas très compliquée.

Pour ceux que ça intéresse voici le principe général que j’ai utilisé et qui fonctionne aussi pour un ZBBridge SONOFF (Sonoff Zigbee Bridge (ZBBridge) Zigbee compatibility). Pour rappel : j’utilise un OLIMEX ESP32-POE (ESP32-POE - Open Source Hardware Board) avec une clé SONOFF ZigBee 3.0 USB Dongle Plus (Sonoff Zigbee 3.0 CC2652P Dongle Plus (ZBDongle-P) Zigbee compatibility) :

  • Je passe sous silence :
    o l’installation du zigbee2tasmota et l’appairage des ‹ devices › zigbee.
    o l’installation du plugin jMQTT et la connexion au serveur MQTT (le broker)…
  • Avant de commencer : Il faut savoir que zigbee2tasmota reçoit toutes les commandes zigbee sur « cmnd/tasmota_XXX/ZbSend » (XXX étant dépendant de votre zigbee2tasmota, ainsi plusieurs zigbee2tasmota peuvent cohabiter sur le même broker MQTT) et renvoie tous les résultats de commande sur le topic « tele/rasmota_XXX/SENSOR » (même remarque pour le XXX que ci-dessus :slight_smile: ). Pour retrouver le topic de votre zigbee2tasmota, rendez-vous dans la page « Informations » accessible depuis le menu d’accueil WEB de votre zigbee2tasmota : cherchez le champs « Topic complet MQTT ».

Ci-dessous la procédure pour une intégration basique du ZBMINI SONOFF (Sonoff Mini Relay (ZBMINI) Zigbee compatibility) :

1/ Depuis la page du plugin jMQTT : Ajoutez manuellement un ‹ device › en utilisant « + » (si vous avez plusieurs brokers, attention d’utiliser le bon broker),

2/ Dans le fenêtre pop-up : Nommez le ‹ device › dans jeedom,

3/ Dans la page de configuration du ‹ device ›, onglet « Equipement »
o décochez « Ajout Automatique de commandes »,
o mettez dans le champ « Inscrit au Topic » le topic de résultat de votre zigbee2tamota : « tele/tasmota_…/SENSOR »,

4/ Dans la page de configuration du ‹ device ›, onglet « Commandes » :
o Cliquez sur « Ajouter une commande action »,
o saisissez le nom de la commande, par exemple « On »,
o saisissez le Topic « cmnd/tasmota_XXX/ZbSend » sans oublier de remplacer le « XXX »,
o et enfin, le plus dure, saisissez le message zigbee, par exemple : « {« Device »:0x262D, « Send »:{« Power »:1}} » avec 0x262D qui est l’ID zigbee de mon device. Vous devez le remplacer par l’ID de votre device que vous retrouverez facilement sur le page d’accueil web de votre zigbee2tasmota en passant la souris sur le nom de votre device.

5/ pour la commande off, faites la même chose avec « Off » et « {« Device »:0x262D, « Send »:{« Power »:0}} » sans oubliez de remplacer le « 262D »…

6/ pour la commande toggle (bascule), faites la même chose avec « Toggle » et « {« Device »:0x262D, « Send »:{« Power »:2}} » sans oubliez de remplacer le « 262D »…

7/ pour la remonté de l’état du relais, toujours dans la page de configuration du ‹ device ›, onglet « Commandes » :
o Cliquez sur « Ajouter une commande info »,
o saisissez le nom de l’info, par exemple « Etat »,
o saisissez le Topic « tele/tasmota_XXX/SENSOR », attention ce n’est pas le même qu’avant et n’oubliez pas de remplacer le XXX,
o et enfin, dans le champ « Chemin JSON », saisissez : « [ZbReceived][0x262D][Power] » sans oubliez de remplacer de « 262D ».

8/ Si vous voulez voir une commande sur la page d’accueil de Jeedom cocher la case « afficher » correspondant à cette commande.

9/ Sauvegarder et quittez la page : c’est fini ! Mais vous pouvez insérer d’autres commandes pour aller plus loin (le niveau des batteries, la qualité de la réception zigbee, …)

Pensez a utiliser les templates pour créer plus vite vos autres ‹ devices › dans jMQTT.

Profitez bien !

2 « J'aime »

Tu peux aussi transmettre tes templates sur la communauté ou le plugin (plus très sur de la procédure).

Antoine

1 « J'aime »

Bonsoir,

J’ai une suggestion d’évolution pour jMQTT :
Ajouter un champ ‹ device ID › dans la page « ‹ device ›/equipement » pour l’utiliser à l’application des templates.

Ainsi, par exemple, dans le « champ JSON » d’une commande info du template on pourrait avoir « [ZbReceived][%id%][Power] » transformé en « [ZbReceived][0x04D4][Power] » si le ‹ device ID › auquel est appliqué le template est renseigné à 0x04D4.

Je trouve nettement plus simple de regrouper les commandes et informations sous le même topic. Je n’aime pas du tout la séparation que fait Tasmota de base, c’est pas très pratique à l’utilisation, et on ne peut pas dupliquer facilement les équipements dans JMQTT. Chez moi voilà ce que ça donne :

image

Pour cela, il me semble que dans la configuration MQTT, dans Fulltopic il faut enlever %prefix%. A confirmer quand même.

Oui effectivement, le fait de pouvoir se passer d’OS est un gros plus. Là je comprends mieux la démarche (réactivité, séparation, règles en local).

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