Today on the hookup, I’m going to explore my final frontier for window coverings. I’ve made videos about curtains, horizontal blinds, and a more universal blinds driver solution, but I haven’t made a video about roller shades yet, so today, I’m going to explore a few off the shelf solutions and a DIY solution to figure out if it’s better to DIY or buy.
I’ve been waiting for IKEA’s zigbee roller shades to to finally come back in stock before making this video, and I’m happy to say that after an insane $49 delivery fee to have them driven 5 miles from my local IKEA store to my house, I finally have them in hand. I’m going to be comparing them to some wired and wireless tubular shade motors from zemismart and a very inexpensive DIY solution with a local web interface, MQTT control and echo integration.
To get a good baseline of what to expect we’re going to start by looking at the different off the shelf solutions.
The cheapest solution, and also the one with the most drawbacks in my opinion is this tubular motor from Zemismart that costs $55 on AliExpress, or $72 on amazon. This motor is powered by mains voltage, and can be controlled by the Tuya cloud or an RF remote control. The motor is extremely strong, relatively fast, and very quiet. It’s designed to fit into a 36-38mm roller tube and will motorize your existing shades without breaking the bank. All that sounds pretty great right?
Well, it also has some major shortcomings: The biggest of which is that it needs to be plugged into mains power, and the included power cord is only 5 feet long. Not only is that never going to be enough cord to be able to plug this unit in, but I even if you extend the original cable with your own wires, you’re going to need to be concealing wires carrying mains voltage, which is less than ideal, and depending on how you do it, may be an electrical code violation. The second unfortunate thing about this shade motor is that unlike most other products that use the Tuya cloud, this motor uses the new Tuya WR4 module for wifi control. Even though the WR4 works perfectly for connection to the Tuya cloud, it isn’t an ESP8266, so that means no tasmota, no tuya convert, and really no custom firmware of any kind.
BUT, if you are in the unique situation that you are on a budget, have mains power close by, and you want to use the Tuya cloud for home automation, including cloud integration into smart things, home assistant, amazon echo and google home devices, these motors are an absolute bargain for just $55.
To be honest, these motor’s greatest strength is also their weakness. Since WiFi is relatively power hungry compared to other control protocols, using it pretty much guarantees that the motor will need to be plugged into a power source, which is either inconvenient or impossible in most situations. Unfortunately, in order to make battery powered units possible, a lower power communication protocol is needed, and that’s where RF433 and Zigbee come into play.
For a little less than $100 you can get a battery and solar powered shade motor that uses the 433 megahertz radio frequency protocol to control your shades. The upside to a solution like this is that a single radio frequency bridge, like the sonoff RF bridge running Tasmota or a broadlink RM pro can act as a hub for all of the shades in your house. The downside to RF433 is that it’s a one way protocol, meaning you won’t be able to keep track of the state of your shade, so you can only send commands and hope they are executed correctly. That being said, I think these battery powered shade are my favorite off the shelf solution because they are just the right combination of affordable, customizable, and reliable, and adding them to an RF Bridge or Broadlink RM Pro allows them to integrate with your existing smart home quickly and easily. You know what doesn’t always integrate easily? Zigbee… oh the Zigbee.
The most expensive off the shelf solution I’m going to look at today is one that people have been asking me to review since they were announced: The IKEA fyrtur series battery powered shade, which are fairly reasonably priced at around $164 per unit. I say that’s a reasonable price because each unit comes with a decent quality black out shade, a nice aluminum housing, a battery, a zigbee remote and of course the motor, so instead of just motorizing your existing shade you’re getting the whole package.
The Fyrtur shade were by far the easiest to install, despite their instructions still being written like an ancient cave painting. I really like the look of the aluminum housing, and the shade were fairly quiet and relatively fast. The included shades don’t look cheap and do a good job of blocking out sunlight.
Unfortunately, the Fyrtur also had some major limitations, starting with their fit. With other shades I was able to easily customize the size of the roller tube to fit my non-standard window cutouts. And while it it technically possible to shorten these shade, and there are some good DIY guides for it, it’s definitely not done easily, so if your windows aren’t a standard size like 34 or 36 inches, be ready for a significant teardown to customize them.
Also, unlike the last model from Zemismart, the Fyrtur shade are battery only, without solar, so they will need to be recharged roughly every 4-6 months, so mounting them out of reach may be a bit of a pain.
The last major downside for me, is that these shades are Zigbee, which in all of my smart home experience I’ve found to be the single most frustrating protocol ever invented. Zigbee sounds like one of those things that’s just going to work; like “oh, I have other zigbee things in my house, so this will definitely work”, but it doesn’t always work out like that. These shades are meant to work with the IKEA Tradfri hub, and any other control mechanisms are community developed and not guaranteed to work, or continue to work down the line. I spent more time than I’m comfortable admitting adding them to the three big zigbee home automation platforms: Samsung SmartThings, Hubitat and Home Assistant, and have this advice to give:
First, even though the instructions say you put them in pairing mode by doing a short press on both buttons simultaneously, that’s not actually how you pair them to other smart home platforms. To do that, you’ll need to factory reset them by pressing and holding both buttons for more than 5 seconds. The light will pulse for a few seconds and then go out. Once it comes back on it will pulse for approximately 90 seconds, and that’s the time when you should attempt to pair the shades with your home automation system.
The shades also come with a plug in Zigbee repeater. To put that in pairing mode you’ll need a safety pin to press the recessed button on the top. Once you’ve pressed it the white light will pulse and it’s ready to pair.
The last thing to pair is the zigbee remote, and you can comment below if you’ve figured out this magic. From my frustrating attempts it seems like pressing the reset button 4-5 times rapidly, and then holding it down gives it the best opportunity to pair, but for the most part it was just a crapshoot and I spent over an hour just trying to pair the button to each platform.
In Samsung SmartThings, the pairing process was relatively painlessly using the methods described above, but I did need to remove the shades from the window and place them about 6 inches from my smart things hub to get to them to show up. In SmartThings I was never able to see the battery indicator, but open/close and custom positions worked fine. I believe there is a custom device handler that adds more functionality, but open/close and custom work without any fiddling.
In home assistant I was able to add the fyrtur shades via deconz after almost 45 minutes of pressing random button combinations and holding them down for various lengths of time. One time the fyrtur showed up in the deconz web UI, but failed to integrate with home assistant, and then when it finally worked after another 30 minutes of fiddling it added itself straight to the home assistant deconz integration without ever showing up in the webUI. In home assistant there’s no battery indicator, and for some reason the “up” arrow is always greyed out no matter what position the shades are in. You can control the shades with the dimmer slider and custom settings work fine, but if you control the shades manually with the remote, the state of the shades isn’t updated in home assistant, I’m pretty confident all of this will be worked out in the future, but it’s still pretty buggy as of the release of this video.
Hubitat also works with a custom community built driver, and was probably the easiest platform to integrate the shades with, but battery information wasn’t available, and the icon still showed as unknown. With all of these solutions, it’s possible that digging through the hundreds of replies on their respective community threads may have allowed me to increase their functionality, but as these are still relatively new to the market, that information would become outdated very quickly and isn’t worth putting into video form. As I mentioned before, all of these integrations other than the official IKEA tradfri hub, are built by their various communities, and in order to get them all working perfectly, you’re going to need to do your own research by reading through the community forums. Everyone is super helpful, and I’m incredibly grateful for all their hard work, but if you’re expecting perfect foolproof documentation for integrating these shades into your home automation platform you’re going to be disappointed.
Okay, so now that we’ve seen the competition, lets check out the DIY solution. This solution was developed and posted by the thingiverse user pgote who not only designed some excellent models for 3d printing, but also wrote some powerful code to go with it.
Lets start with the bad stuff first: When comparing the DIY version to the off the shelf stuff the motor is the biggest shortcoming. The cheap 28BYJ stepper motors are extremely powerful for their size and price, but they do have limits, not only in the amount of torque that they can supply, but also in their speed. The IKEA shades can fully raise in about 27 seconds, compared to the roughly 2 and a half minutes that it takes for the DIY solution, which is kind of hilariously slow. The other issue is that heavier shade fabric may cause issues, You can increase the supply voltage from 5V to around 9V without burning out the voltage regulator on the NodeMCU or overheating the motor, but by using AA batteries to increase the weight of the shade incrementally, I found that the limit only increased from around 330g at 5v to about 500g at 9v, which is still too weak for many heavier fabrics, and is disappointing compared to the zemismart motors that have no appreciable weight limit.
However, shortcomings aside, the DIY solution is pretty slick. I bought the cheapest vinyl roller shades available at lowes for $13 and automated them using an ESP8266 and a 28BYJ stepper motor and driver for about $11. That means that I ended up with a customizable MQTT ready roller shade that I can access and program from a web browser and control with my echo devices for less than $25…
And yes, the price of the 3d printer is obviously not included… do you still not have a 3d printer? Go buy one.
The best part about this DIY solution is how easy they are to make: Step one is to get all your parts printed out, so head over to the link in the description for the original thingiverse project by pgote. You’ll need to know the inner diameter of your shade tube to pick the right gear adapter to print, and then you’ll need to decide if you want to mount your shades to the wall in front of your window, or to the top of your window casing. You’ll also need a small screw and a 608 bearing, I stole one out of a pair of 20 year old roller blades that were sitting in our attic.
The parts are brilliantly designed and rely on gravity to keep the shade gear engaged with the motor, so when you install the screw to hold the bearing in place, don’t overtighten it, you want it to rest on the gear using the weight of your shade.
Once you’ve got all your parts assembled you’ll need to program your nodeMCU. I’ve taken pgotes original code and modified it in two ways: First, I’ve added optional local amazon echo integration, and second, I’ve precompiled each version using the most recent ESP8266 arduino core, so you don’t have to worry about installing libraries or messing with code. All you need to do is download 2 files from the links in the description: rollerShade.bin, and nodeMCU pyFlasher.exe.
Plug your nodemcu into your computer and start nodeMCU pyflasher. Select QIO for the flash mode, yes to erase all flash memory, and then click browse to locate the rollerShade.bin file. Use the autoselect functionality to find your NodeMCU’s com port, and hit “Flash NodeMCU”.
To customize the program for your specific needs, connect a jumper wire from D5 to GND to put it into programming mode and press the RST button on the NodeMCU. At this point a wireless network called “roller shade configuration” will be created, connect to it using a computer or phone and then remove the jumper wire between D5 and GND, otherwise the information that you enter won’t be saved. You should be automatically redirected to a page where you will enter your specific network information, if not you can manually navigate to 192.168.4.1 to access the configuration page.
Optionally you can also configure amazon echo or MQTT integrations on this page.
Eventually all 3 control methods will be able to be used simultaneously, but I wasted 5 hours of my life this week troubleshooting a bug that was actually just a bad NodeMCU, so I need a bit more time to finish the combined version of the sketch, I’ll update the sticky comment on this video once I finish the revisions.
Once you’ve got your information entered hit save, wait a few seconds and press the RST button on your NodeMCU.
Next you’ll need to wire up your nodeMCU using “this” wiring diagram. For me, it made the most sense to wire up a long thin power cable and mount the nodeMCU and stepper driver behind the shade. Once your connections are made, navigate to the IP address of the nodeMCU that you just programmed.
On the web interface you will set the upper and lower limits for your specific shade. Click on the three lines and then press setup. Use the up and down arrows to move your shades to their correct top and bottom limits and hit the set start and set max buttons at the appropriate locations.
To add them to amazon echo, just open up the alexa app on your phone, hit discover new devices and scroll down to other. It almost always fails to discover during the first timeout period, so after no devices are found, go ahead and hit discover again. If all goes well you should end up with a new device with the name that you specified in the initial setup.
To add them to home assistant via MQTT you’ll need to add these entries to your configuration.yaml file under the cover heading and then reboot your home assistant server. Once your server comes back up you can add the new cover to lovelace like you would any other entity.
Both the echo and MQTT integrations support opening and closing to custom positions, as well as full open and close. As I mentioned before, the speed is an issue, and opening and closing these shades on demand is so slow that I get a little laugh out of it every time. But automated scheduled opening and closings would work great.
So all things considered, it’s time to decide whether it’s better to DIY or buy: From a price perspective, it’s hard to argue with the DIY solution. The actual motorization represents less than $10 in parts and delivers wifi connectivity via webUI, amazon echo integration, and MQTT. If your existing shades are lightweight enough to get away with the lower power motors, and you don’t mind the slow opening and closing speeds you should go with the DIY method. BUUUUT, it does still require you to run a wire to every window, even though you can get away with much thinner wires since they’re carrying low voltage. Unfortunately most true blackout shade fabrics are going to be too heavy for these motors to lift when running off 5 volts, or even 9 volts.
If you’re the lucky unicorn with mains power wired to your windows and a desire to use the Tuya cloud, you’ll have a great solution to automating your shades for $55 each. If you don’t have any existing shades, the IKEA shades do offer a nice all in one solution, but be ready to fight with the Zigbee protocol a little bit, and if you have nonstandard window sizes you should check out the tutorials for adjusting the length to determine if it is a project that you want to take on. My favorite solution overall is the Zemismart RF solar and battery powered motor. Paired with a sonoff RF bridge with tasmota, they give locally controlled, non cloud reliant, MQTT based control that you’ll never need to charge as long as your window receives a decent amount of sunlight.
As always thank you to my awesome patrons over at patreon for continuing to support my channel and offsetting Ikea’s insane delivery fees. If you’re interested in supporting my channel please check out the links down in the description. If you need help setting up any of the things you saw in this video, please leave a comment or come join us on the hookup home automation facebook page. If you enjoyed this video, hit that thumbs up button and consider subscribing, and as always, thanks for watching the hookup.