SonOff Mini R2 – Installer son propre Firmware via le WiFi
Installation 100% logiciel sans intervention sur le matériel

Le SonOff mini est un module très utile en domotique. Il dispose de nombreuses caractéristiques séduisantes comme:
– une taille réduite 42*42*20mm permettant de se loger à l’intérieur de boites d’interrupteurs muraux
– un relais permettant de commuter du 230v jusqu’à 10A
– une entrée permettant de recevoir une commande comme un interrupteur
– une liaison wifi permettant un contrôle à distance
– un microcontrôleur (ESP 8285 similaire au 8266) programmable pour gérer la logique de l’ensemble
– un prix en dessous de 10€
Dans un précédent article, j’ai décrit l’installation du firmware ESP Easy pour personnaliser son SonOff. Cette installation nécessitant de souder des broches peu en rebuter plus d’un. Ici on utilise l’IDE Arduino pour développer son propre code et le télécharger en mode OTA (On The Air) par le WiFi. Cela offre la possibilité de piloter le relais du SonOff depuis un système domotique (HA, Domoticz..) ou depuis une page web sur son smartphone. Ceci évite de passer par les applications propriétaires sur smartphone qui font transiter vos commandes via un cloud localisé quelque part dans le monde.
Etape 1 : Installation – SonOff DIY
Sortir le SonOff de sa boite et le brancher sur le 230V. On va utiliser le mode dit DIY (Do IT Yourself) du SonOff pour accéder à la reprogrammation du firmware.

Une fois mis sous tension, il faut appuyer sur l’interrupteur du boitier au moins 5s (voire une deuxième fois 5s si le système a déjà été programmé). La led bleu clignote rapidement, le SonOff passe en émission Wifi (Access Point « ITEAD….xxxxx ») se connecter avec un smartphone avec le mot de passe 12345678. Si la connexion ne se fait pas automatiquement, l’adresse IP à rentrer dans votre navigateur est http://10.10.7.1/. Renseigner alors le nom du wifi local à utiliser (SSID) à l’avenir ainsi que le mot de passe de votre réseau.
Télécharger l’outil « SonOff DIY Mode Tool » . Dézippez le fichier et dans le dossier « tool » lancez l’exécutable « tool_01DIY85(v3.3.0).exe » sur un PC connecté au même réseau que votre Wifi. Entre temps, trouvez via votre box internet ou tout autre outil, l’adresse IP qui a été attribuée à votre SonOff-Mini. Cet outil va scanner votre réseau et trouver le SonOff.
L’outil SonOff DIY Mode Tool pour windows permet de se familiariser avec les commandes à passer (REST API) au SonOff pour contrôler le relais depuis un système de domotique, mais on n’a aucun contrôle sur le firmware. Par contre, il y a en haut à droite un bouton « Firmware Flash » ou « Brush machine » qui permet de télécharger un nouveau firmware.

Etape 2 : Installation Nouveau Firmware
Comme l’accès au micro-contrôleur ESP, ne peut se faire que par le Wifi, il faut y implanter un logiciel qui permet des mises à jour par le WiFi dit OTA (On The Air). Pour cela, on utilise l’outil de développement IDE d’Arduino.
Solution 1
La première possibilité est d’utiliser un exemple fourni dans l’IDE. Choisir le programme « ArduinoOTA/BasicOTA » pour ESP8266. C’est le minimum requis à implanter dans tout programme pour être en possibilité de le mettre à jour ultérieurement. Retirer toutes les sorties sur le port série non disponible : Serial….

Dans l’Arduino IDE, il faut choisir la carte Generic ‘ESP8266 Module. Dans le code, rentrer le SSID et le mot de passe du WiFi. Surtout ne pas oublier, car vous ne pourriez plus accéder à l’ESP sauf à le reprogrammer par du hardware.
Ce bout de code ne fait rien à part installer le minimum pour faire des mises à jour via le WiFi.
Pour créer le binaire à ‘uploader’ vers l’ESP, allez dans croquis, sélectionnez ‘Exporter les binaires compilés’. On retrouve le binaire dans le dossier source avec une extension .bin
Avec l’outil DIY Mode Tool, uploadez le fichier binaire. Par la suite, l’IDE Arduino reconnait votre accès à la carte par Wifi, et vous pourrez ‘uploader’ n’importe quelle application, mais toujours y inclure au minimum :
- #include <ArduinoOTA.h> , la librairie OTA
- ArduinoOTA.begin(); dans le setup
- ArduinoOTA.handle(); dans la boucle loop
Solution 2
La seconde possibilité est d’implanter l’exemple téléchargeable ici qui permet de piloter le relais :
- depuis une page web,
- à distance depuis une application domotique avec une commande http ,
- en branchant un interrupteur sur les entrées S1 et S2 de l’ESP Mini R2

