
Comme vous l’avez peut-être vu, j’ai domotisé ma maison depuis un moment, notamment en intégrant le contrôle de mes volets roulants. Pourtant, un seul volet échappait encore à cette automatisation : un modèle solaire Velux, commandé par radio via une télécommande murale.
Mon objectif ? Pouvoir fermer ce volet automatiquement le soir et permettre à mon fils de le contrôler facilement depuis sa chambre, sans avoir recours à l’écran mural ni à un smartphone.
Une solution DIY trouvée sur GitHub
Après quelques recherches, j’ai découvert sur GitHub un projet ESPHome permettant de modifier la télécommande pour la connecter à un ESP8266. Cette solution répondait parfaitement à mon besoin initial, mais un problème persistait : la télécommande devenait inutilisable manuellement une fois modifiée, les fils soudés rendant les boutons inopérants.
J’ai alors envisagé une alternative : appairer une seconde télécommande avec le volet. Si cela fonctionnait, je pourrais conserver la commande murale d’origine et cacher une seconde télécommande modifiée avec l’ESP8266.
Pour vérifier cette hypothèse, il me fallait une seconde télécommande. Et quitte à expérimenter, autant éviter d’investir dans du neuf pour limiter les risques en cas d’échec. Après avoir relevé la référence de ma télécommande actuelle, je me suis tourné vers Le Bon Coin et ai trouvé une opportunité à 20 €.

Un test avec deux télécommandes… voué à l’échec
Mon hypothèse initiale s’est révélée incorrecte : il est impossible d’appairer deux télécommandes au même volet roulant Velux. Un seul émetteur radio peut être associé. Je m’y attendais, mais il était important de le vérifier.
Heureusement, j’avais déjà une autre solution en tête pour conserver des boutons physiques au mur tout en gardant une seule télécommande.
Une alternative : déplacer les boutons sur l’ESP8266
Plutôt que de modifier la télécommande elle-même, j’ai ajouté des boutons physiques directement à l’ESP et adapté le code en conséquence. Ainsi, l’ESP agit comme un relais : il pilote la télécommande, tandis que les boutons sont désormais connectés à lui et non plus à la télécommande.
Cette approche a un inconvénient : si l’ESP venait à tomber en panne, il deviendrait impossible de piloter le volet. J’aurais pu souder des boutons supplémentaires directement sur la télécommande pour contourner ce problème, mais cela m’aurait privé d’une fonctionnalité essentielle : connaître l’état du volet dans Home Assistant. Nous reviendrons sur ce point un peu plus loin…
Le boitier
Ma seconde idée était de créer un interrupteur mural encastrable, semblable à un interrupteur de lumière classique. Il a donc fallu tout calculer précisément pour que l’ensemble tienne dans l’espace réduit disponible. Je voulais également conserver les boutons d’origine de la télécommande Velux.
L’interrupteur est composé de 3 parties :
- La base, qui contient l’alimentation, l’ESP8266, un bornier à visser et les connecteurs permettant de relier les platines décrites plus bas. Cette partie est conçue pour s’insérer dans une boîte d’encastrement de 63 mm de diamètre et 40 mm de profondeur.
- La platine intermédiaire, qui se visse sur le premier bloc et sert aussi à fixer l’ensemble au boîtier encastrable grâce à ses deux trous prévus à cet effet.
- Le couvercle, qui permet de réutiliser les boutons en plastique d’origine.
Je voulais un bouton le plus fin possible. La base était prête, mais j’ai dû réaliser plusieurs prototypes pour le couvercle. Initialement, je voulais conserver le caoutchouc situé entre la platine et les boutons en plastique afin d’améliorer le confort à l’appui, mais cela ajoutait trop d’épaisseur. Finalement, avec les mini-boutons que j’ai choisis, ce n’était pas nécessaire.
Au final, le bouton dépassera de 15 mm du mur.

Et voici notre commande avec la réutilisation des boutons de la télécommande. Pour l’impression 3D, aucun support n’est nécessaire. Les fichiers sont téléchargeable en cliquant ici.
Entrons dans la construction
Pour réaliser cette modification il nous faut:
Il faut commencer par démonter complétement la télécommande. Pour le moment nous allons garder que le PCB.
Sur celui-ci, un film plastique est collé pour retenir les pastilles métalliques servant de ressorts pour les boutons. Retirez le film ainsi que les pastilles. Vous devez également dessouder les ressorts des piles.
Avant de commencer la modification électronique, voici un schéma.
Nous avons :
- Le PCB de la télécommande d’origine,
- 3 petits interrupteurs pour une commande manuelle,
- Un ESP8266 D1 Mini,
- Une alimentation 230V / 5V,
- Un disjoncteur de 2A pour alimenter l’ensemble.

Pour toutes les liaisons j’ai utilisé du fil de 28 AWG.

