Introduction: Home Automation - Smart Blinds

In this instructable we will be looking at how to retrofit your own blinds at home with a servo motor and a custom controller to turn your home blinds into automated smart blinds that can integrate with home assistant to give you full automated control of your house blinds.

This instructable was sponsored by JLCPCB. I used this service to build the circuit boards for the controller. The PCB's are high quality and are a real bargain for prototyping. I highly recommend them please go and check them out at the link below:

Free Shipping on First Order & $2 PCB
Prototyping on

Step 1: 3D Printing Parts

First you will need to print out some parts for this. The following parts are to be printed and the link to the .stl model files are listed below:

1.) Switch Mount

2.) Servo Mount

3.) Square Shanks Coupling

All these can be obtained from the following link under mech:

Step 2: Disassemble Blinds

You will need to remove the normal blind open/close mechanism from your blinds.

The type that my blinds are is the pull string type. At the bottom of the pull cords are plastic tassels. These can be removed by pushing the string through and untying the knot that is in the end. Once the knot is untied the plastic tassels can slide off the string.

To remove the mechanical actuator you simply need to spread the white channel apart and it should slide off the square turning rod and be removed.

Step 3: Add Override Switch

Now you will need to add the override switch so that when someone comes up to the blinds they do not have to have the app on a smart device they can simply pull a pull chain switch to operate the blinds.

You need to install the switch bracket that was previously 3d printed into the end of the channel and slide it into place. Make sure it snaps into the square hole securely.

Once in there you can install the switch. This pull chain switch was one I found a my local hardware store for a light.

Unscrew the nut from the switch and pass the chain through the 3d printed bracket hole. Then attache the pull string and slide the nut back up and screw into place securing the switch.

Step 4: Install the Servo Motor

Next we will install the servo motor. First you will need to remove one of the mounting holes from the side. This is due to it not being able to fit if this is not removed. I simply removed mine with a hand buzz saw. See the picture to see what side to remove.

Once this is removed you can now insert the servo motor into the plastic bracket that was 3D printed in prior step. Once inserted you can attach the square shank coupling to the spline shaft of the servo.

Finally install the servo assembly into the end of the blinds and line up the square rod with the square hole in the coupling. These should fit together. This way as the servo turns the blinds will open and close.

Step 5: Wire Connections

Here is a schematic of how I have wired up the ESP8266 to work with this system. This was built into a circuit board by JLCPCB.

I placed two USB mini ports on this for the ability to daisy chain these together from one power supply so if you have multiple blinds in a row you can bring power to only one device and daisy chain the rest.

It is built with a 3.3v liner regulator to drop the input voltage from 5V to 3.3 for the ESP8266.

Step 6: Software and Configuration

Now we will build the software portion of this.

You can find the software under the software folder of the following git hub link:

Once you load up the code in the arduino software you will need to enter your wifi information as well as the MQTT server information.

You will also need to update the code to include whatever command and topic information you are wanting to use for the MQTT information transfer. Once you have finished with these settings you can install them to the ESP8266 board.

Finally you will need to update your configuration.yaml file with the following information ensuring your topics are matching your arduino code topics:

- platform: mqtt name: "Window Bottom Center" state_topic: "blind/bc/state" command_topic: "blind/bc/command" brightness_state_topic: "blind/bc/state" brightness_command_topic: "blind/bc/level" brightness_scale: 100 qos: 0 payload_on: "ON" payload_off: "OFF" optimistic: false retain: true

- platform: mqtt name: "Window Bottom Right" state_topic: "blind/br/state" command_topic: "blind/br/command" brightness_state_topic: "blind/br/state" brightness_command_topic: "blind/br/level" brightness_scale: 100 qos: 0 payload_on: "ON" payload_off: "OFF" optimistic: false retain: true

Step 7: Testing With Home Assistant

Once you have restarted home assistant you should see the blinds show up as a "Light" object in your HASS home screen.

You now can click the switch to fully open your blinds or to fully close you blinds by turning the switch on or off. Also if you click on the name of your blinds you will be presented with the brightness slider that for this will operate how open the blinds are.

Step 8: Final Thoughts

I hope that you have enjoyed this project and end up giving it a try.

Here are two videos of this working from my youtube channel if you would like many details please check out the in-depth video. If you want a quick overview of how this was built choose the non in-depth one.

Thanks again.