Créer un pont Zigbee Wifi avec Tasmota et du matériel Sonoff

Introduction

Cet article traite de créer un pont entre des appareils Zigbee et mon serveur Home Assistant.

Wikipedia : « ZigBee est un protocole de haut niveau permettant la communication d’équipements personnels ou domestiques équipés de petits émetteurs radios à faible consommation ; il est basé sur la norme IEEE 802.15.4 pour les réseaux à dimension personnelle (Wireless Personal Area Networks : WPAN). »

zigbee logo

Veillez à ne pas confondre avec Z-Wave, ils ne sont pas compatibles même s’il s’agit de réseaux maillés sans fil de faible puissance.

En raison de sa faible consommation, Zigbee est particulièrement utile pour les appareils alimentés par batterie, tels que :

Si vous posez la question, à gauche c’est un Sonoff Zigbee Bridge (ZBBridge) et est requis.

Réseau maillé

Le réseau sans fil zigbee utilise une topologie maillée, ce qui signifie que des dispositifs appelés routeurs se parlent entre eux, acheminant les messages tout autour selon les besoins pour atteindre les nœuds éloignés. L’un des inconvénients de ce système est qu’il consomme de la batterie, de sorte qu’il n’est pas pratique d’avoir des nœuds toujours actifs lorsque l’on fonctionne sur batterie. Je recommande, pour tout grand réseau, d’avoir quelques nœuds alimentés par le secteur, comme des prises de courant, des interrupteurs ou des ampoules.

Requis

Cet article suppose que vous avez déjà une installation fonctionnelle de Home Assistant sur votre réseau local.

Pour construire l’installation minimale ci-dessous, en plus de votre Wi-Fi et de Home Assistant, vous avez besoin d’un Sonoff Zigbee Bridge (ZBBridge) and a Sonoff temperature / humidity sensor (SNZB-02).

Le processus de flashage est fait en utilisant un Serial-to-USB adapter, le plus simple est d’en prendre un basé sur la puce CH340G ou FTDI. Vérifiez toujours la tension lorsque vous utilisez un tel adaptateur, en utilisant en conséquence soit 3.3V ou 5V.

Le pont zigbee a deux puces pour se connecter à la fois aux réseaux zigbee et Wi-Fi, en assumant le routage entre les deux réseaux.

Les nœuds ont une seule puce zigbee pour la mise en réseau.

Pour commencer

Nous allons configurer quelques éléments pour utiliser notre nœud de capteur de température. Voici les blocs de construction, en commençant par le nœud final :

  • Le capteur de température a un seul bouton pour le coupler au réseau zigbee;
  • Le pont zigbee Sonoff est alimenté par USB et dispose d’un bouton unique pour permettre le couplage de nouveaux capteurs. Pour l’utiliser avec Home Assistant au lieu de l’application cloud eWeLink intégrée, nous allons flasher un nouveau firmware appelé Tasmota;
  • Enfin, Home Assistant doit ajouter une intégration pour utiliser le pont zigbee. Cette intégration permet également de gérer les capteurs zigbee.

La partie la plus délicate étant de flasher Tasmota, la majeure partie de cet article est consacrée à cette étape spécifique.

Flashage de Tasmota vers Sonoff ZBBridge

Une note sur Tasmota et les exigences

Tasmota est un firmware open source destiné aux appareils basés sur ESP8266 ou ESP8285. Il se caractérise par une grande flexibilité et la possibilité de le configurer à l’aide de son interface web intégrée.

En utilisant l’image ZBBridge dédiée (tasmota-zbbridge.bin), il est très facile de définir ses paramètres de réseau Wi-Fi et de connexion MQTT.

Les étapes macros sont donc les suivantes :

  • Ouvrez le dispositif ZBBridge pour accéder au PCB;
  • Câblez l’adaptateur Série-USB sur le PCB ZBBridge;
  • Flashez Tasmota en utilisant Tasmotizer;
  • Déconnecter l’adaptateur;
  • Alimenter le ZBBridge par le biais d’un USB normal;
  • Accédez à l’interface web de Tasmota et configurez finalement le dispositif;
  • Si tout s’est bien passé, remettez le PCB dans son boîtier.

Vous aurez besoin de matériel :

… et quelques logiciels :

  • Tasmotizer pour le flashage. Il s’agit d’un outil tout-en-un pour flasher automatiquement Tasmota sur un appareil;
  • Windows, si vous utilisez Tasmotizer comme dans ce guide;
  • Un navigateur web, j’utilise Google Chrome.

Consultez la page Tasmota Getting Started page si vous êtes nouveau ou si vous n’utilisez pas Windows.

Câbler le ZBBridge à l’adaptateur Serial-to-USB

Si vous avez l’habitude de clignoter, ne vous laissez pas berner, vous devez mettre à la terre une broche supplémentaire, et il y a plusieurs TX/RX sur le ZBBridge.