Pour piloter la télécommande, il faudra envoyer une impulsion électrique au centre des boutons. Grattez légèrement la surface pour que la soudure adhère, puis soudez un fil sur chaque bouton.
Le PCB a besoin d’une alimentation. La télécommande fonctionnant avec deux piles de 1,5V, soit 3V au total, nous allons l’alimenter via l’ESP8266 et son pin 3.3V.
Soudez un fil sur le + et un autre sur le –, en veillant à ne pas les inverser.
Nous allons maintenant préparer la platine qui servira aux boutons physiques. Il vous faudra une plaque de 2 cm par 8 cm, qui devra être découpée par la suite. Vous remarquerez deux trous légèrement plus grands, destinés au montage sur la plaque.
Placez les boutons en plastique sur le cache, puis, à l’aide de deux petites vis, fixez la platine sur le couvercle.
Je n’ai pas pensé à prendre une photo du PCB avec les fils soudés, mais sur celle-ci, vous pouvez voir comment j’ai procédé.
Avant de souder les fils à vos mini-interrupteurs, faites attention à leur fonctionnement. En effet, ils peuvent être configurés de deux façons : soit en contact ouvert, soit en contact fermé en continu, selon l’endroit où vous soudez. Utilisez un multimètre pour identifier les pins à utiliser. Dans notre cas, le circuit doit être ouvert lorsque le bouton n’est pas enfoncé.
Une fois cette étape terminée, reliez tous les boutons à la masse.
Ensuite, fixez le PCB de la télécommande à l’aide de deux vis. Il repose légèrement sur le PCB des boutons, ce qui est normal. Je n’ai pas eu d’autre choix afin de conserver une taille standard, comparable à un interrupteur ou une prise murale.
Sur le PCB de la télécommande, on peut voir un nouveau fil noir. Il permet de relier toutes les masses des mini-boutons au circuit.
On remarque également les connecteurs JST, qui offrent la possibilité de démonter facilement le bouton si besoin.
Programmation de l’ESP
Avant de continuer, il va falloir injecter le programme de l’ESP dans notre ESP8266.
Sur Home Assistant, allez dans ESPHome Builder, puis cliquez sur New Device. Indiquez un nom, puis passez à l’étape suivante. Dans la liste, sélectionnez ESP8266, puis cliquez sur Suivant. Dans la dernière étape, cliquez sur Skip.


Notre dispositif est créé, nous allons maintenant ajouter le code YAML. Cliquez sur Éditer.
Dans cette nouvelle fenêtre, supprimez tout le code déjà présent. Copiez et collez le code ci-dessous.
Avant de continuer, modifiez l’IP statique, la gateway et le subnet. Si vous préférez utiliser une IP en DHCP, supprimez les lignes 13 à 16.
Voici le code au complet à copier sur ESPHome :
substitutions:
friendly_name: Volet velux
device_name: volet-velux
esphome:
name: "${device_name}"
esp8266:
board: d1_mini
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.1.35
gateway: 192.168.1.1
subnet: 255.255.255.0
captive_portal:
# Enable logging
logger:
# Enable Home Assistant API
api:
ota:
- platform: esphome
binary_sensor:
- platform: gpio
id: button_down
pin:
number: D3
inverted: true
name: "Ouvre volet"
on_press:
then:
- cover.open: velux_cover
icon: mdi:arrow-up-bold-circle-outline
- platform: gpio
id: button_stop
pin:
number: D4
inverted: true
name: "Stop volet"
on_press:
then:
- cover.stop: velux_cover
icon: mdi:stop
- platform: gpio
pin:
number: D2
inverted: true
mode:
input: true
pullup: true
name: "Ferme volet"
on_press:
then:
- cover.close: velux_cover
icon: mdi:arrow-down-bold-circle-outline
- platform: status
id: velux_status
name: "Volet velux Status"
switch:
- platform: gpio
id: velux_down
pin: 13
inverted: yes
- platform: gpio
id: velux_stop
pin: 12
inverted: yes
- platform: gpio
id: velux_up
pin: 14
inverted: yes
cover:
- platform: template
name: "${friendly_name}"
id: velux_cover
open_action:
# Cancel any previous action
- switch.turn_off: velux_down
# Turn the OPEN switch on briefly
- switch.turn_on: velux_up
- delay: 0.1s
- switch.turn_off: velux_up
close_action:
- switch.turn_off: velux_up
- switch.turn_on: velux_down
- delay: 0.1s
- switch.turn_off: velux_down
stop_action:
- switch.turn_off: velux_down
- switch.turn_off: velux_up
- switch.turn_on: velux_stop
- delay: 0.1s
- switch.turn_off: velux_stop
optimistic: true
assumed_state: true
sensor:
- platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
- platform: copy # Reports the WiFi signal strength in %
source_id: wifi_signal_db
name: "WiFi Signal Percent"
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "%"
entity_category: "diagnostic"
device_class: ""
text_sensor:
- platform: wifi_info
ip_address:
name: "IP Address"
icon: mdi:ip
entity_category: diagnostic

