Voice control for Velux

Hacking Velux remote with a hat to enable voice control over a raspberry pi powered by Snips

Similar projects worth following
Who never searched his remote for his roof windows? Everybody once wondered where the remote was last left at. Who actually still wants to use a remote when you could use your voice?

Who never wanted the Velux to self close not only because of the rain but because of the heat outside or the cold? Or open because it's windy outside?

This project was started already long ago and has been undergoing drastic changes to the actual state where it has become a hat mod for both the controller and the raspberry pi at the same time.

Using Snips you can easily create your intents and capture them, allowing you a full control over your Velux equipement, including shaders, sun blockers, windows, all that by staying local, no internet connection needed!

Don't want to use Snips? Fine, just plug a pi zero on it and use it as an independant device contacted through mqtt.

Already owning a Google Home or Alexa? Pretty sure you can send orders to a raspberry pi!

It all started because I once couldn't find my remotes anymore and the latest digital remote was out of battery... I had my own home assistant up and running and I jockingly asked it to open the windows. That was enough to push me into trying to connect my voice to the Velux products.

Of course, this project could be better, if we could break the Home IO protocol. But I couldn't... So I decided to go hardware.

The project started with a rough button hack using reed relays. Everything worked fine, until I found out that the relay supposed to maintain the remote on was dying, not openeing anymore. And it was looking messy, unprofessional, lots of wires.

So here is the project now! A self printed pcb, no more wire mess, 2 TI 4066 chips, a mosfet on negative for the remote power.

When one orders the remote to do an action, like opening the windows to say 50%, the action is executed. At the end of it, the remote is powered off and powered on again, to ensure no errors stay on screen. Why? Because a human can read the screen and see that an error is displayed (couldn't open window xxx, raining etc etc), or an OCR (too heavy, useless). If one tries to execute another action while an error is displayed, the button order for that action is wrong as all executions start from home screen. This is why the remote reboot, ensure the remote to be always at home page before executing an action

An early proof of concept video:

An article dedicated to this hack, by Snips, published under my name:

Medium - Control your windows with voice


STL 4 - Part 5 of the casing

Standard Tesselated Geometry - 428.11 kB - 08/04/2018 at 17:42



STL 3 - Part 4 of the casing

Standard Tesselated Geometry - 95.20 kB - 08/04/2018 at 17:42



STL 2 - Part 2 and 3 of the casing

Standard Tesselated Geometry - 109.55 kB - 08/04/2018 at 17:42



STL 1 - Part 1 of the casing

Standard Tesselated Geometry - 2.43 kB - 08/04/2018 at 17:41


Adobe Portable Document Format - 35.02 kB - 07/05/2018 at 07:16


View all 7 files

  • 2 × TI 4066 chip DIL 14
  • 2 × DIL 14 socket
  • 1 × Pin header Female 3
  • 2 × Pin header Female 6
  • 1 × Printed circuit board epoxy Double sided

View all 15 components

  • Onboard temperature

    Psycho07/16/2018 at 09:11 1 comment

    Been a while now, it's summer, work at the highest point, available time has gone down for me a little. But not enough to stop me. So why don't you guys have a guide yet? Because I decided to add an element to the pcb, as an option for people that don't have a Netatmo :)

    Yes, I added a socket to connect a temperature sensor, I chose the Adafruit MCP9808. You could also pretty easily use the bigger version that has humidity and pressure sensor on it.

    I did not yet print this PCB for test but shall do this this week

  • New and hopefully final

    Psycho06/30/2018 at 17:59 0 comments

    The new PCB was printed yesterday evening and I did solder the components right after. I Changed the approach to connect the mod to the remote and went for pin headers, allowing easy disassembling of the mod if needed. The capacitor does a really good job and the diode does what it needs by dropping the voltage for the remote. Expect the building guide anytime soon

  • New PCB ready

    Psycho06/29/2018 at 19:16 0 comments

  • New components arrived

    Psycho06/29/2018 at 09:40 0 comments

    New components just arrived. I'll redesign the pcb this evening as some measurements providd by the reseller were wrong...

  • Breadboard test of new components

    Psycho06/28/2018 at 13:19 0 comments

    Testing the addition of a diode and a capacitor before making the new pcb. So far ok, been running over 24 hours with actions to handle at least 3 times an hour.

  • Dropping voltage

    Psycho06/27/2018 at 17:24 0 comments

    The Velux remote is normally powered by 3 1.5v batteries but the pi outputs 5.2v for it. It's a bit too make and the remote occasionally cries. I decided to add a diode to reduce the voltage. I'm currently redesigning the pcbs. 

  • Issue identified

    Psycho06/27/2018 at 14:38 0 comments

    After losing my day wondering why nothing worked anymore after the connector change an issue was detected. Having neat wires, soldered instead of jumpers demanded to much current for the remote to handle. It was working when connecting the remote with jumpers to the raspberry pi zero, but not when using it as a hat. After trying for hours alone, I asked my friend mpbs again for his advises and he told me to add a capacitor. I did it, but it wouldn't work... Trying again and again, with or without jumpers until, changing the pi zero for a new one and adding a capacitor! It works! Well, we had clearly 2 issues, the first one the pi was dead, prolly from touching the component between the usb ports yesterday, and having new proper wires was too demanding! I will redesign a new pcb and add the capacitor

  • Better power connector

    Psycho06/27/2018 at 10:01 0 comments

  • Issue identified

    Psycho06/26/2018 at 19:14 0 comments

    Found an issue where if you plug a raspberry pi zero on the mod, plug it's power cord, it might slightly bend the pi down. The mosfet drain ends up touching the component between the two usb ports on the raspberry, shorting the raspberry and at the end destroying the mosfet.

    Solution is rather easy, adding a spacer between the mod and the pi to forbid anything to move. Quite luckily, really, the pi zero hole lines up perfectly with the mod hole. What a lucky guy I am!

  • Milestones

    Psycho06/23/2018 at 06:54 0 comments

    Future milestones

    • Web interface for setup
    • Install instructions
    • Full guide for newbies
    • Switching between standalone, network device or snips satellite

    Current milestone

    • Run full install as standalone on pi 3b
    • Proposing pcb printing services

    Past milestones

    • Printing PCB
    • Designing circuitry
    • Connect
    • Trying to handle remote buttons with proto board and relays

View all 10 project logs

  • 1
    Complete instructions for reed relays hack

    I will not import the steps here because I believe the PCB hack is much better and nicer. The complete instruction set for reed relays is still available on github though:

  • 2
    Complete instructions for new PCB hack

    Are being written and tested at the moment with beginners to ensure they are understandable and readable. If you don't feel like creating your own pcb and/or do the soldering, you can contact me, I don't bite.

View all instructions

Enjoy this project?



LovinAI wrote 11/07/2018 at 05:22 point

Great post, I have been working through it!
Would be really good to have this over at so the folks there can also find this!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates