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

Hack du 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 :

Xose Pérez est également l’auteur de plusieurs librairies pour projets 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 :

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

/dev/tty.usbserial-A1048DR2

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

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

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

esptool.py -p PORT_COM -b 115200 write_flash -fs 8m -fm dout 0x00000 espurna-1.9.4-itead-sonoff-4ch-pro.bin
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.

Le mot de passe par défaut est fibonacci.

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.

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

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.

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

Allez sur Diomoticz, tout fonctionne déjà !

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

Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Quitter la version mobile