Controlling Blinds with Hass.io

Hi.
I have a set of 4 roof-window blinds in my kitchen. I also have a multi-channel rf remote to control them which I have paired up with a broadlink rm pro. Each blind has 3 states:

  • raise blind
  • lower blind
  • pause blind

However, looking at the broadlink addin for home assistant it seems to only support on & off functionality. Is there another way for me to fully control these blinds through hass.io? I don’t really want to be forced to have them either fully open or fully closed…

Regards,
Dave

1 Like

Take a look at the cover component.

Thankyou @sjee. Can you explain how I use that in conjunction with my broadlink config?

Sure, just let me know which part is unclear to you.

@sjee, well, from a quick scan of the docs it looks like the template will call actions from a service. In my case that service has to be broadlink because that provides the rf interface. And seeing as the broadlink component only support on and off actions it seems to me that I’ll still have the same issue.
Am I not thinking about it in the right way?

Also, because these blinds are Rf controlled they don’t provide state information. I imagine I might be able to emulate state but don’t know how to do that.

You should use the broadlink component to create switches which work like the buttons on your remote. You can link these switches/commands to the template cover. However it will not add extra functionality in comparison to what you can do using your remote. For example my remote has up-position down-position pause and if I keep the pause pressed for a couple of seconds the blinds go to a third position. I have used the broadlink componented to ‘learn’ these commands and linked them to the template cover component this way HA can control my blinds the same way I can do using the RF remote.

In addition to this you could “emulate” multiple positions by using up/down and pause commands. But it’s based on time not actual position so depending on how fast your blinds are responding to commands this might or might not give very reliable results. To do this you create a script to first up the blind in up position - wait xx number of seconds to make sure it’s in the full up position, send the down command wait xx number of seconds and send the pause command.

@sjee Ok, what you’re saying makes sense but I don’t see how I implement the “pause” switch via the broadlink component:

Do I need to create a second switch config for the same blind that pauses it? Maybe one switch that raises/pauses the blind (blind_up) and another that lowers/pauses the blind (blind_down)

Ok, you need to read the component instructions as the best is at the end :wink:

Basically you create 1 switch which is your broadlink device like this;

- platform: broadlink
  host: 192.168.xxx.xxx
  mac: xx:xx:xx:xx:xx:xx

Next you create a number of scripts, in your case 3 for each blind like this;

cover_1_pause:
    alias: "Cover 1 pause"
    sequence:
      - service: switch.broadlink_send_packet_192_168_xxx_xxx
        data:
          packet:
          - packet: packet_pushing_pause_button
cover_1_down:
    alias: "Cover 1 down"
    sequence:
      - service: switch.broadlink_send_packet_192_168_xxx_xxx
        data:
          packet:
          - packet: packet_pushing_down_button 
cover_1_up:
    alias: "Cover 1 up"
    sequence:
      - service: switch.broadlink_send_packet_192_168_xxx_xxx
        data:
          packet:
          -  packet_pushing_up_button

And you use these scripts in the template cover like this;

- platform: template
  covers:
    cover_1:
      friendly_name: "Cover 1"
      open_cover:
          service: script.cover_1_up
      close_cover:
          service: script.cover_1_down
      close_stop:
          service: script.cover_1_pause

But you can do much more using script. For example my blinds are never in the top position, when I press up they go to a 75% open position. However when I open a window I call a script to put them 100% up which is not part of the template cover.

1 Like

Thanks for this, very interesting. I’ll have a closer look later. Will pay closer attention to the bottom of the docs page in future :smile:

Hi PIR,

Did you manage to control all 4 blinds simultaneously?
If so could you share the method you used?

Thanks,

Rob.

Your Just the kind of Genious I have been looking for! I have spent a few weeks trying out different nodemcu, mqtt, home assistant combos using sketches to control a servo that is on my blinds. I’m failing miserably and was wondering if you could help?

I have 3 other nodemcu’s which have sensors of various kinds and they work great all thru “esphomeyaml” on home assistant but i wouldn’t know where to begin here.

Thanks in advance

Start by letting us know what’s not working and did you ready this;

Worked this out eventually…

Solution based on Dooya RF blinds and a broadlink RF controller.

Dooya blinds are great, but the instructions that come with them fit on a size of a credit card and are in chinese…and I can’t read chinese!
So…after some online searching worked out you basically can program the blinds to work of the one RF remote, hence when you press the up button they all go up!

