#Hack : Sonoff 4CH Pro avec le firmware MQTT Espurna, inclusion dans Domoticz (Partie 1 : installation d’une image pré-compilée)

Aujourd’hui, je vous propose de continuer la série d’articles qui explique comment Hacker le module Itead Sonoff 4CH Pro en installant le firmware Espurna. Tout comme le firmware Tasmota testé précédemment, le firmware Espurna permet de piloter les relais des modules Itead Sonoff depuis un serveur domotique (Domoticz, Jeedom, Home Assistant…) ou un dashboard Node-RED via un broker MQTT. Le firmware Espurna est plus esthétique et ajoute une connexion directe à une base de données InfluxDB. Pratique pour enregistrer directement des relevés (température, consommation électrique…) en vue de faire des analyses ou des graphiques avec Grafana par exemple. Dans le prochain article, nous verrons les différences entre les différents firmware disponibles pour Hacker l’ESP8285/ESP8266 des modules Sonoff.

Présentation du firmware Espurna

Le firmware Espurna est développé par Xose Pérez (site perso). Le projet est hébergé sur le site BitBucket. Le firmware Espurna est connu pour le hack des modules Sonoff mais il est peut être utilisé sur (beaucoup) d’autres produits également :

Le tableau suivant récapitule les principales spécifications des commutateurs WiFi Itead Swich Smart Home Sonoff sur lesquels vous pouvez installer le firmware Espurna.

Caractéristiques techniques indicatives susceptibles d’être modifiées par les fabricants à tout moment sans préavis. Les modules non certifiés CE/FC 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

Xose Pérez est également l’auteur de plusieurs librairies pour projets ESP8266

  • JustWifi, une librairie pour gérer la connexion WiFi des projet ESP8266 similaire à la librairie WiFiManager présentée dans cet article
  • DebounceEvent, permet de détecter correctement une pression sur un bouton poussoir
  • FauxmoESP permet d’émuler le protocole et de faire croire à un serveur domotique ou un Amazon Echo que c’est un appareil Belkin WeMo.
  • HLW8012 permet de gérer le circuit de mesure de courant du même nom. Il est utilisé notamment dans la prise connectée Sonoff POW.
  • EmonLiteESP est une librairie qui permet de faire des mesures de courant basée sur la librairie EmonLib (elle n’est pas compatible avec cette dernière). Vous pourrez intégrer un capteur de mesure de courant tel que le SCT-013-010.
  • my9291 permet de piloter les Led. Uniquement compatible avec les ampoules connectées RGB du fabricant AI-Thinker que l’on trouve sur AliExpress par exemple.
  • NoFUSS est un serveur de mise à jour pour firmware ESP8266.

Les échanges avec un serveur domotique ou du code python, un dashboard Node-RED se feront via un broker MQTT. Contrairement au firmware Tasmota, il est nécessaire de compiler le firmware pour la carte ciblée en configurant les capteurs que l’on souhaite éventuellement brancher. Heureusement, Xose Pérez s’occupe de préparer des binaires pour différentes combinaisons (DHT22, OTA, DS18B20…) à chaque mise à jour. Les fichiers binaires les plus courants sont déjà prêt à l’emploi. Il suffira de télécharger le binaire et l’installer avec esptool du SDK Espressif. Dans la seconde partie de cette article, nous verrons comment personnaliser le firmware à partir du code source du projet.

Principales fonctions du firmware

Sans rentrer dans les détails voici ce que permet de faire le firmware Espurna :

  • Une interface d’administration et de contrôle manuel des relais.
  • Intégration possible avec Amazon Alexa et Home Assistant (découverte automatique)
  • 5 réseaux WiFi peuvent être configurés.
  • La connexion à un broker MQTT qui permet de publier des mesures (télémétrie des sondes branchées), de recevoir les commandes et de publier les statuts
    • La connexion par mot de passe est gérée
    • Il est possible de personnaliser le Topic
    • Les messages peuvent être envoyés au format JSON. Peut être utile pour une intégration en Python, Node-RED, javascript…
  • La récupération de l’heure sur un serveur de temps NTP (un tutoriel pour le apprendre comment l’intégrer dans vos projets Arduino). Les messages MQTT pourront ainsi être horodatés. C’est surtout utilise lorsqu’on souhaite enregistrer les mesures directement sur une base InfluxDB. Trois serveurs différentes peuvent être configurés
  • Les Topics Domoticz IN et OUT sont gérés. On indique l’IDX des appareils récupérés sur Domoticz pour chaque relais. Petit regret, les mesures ne peuvent pas être combinées pour former un appareil Domoticz unique, par exemple un appareil Température + Humidité. On devra créer autant d’appareil pour chaque grandeur mesurée et indiquer l’IDX correspondant
  • Connexion et publication des mesures télémétriques sur une base de données InfluxDB (tutoriels pour débuter). Pratique pour des analyses ultérieures ou réaliser des graphiques avec Grafana (tutoriels sur Grafana)
  • Pilotage des relais à l’aide de requêtes HTTP. Il faut activer l’API HTTP depuis l’onglet Administration. On pourra s’en servir pour piloter les relais sans passer par un broker MQTT.
  • Mise à jour Over-The-Air (depuis l’onglet administration)
espurna sonoff 4ch pro dht22 status espurna sonoff 4ch pro dht22 general espurna sonoff 4ch pro dht22 wifi
espurna sonoff 4ch pro dht22 mqtt espurna sonoff 4ch pro dht22 ntp espurna sonoff 4ch pro dht22 domoticz
espurna sonoff 4ch pro dht22 influxdb  espurna sonoff 4ch pro dht22 administration

