Mise à jour du 2/08/2020 : voir à la fin de la page comment effectuer le réglage fin du positionnement des volets roulants en se servant des nouvelles fonctionnalités "shutter".

J'ai découvert des interrupteurs wifi pour volet roulant à base d'ESP8266. En anglais, on les appelle "curtain switch" ou "roller shutter". Ces interrupteurs fonctionnent avec l'application Smart Life / Tuya. Cette application s'appuie sur des serveurs externes (souvent en Chine) pour fonctionner : ce n'est vraiment pas dans mes intentions d'externaliser ma domotique... Par contre, ils pouvaient être flashés facilement via OTA avec l'outil "Tuya Convert" mais j'ai malheureusement découvert que suite à une mise à jour des fabricants (GRR !!!), cela n'est désormais plus possible à l'heure actuelle. Il va falloir passer par la méthode habituelle de flashage manuel nécessitant un démontage de l'interrupteur, sans garantie de réussite...

Sources :

I- Modules à base de carte TYWE3S

Ce type d'appareils est construit autour d'une carte TYWE3S.
Sources : https://docs.tuya.com/en/hardware/WiFi-module/wifi-e3s-module.html

TYWE3S

II- Interrupteur LoraTap / QCSmart

Interrupteur https://fr.aliexpress.com/item/32963064005.html reçu au bout de 15 jours, très bien emballé. De prime abord, la qualité semble là avec une platine de verre. Il est livré avec un domino de type Wago et un fil de connexion. L'avantage de cet interrupteur est de ne s'éclairer que très brièvement quand on appuie sur les boutons et qu'il est silencieux (on n'entend que les relais qui se déclenchent). Le bouton du milieu ne s'éclaire pas : il n'y a des LED que pour les boutons du haut et du bas.
Avant le flashage, je n'ai pas résisté à la tentation de le faire marcher avec Smart Life. L'installation de l'interrupteur et sa configuration prennent environ 15 minutes. Ça fonctionne très bien mais hors de question de passer par un serveur externe. Pour info, le firmware de l'interrupteur ne s'est pas mis à jour : il y avait déjà une version empêchant d'installer un autre firmware via OTA avec Tuya Convert.

Flashage via Tuya Convert impossible malgré mes nombreuses tentatives : avec mon portable sous Ubuntu ou un Raspberry Pi 3 B+ avec Raspbian à jour. Il va donc falloir démonter... Et là, mauvaise surprise, l'ESP8266 est inaccessible pour le flasher. On va donc faire du reverse engineering pour essayer de tout démonter.

QCSMART Interrupteur Wifi volet roulant

On va dégager la platine noire en la soulevant légèrement et en la faisant pivoter afin d'accéder à une petite vis bloquant l'électronique dans son support.

Platine Intérieure QCSMART volet roulant démontée