Voici le câblage correct :

Adaptateur ZBBridge Notes
GND GND Alimentation
GND IO0 Enable flashing of ESP chip
VCC 3V3 Alimentation, n’oubliez pas de définir à 3V3 et PAS 5V
RX ETX Liaison de données
TX ERX Liaison de données

J’utilise des fils de liaison de breadboard, dont les broches sont plus fines que les câbles Dupont habituels. Un Dupont ne s’adaptera pas aux petits trous traversants du ZBBridge. Avoir une connexion correcte peut être délicat.

Connexions à Tasmota

Après avoir flashé avec succès le firmware Tasmota, l’appareil démarre un nouveau hotspot Wi-Fi sous la forme suivante tasmota_XXXXXX-####.

Connectez vous dessus et ouvrez l’adresse http://192.168.4.1/ pour gérer l’appareil.

Configuration Tasmota

Tasmota a besoin de quelques ajustements pour fonctionner correctement dans notre situation :

  • Mise à jour du firmware pour la puce zigbee;
  • Configuration du serveur MQTT et des informations d’identification;
  • Activer le modèle ZHA de Home Assistant, en déléguant le contrôle total à Home Assistant;
  • Facultatif : Configuration du réseau, toujours agréable de définir une adresse IP statique sur le réseau.

Flashage du firmware Zigbee

Obtenez le dernier firmware pour la puce zigbee à partir de https://github.com/arendst/Tasmota/tree/development/tools/fw_SonoffZigbeeBridge_ezsp

Depuis l’interface web Tasmota, allez sous Firmware Upgrade > Upgrade by file upload

Note: Il est possible d’utiliser l’URL directe avec l’OTA, mais je n’ai pas essayé. 🙂

Mise à jour du MQTT

Depuis l’interface web de Tasmota, allez dans la Console.

Saisissez la commande suivante pour paramétrer le serveur MQTT (vous pourriez utiliser Configuration > Configure MQTT mais j’ai eu des soucis pour sauver le mot de passe, peut-pêtre un bug résolu au moment où vous lirez ces lignes, dites moi en commentaire!).

Ajustez cette commande en fonction de vos besoins, surtout mqtthost, mqttuser et mqttpassword.

Backlog mqtthost 192.168.0.xxx; mqttport 1883; mqttuser XXXX; mqttpassword XXXX; topic zigbridge

L’appareil va redémarrer.

Activer le modèle ZHA Home Assistant

De retour dans la console, utilisez cette commande, sauf si vous utilisez un port autre que 8888.

backlog rule1 on system#boot do TCPStart 8888 endon ; rule1 1 ; template {"NAME":"Sonoff ZHABridge","GPIO":[56,208,0,209,59,58,0,0,0,0,0,0,17],"FLAG":0,"BASE":18} ; module 0

Définir une adresse IP statique

Ceci est optionnel mais mon routeur est très limité concernant le DHCP, avec un range x.x.x.2 à x.x.x.26.

Le commandes « IPAddressX » correspondent à:

  1. Adresse IP
  2. Passerelle
  3. Masque
  4. Serveur DNS (ici, Google)
IPAddress1 192.168.0.XXX
IPAddress2 192.168.0.1
IPAddress3 255.255.255.0
IPAddress4 8.8.8.8
restart 1

Relancer l’appareil une fois de plus, mais l’appareil sera très rapide pour démarrer et se reconnecter!

Voyez Tasmota Commands / Wi-Fi pour plus d’informations. Si vous le faites souvent, envisagez d’utiliser la commande backlog.

Ajout du pont ZBBridge à Home Assistant

Enfin, ajoutons le pont Zigbee à Home Assistant.

Dans Home Assistant, allez dans Configuration > Intégrations > Ajouter une intégration.

Sélectionnez Zigbee Home Automation dans la liste des intégrations.

Configurez en utilisant :

  • Port série : Entrer manuellement
  • Type de rapport : EZSP
  • Chemin du dispositif série : socket://<IP du dispositif>:8888
  • Vitesse : 115200

Il devrait détecter votre pont et l’ajouter aux intégrations.

Ajout de périphériques

Pour ajouter un périphérique zigbee, allez dans Configuration > Intégrations et cliquez sur Configurer sur votre intégration domotique Zigbee.

En bas à droite se trouve un bouton « + Add device », cliquez dessus.

Cela lance le mode d’appairage pour le coordinateur, il est temps d’appuyer sur le bouton d’appairage du dispositif de température/humidité SNZB-02.

Au fur et à mesure que vous ajoutez des appareils, ils apparaissent à l’écran, proposant de définir leur nom.

À propos des appareils

Une fois que vous avez fini d’ajouter des appareils, vous pouvez vérifier ce qui a été fait dans le menu Appareils.

Comme ces appareils n’utilisent pas le WiFi, c’est le seul endroit où vous pouvez vérifier leur état et surtout le niveau de la batterie.