Pour créer le binaire à ‘uploader’ vers l’ESP, dezippez le fichier téléchargé qui comprend un dossier avec un fichier .ino et un fichier.h . Ouvrir le fichier source .ino dans l’IDE Arduino. Sélectionnez la carte ‘Generic ESP 8266 module, allez dans croquis, sélectionnez ‘Exporter les binaires compilés’. On retrouve le binaire dans le dossier source avec une extension .bin
Avec l’outil DIY Mode Tool, uploadez le fichier binaire vers l’ESP.
À ce stade, le programme implanté va tourner, mais il ne connait pas le nom du wifi où se connecter. Il va passer en mode Wifi : point d’accès. Prenez votre smartphone ou un PC avec une interface Wifi. Recherchez un réseau qui s’appelle : F1ATB-SonOff-…..
Connectez-vous au réseau, il n’y a pas de mot de passe.
Lancez un navigateur à l’adresse : http://192.168.4.1
L’ESP va vous envoyer une page vous demandant le nom du réseau WIFI sur lequel il devra se connecter à l’avenir, ainsi que le mot de passe. Ces valeurs sont stockées dans la mémoire EEPROM de l’ESP.
Connectez-vous avec votre smartphone ou PC à ce réseau WIFI et vous y retrouverez l’ESP à l’adresse IP qui lui aura été attribué par votre box. Si vous ne connaissez pas l’adresse IP, regardez au niveau de votre box la liste des machines connectées.
Par sécurité, si l’ESP en mode point d’accès, n’a pas de client au bout de 3mn, il se reset. Si par la suite, il n’arrive pas à se connecter, il repasse en mode point d’accès pendant 3mn.
Ordres accès à distance
On accède à l’ESP par l’adresse ip (ex:192.168.1.10) ou par http://hostname.local , un serveur mDNS étant implanté.
http://<ip> Accès à la page web de contrôle du relais
http://<ip>/Relay?R=1 commande à distance, relais on
http://<ip>/Relay?R=0 commande à distance, relais off
http://<ip>/Debug Debug et historique des commandes reçues
Par la suite, toutes les mises à jour se font en OTA par l’IDE Arduino. Il faut sélectionner la carte à la bonne adresse IP . Surtout, n’oubliez pas le bout de code pour accéder en OTA :
- #include <ArduinoOTA.h> , la librairie OTA
- ArduinoOTA.begin(); dans le setup
- ArduinoOTA.handle(); dans la boucle loop
Bugs Soft
L’IDE Arduino va vous demander un mot de passe lors de la compilation en mode OTA. Répondez n’importe quoi, 1 lettre minimum.
Parfois avec l’IDE Arduino en fin de transfert, l’icône reste jaune et vous n’avez plus la main. Fermez l’IDE et le relancez.
SonOff Mini Hardware
La broche GPIO4 et la masse sont disponibles sur le bornier. Pour les autres broches, ouvrir le SonOff pour y accéder.
GPIO0 | Switch | Programmation ESP |
GPIO1 | TX | |
GPIO2 | ||
GPIO3 | RX | |
GPIO4 | Entrée sur le bornier | |
GPIO12 | Relais | 1= »On »0= »Off » |
GPIO13 | LED bleue | O= »Off » 1= »On » |
En plus d’une commande par le web, on peut brancher un interrupteur qui à chaque basculement fera changer l’état du relais.

Dans une installation domestique, on peut remplacer un système de va-et-vient avec 2 interrupteurs en implantant un SonOff qui reprendra les 2 interrupteurs existants. La liaison étant en basse tension 3.3v, on peut utiliser du fil de téléphone pour relier les interrupteurs entre eux.

Bonjour
Je voulais ajouter la carte Generic ESP 8266 module mais je ne la trouve pas dans la liste d’ajout des carte sous arduino, comment procéder ?
Merci d’avance,
Dsl c’est bon j’ai ajouté la carte, réussi à flasher puis a y donner les réseau et code wifi, par contre ensuite impossible d’y accéder…si vous avez une idée je suis preneur ?
Pour info complémentaire le sonoff reste allumé bleu fixe sans changement même en appuyant sur le switch
Regardez si vous voyez le SonOff dans la liste des cartes vue par l’Arduino en Wifi et regardez s’il n’est pas passé en mode point d’accès.
Cdlt
Bonjour,
C’est bon, après avoir un peu galeré j’ai accès aux commandes via son serveur web merci ! Du coup si je veux le piloter avec le routeur, je renseigne son iP dans Host, le Port 80, par contre que dois-je mettre dans les commandes On et Off pour le piloter ? Respectivement GPIO=12&out=1 et GPIO=12&out=0 c’est correct ?
Si vous avez implanté le programme SonOff_MiniR2_RelayControl_V1.0. Comme expliqué ci dessus les commandes sont :
http://adresse_ip/Relay?R=1 commande à distance, relais on
http://adresse_ip/Relay?R=0 commande à distance, relais off
Oui c’est bon, ok j’avais pas saisi merci j’essai ça ce soir !
Merci encore !
Rebonjour,
Du coup j’ai fait le test en renseignant aussi l’IP mais ça ne fonctionne pas, si vous avez une idée je suis preneur, je comprends pas pourquoi d’autant plus qu’en appelant les pages web ça fonctionne, bouton pour allumer ou éteindre le relais et appel page web relais à 1 ou à 0, seule la gestion par le routeur v3.03 ne fonctionne pas…
Je viens de faire le test avec le routeur V3.03_UxI. Voici mes paramètres. Ajustez l’adresse IP.

Ok merci, je vais refaire un test, sinon je procèderai différemment, je ferai un autre esp deporté avec contacteurs.
Merci à vous !