This guide provides a cost-effective method to automate Velux windows using an ESP32 microcontroller and KUX 100 remote, bypassing the expensive VELUX ACTIVE with NETATMO hub.
Component | Quantity | Estimated Cost | Specifications |
---|---|---|---|
ESP32 Microcontroller | 1 | โฌ4-โฌ5 | ESP32-DevKitC or Wemos D1 Mini |
NPN Transistors (2N3904/2N2222/BC547) | 3 | โฌ1-โฌ2 | For button press simulation |
1 kฮฉ Resistors | 3 | โฌ0.50 | Current limiting |
Wires and Connectors | As needed | โฌ2 | Jumper wires or soldered connections |
KUX 100 Remote Control | 1 | โฌ20-โฌ40 | Second-hand, platform-compatible |
Total Project Cost: โฌ30โโฌ50
- Cost Reduction: 75% cheaper than official VELUX hub
- Full Customization: Complete control via ESPHome and Home Assistant
- Scalable: Easy integration with existing smart home systems
- ESP32 development board.
- 3 x NPN transistors (e.g., 2N3904, 2N2222, BC547).
- 3 x 1 kฮฉ resistors.
- Jumper wires or soldering equipment.
- A KUX 100 remote control.
Wire the ESP32 to the transistors and prepare the connections to the KUX 100 remote:
-
- Remove the batteries as the remote will be powered by the ESP32.
- Carefully push or pull the plastic clips holding the case together. Be gentle to avoid breaking the clips.
- Slowly lift the PCB out of the case, paying attention to the metallic battery contacts:
- Ensure you donโt break or tear these contacts, as they are still be needed for connections.
- Turn the PCB around and peel off the tape or adhesive covering the buttons to reveal the contact pads.
- The PCB is now ready for soldering and connecting to the ESP32.
-
Connect the ESP32 to the transistors:
- Base of each transistor โ Connect to an ESP32 GPIO (via a 1 kฮฉ resistor).
- Emitter of each transistor โ Connect to GND (shared with the KUX 100 remote).
- Collector of each transistor โ Connect to the corresponding pad on the KUX 100 remote:
- Button UP โ GPIO 17 โ Transistor 1.
- Button DOWN โ GPIO 18 โ Transistor 2.
- Button STOP โ GPIO 27 โ Transistor 3.
-
Connect the pads:
- Solder wires from the button pads (UP, DOWN, STOP) to the collector pins of their respective transistors.
-
Share the ground and VCC:
- Connect the GND and 3.3V of the ESP32 to the GND and VCC of the KUX 100 remote.
I came up with a PCB like this (very ugly, ngl), but it's working. The ESP32 is actually mounted under the PCB, and I wired the VCC and GND to a 2-pin terminal block to power the entire setup.
esphome:
name: velux_remote
platform: ESP32
board: esp32dev
wifi:
ssid: "Your_SSID"
password: "Your_Password"
output:
- platform: gpio
pin: 18
id: button_up
- platform: gpio
pin: 27
id: button_down
- platform: gpio
pin: 17
id: button_stop
switch:
- platform: template
name: "Velux UP"
turn_on_action:
- output.turn_on: button_up
- delay: 200ms
- output.turn_off: button_up
- platform: template
name: "Velux DOWN"
turn_on_action:
- output.turn_on: button_down
- delay: 200ms
- output.turn_off: button_down
- platform: template
name: "Velux STOP"
turn_on_action:
- output.turn_on: button_stop
- delay: 200ms
- output.turn_off: button_stop
-
No Remote Response:
- Confirm remote pairing with blinds
- Verify transistor connections
- Check ground connectivity
-
ESP32 Communication Problems:
- Validate ESPHome configuration
- Check network settings
- Review ESPHome dashboard logs
- Design custom 3D-printed enclosure
- Develop more compact PCB layout
Suggestions and improvements are welcome! Please open an issue or submit a pull request.