
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.