De quels logiciels avez-vous besoin ? esptool.py

Pour installer le firmware, vous aurez besoin d’installer du script 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 de sauvegarder l’ancien firmware, effacer la mémoire flash et installer le firmware Espurna.

Préparation du Sonoff 4CH Pro

Suivez les étapes de ce tutoriel pour ajouter un connecteur permettant de flasher l’ESP8285 à l’aide d’un câble FTDI.

Respectez les consignes de sécurité indiquées dans le présent tutoriel et celui-ci. Ne faites aucune modification des modules lorsqu’ils sont sous tension ! Toutes les modifications techniques ou logicielles apportées sont réalisées sous votre entière responsabilité. Projets DIY ne pourra pas être tenu pour responsable en cas d’accident, blessure ou détérioration de matériel.

Trouver le port COM du Sonoff 4CH Pro

Mettez le module en flash mode (en reliant le GPIO0 à une broche GND à la mise sous tension).

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

Depuis PowerShell ou le Terminal, exécutez la commande suivante en remplaçant le port COM de votre carte 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.

Tout est prêt.

Récupérer l’image du firmware Espurna

Allez sur le site du projet (bitbucket.org) à la page Download et téléchargez l’image qui correspond à votre module Sonoff (ici le Sonoff 4CH Pro).

espurna download binary image sonoff basic pow dual 4ch pro

Mettez le module en flash mode et exécutez la commande suivante (en indiquant le port COM) pour installer le firmware Espurna.

Remarque. Il est possible de directement indiquer le chemin du fichier binaire dans la commande si esptool.py n’est accessible que depuis le répertoire d’installation (le cas sous Windows notamment).

A la fin de l’installation, le module reboot.

Première connexion au Sonoff 4CH pro hacké avec le firmware Espurna

Le firmware Espurna créé un point d’accès WiFi (Mode AP, Access Point) qui va permettre de se connecter à l’interface d’administration. Une fois qu’un réseau WiFi aura été configuré, on pourra s’y connecter directement. Ouvrez le gestionnaire de connexion WiFi de votre ordinateur.

espurna premiere connexion

Le mot de passe par défaut est fibonacci.

espurna password access point

Une fois connecté, ouvrez un navigateur est allez à l’adresse 192.168.4.1. L’interface d’administration est protégée par un identifiant et mot de passe. Par défaut (à la première connexion), saisissez admin (utilisateur) et le mot de passe fibonacci.

A la première connexion, un nouveau de passe est demandé. Il doit au moins être composé de 8 caractères et doit contenir une majuscule, un chiffre.

Configuration WiFi

La première chose à faire est de configurer un réseau WiFi. Vous pouvez ajouter jusqu’à 5 réseaux. Cliquez sur Update pour enregistrer la configuration. Le module reboot. Le point d’accès est supprimé. Reconnectez vous au réseau WiFi.

espurna sonoff 4ch pro dht22 wifi

Je vous conseille d’attribuer une adresse IP fixe ce qui vous permettra de toujours pouvoir accéder au module même en cas de remplacement de routeur. Si ce n’est pas le cas, comme vous êtes toujours relié au module par une liaison WiFi, lancez l’IDE Arduino et ouvrez le moniteur série. Relancez le module pour récupérer le journal de démarrage qui va indiquer l’adresse IP attribuée par le routeur.

Configurer le broker MQTT

Rien de bien compliqué pour configurer le broker. On active la connexion et on indique les paramètres

  • Adresse IP
  • Port (1883 par défaut)
  • L’utilisateur et le mot de passe si une protection existe
  • On peut enfin configurer le Topic. Ici par exemple tous les messages commenceront par /sonoff4chpro/switch.

espurna sonoff 4ch pro dht22 mqtt

Configurer la connexion à Domoticz

J’ai repris la configuration Domoticz du précédent tutoriel. Comme vous pouvez le voir, il y a deux IDX supplémentaires pour la température et l’humidité. Pour le tutoriel, j’ai ajouté un DHT11 sur le GPIO2 en modifiant le firmware. Les réglages apparaissent en fonctions des sondes déclarées lors de la compilation du firmware. Nous verrons comment faire dans le prochain tutoriel.

espurna sonoff 4ch pro dht22 domoticz

On reporte donc les IDX récupérés sur Domoticz et on sauvegarde.

sonoff 4ch pro idx switch

Allez sur Diomoticz, tout fonctionne déjà !

sonoff 4ch domoticz dasboard

Voilà, c’est terminé pour ce premier tutoriel sur le firmware Espurna. Il est simple et efficace. Inutile de s’y connaitre en programmation. Il est plus limité que le firmware Tasmota dès que l’on souhaite ajouter des capteurs mais on gagne d’autres fonctions (InfluxDB, NTP, auto-découverte sous Home Assistant…).

Spécifications

Critères

Marque | fabricant: Sonoff Itead

SoC | Arduino | ESP8266 | ESP32 : ESP8266 | ESP8285

Actionneurs: Relais

Débutant | livre | tutoriel

Hack

WiFi

Radio (433MHz, LoraWan, Sigfox...) | GPRS

Puissance Max.: 2200W / 10A

Certifié CE/FCC

Alimentation: 90-250V + 5-24VDC

Sorties | ports USB | relais: ~

~tags:

Inscrivez-vous à la newsletter hebdomadaire

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