Support for SwitchBot Curtain 3

For anyone that wants to implement the speed control using this custom component but have a standard “Cover” entity for your dashbaord, you can use templates. Here’s how I did it:

v6_quietdrift:

#---Switchbot Speed Control		
cover:  
  - platform: template
    covers:
      livroom_backcurtain_custom:
        friendly_name: "Living Room Back Curtain"
        position_template: "{{ state_attr('cover.livroom_backcurtain', 'current_position') }}"
        open_cover:
          service: cover.v6_set_switchbot_curtain_position
          data_template:
            speed: "{{ states('input_select.livroom_backcurtain_speed') | int }}"
            position: 100
            entity_id: cover.livroom_backcurtain
        close_cover:
          service: cover.v6_set_switchbot_curtain_position
          data_template:
            speed: "{{ states('input_select.livroom_backcurtain_speed') | int }}"
            position: 0
            entity_id: cover.livroom_backcurtain
        set_cover_position:
          service: cover.v6_set_switchbot_curtain_position
          data_template:
            position: "{{ position }}"
            speed: "{{ states('input_select.livroom_backcurtain_speed') | int }}"
            entity_id: cover.livroom_backcurtain

input_select.livroom_backcurtain_speed is a dropdown helper (values are 1 or 3), entity_id: cover.livroom_backcurtain is the ID of your actual Switchbot cover.

5 Likes

I’ve released a new version (1.0.1). Most notable changes:

  • The addon doesn’t advertise support for config flow (=> less WTF for new users).
  • The service has new name (v6_quietdrift.set_switchbot_curtain_position). The old one can be still used, though.
  • The service call can be configured in HA GUI, as long as you use the new name (i.e. v6_quietdrift.set_switchbot_curtain_position). I was unable to define the GUI for a domain that doesn’t match the addon.
  • Some rather technical changes you probably won’t notice until something breaks.
1 Like

What is the status of the official integration for quiet drift?

Not implemented

I see three possible levels of integration:

  1. Configurable speed; you cannot set the speed for specific movement.
  2. Speed can be configured per movement.
  3. Like 2, but with GUI support

My addon supports level #2. While GUI should be doable, I don’t need it, so I haven’t implemented it. QuietDrift is great for automation that shouldn’t draw attention. Because I move curtains gradually (based on Sun position + some other factors), they move frequently, and not using QuietDrift for those movements was annoying. When I want to move curtains manually, I don’t care about the noise.

I am a bit skeptical about getting more than #1 in Home Assistant soon, which was my reason for doing it myself. Long story short:

  1. The PR originally implemented just #1. It looks like it was nearly mergeable, probably just few tests were needed.
  2. After my question, the author has implemented #2.
  3. It was rejected and a related architectural discussion was linked.

I understand doing #3 might be much more work, if the developers want to make the API same for all vendors and prevent BC breaks. It probably doesn’t need much more code, it rather needs to be thought twice. This isn’t what I have to do with my addon. I’ve created a service specific to a single vendor and don’t care about others.

2 Likes

I noticed that there’s a device firmware update (currently running 0.5, new firmware is listed at 1.1)

Can anyone advise if it is safe to update? I believe I’m just running the custom component with Bluetooth proxy on an esp32.

Guess it’s safe. My switchbots are running on V1.1, also with a bluetooth proxy setup

1 Like

I’m using v6_quietdrift.set_switchbot_curtain_position to pick fast of slow speed. I just updated to the 1.1 firmware. Is it me, or are there now more speeds? 255 seems to be the old speed, and lower is slower. It seems like there are 3 speeds now instead of 2 speeds. Does anyone know what speed settings are allowed?

So, is there any way I can get battery status and light level within HA? I currently have the Curtain 3 connected to HA via matter through the hub2, but would happily remove the hub from the equation.

Forgive me if it’s been said in this thread already, but I ctrl + f “battery” and “light” and couldn’t find anything.

Wasn’t aware you dont have that information with the hub. Using a Bluetooth proxy setup you’ll get this information, so switching from the hub to bluetooth proxies will give you both values as well as remove the hub from the equation

Not sure if removing the hub has any other unwanted side effect though as I haven’t had any yet

Just noting that the v6_quietdrift just passes the speed to the library (no recalculation), which probably also passes it to SwitchBot without any further processing. So, a new firmware might change interpretation of this number. I am not sure if SwitchBot documents the acceptable values, but I don’t think so. We’ll probably have to try it.

Some time (few months?) ago, it looked like SwitchBot Curtain 3 supported only two speeds. I am not sure if I have an use case for other speeds, but it is good to know.

1 Like

The switchbot app now also has three speeds. For the service: 1, anything inbetween and 255 seem to be the values you need to pass. I really like the new mode. Still reasonably fast, and a lot less noise.

Great info, thanks. If anyone is interested: it is the speed value 2. Also I think it is a good mix between speed and noise

Yep, it is any value from 2 to 254, 1 is quiet drift mode, 255 is standard mode, anything else is seems to be quiet mode. (I haven’t tried all 255 :slight_smile: )

Just wandering if it’s still considered for implementation, or is left out?

1 Like

Thank you so much @v6ak for taking the time to write and publish your custom component.
It worked on first try with the updated firmware v1.2 on both my SBC3

WAF has gone up a notch as the default speed on them is quite loud for a bedroom in the morning

I am glad it helps you. BTW, it looks like your use case is a bit opposite from mine :blush:

I want a quick movement on morning. However, in warm days, the curtain position is updated continuously to prevent direct sunlight. That means, the curtains move frequently just by few cm. Without QuietDrift, those frequent movements were quite annoying.

The SwitchBot Curtain 3 can be connected to Home Assistant using bluetooth or with their hub.
Perhaps I haven’t searched hard enough, but is it possible to connect the SwitchBot Curtain 3 via matter using the Matter (Beta) integration and the Python Matter Server docker container?
At the moment I only have Zigbee and Wifi.

what is the best way to control curtain 3 with HA? bluetooth? matter? cheers

I have a switchbot hub se (i dont think that one has matter?). so do i need to get a bluetooth dongle? i just wanna open/close curtains