Custom Motorized Roller Shades

Recently we had a pavilion built in our back yard but the in the late afternoon prevented us from enjoying it. We decided to purchase roller shades but I knew, like everything else, we needed to control it from our phones. Looking into motorized shades, they are extremely expensive and we are too froogle to buy them. After doing some research I felt confident that I could build them myself.

Home Depot sells Coolaroo roller shades that were perfect. https://www.homedepot.com/p/Coolaroo-Stone-Cordless-UV-Blocking-Fade-Resistant-Fabric-Exterior-Roller-Shade-96-in-W-x-96-in-L-471309/315637152 We purchased a 10′ and 8′ for our needs.

There are many roller shade motors available on the internet. We found the motors from Rollerhouse https://amzn.to/3lxhaFp which had a many options, rechargable battery motors, 120v, 12v DC and 24v DC. Originally I measured the tubing on the Coolaroo shade and purchased one that I thought would fit, knowing that the tube didn’t look like the ones on Amazon. Unfortunately, it didn’t work because the channel where the fabric is held is just big enough that it prevents the motor from sliding in.

Coolaroo roller shade tube 1″ 1/16
Coolaroo roller shade tube fabric channel

I was dissapointed but encouraged to build my own with the Coolaroo fabric. I purchased 1 1/4″ EMT tubing from Lowes (Home Depot didn’t have 1 1/4″ in stock. https://low.es/3sRQ148. I purchased two 10′ sections as I had a 10′ and 8′ need.

I also purchased two of these 1 1/2′ roller shade motors from Rollerhouse on Amazon. (DC24V remote control and bracket). I also purchased one of these 24V DC power supply to control both roller shade motors.

When you get the roller shade motors, you’ll notice the rubberized circle piece will be too large to get into the tube. Use a dremel to remove the rubber only until you reveal the aluminum inside it. Keep testing the piece as you want it to enter easily but not have much or any play in it. Try to keep it uniform while you’re using the dremel. This is the wheel that makes contact with the inside of the EMT tubing and rolls the shade.

Original rubberized wheel before modification
Modified wheel showing the aluminum revealed
Modified wheel showing uniform adjustment

Next, use a razor blade and remove the small strip of rubber on the end piece. This will allow it to slide into the EMT tubing.

Small strip of rubber that needs to be removed on all sides.

Now confirm the motor can slide into the EMT tubing with minimimal movement. Next, measure from the black rubber piece towards the wire on the motor (where the EMT tubing makes contact) to the rubber wheel you used the dremel tool on. Record the measurement in the middle of the rubber wheel. This is to identify where we will put screws in to hold the wheel in place and ultimately turn the EMT tubing.

Measuring 10.5″

Measure your existing tubing and cut the EMT tubing to size with a cut off wheel. If you don’t have an existing tubing, measure your fabric layed down (without stretching) and add 1/4-1/2″ to each side. This will allow the shade material some room in case its not hung perfectly level or you don’t apply it to the tube perfectly.

Next, use a Sharpie marker and draw a perfectly straight line down the EMT tubing. I used aluminum angle from Home Depot to get a perfectly straight line. https://thd.co/3yYEc01. Next, I used carpet doubled sided tape from home depot and ran it down the EMT tubing, about 1/8″ away from the line I drew. Unfortunately, I couldn’t find this on Home Depot’s web site, but it was in the paint section and said it was for carpet. It’s about 1-1.5″ and had mesh inside it, and very sticky. Gorilla also makes ones but I didn’t try it.

Next, take your current shade and unravel it from the tube and remove it from the channel. You can also use your own fabric. With the black line facing up on the EMT tubing, take the fabric and place it on the doubled sided tape with the fabric just touching the black line. Be cautious if your fabric stretches, you do not want to pull/stretch the fabric when applying it to the double sided tape. Press the fabric firmly into the doubled sided tape.

Arrows indicating the black line and fabric following it perfectly leaving gap on both sides between end of tubing and fabric.

Next, take your measurement of the motor to the rubberized circle and make two dots on your tubing. Mark one dot right near the line (not through the fabric) and another one directly on the opposite side. Insert your roller shade motor into the tubing and use #8 x 1/2″ self tapping screws and insert them into the two dots. This will secure the rubberized circle in the EMT tubing and allow is to all work.

Showing the self tapping screw near the fabric
Showing both screws, directly opposite of each other.

Now follow the directions on mounting, pairing the remote and setting the up/down limit. Lastly, I purchased the BroadLink RM4 PRO IR/RF universal remote. The roller shade motors come with RF remotes that work on 433Mhz and the BroadLink allows me to learn the RF commands and integrate them into Home Assistant.

Lastly, Home Assistant already has an integration with BroadLink. Follow the instructions to learn the commands through Home Assistant. I then used a template cover to create the roller shade entity.

cover:
  - platform: template
    covers:
      pool_pavilion_shade_front: #Your Entity Name
        friendly_name: "Pavilion Front Shade" #Friendly Entity Name
        unique_id: "PavillionFrontShade" #UniqueID so you can edit it within the UI and assign to an area
        device_class: shade
        position_template: 50 #work around so both up and down buttons are always enabled
        open_cover:
          service: remote.send_command #service to leverage to raise the shade up
          data:
            device: PoolShadeFront #device name used when learning the RF command
            command: Up #command name when learning the RF command
            hold_secs: 2
            num_repeats: 2
            delay_secs: 0.4  
          target:
            entity_id: remote.broadlink_pro_remote #entity name of BroadLink RM4 Pro
        close_cover:
          service: remote.send_command  #service to leverage to lowerthe shade down
          data:
            device: PoolShadeFront #device name used when learning the RF command
            command: Down #command name when learning the RF command
            hold_secs: 2
            num_repeats: 2
            delay_secs: 0.4
          target:
            entity_id: remote.broadlink_pro_remote #entity name of BroadLink RM4 Pro
        stop_cover:
          service: remote.send_command  #service to leverage to stop the shade
          data:
            device: PoolShadeFront #device name used when learning the RF command
            command: Stop #command name when learning the RF command
            hold_secs: 2
            num_repeats: 2
            delay_secs: 0.4
          target:
            entity_id: remote.broadlink_pro_remote #entity name of BroadLink RM4 Pro
      #####If you have a second shade#######
      pool_pavilion_shade_side: 
        friendly_name: 
        unique_id: "PavillionSideShade"
        device_class: shade
        position_template: 50
        open_cover:
          service: remote.send_command
          data:
            device: PoolShadeSide #device name used when learning the RF command
            command: Up #command name when learning the RF command
            hold_secs: 2
            num_repeats: 2
            delay_secs: 0.4  
          target:
            entity_id: remote.broadlink_pro_remote
        close_cover:
          service: remote.send_command
          data:
            device: PoolShadeSide #device name used when learning the RF command
            command: Down #command name when learning the RF command
            hold_secs: 2
            num_repeats: 2
            delay_secs: 0.4
          target:
            entity_id: remote.broadlink_pro_remote
        stop_cover:
          service: remote.send_command
          data:
            device: PoolShadeSide #device name used when learning the RF command
            command: Stop #command name when learning the RF command
            hold_secs: 2
            num_repeats: 2
            delay_secs: 0.4
          target:
            entity_id: remote.broadlink_pro_remote
  

Leave a Comment

Your email address will not be published.