J'ai découvert les modules Shelly à base d'ESP8266 et qui sont facilement encastrables vu leur taille réduite (ce qui n'est pas le cas des modules Sonoff Dual). Du coup, j'ai commandé un module Shelly 1 (version 3) qui est un simple switch et un module Shelly 2.5 qui est un double switch permettant de piloter des volets roulants. On peut y installer facilement le firmware Tasmota.
Remarque : la société les fabriquant est installée en Bulgarie.
Sources :
- https://blakadder.github.io/templates/shelly_1.html
- https://blakadder.github.io/templates/shelly_25.html
- https://github.com/arendst/Sonoff-Tasmota/wiki/Esptool
Remarque : Depuis la version 1.3.0 du firmware inclus dans les Shelly, il est possible d'y flasher Tasmota sans avoir à le faire physiquement via les connecteurs. On peut le faire directement en OTA (Over The Air) via le wifi !!! Source : https://www.youtube.com/watch?v=_oRr8FZyyQ0
Page pour l'outil de flashage : https://github.com/arendst/mgos-to-tasmota/
Interrupteur Shelly 1 v3
Interrupteur reçu au bout de 5 jours dans une boîte avec notice. C'est un interrupteur simple avec un seul relais qui peut être utilisé pour commander un éclairage par exemple. Voir ici les possibilités de branchements https://www.shelly-support.eu/lexikon/index.php?entry/47-connection-diagrams-shelly-1/
J'ai aussi décidé de l'utiliser pour piloter une porte de garage dans l'article ici.
Le flashage se fait comme d'habitude : je suis passé par l'outil Esptool sous Ubuntu.
Édition du 28/07/2020 : il est possible de flasher Tasmota via l'outil dédié Tasmotizer, https://github.com/tasmota/tasmotizer. Cela simplifie GRANDEMENT la procédure (j'ai utilisé l'option 2 du site).
Je n'ai rencontré aucun problème en suivant bien la procédure (en veillant à bien se mettre à chaque fois en configuration "firmware upload" en reliant au démarrage la broche GPIO0 à GND) ici https://github.com/arendst/Sonoff-Tasmota/wiki/Esptool avec comme lignes de commande :
Pour la sauvegarde du firmware original :
esptool.py --port /dev/ttyUSB0 read_flash 0x00000 0x100000 image1M.bin
Pour effacer la mémoire :
esptool.py --port /dev/ttyUSB0 erase_flash
Pour téléverser le firmware Tasmota :
esptool.py --port /dev/ttyUSB0 write_flash -fs 1MB -fm dout 0x0 sonoff-FR.bin
Après que le flashage se soit bien déroulé, il suffit de se connecter au nouveau réseau wifi ayant un nom sous la forme de "sonoff-xxxx" et de saisir les identifiants de connexion du réseau Wi-Fi sous lequel fonctionnera le module.
Ensuite on se connecte (il faudra trouver son adresse IP via la commande : nmap -sP 192.168.1.0/24) et si utile, on met à jour le firmware avec la version qui nous intéresse (par exemple "sonoff-FR.bin").
Pour fixer une adresse IP, on va dans le mode console de Tasmota et on saisit la commande :
IPAddress1 192.168.1.xx
Ensuite, il faut configurer le module en choisissant le modèle Shelly1, paramétrant MQTT, ....
Je me suis servi de ce module pour commander l'éclairage extérieur de la porte d'entrée. L'interrupteur avec un voyant indiquant l'état est parfaitement fonctionnel avec le branchement suivant :
Interrupteur Shelly 2.5
C'est un interrupteur double (à 2 relais), ce qui lui permet de pouvoir commander des volets roulants. De plus, il mesure aussi la quantité d'énergie consommée par les appareils connectés à l'interrupteur. Schéma de câblage ici : https://www.shelly-support.eu/lexikon/index.php?entry/48-connection-diagrams-shelly-2-5/.
Pour le flashage, on va faire comme ci-dessus (procédure identique pour le Shelly 1 décrite ci-dessus), sauf que les broches sont plus fines qu'habituellement, ce qui empêche de brancher des câbles Dupont. Il faut donc se fabriquer une broche avec des pattes fines comme celles qu'on a sur les résistances classiques : du coup, j'ai soudé au bout des câbles des morceaux de fils de résistances. Veillez, lors du flashage, à bien séparer les broches pour qu'elles ne rentrent pas en contact entre elles.
Branchements du module Shelly 2.5 vers l'adaptateur série FTDI USB vers TLL :
- TX (fil jaune) -> RX (fil orange)
- RX (fil orange) -> TX (fil jaune)
- 3.3V Vcc (fil vert) -> Vcc (fil vert)
- GPIO0 (fil mauve) -> en contact au démarrage avec les fils bleus GND
- GND (fil bleu) -> GND (fil bleu)
Remarque : lorsqu'on branche, au niveau du bouton "reset", une diode rouge s'allume sur le module avec une intensité plus grande lorsque GPIO0 est relié à GND, ce qui est utile pour savoir si on boote bien en mode "upload firmware". Lorsqu'on déconnecte GPIO0 de GND, l'intensité est moins vive.
Aucun problème pour le flashage !
Pour la configuration, comme d'habitude on se connecte sur le réseau wifi commençant pas "Sonoff-xxx".
Voir ici : https://github.com/arendst/Sonoff-Tasmota/wiki/Shelly-2.5
Je me suis servi de ce module pour piloter le volet roulant de la cuisine. J'ai dû changer les boutons physiques par 2 boutons poussoirs (important pour éviter des conflits entre les boutons et les commandes Wifi pour éviter d'avoir les 2 relais commandant la montée et la descente enclenchés en même temps).
Puis on configure le module selon ce paramétrage via le menu "Configuration" -> "Autre configuration" en collant cette ligne :
{"NAME":"Shelly 2.5 VR Cuisine","GPIO":[56,255,17,255,21,127,0,0,6,128,5,22,156],"FLAG":2,"BASE":18}
Ensuite on va dans la console (liste des commandes détaillées ici : https://github.com/arendst/Sonoff-Tasmota/wiki/Commands), on active le mode "Interlock" qui justement empêche le fonctionnement simultanée des relais en tapant :
Interlock 1
Pour limiter le temps d'impulsion, toujours dans la console, on saisit :
PulseTime1 118
PulseTime2 118
Pour fixer l'adresse IP du module, on tape :
IPAddress1 192.168.1.xx
Pour indiquer la zone horaire (utile pour l'heure de lever et de coucher du soleil) prenant en compte les heures d'hiver et d'été, on tape :
Timezone 99