#Hack : Sonoff 4CH Pro avec le firmware MQTT Tasmota, inclusion dans Domoticz

Gagnez jusqu'à 500€ en bon d'achat sur Amazon Promos de Noël jusqu'à -70% sur Banggood

Dans l’article précédent, nous avons découvert le Sonoff 4CH Pro, un boitier de commande qui permet de piloter en WiFi et par radio 433MHz jusqu’à 4 relais. Dans ce nouveau tutoriel, nous allons voir comment installer le firmware alternatif Tasmota développé par Theo Arends. Le Sonoff 4CH Pro peut être installé dans une armoire électrique sur un Rail DIN.  L’application maison EWeLink développée par Itead (le fabricant des produits Sonoff) permet de piloter depuis un smartphone ou tablette tous les appareils de la gamme et de créer de petits scénarios. Tout passe par les serveurs d’Itead. Cela permet de pouvoir accéder à ses appareils même en dehors de son domicile dès lors qu’on dispose d’une connexion 3G/4G (ce qui est le cas dans 99% du temps, enfin je l’espère !). Cette solution peut déranger certains utilisateurs. Tout d’abord, EWeLink est totalement fermée. Impossible de créer un pont vers un serveur domotique 100% DIY. D’autre part, vous n’avez aucun contrôle sur vos données personnelles. C’est un sujet très sensible actuellement. Voici donc comment installer le firmware alternatif Open Source Tasmota de Theo Arends. Ce tutoriel peut s’appliquer à tous les modules Sonoff dont vous trouverez un comparatif technique dans ce guide d’achat sur le comparateur de prix.

Sommaire

Présentation du firmware Tasmota pour les produits Sonoff/Itead

Le firmware Tasmota est développé et maintenu par Theo Arends (sa page GitHub et son site personnel). Il est conçu sur un principe similaire au firmware Homie. Il ajoute une interface de configuration accessible à l’aide d’un navigateur internet depuis n’importe quel ordinateur, tablette ou smartphone sur le même réseau local. Il utilise ensuite la messagerie MQTT pour communiquer avec un serveur domotique, un serveur en ligne, une application mobile iOS, Android…

Le firmware Tasmota va donc s’abonner à un broker MQTT (lisez cet article pour en savoir plus). On pourra lui envoyer des commandes. Essentiellement “active” ou “désactive” le relais X.

En retour le firmware Tasmota va publier (envoyer des messages) au broker MQTT :

  • Le relais à été activé (ou pas)
  • Il pourra envoyer des mesures :
    • Température, humidité si une sonde est branchée (il existe des broches encore disponibles sur les modules, cool)
    • Energie consommée, pour le module POW

L’avantage de ce firmware, c’est qu’il est totalement dédié aux appareils Sonoff. Comme il est spécialisé, il y a très peu de configuration à faire. Vous pourrez installer le même firmware sur tous vos appareils domotiques Sonoff (si vous êtes fan de la marque évidemment !).

Nous reviendrons plus en détail sur les fonctionnalités proposées dans un prochain article. Passons maintenant à un cas pratique et voyons comment installer ce firmware sur l’ESP8285 qui équipe le Sonoff 4CH Pro.

Avant d’aller plus loin

Avertissements concernant les dangers électriques et la garantie

Avant de commencer, il me semble important de rappeler quelques règles de sécurité. Tout d’abord, vous allez modifier un appareil électrique. Ces modifications vont annuler toute garantie du fabricant. D’autre part, ce tutoriel peut s’appliquer à tous les modules Sonoff. A l’exception du 4CH Pro, ils sont alimentés avec une tension de 220V.

Avertissements. Vous devez débrancher l’alimentation électrique ainsi que les relais avant d’ouvrir le boitier et installer un nouveau firmware. Les produits Sonoff sont susceptibles d’être modifiés sans préavis du fabricant. Toutes les étapes indiquées dans ce tutoriel ont été vérifiées. Il se peut que des évolutions techniques empêchent l’installation d’un nouveau firmware. Projets DIY ne pourra pas être tenu pour responsable en cas d’accident, blessure ou détérioration de matériel. Toutes les fonctionnalités proposées par les produits Sonoff peuvent ne pas être prises en charge par les firmware alternatifs. Vérifiez que la fonctionnalité désirée est supportée par le firmware avant de procéder à l’installation. Une procédure de sauvegarde et de restauration est indiquée dans le tutoriel sans aucune garantie de fonctionnement. Fermez le boitier avant de remettre sous tension le module.