Les capteurs sont automatiquement créés for eux. Vous avez terminé la configuration de zigbee !

À propos des capteurs

Lorsque les capteurs sont créés, utilisez le menu Outils du développeur de l’assistant de maison pour y jeter un coup d’œil.

Je filtre ici sur celui qui a été ajouté pour la démo :

Références

Documentation officielle Tasmota getting started doc

Cet article est particulièrement basé sur  Sonoff Zigbee Bridge ZBBridge Zigbee compatibility info.

Zigbee Home Automation pour Home Assistant.

Post Author: Shut

7 thoughts on “Créer un pont Zigbee Wifi avec Tasmota et du matériel Sonoff

    Luis

    (2021-10-24 - 11:48)

    Bel article, je cherchais exactement ça …
    J’ai un doute : je commence à monter un réseau maillé à la maison. Mon serveur HA a une clé zigbee phoscon dessus. La maison a 2 étages, le serveur est au rez-de chaussé. Voyez-vous un intérêt de couper mon réseau ZigBee en 2 en ajoutant un bridge à l’étage ? Merci !

      Shut

      (2021-11-04 - 20:34)

      Bonjour,

      Merci pour ce commentaire 🙂

      Plutôt que de couper le réseau, et la complexité qui va avec le fait d’avoir « deux » réseaux ZigBee, il est plus simple de s’assurer d’un maillage complet.
      J’utilise mes appareils ZigBee (et Z-Wave aussi d’ailleurs), sur les 3 niveaux de ma maison.
      Pour avoir un réseau maillé solide, j’ai ajouté des prises connectées 230V. La grosse différence, c’est qu’était branchée sur le secteur, elles font fonctionner comme des relais en permanence, ce qui permet aux appareils sur batterie de communiquer sans mal.
      Je n’ai pas de méthode scientifique pour le positionnement, mais les avoir à la verticale les unes des autres sur les 3 niveaux semble aider.
      A noter qu’on peut placer ces prises connectées sur des multiprises, c’est pratique pour éviter de contrôler malencontreusement son congélateur 😉

    Fabien

    (2022-01-12 - 19:48)

    Bonsoir
    Super Tuto
    Apres quelques essai , j’ai enfin reussi a faire toutes les etapes , mais je bloque au niveau de l’integration de ZHA
    j’ai beau mettre socket://192.168.31.227:8888 , impossible de me connecter …
    une idée ?

      Shut

      (2022-01-14 - 10:25)

      Bonjour et merci! 🙂

      La première chose à faire est de tester la connexion, voici une commande PowerShell pour cela sur ma config:

      PS C:\Users\Shut> Test-NetConnection -Port 8888 -ComputerName 192.168.0.151

      ComputerName : 192.168.0.151
      RemoteAddress : 192.168.0.151
      RemotePort : 8888
      InterfaceAlias : LAN
      SourceAddress : 192.168.0.243
      TcpTestSucceeded : True

      Ensuite, vérifier que le module est bien en mode Bridge, via l’interface Tasmota : http://192.168.0.151/md?
      On doit avoir en configuration Module type (Sonoff ZbBridge) = Sonoff ZHABridge (0)

      A vérifier aussi, si c’est le bon firmware (il faut le firmware ZBBridge et non le Tasmota de base) : http://192.168.0.151/in?
      Program Version : 9.5.0(zbbridge)

      JJ

      (2022-05-16 - 23:39)

      Bonjour. Je suis nouveau dans la domotique et je ne comprends pas très bien les termes. Du coup je voulais demander c’est quoi « ESP8266 et ESP8285 ».

      Ma seconde question est, avec le flash du sonoff bridge je peux ajouter des appareils de la marque aqara (qui sont compatibles ZigBee).
      Mon problème aujourd’hui est que je n’arrive pas à les ajouter au bridge

        Shut

        (2022-05-18 - 09:51)

        Bonjour Fabien,

        Les termes “ESP8266 et ESP8285” font référence à des modèles de puces capables de faire du WiFi.
        Voir https://fr.wikipedia.org/wiki/ESP8266
        Beaucoup d’appareils « smart » exploitant le WiFi reposent sur cette famille de puce. Les puces sont très abordables et la programmation est similaire aux Arduino. Ainsi, il est facile de trouver de la documentation et des librairies.
        Un modèle très répandu et facilement accessible est le Wemos D1 Mini qui coûte ~5€.
        Un bon exemple se trouve dans mon article « Commande de porte de garage avec Tasmota et détection ouvert/fermé« .

        Malheureusement pour les appareils Aqara, bien que je les ai regardés, je n’en ai pas et donc d’expérience désolé 🙁
        A priori c’est possible, mais je ne saurais pas commenter plus.

          JJ

          (2022-05-18 - 13:54)

          Merci pour ta réponse. Je vais essayer pour voir ce que celà va donner.

Répondre à JJ Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *