Aqara Roller Shade Driver E1

I got this (model RSD-M01) and connected it ZHA integration through a ConBee 2 usb adapter.
The pairing worked smoothly.

However the device’s controls are not working.
The Open cover button (UP) is greyed


I tried to see if it works via the Manage Clusters and it does.

Using the cluster WindowCovering and the cluster command up_open (id: 0x0000) I can open the shades!!!

I tried to do the same with services under /config/services but I get unknown error.

service: zha.issue_zigbee_cluster_command
  ieee: "54:ef:44:10:00:32:9d:ad"
  endpoint_id: 1
  cluster_id: 0x0102
  cluster_type: in
  command: 0x0000
  command_type: client

Has anyone managed to make it work this way?
Please help

Is the direction on the roller shade driver is set up correctly? (So pressing the down buttin on the device itself lets roll the shade down and the up-button lets it roll up accordingly? If you not you need to switch motor direction on the E1.

Usually the direction is greyed out when the shade driver already is in that positon (either top or bottom and the position state reports 0% or 100%)

thank you very much for your reply.
I didn’t know this parameter, but the direction is correct.

If I use the analog output and set it to 100 it works


But I was wondering why the UP Cover is greyed…
I found similar posts with the same problem …

I was trying to do the same with a service cluster command …so i can create an automation …
No luck so far …

Did you ever manage to get this sorted? I’m looking at buying the same device, but will look at another product if it is still not fully functional.

For me it worked! I used the zigbee Home Automation.

The controls are still grayed for me.
So I am using some custom automation to control the curtain 100%


You can control the curtain by setting the Analog Output from 1 to 100


Which is fully closed & fully opened? how do you calibrate it?

You have to calibrate the fully open/closed positions manually after mounting the shade driver.

Simply follow the steps in instruction manual, it’s pressing a series of buttons on the device.

You don’t have to integrate it into the Aquara cloud, after calibration you can control it from within ZHA/Z2M in HA locally.


Thanks, the thing is, the manual I received is in Chinese - seems is selling the ones from China. Don’t really know what the series of buttons is.

@chris.peck Look here, the guy has described the calibration process in his article.

The steps are (copied from the article above):

Calibration is very easy. Click the “up” and “down” buttons simultaneously for 3 seconds, until the blue LED comes on. Then we put the blind in completely open position, using the “up” button, stop it and confirm it by pressing this button 5 times. The blue LED will flash 3 times.

We lower it until it is completely closed and confirm again by pressing the “down” button five times. There should be 3 flashes again.


The simple solution i use to have a working cover entity to use in the frontend is this:

  - platform: template
        device_class: blind
        unique_id: "shade"
        friendly_name: "Shade"
        position_template: "{{ states('number.lumi_lumi_curtain_acn002_analog_output') | int }}"
          service: number.set_value
            entity_id: number.lumi_lumi_curtain_acn002_analog_output
            value: "{{position}}"

Has anyone got this to work with Sonoff Zigbee 3.0 USB dongle? I don’t have a Aqara hub. The pairing worked fine but I get the same greyed out direction button as descibed above and all I can do is move the motor in one direction, either with the active direction button or with the analogue selector. The stop works though!

I‘m using a coordinator with the same CC2652 chipset (ZigStar) and Zigbee2MQTT.

I have five of those Aqara Shade Driver E1 devices. Everything works perfectly, incl up/down/pause and battery state!

1 Like

I have just purchased the E1 blind motor and it is set up with zigbee2mqtt and working fine. My only problem is now getting the calibration process to work so that it knows when it gets to the top or bottom and knows when to stop. Since I dont have an aqara hub (I am using a sonoff zigbee dongle) the process to do the calibration described by @anon94216691 is not open to me. Any suggestions?

So ditching ZHA and go Zigbee2MQTT is the way forward?

That’s a purely individual choice. I’m running Zigbee2MQTT for my living area Zigbee mesh and ZHA for my Garage mesh (on a dedicated coordinator (CC2652 LAN-Gateway).
Both do the job most of the time but I like Zigbee2MQTT a bit better and it’s known for the huge number of supported devices - although ZHA is catching up in that area.

Wish I’d found this post before I bought one! Now fighting with Zigbee2MQTT…

It’ll be lovely when it’s working though!?

An afternoon of fighting 502 error, but eventually I have a working controller. I can open, open to whatever angle I like, close and I even know what the battery charge level is.

It was worth it in the end!

I setup the Aqara roller shade companion E1 (ZNJLBL01LM) on Z2M a couple days ago and initially everything seemed to be working properly. More recently, every now and then, the roller shade stops working with the error (Data request failed with error: 'MAC transaction expired' (240))'

I have other devices using Z2M that are working without any issues so the problem seems to be isolated only to this device. Also to note, after a while, the device works again as intended regardless of the errors still showing up in the Z2M logs. Has anyone experienced anything similar in Z2M?

FYI, using the Sonoff Zigbee 3.0 USB Dongle Plus with the firmware upgrade.


Zigbee2MQTT:error 2022-05-10 16:55:53: Error: Read 0x54ef4410003e3d6f/1
"transactionSequenceNumber":null,"writeUndiv":false}) failed 
(Data request failed with error: 'MAC transaction expired' (240))

Zigbee2MQTT:error 2022-05-10 16:56:21: Publish 'set' 'state' to 'window_roller_shade' failed: 
'Error: Write 0x54ef4410003e3d6f/1 genAnalogOutput({"85":{"value":0,"type":57}}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery"
"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed 
(Data request failed with error: 'MAC transaction expired' (240))'

the signal level is good?

How do I check this?