Peut-on appliquer ce tutoriel à d’autres appareils Sonoff ?

Oui, la méthode présentée dans ce tutoriel peut s’appliquer à presque toute la gamme. La principale différence réside dans la mise du module en flash mode. Vous trouverez sur le WiKi les procédures à suivre pour les autres modèles de la marque :

Le tableau suivant récapitule les principales spécifications des commutateurs WiFi Itead Swich Smart Home Sonoff

Caractéristiques techniques indicatives susceptibles d’être modifiées par les fabricants à tout moment sans préavis.
  • Modèle
  • Alimentation
  • Relais
  • WiFi
  • 433MHz ou GPRS
  • Mesure (l'achat d'une sonde séparée peut être nécessaire)
  • Puissance max.
  • Certifié CE/FC
  • Compatible (avec firmware d'origine)
  • Meilleur prix

De quels logiciels avez-vous besoin ? esptool.py, PlatformIO

Il est possible d’installer le firmware Tasmota depuis la plupart des logiciels de développement :

L’installation depuis l’IDE Arduino n’est pas la méthode la plus simple. Il faut modifier l’IDE par ajouter le support du module ESP8285, installer des librairies… Comme ce tutoriel s’adresse en priorité aux débutants, je vous propose d’opter pour PlatformIO qui s’occupe de tout. Suivez cet article pour installer PlatformIO su votre PC ou Mac. Une fois installé, il sera possible de le mettre à jour Over-The-Air à l’aide du script python SonOTA ou en téléchargeant le firmware directement depuis l’interface de configuration à l’aide d’un navigateur internet.

Enfin, vous aurez besoin d’installer les outils esptool.py du SDK ESP8266 d’Espressif. Suivez ce tutoriel pour macOS (fonctionne aussi pour Linux) et celui-ci pour Windows. Le script esptool.py va permettre sauvegarder l’ancien firmware, et d’effacer la mémoire flash avant d’installer le nouveau.

Préparation du Sonoff 4CH Pro

Comme tous les modèles de la gamme Sonoff, nous allons devoir souder un connecteur sur le circuit. Commencez par ouvrir le module (remarque, il n’y a aucun étiquette d’annulation de garantie, Itead laisse chacun libre de modifier le firmware).

Le connecteur doit être soudé juste à coté du module ESP8285 (en dessous des Led). Ici j’ai opté pour un hearder mâle (plus facile à découper), choisissez en fonction de vos Jumpers. Pour mettre le module en flash mode, il va falloir relier la broche GPIO0 au GND à l’allumage. Je vous conseille d’ajouter un petit connecteur femelle sur une broche GND du circuit. Par exemple sur le connecteur non peuplé situé au dessus du switch S6.

Avant chaque téléchargement du firmware, il faudra relier avec un jumper la broche GPIO0 au GND puis mettre le module sous tension (soit en connectant la broche VCC du câble FTDI, soit avec une alimentation 5-24VDC). Il suffit d’attendre 1 ou 2 secondes avant de relâcher le jumper. Si la Led bleue indique une activité WiFi, c’est que le module n’est pas en flash mode. Il faut recommencer.

C’est prêt !

Brancher le câble FTDI

Le câble FTDI va nous permettre de communiquer avec l’ESP8285/ESP8266 via le port série. Rien de particulier, sauf que les broches sont inversées sur certains modèles. En fonction de votre câble FTDI et du module Sonoff, vous risquez de devoir un peu tâtonner. Pour le tutoriel, j’ai utilisé ce câble Adafruit.

Evidemment, j’ai commencé par brancher le connecteur de mon câble au port série fraichement soudé sur le 4CVH pro. Et là, rien du tout ! Pas de panique, il suffit de trouver le repérage des broches RX et TX sur le câble (google est notre amis) et d’utiliser 3 jumpers (GND, RX, TX) pour faire un branchement manuel. Normalement, on doit inverser les jumpers entre RX et TX mais ce n’est pas le cas sur la plupart des produits Sonoff car il y a une erreur de repérage sur un PCB. Essayez d’abord sans inverser. Si cela ne fonctionne pas, inversez RX/TX.

Ici, j’ai utilisé une alimentation 12V. Pour les autres modules, connectez également la broche VCC du câble FTDI pour alimenter le module. Attention. N’alimentez pas en 220V les modules durant cette opération. C’est dangereux !

 

Mettre le Sonoff 4CH pro en flash mode (mode programmation)

Maintenant, placez le jumper sur la broche GPIO0 de l’ESP8285 et la broche GND. La broche GPIO0 est la seconde broche du module. Mettez sous tension le module à l’aide de l’alimentation 5-24VDC. Aucune Led (la bleue en particulier) ne doit s’allumer. Le module est en flash mode ! Tout est prêt pour installer le nouveau firmware.

Trouver le port COM du Sonoff 4CH Pro

Sur Windows, branchez le câble FTDI. Attendez que le drivers s’installe si c’est la première fois. Ouvrez PowerShell et exécutez la commande mode. Le port COM sur lequel est branché le Sonoff est listé. Si ce n’est pas le cas, allez dans le panneau de configuration pour vérifier que le drivers de votre câble FTDI est correctement installé

Sur macOS ou Linux, ouvrez le Terminal et exécutez la commande ls /dev/tty.usb* . En retour vous devriez avoir le port COM sous la forme

Sauvegarder  le firmware d’origine et effacer la mémoire

Ouvrez PowerShell ou un Terminal et exécutez la commande suivante en remplaçant le port COM pour sauvegarder le firmware d’origine sur votre ordinateur.

Le dump (la copie) de la mémoire flash est enregistré dans le fichier image1M.bin dans le répertoire d’exécution du script esptool.py.

Maintenant, exécutez cette commande pour effacer totalement l’ancien firmware de la mémoire flash de l’ESP8285. Modifiez le port COM avant d’exécuter la commande.

Pour restaurer l’ancien firmware, exécutez cette commande en modifiant le port COM.

Attention. L’ESP8285 doit être en flash mode pour pouvoir effectuer les opérations décrites ici. Il faut remettre le module en flash mode après chaque exécution d’une commande esptool.

Récupérer le firmware depuis GitHub

Allez sur GitHub pour télécharger le dépôt du projet.

github sonoff tasmota firmware

Installer le firmware Tasmota sur le Sonoff 4CH Pro

Lancez PlatformIO et ouvrez le projet depuis le menu File -> Open Folder. Indiquez le chemin du dépôt GitHub du projet. Ouvrez le fichier user_config.h et cherchez la clé STA_SSID1. Remplacez l’identifiant et le mot de passe WiFi. Vous pouvez indiquer un second réseau alternatif.

sonoff tasmota configure wifi

Ouvrez ensuite le fichier de configuration platformio.ini à la racine du projet et dé-commentez la cible env_default = sonoff. Allez dans le menu PlatformIO et compilez le firmware avec l’option Build. PlatformIO s’occupe de tout !

sonoff tasmota platformio build

Une fois terminé, lancez l’installation depuis le menu PlatformIO puis upload. A la fin de l’installation, le module reboot. La led bleue clignote le temps de se connecter au réseau WiFI puis s’allume en continue. Bravo ! Vous avez terminé l’installation. Retournez dans le menu et ouvrez le moniteur série (Serial Monitor).

 sonoff tasmota platformio serial monitor

Choisissez le port COM sur lequel est branché le Sonoff 4CH Pro.

sonoff tasmota platformio serial monitor com3

Attendez que PowerShell ou le Terminal soit lancé. Débranchez puis rebranchez le Sonoff pour obtenir le journal de démarrage du firmware Tosmata. Ce qui nous intéresse ici, c’est l’adresse IP qui a été attribuée au Sonoff 4CH pro.

sonoff tasmota platformio ip address

Configurer le module

Ouvrez un navigateur web et saisissez l’adresse IP récupérée depuis le moniteur série. Voici la nouvelle interface de configuration.

sonoff tasmota firmware main

La première chose à faire est d’indiquer le module utilisé. Par défaut, c’est le Sonoff Basic qui est sélectionné. Allez à la page Configuration puis Configure Module. Dans la liste, choisissez Sonoff 4CH Pro (n°23) puis Save. Le module reboot.

 sonoff tasmota configuration sonoff tasmota 4ch pro select

Vous pouvez dès maintenant piloter les relais depuis l’interface Web mais également depuis les 4 boutons de commande qui sont toujours disponibles. Les différents modes sont également supportés par le firmware (Self-locking, Interlock et Inching présentés dans l’article précédent). Pour piloter indépendamment les relais, configurez les sélecteurs comme ceci :

  • S6: sur 1
  • K5: tous sur 1
  • K6: tous sur 0

sonoff 4ch pro tasmota firmware esp8285 installed

 

Inclusion du Sonoff 4CH Pro dans Domoticz

Le firmware Tasmota prend tout son sens lorsqu’on dispose d’un serveur domotique.

Préparer le broker MQTT

Tous les échanges avec Domoticz vont se faire via un broker MQTT. Commencez par suivre ce tutoriel pour l’installer sur votre système.

Ajout d’une gateway MQTT

Maintenant que vous disposez d’un broker MQTT, on va y connecter Domoticz. Il pourra ainsi recevoir des messages du firmware : changement d’état des relais, accusé réception d’une commande, relevé de mesure (température, humidité, niveau…). Il servira également à envoyer des commandes aux modules Sonoff manuellement ou d’après un scénario.

Allez dans les réglages puis Matériel. Dans la liste des types, choisissez MQTT Client Gateway with Lan Interface puis renseignez les différents paramètres

  • Donnez un nom. Par exemple Mosquitto
  • Adresse distante : l’adresse IP du broker MQTT ou localhost s’il est installé sur la même machine
  • Port : par défaut 1883
  • Identifiant et Mot de passe si l’accès au broker est protégé. Laissez vide sinon.
  • Publish Topic : ne changez rien.
  • Terminez en cliquant sur Ajouter

domoticz mosquitto mqtt device

Ajout d’un appareil virtuel

Maintenant que l’on peut recevoir et envoyer des messages, on doit créer un matériel virtuel auquel seront attachés les boutons et éventuellement des instruments de mesures. Dans le liste Type, choisissez Dummy (Does Nothing, use for virtual switches only) et donnez un nom. Enfin Ajouter.

Créer des boutons de commande pour les relais

Vous pouvez maintenant créer autant de boutons virtuels que vous avez de relais sur votre Sonoff. 4 dans le cas du Sonoff 4CH Pro. Pour créer un bouton virtuel, cliquez sur Créer capteurs virtuels qui se trouve dans la colonne type du Dummy Device que l’on vient de créer.

sonoff 4ch pro domoticz dummy device

Dans la boîte de dialogue qui s’affiche, choisissez Interrupteur (switch) et donnez le nom désiré.

sonoff 4ch pro create virtual instrument switch

 

Allez ensuite dans les Dispositifs (Réglages -> Dispositifs) pour y retrouver les 4 boutons virtuels qui vont permettre de piloter les 4 relais. Ce qui nous intéresse ici, ce sont les Idx attribués par Domoticz. Ici de 14 à 17.

sonoff 4ch pro idx switch

Configuration broker MQTT et IDX Domoticz sur le Sonoff 4CH pro

Connectez-vous à l’interface d’administration du Sonoff et allez à la page Configuration -> Configure Domoticz. Reportez les IDX trouvés précédemment. Terminez par Save. Le module reboot. Comme vous pouvez le voir, tout est déjà prêt sur le firmware Tasmota pour gérer d’autres capteurs (Température, Temp+Humidité, Baromètre, énergie+puissance du Sonoff POW, luminosité du Sonoff SC, compteur).

sonoff 4ch idx tasmota configuration domoticz

Après le re-démarrage, allez à la page Configuration puis Configure MQTT. Remplissez les paramètres de connexion au Broker :

  • Host : l’adresse IP du broker
  • Port : 1883 par défaut
  • User et Password si l’accès au broker et contrôlé par un mot de passe
  • Vous pouvez laisser les autres paramètres avec les valeurs par défaut.
  • Save. Le Sonoff reboot.

Piloter le Sonoff 4CH Pro depuis Domoticz

Depuis Domoticz, allez à l’onglet Interrupteurs. Vous allez y retrouver les 4 boutons de commande créés précédemment. Appuyez sur un bouton. Si tout est correct, vous allez l’entendre “claquer” et la Led correspondante va l’allumer pour indiquer qu’il a été activé.

sonoff 4ch domoticz dasboard

Voilà. Dans les prochains tutoriels nous verrons comment inclure les modules Sonoff sur d’autres serveurs domotiques (Jeedom, Home Assistant) ou un dashboard pour objets connectés (Node-RED…).

Pour tout problème, un sujet sur le forum est ouvert ici.

Sources utilisées :

Je ne suis pas l’auteur des (toutes) les astuces proposées dans ce tutoriel. Nous pouvons remercier Blair Thompson qui a déjà contribué au Hack de la prise Sonoff S20.

Le tableau suivant récapitule les principales spécifications des commutateurs WiFi Itead Swich Smart Home Sonoff

Caractéristiques techniques indicatives susceptibles d’être modifiées par les fabricants à tout moment sans préavis. Les modules non certifiés CE/FCC sont réservés au marché chinois.
  • Modèle
  • Alimentation
  • Relais
  • WiFi
  • 433MHz ou GPRS
  • Mesure (l'achat d'une sonde séparée peut être nécessaire)
  • Puissance max.
  • Certifié CE/FC
  • Compatible (avec firmware d'origine)
  • Meilleur prix

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous dés inscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

  • Calcipher

    Bonjour,
    Merci pour ce tuto. J’essaye de me lancer mais je galère
    avec PlatformIO. quand je lance le build j’ai une erreur
    ‘C:utilisateurscalcipher.platformiopackagesframework-arduinoespressif8266coresesp8266/wiring_private.h:28:19:
    fatal error: stdio.h: No such file or directory’
    J’ai loupé quelque chose ? Dans le tuto sur PlatformIO je me suis arrêté à la fin du paragraphe ‘

    Installer le package PlatformIO sous Atom’.Sinon ce ne serait pas plus simple de mettre à disposition une image du .bin du firmware ?
    En tout cas, bravo pour le boulot…

  • Frenesik Yoan

    Salut,
    Dis moi tu pourrais partager ton firmware image1.bin, ça a merdé chez, il est bloqué j’ai l’impression…
    Cordialement, Yo.

    • Salut Yoan. Voilà, il est tout chaud, tu peux le récupérer ici https://projetsdiy.fr/wp-content/uploads/public/firmware.bin. Dis moi si tu as encore des problèmes. Bonne soirée

      • Frenesik Yoan

        Salut,
        Merci pour tout mais ça fait comme avec le mien ça merde après, plus de wifi et les relais se déclenche tout seul… Je crois c’est la fin :'(

        • Non, y a toujours de l’espoir :-). Tu peux m’en dire plus.
          – Quand on met le module en flash mode, il arrive parfois que les leds Q2 et Q8 s’allument. dans ce cas, on débranche et on rebranche l’alim. Si tu as fait comme moi avec un jumper, on ripe assez vite sur la broche voisine. C’est bien pour ça qu’il ne faut rien brancher sur les relais pendant qu’on bricole dessus. Pas terrible la sécurité de ce coté là.
          – Peux tu me dire si PlatofrmIO a renvoyé un message d’erreur.
          – Après le téléchargement, le module reboot et la 1ère led d’allume parfois. Surprise aussi.
          – Pour le WiFi, as tu un nouveau point d’accès ? Si c’est le cas, tout va bien. Sinon, tu peux récupérer le journal d’exécution en ouvrant le moniteur série (depuis PIO ou l’IDE Arduino qui fonctionne mieux). Tu auras peut être une piste à m’indiquer
          – Dernière chose, ilest impératif d’effacer la mémoire avant de téléverser. Surtout pour effacer le firmware d’origine ou si le firmware précédent posait problème.
          Bon courage et n’hésite pas à me recontacter. J’ai ouvert un sujet sur le forum pour en discuter https://projetsdiy.fr/forum/viewtopic.php?f=34&t=36

          • Frenesik Yoan

            Heu JTM :x, bon enfaite dès le debut ça marché, suffisait de look un serial monitor pour recup l’ip local et configure Sonoff 4CH pro ! 🙂

          • Super ! Au plaisir de te revoir sur un prochain projet !

          • Frenesik Yoan

            Un grand merci en tout cas pour ta réponse rapide et aide, je viens régulièrement sur ton site et je continuerai :), merci.

          • Avec plaisir !

      • Philippe lucas

        Bonjour, je cherche en vain le mot de passe WIFI pour la première connexion, pouvez vous me le transmettre ? avec mes remerciements par avance. cordialement Philippe

        • Bonjour Philippe. Il n’y a pas de mot de passe par défaut.

  • Steph Des

    Dommage que l’on ne puisse pas s’affranchir du broker pour Domoticz…

  • Jean-Marie ULMER

    Bonjour,

    Je suis très intéressé par cet article.
    Mais je me pose la question de savoir si l’on perd le contrôle par le RF433 après flashage du sonoff ?
    Merci.

    jmu

Projets DIY - Domotique et objets connectés à faire soi-même