Pour le flashage, il va falloir tordre les pattes de la platine supérieure afin d'accéder à la puce ESP8266... Faire très doucement pour éviter de dessouder ou de casser les 10 pattes et veillez à ce que les broches pliées ne rentrent pas en contact entre-elles. Ensuite, on branche comme d'habitude, et on flashe avec Esptool. Malheureusement, je n'ai pas réussi : j'ai tenté avec l'adaptateur série USB FDTI puis un Raspberry Pi3 B+ ainsi qu'avec une alimentation externe pour avoir assez de courant en 3.3V (car il peut y avoir des problèmes en cas d'alimentation insuffisante).

Platine Intérieure QCSMART volet roulant flashage

Mais rien n'a marché... Il a fallu persévérer ... pour finalement trouvée la solution ici : https://forum.iobroker.net/topic/9886/tuya-jinvoo-unterputz-wandschalter/17. Merci beaucoup !!!! Du coup, inutile de passer par une alimentation externe ou un Raspberry Pi : l'adaptateur série USB FDTI fonctionne parfaitement. Pour que ça fonctionne, il est impératif de couper une piste sur la carte pour permettre le flashage (voir la capture ci-dessous). Par contre, il est inutile d'utiliser la broche RST : on utilisera comme d'habitude les broches GND, 3.3 Vcc, Rx, Tx et GPIO0.

QCSMART volet roulant Platine Intérieure flashage2

Une fois le flashage réalisé, il ne faut pas oublier de ressouder la piste Rx coupée auparavant. Par contre, ce n'est pas évident...

QCSMART volet roulant Platine Intérieure flashage3

Si vous n'arrivez pas à ressouder la piste Rx, j'ai trouvé une solution alternative plus facile : il faut souder un fil entre la patte Rx du module TYWE3S et la patte H1 sur la photo ci-dessus. Voici ce que ça donne :

QCSMART volet roulant Platine Intérieure flashage4

Pour le remontage dans le boîtier, inutile de remettre la petite vis de maintien : ça facilitera un éventuel démontage en cas de problème.QCSmart Tasmota Modele

Il ne reste plus qu'à brancher le module, à se connecter sur le réseau Wifi commençant par "Sonoff-xxxx", à indiquer les paramètres du réseau Wifi qui sera utilisé et à paramétrer comme d'habitude. Par contre, les relais vont se déclencher alternativement au premier démarrage : ceci est dû au fait que le flashage ne donne pas la bonne configuration matérielle de notre module. Il faut donc lui indiquer le bon modèle.
- Pour la configuration dans Tasmota, après recherches et essais, voici la ligne que je saisis dans le menu "Configuration" -> "Autre configuration" -> "Modèle" :

{"NAME":"Tuya Shutter","GPIO":[157,0,0,10,22,17,0,0,19,23,0,21,0],"FLAG":0,"BASE":18}

Sur cette même page, on en profite pour donner des surnoms aux 3 commandes (ça sera utile dans Domoticz et le plugin MQTT Discovery).

- Ensuite on va dans "Configuration" -> "Configuration MQTT" pour lui indiquer l'IP et le port (souvent 1883) du brooker MQTT (Mosquitto pour ma part) ainsi qu'un nom de topic.

On va dans la console et on affine le paramétrage avec les commandes suivantes.

- Pour que les modules soient détectables dans Domoticz avec le plugin MQTT Discovery (voir cet article), il faut activer la détection "Home Assistant" avec la commande :

SetOption 19 1

- Pour fixer l'adresse IP du module, on tape :

IPAddress1 192.168.1.xx

- Pour indiquer le temps d'impulsion et d'autres paramètres, toujours dans la console, on saisit :

Backlog SetOption1 1; PulseTime1 130; PulseTime2 1; Pulsetime3 130; PowerOnState 0; PowerRetain 0

- 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

- Comme la commande Interlock ne fonctionne pas, on utilise cette ligne de commande pour éviter d'enclencher les 2 relais en même temps :

Rule1 on Power1#State=1 do backlog Power3 0; Power2 0 endon on Power2#State=1 do backlog Power1 0; Power2 0; Power3 0 endon on Power3#State=1 do backlog Power1 0; Power2 0 endon

Puis on active cette règle avec la commande : Rule1 1

- On peut aussi activer la programmation de l'ouverture et de la fermeture en fonction du lever et du coucher du soleil ou à une heure précise, en allant dans "Configuration" -> "Configuration des Timers".

Remarque : une fois tous ces réglages effectués, on peut sauvegarder la configuration afin de la redéployer sur des interrupteurs identiques (il suffira d'ajuster l'IP et leurs nom/surnoms/topics MQTT.

Conclusion : le hackage de ce type d'interrupteurs est vraiment difficile car il faut démonter entièrement le boîtier et on risque de casser les broches ou les connexion reliant les 2 platines (la soudure des broches est quasiment impossible à faire). Sur 2 interrupteurs, je n'ai réussi à en faire marcher qu'un. Pour celui "défectueux", les commandes fonctionnent mais les relais ne s'enclenchent plus. Donc passez votre chemin pour ce type de matériel.

 

III- Interrupteur ETERSKY

J'ai testé aussi cet interrupteur Etersky en promo sur Amazon https://www.amazon.fr/gp/product/B07PNV9XKQ à 16€. Ici, les touches sont constamment éclairées. Le flashage OTA via Tuya Convert ne marche pas non plus. Par contre, le démontage est plus facile avec la puce ESP8266 directement accessible contrairement au modèle précédent.

Etersky Interrupteur Wifi volet roulant

J'ai réussi le flashage grâce à un Raspberry Pi 3 B+ avec Esptool et une alimentation externe pour le 3.3V. Impossible avec mon convertisseur FDTI/USB.

Pour la configuration, j'ai utilisé celle-ci https://blakadder.github.io/templates/WF-CS01_EU.html.

IV- Conclusion

Personnellement, vu la difficulté pour flasher un firmware comme Tasmota, EspEasy, ... sur ce type de matériel, il vaut mieux opter pour un module Shelly 2.5 associé à des boutons poussoir comme expliqué dans cet article https://lofurol.fr/joomla/electronique/domotique/226-tasmota-installation-sur-des-modules-shelly. C'est vrai que ça revient un tout petit peu plus cher mais c'est beaucoup moins aléatoire et plus rapide à installer au final. Si le flashage via OTA avait été fonctionnel (merci les constructeurs pour la suppression de cette possibilité...), mon avis aurait été tout autre... Peut-être que ça sera à nouveau possible dans quelques temps...

V- Mise à jour des réglages suite évolution du firmware TasmotaTasmota Volet Roulant Tuya

Lorsque j'ai mis à jour le firmware Tasmota (passage de la version 6.6.0 à la 8.4.0), je me suis rendu compte qu'il y avait de nouveaux réglages spécifiques aux volets roulants : icônes de montée et de descente, curseur de positionnement, ouverture à moitié en appuyant 2 fois. Voir la page dédiée ici : https://tasmota.github.io/docs/Blinds-and-Shutters/.
Du coup, il a fallu reprendre tout les paramétrages pour un fonctionnement correct. Voici donc, ci-contre le réglage du modèle sur lequel je m'appuie et basé sur la version générique. Si on veut les même réglages, il est plus rapide de renseigner la ligne ci-dessous dans le menu de configuration "Autre configuration" :

{"NAME":"Tuya Shutter","GPIO":[0,0,54,11,23,18,0,0,17,21,53,22,52],"FLAG":0,"BASE":18}

Ensuite voici les paramètres à saisir en console pour les réglages.

  • Tout d'abord pour éviter d'actionner tous les boutons en même temps :

Rule1 on Power1#State=1 do backlog Power3 0; Power2 0 endon on Power2#State=1 do backlog Power1 0; Power3 0 endon on Power3#State=1 do backlog Power1 0; Power2 0 ; Power3 0 endon

Rule 1

  • Pour éviter la même chose que précédemment qui évite d'actionner les boutons en même temps :

InterLock 1,2,3

  • Pour éviter d'actionner un relais au redémarrage du module :

PowerOnState 0

PowerRetain 0

REMARQUE pour HOME ASSISTANT : afin de ne pas perdre la position des volets lors du redémarrage de Home Assistant, il faut mettre :

PowerRetain 1

  • On renomme le 3e bouton en "Arrêt" (sinon on a "On/Off 3" qui est peu parlant) :

WebButton3 Arrêt

  • On règle les relais associés aux boutons de l'interface avec la commande :

backlog shutterrelay1 1 ; shutterrelay2 0 ; shutterrelay3 0

  • Pour afficher dans la Web UI, l'adresse IP et le nom d'hôte :

SetOption53 1

  • Pour éviter un reset si on appuie longtemps sur le bouton :
SetOption1 1
  • Pour régler l'heure en tenant compte des heures d'hiver et d'été :
TimeZone 99
  • Pour indiquer la localisation :
Latitude 43.xxxxxxx
Longitude 2.xxxxxxx
  • Désactive la sauvegarde de l'état des relais et de s'en servir lors d'un restart (on peut aussi taper "so"  à la place de "setoption") :
SetOption0 0
  • Pour avoir une interface sombre : https://tasmota.github.io/docs/WebUI/#webbutton
    WebColor {"WebColor":["#eaeaea","#252525","#4f4f4f","#000000","#dddddd","#65c115","#1f1f1f","#ff5661","#008000","#faffff","#1fa3ec","#0e70a4","#d43535","#931f1f","#47c266","#5aaf6f","#faffff","#999999","#eaeaea"]}

Pour les autres réglages voir la documentation : https://tasmota.github.io/docs/Commands/#shutters.

Ensuite, il est nécessaire de calibrer les degrés d'ouverture et de fermeture afin de pouvoir utiliser le curseur du module. Pour cela voir la documentation ici : https://tasmota.github.io/docs/Blinds-and-Shutters/#calibration

Au final, voici l'interface que l'on obtient :

Tasmota Volet Roulant Tuya WebUI

Autre site intéressant pour les volets roulant et Home Assistant : https://community.home-assistant.io/t/teepao-window-cover-shutters-integration/114548