Existing blind automation solutions are too expensive and proprietary. Expensive bridges are offered but further add to the cost. I found that using a shaft coupler to connect the blind tilting shaft to a servo driven by a Particle Photon satisfied my need for simple blind control, the Particle cloud platform enabled me to connect this device to my existing SmartThings system.
Before tackling this project make sure:
- The twist to tilt mechanism can be removed without damaging the housing. On my Home Depoot Fuax Wood blinds I was able to pop it out with a little bit of force and twisting motion.
This project assumes the following:
- Particle Photon
- Device is connected to WiFi and Particle Cloud
- Can copy code from this project
- Can flash code to device
- Can wire the device to a servo
- Understand where to find your API key (token) and Device ID
- Hub is setup and working
- Basics of devices and IDE
- Can copy Device Handler code from this project
- Can create instances of Device Handler and can fill out device preferences
See this .gifv for results, only pay attention to the second half. SmartThings Dashboard used is SmartTiles.click
List of steps: (Wish I could have a numbered list here.)
- Particle Photon
- Wire the servo to the Particle Photon as shown in the schematic.
- Flash the code to the Particle Photon board. (WARNING: There is a bit of code that reverses the servos more than necessary to make sure the blinds are closed when the device is powered on or flashed. If you're concerned this might hurt your servo or blinds take it out, but status might be a bit cumbersome.)
- Test that this spins the servo. (I recommend using IFTTT in conjunction with their DO product that lets you fire off the THAT portion of IFTTT manually.
- Remove the servo head by removing the set screw at the top.
- Seat the shaft coupler into the servo teeth firmly. Use set screw to make this more secure.
- In blind housing remove twisting tilt mechanism to reduce torque necessary to tilt blinds.
- Place the shaft coupler over the tilt shaft(?) and tighten exterior set screw to secure. (I had to use electrical tape wrapped around the shaft once to bulk up the shaft and give it some stickiness.
- Secure the Particle Photon somewhere in the housing where shafts and chords won't come in contact with it. (You can make a nice enclosure or mount if you feel like it.
- Secure the servo somehow, mine just fits tightly in the housing so it can push against the walls to rotate the shaft.
- I drilled a hole in the back bottom corner to snake a white micro USB cable in the housing, it's hidden by the curtains and whiteness of the trim. You could try a USB battery pack, I've tried solar battery packs but they don't get enough sun to sustain less hungry devices.
- Now test that the blinds tilt with the IFTTT DO action. (We won't need IFTTT anymore if using with SmartThings.)(You could link SmartThings over IFTTT if you want to not have to worry about this device type, you would have to create Virtual Switches that toggle IFTTT rules though. Why involve another cloud?)
- Copy Device Handler code to Device Handlers
- Create new blind device. (NOTE: The devices uses ON and OFF, I left this because it's nice you can use it as a switch, which most SmartApps can handle. Just remember that ON is Open and OFF is Closed, not hard right?)
- After creating the device notice the Preferences (edit) row. Click edit. (Can be done in iOS or Android app too.)
- Enter token (Particle API Key), deviceId (Particle device ID) , and sparkFunc. (Particle Function blindControl for this project.)(I realize Spark Function is outdated but I feel like it didn't work as Particle so I kept it Spark.)
- Press the ON and OFF buttons in the iOS or Android app in your new Blind Device and see if it all works. you can also just tap the status icon to toggle, I just like having separate ON and OFF buttons.
- Good Luck!
- Toggle button where twist mechanism used to be for manual operation
- Magical free energy to power the device without a USB cable dangling, even though nobody sees it, it bothers me.