Notifications
Retirer tout

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


fe36ca0d4d6bdcc500dbd432c3c08731?s=80&d=mm&r=g
Posts: 509
Admin
Début du sujet
(@christophe)
Membre
Inscription: Il y a 6 ans
wpf-cross-image

Il est très facile d'installer sur l'ESP8285 le firmware alternatif Tasmota développé par Theo Arends pour hacker le module domotique d' Itead Sonoff 4CH Pro. Ce boitier de commande que l'on pourra installer dans une armoire sur un rail DIN permet de piloter en WiFi ou avec une télécommande radio 433MHz jusqu'à 4 relais. 

 

Article actualisé le 24 avril 2020

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 (boutique officielle), 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. En effet, vous n'avez aucun contrôle sur vos données personnelles. C'est un sujet très sensible actuellement. Le firmware alternatif Open Source Tasmota de Theo Arends permet de résoudre ce problème.

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.

A lire avant de commencer le Hack

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.

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 :

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éparer le 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).

sonoff 4ch pro pcb serial connector unpopulated

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.

sonoff 4ch pro pcb serial connector soldered

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.

ftdi cable pinout TTL5VT usb connectors

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.

sonoff 4ch pro ftdi serial converter

Mettre le Sonoff 4CH pro en flash mode

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.

sonoff 4ch pro esp8285 flash mode

Comment 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

/dev/tty.usbserial-A1048DR2

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.

esptool.py --port PORT_COM read_flash 0x00000 0x100000 image1M.bin

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.

esptool.py --port PORT_COM erase_flash

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

esptool.py --port PORT_COM write_flash -fs 1MB -fm dout 0x0 image1M.bin

Récupérer le firmware Tasmota 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éparation du broker

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.

sonoff 4ch pro domoticz dummy device

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

Configurer le broker MQTT et l'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.

sonoff 4ch pro tasmota mqtt configuration

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

sonoff 4ch pro domoticz tasmota firmware mqtt

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...).

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.

Version sans récepteur 433MHz

Répondre
4 Réponses
20ab6a9b7d549884ec1850dd26593518?s=80&d=mm&r=g
Posts: 1
 Calcipher
Anonyme
(@Calcipher)
Inscription: Il y a 4 ans

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 fatal error: stdio.h: No such file or directory'
Le fichier mentionné wiring_private.h existe pourtant avec le bon chemin, sauf que le / après esp8266 n'est pas bon, il faut un
J'ai loupé quelque chose ? Ou alors c'est un bug spécifique à Windows ?

Edit: J'ai vu après coup cette phrase : "Visual Studio Code avec le plugin PlatformIO. C’est la solution que je vous conseille. Visual Studio Code est beaucoup plus léger et plus stable qu’Atom"
Mais au paragraphe suivant, le lien pour installer PlatformIO le fait avec Atom, et c'est ce que j'ai suivi. La suite est aussi détaillée avec Atom... Je vais réessayer avec Visual Studio Code...

Sinon ce ne serait pas plus simple de mettre à disposition une image du .bin du firmware ?
En tout cas, bravo pour le boulot...

Répondre
33234a9be4a6810ba4a5dd0b54061399?s=80&d=mm&r=g
Posts: 3
 Frenesik Yoan
Anonyme
(@Frenesik Yoan)
Inscription: Il y a 4 ans

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

Répondre
2 Réponse
6647f472b43d0bcd297b24402f6134d4?s=80&d=mm&r=g
 Projets DIY
Anonyme
(@Projets DIY)
Inscription: Il y a 4 ans

Posts: 55

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

Répondre
33234a9be4a6810ba4a5dd0b54061399?s=80&d=mm&r=g
 Frenesik Yoan
Anonyme
(@Frenesik Yoan)
Inscription: Il y a 4 ans

Posts: 3

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 :'(

Répondre
Share:
Rejoignez nous!
Chercher sur le forum
Derniers tutoriels
Derniers messages postés sur le forum
Domotique et objets connectés à faire soi-même
Domotique et objets connectés à faire soi-même
Vous avez aimé ce tutoriel

Ne manquez plus les prochains projets

Recevez chaque semaine le récapitulatif des tutoriels et projets.

Vous pouvez vous désabonner à tout moment.