That’s great but how do you control them individually well…
Purchase a Dooya remote that supports mutliple channels, program each blind to a seperate channel say 1-15. Each blind can then be individually controlled by pressing the corresponding channel number for that blind. But the nice feature of Dooya mutli channel remote, selecting channel “0” controls all the blinds simultaneously via the one RF command. yeah!

Whilst they do integrate nicely with HA/Broadlink, you can also have multiple single channel or single multiple channel RF remotes position around the house that will work perfectly alongside HA.

Only trivial downside similar to controlling IR devices, no feedback on blind state.

1 Like

Thanks for sharing, I did not know that but it’s very usefull!

hi im a complete noob. i got by blinds to go up and down. how can i add the 3rd button to pause it. Also to let homekit recognize it as a blind and not a switch? Thanks

switch:

  • platform: broadlink
    host: 192.168.86.51
    mac: ‘B4:43:0D:38:6D:C7’
    timeout: 15
    switches:
    blind:
    friendly_name: “Study Blind”
    command_on: ‘6FQAF3AAAAAA=’
    command_off: ‘6QGwsLCgsMCgoKCwsKg=’
    command_stop: '6QGEAwsL

Here is the template cover --> YOU WILL NEED TO GET YOUR OWN CODES from broadlink

cover:
  - platform: template
    covers:
      study:
        friendly_name: "Study Blinds"
        open_cover:
          service: broadlink.send
          data:
            host: 192.168.1.209
            packet:
              - "sgCoAoNRNwoMFAwVDBQMFRYKDRQXCRcKDBUWCgwVFgoMFRcJFwoMFRcJDRQMFA0UDBUMFBcKFgoXCgwVDBQMFQwUDRQMFQwUFwoMFBcKDBQNFAwVDBQNFLlRNgoMFQwVDBQMFRcJDRQWChcKDBUWCgwVFgoMFRcKFgoMFRYKDRQMFAwVDBQNFBcKFgoXCgwUDRQMFQwUDBUMFQwUFwoMFBcKDBQMFQwUDRQMFRajUTcJDBUMFQwUDBUWCwwUFgoXCgwVFgoMFRYLDBQXCRcKDBUWCg0UDBUMFAwVDBQXChYKFwoMFQwUDBUMFAwVDBQNFBcKDBQXCgwUDBUMFQwUDBW5UTcJDBUMFAwVDBUWCgwVFwkXCgwVFgoMFRYKDBUXChYKDBQXCgwVDBQNFAwVDBQXChYKFwoNEw0UDBUMFAwVDBQMFRcKDBQXCgwVDBQMFQwUDBW5UTcKDBQMFQwUDBUWCg0UFwoWCgwVFgoMFRcKDBQXChYKDBUWCgwVDBQNFAwVDBQXChcJFwoMFQwUDBUMFAwVDBQMFRcKDBQXCgwUDRQMFQwUDBUWo1E2CgwVDBQNFAwVFgoNFBcJFwoMFRYKDBUWCgwVFgsWCgwVFgoMFQwUDBUMFQwUFwoXCRcKDBQNFAwVDBQMFQwVDBQXCgwUFwoMFAwVDBUMFAwVFqNRNgoMFQwVDBQMFBgJDBUXChYKDBUWCgwVFwoMFBYLFgoMFRcKDBQMFQwUDBUMFBcKFwkXCgwVDBQMFQwVDBQMFQwUFwoMFRYKDBUMFAwVDBQMFRajUTYKDBUMFA0UDBUWCgwVFwkXCgwUGAkMFRYLDBQWCxYKDBUWCgwVDBUMFAwVDBQXChcJFwoMFQwUDBUMFQwUDBUMFBcKDBQXCgwVDBQMFQwUDBUWAAXc"
        close_cover:
          service: broadlink.send
          data:
            host: 192.168.1.209
            packet:
              - "sgCrAoRQNwoLFQwVDBQMFRcKDBQXChcKCxUXCgsVFwoMFBcKFwoLFRcKCxYLFQwUFwoMFQwUDBUWCg0UDBUMFAwVCxYLFQwVFgoMFRYKDBUXChYKDBUWCheiUTcKDBQMFQsWCxUWCwsVFwkXCgwVFgoMFRYLDBQXChYLDBQWCwwUDBUMFBcKDBULFQwVFgoMFQwVCxUMFQwUDBUMFBcKDBQXCgwVFgoXCgwVFgoXolE3CQwVDBUMFA0UFgsMFBYLFgoMFRYKDBUXCgwUFwoWCgwVFgoNFAwVDBQXCgwVCxUMFRYKDBUMFQsVDBUMFAwVDBQXCgwUFwoMFRYKFwoMFRYKFqNRNwkMFQwVDBQMFRcKDBQWCxYKDBQYCQ0UFgoMFRcKFgoMFRYLCxUMFA0UFwoMFAwVDBQXCgwVCxUMFQwUDBUMFA0UFwoMFRYKDBUWChcKDBQXChajUTcJDBUMFA0UDBUWCgwVFwoWCgwUGAkNFBYKDRQWCxYLCxUWCgwVDBUMFBcKCxUNFAwVFgoMFQwUDBUMFAwVDBQNFBcKDBQXCgwVFgoXCgwUFwoWo1E2CgwVDBQMFQwVFgoMFRYKFwoMFRYKDBUWCgwVFwoWCgwVFwkMFQwUDBUXCgwUDBUMFRYKDBULFQwUDRQMFQwVDBQXCgwVFgoMFRYKFgsMFBcKFqNRNgoMFQwVDBQMFRYKDBUWCxYKDBUWCgwVFwkNFBcKFgoMFRYKDBUMFAwVFwkNFAwVDBUWCgwVDBQMFQwUDBUMFA0UFwoMFBcKDBUWChYLCxUXChajUTYKDBUMFA0UDBUWCgwVFgoXCgwUFwoMFRYKDBUWChcKDBUWCgwVDBQMFRcKDBQMFQwVFgoMFQwUDBUMFAwVDBULFRYLDBQXCgwUFwoWCwsVFgoXAAXcAAAAAAAAAAAAAAAAAA=="
        stop_cover:
          service: broadlink.send
          data:
            host: 192.168.1.209
            packet:
              - "sgCqAoRRNgoMFQwUDBUMFBcKDBUWChcKDBUWCgwUFwoMFRYKFwoMFBcKDBUMFAwVFwkMFRcKDBQXCgwVDBQMFQsVDBQNFAwVFwoMFBcKDBQXChcKFgoMFBejUDcKDBUMFAwVDBQXCgwVFgoXCgwUFwoMFBcKDBUWChcKDBQXCgwUDRQMFRYKDRQXCgwUFwkNFAwVDBQMFQwVDBQMFRYKDBUXCQ0UFwoWChcKDBQXo1A3CgwVDBQMFQwVFgoMFBcKFwoMFBcKDBQXCgwUFwoXCgwUFwoMFQwUDBQYCQ0UFgsMFBcKDBQMFQwVDBQMFA0UDBUXCQ0UFwkMFRcKFgoXCgwVFqNQNwoMFQwUDBQMFRcKDBQXChcKDBQXCgwUFwoMFBcKFwkMFRcKDBQMFQwUFwoMFRcJDRQXCQ0UDBUMFA0UDBQNFAwVFgoMFRcJDBUXCRcKFwoMFBejUDcKDBQNFAwVDBQXCgwVFgoXCQwVFwoMFBcKDBUWChcKDBQXCgwUDBUMFBcKDBUWCgwVFwkMFQwVDBQNFAwUDBUMFBgJDBUWCgwVFwkXChcKDBQXolE3CgwUDBUMFA0UFwoMFBcKFgsMFBcKDBQXCgwUFwoXCQ0UFwoMFAwVDBQXCgwUFwsLFRYKDBUMFQwUDBUMFAwVDBUWCgwVFgoMFRYLFgoXCgwUF6JRNwoMFAwVDBQMFRcKCxUXChYLDBQWCwsVFwoMFBcKFwoMFBcKDBQMFQwUFwoMFRYKDBUXCQ0UDBQMFQwVDBQMFQwVFgoMFRYKDRQWChcKFwoMFLlRNwkMFQwUDBUNFBYKDBUXChYKDBUWCgwVFwkNFBcKFgsMFBcKCxUMFQwUFwoMFRYKDBUWCgwVDBULFQwVDBULFQwVFgoMFRYKDBUXCRcKFgoMFRcABdwAAAAAAAAAAAAAAAAAAA=="
1 Like

Hello David, I am in your seat now, can you please help me how you did you integration with Broadlink