This is my fourth and final code to control window blinds in SmartThings with a NodeMCU ESP8266 chip and a servo.
Why my fourth try?
Because all of my other attempts involved setting up a RaspberryPi, configuring Home Assistant, an MQTT broker, SmartThings MQTT Bridge, configuring paths, etc, etc…
All I wanted was for it to JUST WORK!
But at the end of every attempt I still had the same issues: Stability and Delays.
So here we are with my fourth attempt: Absolute Simplest ESP8266 Smart Blinds. Using just a micro web server on the ESP8266 and a simple HTTP GET command in SmartThings, response time is almost instantaneous and there’s no middle point of failure or complication.
- Intended for a standard servo (not a continuous rotation servo) and amount of tilt degrees are commented in sketch code for adjustment
- 1 custom device to add to SmartThings and 1 arduino sketch to flash
- Just set your Wifi SSID and Password, choose a static IP and go
- Tested with Amazon Echo, Alexa responds to both “Turn the Blinds On/Off” as well as “Open/Close the Blinds”
- I have found servo shaft couplers are the absolute easiest way to connect your servo in-place of the blinds tilt gearbox, thus hiding your servo, board, and wires all in the blinds upper housing.
And while I know there is more elaborate solutions and implementations with SmartThings-MQTT Bridges and such, I was trying to keep this as simplistic, cheap, minimal points of failure, and zero-maintenance as possible.
Gallery: Imgur: The magic of the Internet
Code: GitHub - hobbzey/Simplest-SmartThings-ESP8266-Blinds: Extremely Simple ESP6288 NodeMCU SmartThings Blinds
Servo Shaft Couplers: https://www.servocity.com/html/servo_to_shaft_couplers.html
Click for makeshift Step-by-Step Programming Guide
Blind Install Pictures: coming-soon
Note: This was based off of a fork of user @Casper 's smartfan code which was based on user @JZst Generic HTTP Devices and pieces of the Arduino sketch were cherry-picked from various sources, all of which are cited and credited in the README.md on github.
Lastly: While I am using the NodeMCU board, this should work on just about any ESP8266 based board…