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 !
Bonjour,
merci pour votre travail.
En utilisant la solution 2 pour modifier le firmware du relais, le fichier bin fait 294K et dans DIY FLASH Firmware Tool 3.3.0 j’ai un message d’erreur quand j’importe le firmware qui indique « Firmware file cannot be greater than 508k; the firmware must be Dout »
Donc impossible de modifier le firmware.
Avez-vous une idée ?
Je comprends pas. Un changement de bibliothĂšque depuis que j’ai publiĂ© l’article?
Cdlt
Cela pourra peut ĂȘtre aider d’autres personnes, il faut paramĂ©trer dans « outils » de l’IDE arduino le mode flash en DOUT avant enxpoter les binaires compilĂ©s.
Maintenant que j’ai flashĂ© « SonOff_MiniR2_RelayControl_V1.0.ino.bin » tout Ă l’air bloquĂ© la led bleue reste allumĂ©e et je n’ai pas le rĂ©seau wifi « F1ATB-SonOff-âŠ.. » Je continue les recherches đ
Bonjour AndrĂ©, j’essaie de configurer un Sonoff Mini R2, j’ai effectuĂ© l’Ă©tape 1 et je vois bien le module dans « DIY mode Tool ». Ensuite dans Arduino IDE j’ai crĂ©e le binaire BasicOTA sur la carte « Generic ESP8266 Module ». Lorsque je veux le charger dans le Sonoff avec « DIY Flash FirmwareTool », je clique sur OK et tous les boutons deviennent gris et il n’y a pas de progression et ça reste figĂ© comme ça. Une chose que j’ai remarquĂ© dans ArduinoIDE, dans la ligne d’Ă©tat en bas, il y a « Generic ESP8266 Module sur 192.168.1.56 [hors ligne] ». Cette adresse IP est celle du module ESP32 que j’ai configurĂ© avec votre programme prĂ©cĂ©demment. Je ne trouve pas le moyen de supprimer ce port dans ArduinoIDE. Pensez-vous que le problĂšme peut venir de lĂ svp ? Merci pour votre aide.
L’Arduino IDE affiche ESP8266 Module sur 192.168.1.56 parce qu’il voit cet ESP32 sur le rĂ©seau pour un accĂšs via OTA.
Pensez à mettre à zéro le GPIO 0 pour passer le sonoff en mode programmation.
J’ai actionnĂ© le switch avec un fil et rĂ©essayĂ© malheureusement le rĂ©sultat est le mĂȘme, l’import ne fonctionne pas, mĂȘme en rapprochant le module de la box au cas oĂč il y aurait un problĂšme de rĂ©ception Wifi. Par le « DIY Tool » je peux passer le Sonoff en ON et en OFF et j’entends le relais manoeuvrĂ©. J’ai aussi dĂ©sactivĂ© le DHCP et forcĂ© l’IP en 192.168.1.56. C’est pas mieux, l’ArduinoIDE voit toujours cette IP hors ligne. Mon rĂ©seau Wifi a un SSID unique avec un rĂ©seau en 2,4Ghz et un 5Ghz, le Sonoff est sur le 2,4Ghz et mon PC sur le 5Ghz. Est- ce que ça pourrait venir de cela ? Si c’est cela je suis bloquĂ© car mon PC refuse de se connecter sur 2,4Ghz. Merci
J’ai dĂ©montĂ© le Sonoff et j’ai vu que le chipset Ă©tait un 8285. Est-ce que ça pourrait ĂȘtre le problĂšme ?
8285 est proche du 8266 pour le compilation.
Cdlt
D’accord, merci. Autre chose que j’ai remarquĂ©e, dans les infos du Sonoff fournies par DIY Tool, c’est que la valeur du paramĂštre otaUnlock est False. Est-ce que cela pourrait empĂȘcher de flasher ?
J’ai trouvĂ© des outils comme Postman et l’extension RESTer dans un navigateur qui permettent de lancer des requĂȘtes HTTP POST et qui actionnent le relais du Sonoff. Etant novice dans ces systĂšmes, il y a surement des choses qui m’Ă©chappent, mais je me disais serait-il possible de lancer ces requĂȘtes HTTP POST depuis l’ESP32 et ainsi ne pas avoir besoin de flasher le Sonoff ?
Bonjour Francis, j’ai le mĂȘme souci que toi, impossible d’envoyer le firmware (mĂ©thode 1 ou 2), l’outil DIY TOOL se grise. J’ai pourtant tout respectĂ© Ă la lettre.
Si tu trouves la solution, je suis preneur.
Bonjour Alex, je vois ta question juste maintenant, dĂ©solĂ©. Je suis passĂ© par la mĂ©thode hardware via un module TTL/USB que j’ai achetĂ© sur AliExpress et j’ai suivi les instructions d’AndrĂ© dans https://f1atb.fr/fr/sonoff-mini-esp-easy/. Par contre les pastilles +3,3V, TX et RX sont trĂšs fragiles et quand j’y ai soudĂ© les fiches, les pastilles se sont arrachĂ©es avec le poids des fiches. J’ai donc soudĂ© une fiche sur le 5V qui est plus solide en veillant bien Ă mettre le cavalier sur 5V sur le TTL/USB. J’ai branchĂ© la fiche GND sur le bornier. J’ai lancĂ© le tĂ©lĂ©versement du programme et pendant la compilation j’ai pris les fiches TX et RX Ă la main que j’ai plaquĂ©es sur les pastilles RX et TX et que j’ai tenues pendant le tĂ©lĂ©versement. J’ai fait ça sur 2 Sonoff et le routeur les commande parfaitement bien.
Bonjour,
Merci pour ce beau travail.
Malheureusement, je confirme que la carte « Generic ESP 8266 module » n’est pas trouvĂ©e dan l’appli Arduino. Comment faire pour la charger ?
Pour aller « droit au but », ne pourrait-on pas avoir en téléchargement directement le .BIN qui doit en résulter ?
N’ayant pu charger votre code, je me suis rabattu sur Tasmota et j’ai trouvĂ© une page qui relate parfaitement les lignes de commandes Ă passer depuis Windows, comme depuis Linux, donc j’ai fait profiter tout le monde: https://lindevs.com/flash-the-tasmota-firmware-on-sonoff-minir2-switch
Bonjour,
Est ‘il necessaire de flasher le le module SONOFF pour le rajouter a une installation routeur Solaire ? la cas Ă©chĂ©ant, quel module contact WIFI pouvez vous me proposer ?
Merci pour tout , et super travail .
Bonjour, sais tu les commande Ă envoyer pour un Sonoff POWR2 sous tasmota , J’ai essayĂ© cmnd/topic/Power On ou Power%20On sans succĂšs.
Merci de ton aide
j’ai fini par trouver ! :/cm?cmnd=Power%20On et /cm?cmnd=Power%20Off