Vous pouvez fermer la fenêtre de l’éditeur de code. Allez dans le menu avec les trois points pour valider que le code est correct, puis cliquez sur Validate.
Si vous voyez la case verte, cela signifie que tout est OK. Vous pouvez maintenant cliquer sur Install.
À cette étape, il faudra brancher l’ESP sur un port USB du PC serveur. Si vous utilisez Proxmox, vous devrez ajouter le port USB à la VM et redémarrer complètement la VM.
Vous pouvez aussi télécharger le programme sur votre PC, puis, avec un navigateur compatible comme Chrome, injecter le programme directement dans l’ESP en USB.
Étant sur une VM, je vais choisir la troisième option. La deuxième option reste cependant la plus facile.


Une fois le code injecté, votre ESP8266 va redémarrer et apparaître en Online. Cliquez sur Logs pour vérifier si tout est OK.
Dans le menu Paramètres, puis Appareils et services, vous trouverez votre ESP prêt à être configuré.
Vous y trouverez ensuite toutes les entités et boutons nécessaires pour piloter votre volet.
Reprenons la fabrication du boitier
Nous avons terminé la première partie. Pour la suite, soudez l’alimentation de l’ESP8266 en 5V. Pour la partie arrivée du 230V, il vous faudra un fil un peu plus épais, comme du 0,5 mm² voire 0,75 mm². À l’extrémité de ce fil, soudez un bornier à vis. Sur un morceau de PCB de 7 cm x 3 cm, soudez deux connecteurs JST (un à 5 pins pour le PCB de la télécommande et un à 3 pins pour le PCB des mini-boutons).
Reportez-vous au schéma pour le raccordement à l’ESP. Bien entendu, au niveau des connecteurs, il n’y a pas d’ordre spécifique. À vous de bien vous repérer en utilisant la partie femelle du connecteur, que nous avons sur le couvercle.
On peut maintenant tout monter dans le boîtier. Avant cela, repérez la longueur nécessaire pour le PCB des connecteurs afin de couper une partie si nécessaire. Pour le montage de l’ESP, une fente au fond du boîtier est prévue. Je vous recommande de mettre un point de colle pour qu’il ne bouge pas.
Pour le bornier à vis, un espace est également prévu.
Faites une dernière vérification de vos câbles pour vous assurer que tout correspond entre le connecteur JST mâle et femelle. Enfin, vissez le PCB avec deux vis.
Voici notre cube terminé.

Montez la platine avec 4 vis. Les 2 trous restants serviront à fixer le bouton sur la boîte encastrable. On remarque que le port USB reste accessible en cas de besoin. Il suffira d’ouvrir le couvercle et de brancher notre PC dessus, sans avoir à tout démonter.
Vous pouvez maintenant connecter le couvercle à la platine.
Notre commande murale Velux connectée en Wi-Fi est maintenant prête.
Sur la partie basse du bouton, le couvercle est maintenu par une vis. Le bornier est également accessible, ce qui permet un montage facile.
Montage murale
Pour cela j’ai tiré une nouvelle ligne avec du câble de 1.5mm. Je suis arrivé à descendre une gaine de mon grenier pour aller rejoindre le bouton de la lumière de la chambre d’un côté et de l’autre mon tableau électrique sur le quel j’ai ajouté un disjoncteur de 2A dédié à cette ESP. Je n’est pas pu mettre le bouton juste au dessus de la lumière, car juste derrière il y a le bouton de mon couloir.
Pour cela, j’ai tiré une nouvelle ligne avec du câble de 1,5 mm². J’ai réussi à descendre une gaine depuis mon grenier pour rejoindre le bouton de la lumière de la chambre d’un côté, et de l’autre, mon tableau électrique, où j’ai ajouté un disjoncteur de 2A dédié à cet ESP. Je n’ai pas pu mettre le bouton au-dessus de la lumière, car juste derrière se trouve le bouton du couloir.
Ensuite, montage du boîtier encastrable et raccordement. Le bouton est fixé dans le mur avec les vis fournies avec le boîtier. On monte le couvercle et on n’oublie pas la petite vis sous le bouton.
Conclusion
Nous avons maintenant un volet connecté, pilotable aussi bien sur Home Assistant que manuellement. Le volet se ferme désormais automatiquement le soir avec tous les autres volets de la maison. Lors de nos absences, il pourra également s’ouvrir automatiquement le matin. Notre panneau de commande peut être ajouté à notre dashboard.
Concernant le retour d’état, il n’est pas forcément réel. En effet, lorsque vous appuyez sur « fermer » ou « ouvrir », l’icône passera en rouge ou en vert, mais les deux flèches resteront actives, contrairement à mes autres volets. Pour avoir un véritable retour d’état, il faudrait ajouter un contacteur d’ouverture de fenêtre, mais son installation en extérieur serait compliquée.
