Zigbee2mqtt Curtain Module: QS-Zigbee-C01

Hi guys,
I’m trying to automate my roller shutters wich are 4 wires motors (that I command using a wall switch, already here with the motors).
I have bought a Tuya Zigbee curtain module (model QS-Zigbee-C01) and have done the wiring.

The module is working fine but I need to set the duration of the up or down action!
Right now the shutter is going up and down, but during 10sec. I need to calibrate this in order to have my roller completely up and down with one single press.

There is a “calibration” entity detected by MQTT in the main “roller shutter” entity (read “Volet” in French…) but I don’t know how to use it, since I’m quite new to HA.

Anyone already done this and able to explain it?


I also bought this module and I didn’t get that far…
NO COMPONENTS Maybe this device is not (yet) supported by Zigbee2Mqtt?
I am using zigbee cc2531 with Zigbee2Mqtt

I’m also using cc2531 (flashed to the last version) with zigbee2mqtt plugin on hass.io.
I was able to reset the device by using a very small pin during 10sec (blue flashing light) and then it has appeared instantanely in the devices.
After I renamed it, only after I renamed it, it was working.

By the way, I found how to calibrate it: By going into the zigbee2mqtt webUI, and I just have to activate the calibrating function, and then moving the roller shutter from the beginning to the end. I then turned off the calibrating function as soon as the shutter was fully upward and it did it!

Let me know if you need any help


Thanks for the answer, unfortunately I changed the name but it didn’t help.
My version is Zigbee2mqtt is
home assistant supervisor 2020.12.7.
Stick Z-Stack_Home_1.2 - compilation 20190608 - CC2531ZNP-Prod.hex
I have no idea how to do it

You should use the webUI from the zigbee2mqtt plugin directly, not the plugin zigbee2mqtt assistant. I found it quite buggy.

Hi all,

I’m new on Home Assistant and on this forum.
Just to say, I was in the same situation Zigbee2mqtt + tuya Curtain blind switch.
I was stuck with the calibration in HomeAssistant + Zigbee2Mqtt plugin.
I sold my problem with the webUI.
Thanks To brizoo for the question and ScorprioSN for the answer.
The WebUI is better and allows much more than the plugin.


1 Like

Yeah, the webUi is a lot better than the plugin. I think the WebUI is quite new and the plugin was a “life saver” before. But now it looks like it is outdated and the official WebUI from the Zigbee2mqtt plugin is a lot better to use.

Where the “calibration” data is saved to? Into HA configuration OR to the QS-Zigbee-C01 device? I hope it is preserved in case of power outage.
I’m also curious the QS-Zigbee-C01 can accept direct binding to switches (like IKEA E1743)? I prefer to have the ability to work in case of HA is not available.

Just tested the “power outage” case and yes the calibration is preserved! If server is down, you can still use your curtain from the wall switch connected to QS-Zigbee-C01

Many thx for the test! Did you recycled the the mains voltage on the QS-Zigbee-C01 device OR you shut down the server? Or you tested both cases?

I don’t have mechanical wall switches so I plan to use IKEA E1743 with wireless direct binding to QS-Zigbee-C01. Via binding it could preserve the wireless control in case of HA outage. I need to order a QS-Zigbee-C01 and test the binding ability.

this is exactly what I need! Except that I don’t use zigbee2mqtt, but the Home-Assistant ZHA integration. Does anyone know an easy way to do this calibration in ZHA?

Apparently I destroyed two of the devices when I accidentally pressed the up and down button at the same time. Does anybody else experienced something similar?

I have this module with Zigbee2mqtt. everything works well excepted the wall switch. For the down movement I need to click two times (click down click up click down) to have response (movement) in my shutter. Anyone with this issue?

Mine does the same… and yesterday I needed to restart HA virtualbox and now the curtain expose is unavailable. Anyone can help me understand why?

Is it possible to delete it and pair again without accessing the module (with the physical buttons)?

[quote=“ruidalves2, post:14, topic:265239, full:true”]
Mine does the same… and yesterday I needed to restart HA virtualbox and now the curtain expose is unavailable. Anyone can help me understand why?

Is it possible to delete it and pair again without accessing the module (with the physical buttons)?

I have the same problem :frowning:


  • Exception in async_discover when dispatching ‘mqtt_discovery_new_cover_mqtt’: ({‘availability’: [{‘topic’: ‘zigbee2mqtt/bridge/state’}], ‘command_topic’: ‘zigbee2mqtt/Curtain kitchen/set’, ‘device’: {‘identifiers’: [‘zigbee2mqtt_0x804b50fffe4a088c’], ‘manufacturer’: ‘Lonsonho’, ‘model’: ‘Curtain/blind motor controller (QS-Zigbee-C01)’, ‘name’: ‘Curtain kitchen’, ‘sw_version’: ‘Zigbee2MQTT 1.18.1’}, ‘json_attributes_topic’: ‘zigbee2mqtt/Curtain kitchen’, ‘name’: ‘Curtain kitchen’, ‘position_topic’: ‘zigbee2mqtt/Curtain kitchen’, ‘set_position_template’: ‘{ “position”: {{ position }} }’, ‘set_position_topic’: ‘zigbee2mqtt/Curtain kitchen/set’, ‘unique_id’: ‘0x804b50fffe4a088c_cover_zigbee2mqtt’, ‘value_template’: ‘{{ value_json.position }}’, ‘platform’: ‘mqtt’},) Traceback (most recent call last): File “/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py”, line 272, in call return self._compiled([], data) File “/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py”, line 817, in validate_callable return schema(data) File “/usr/src/homeassistant/homeassistant/components/mqtt/cover.py”, line 118, in validate_options raise vol.Invalid( voluptuous.error.Invalid: ‘value_template’ must be set together with ‘state_topic’. During handling of the above exception, another exception occurred: Traceback (most recent call last): File “/usr/src/homeassistant/homeassistant/components/mqtt/mixins.py”, line 160, in async_discover config = schema(discovery_payload) File “/usr/local/lib/python3.8/site-packages/voluptuous/validators.py”, line 218, in call return self._exec((Schema(val) for val in self.validators), v) File “/usr/local/lib/python3.8/site-packages/voluptuous/validators.py”, line 341, in _exec raise e if self.msg is None else AllInvalid(self.msg, path=path) File “/usr/local/lib/python3.8/site-packages/voluptuous/validators.py”, line 337, in _exec v = func(v) File “/usr/local/lib/python3.8/site-packages/voluptuous/schema_builder.py”, line 276, in call raise er.MultipleInvalid([e]) voluptuous.error.MultipleInvalid: ‘value_template’ must be set together with ‘state_topic’.

Same problem here with my curtain COVER entity. It broke after updating to 2021.06.
If you revert back to 2021.05 it will work again.
I still haven’t figured out why the Cover entity is not working anymore.

I just created a post for help

Hey guys, i was able to fix the Cover problem by updating to Zigbee2mqtt version 1.19.

If you are unable to see a new version showing up in your HomeAssistant (so you are stuck on 1.18 or prior), you can follow my instructions here - Cover entities stopped working with 2021.6 update - #5 by Renan_Az


It happens to me too, I have 3 modules and in all 3 it happens to me

Probably “It’s Not a Bug, It’s a Feature” ahahah. I will not buy more of these… Anyone could recommend another zigbee module for roller shutter?

I’m using 2021.6 and successfully managed to install several QS-Zigbee-C01 curtain modules. However, I’m having this issue with the close button of the switch that needs to be activated two times to trigger the cover. The open button is working like expected.
Anybody found a solution to it?