Aqara Roller Shade Driver E1

I got one of these ages ago, it connected and even operated just fine but would set it’s opening in reverse (i.e. to open it 30% I would have to command it to open 70%). Which I got around with a template after struggling to work out the quirks. In case it’s helpful to anyone:

cover:
  - platform: template
    covers:
      back_blind:
        friendly_name: "Back Blind"
        position_template: "{{ (state_attr('cover.reversed_og_blind', 'current_position') | int) }}"
        open_cover:
          service: cover.open_cover
          data: {}
          target:
            entity_id: cover.reversed_og_blind
        close_cover:
          service: cover.close_cover
          data: {}
          target:
            entity_id: cover.reversed_og_blind
        stop_cover:
          service: cover.stop_cover
          data: {}
          target:
            entity_id: cover.reversed_og_blind
        set_cover_position:
          service: cover.set_cover_position
          data:
            position: "{{100-position}}"
            entity_id: cover.reversed_og_blind
        icon_template: >-
          {% if is_state('cover.back_blind', 'open') %}
            mdi:blinds-open
          {% else %}
            mdi:blinds
          {% endif %}
        device_class: blind

recently bought a second for a different room. It really struggles to connect unless very close to the coordinator but then wouldn’t respond to anything anyway. After an embarrassingly long time of trying different things,… I discovered that they are on different firmwares!

The working one says: 0x00000e18
The new one says: 0x00000e1b

Does anyone know if it’s possible to change the new one’s firmware to 0x00000e18? Not certain if it’s an upgrade or a downgrade but it’s the only difference I can see and therefore the only cause of the issue that I can work out!

Thank you this worked for me also and nothing lost in firmware update.

1 Like

Hi All.

I’m having (almost) the same issue…
Zigbee2mqtt, Sonoff Zigbee 3.0 (P).
Limits setup went fairly smoothly.
Paired fine… LQI 120.
I immediately noticed some of the state values were not healthy.
device_temperature, motor_state, running were all null and position was 0 even though the blind was fully open.
I could drive it fine from the Zigbee2mqtt dashboard, sending Open/Close/Position commands.
The reported position never changed from 0.
In home assistant the cover entity only allows stop and open (close is greyed out in my case).
I figured this might be related to the fact that the reported position was 0 (close greyed out when fully closed kinda makes sense).
Possibly, the position state is the command state (not actual position)… but still, you would expect it to change after sending 50% from the zigbee2mqtt dashboard.

Interestingly, zigbee2mqtt told me there was a firmware update for the blind controller…
I figured that might help and so proceeded (first time for me… most of my stuff is zwave).
It went smoothly… and now reports a build date of 10-09-2022)

But still no joy.
Seeing some had had success with a coordinator update, I investigated the options…
I flashed the Zigbee dongle with latest coordinator firmware (CC2652RB_coordinator_20220219 from Koenkk).

Everything came back fine… but still… no joy.
All symptoms the same.

I removed the device from the Zigbee network and repaired… remaining joyless.

So… it does work, I guess… I can use the TessyPowder solution (thanks).
But it seems odd to me that this device works fully for some and not others.

I would really like it if it reported all its state values and especially if the actual position was reported rather than 0 (regardless of last position command).

Update… out of interest, I wrote 50% to the position topic direct from mqttexplorer and the Home Assistant Close button was immediately enabled… refreshing the value from the zigbee2mqtt interface sets it back to 0 and greys out the button.

One final observation… in zigbee2mqtt, the coordinator revision still shows as 20210708.
I would have thought this would reflect the coordinator firmware date.

In any case, if someone can shed further light on getting this device fully functional, I’d appreciate it.

I’m also trying to set up this using the Skyconnect controller. I swear that the buttons were working when I tested it a few days ago (before upgrading to 2022.12.6) , but now I only seem to be able to use the “Number” entity (which I believe used to be analog). But only from 100 to 0 not the other way around.

Any one else struggling with this?

I overlooked @josephfh comment above yesterday. This solved my problem!

The way to get there is slightly different now:

  1. Go to device settings. Settings > Devices & Integrations > You Zigbee controller > Your E1 device
  2. Click the 3dots next to Reconfigure and select Manage Zigbee Device
  3. From Clusters, choose AnalogOutput (endpoint id…)
  4. From Cluster Attributes, choose max_preset_value
  5. Click Read Attribute. The Value field will show the wrong value: 0.0
  6. Change this to the right vaue: 100.0
  7. Click Write Zigbee Attribute
1 Like

So I just received this device today and I should have read up this topic. My device is connected nicely to my z2m installation.

From the m2 a interface everything is working fine. Open and close run to the set values.

Only from HA it doesn’t correctly report status up until I hit the refresh button on the position slider in z2m.

image
Running 1.28.4 Z2M
Updated to latest E1 firmware

Changing the max_present_value to 100 doesn’t work, so have set it back to 0 (can’t to 100.0 or 0.0, z2m only accepts one digit).

Is there a way to automatically trigger this refresh button with for example a automation?

Hi,

Could you create a service that carries out the refresh for you ?

Then call the service at timed intervals?

Intrested to see how this works as i’m in the market for a blind motor that plays well with HA.

Thanks

Thanks, got it working well enough (the manual sensor) and automated thanks to this!

Has anyone solve the battery problem with ZHA yet ??

Although I can control the curtain properly without problems through the Analog_output the batter level still reports as unknown

2 Likes

I have the same problem as @nitro41992, it’s not working anymore after 5 days working with Zigbee2Mqtt

logs:

Zigbee2MQTT:error 2023-02-27 22:30:43: Publish 'set' 'position' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({"85":{"value":0,"type":57}}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'
Zigbee2MQTT:info  2023-02-27 22:30:43: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'position' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({\"85\":{\"value\":0,\"type\":57}}, {\"sendWhen\":\"immediate\",\"timeout\":10000,\"disableResponse\":false,\"disableRecovery\":false,\"disableDefaultResponse\":true,\"direction\":0,\"srcEndpoint\":null,\"reservedBits\":0,\"manufacturerCode\":null,\"transactionSequenceNumber\":null,\"writeUndiv\":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'","meta":{"friendly_name":"0x54ef4410002e019d"},"type":"zigbee_publish_error"}'
Zigbee2MQTT:error 2023-02-27 23:03:27: Publish 'set' 'position' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({"85":{"value":0,"type":57}}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'
Zigbee2MQTT:info  2023-02-27 23:03:27: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'position' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({\"85\":{\"value\":0,\"type\":57}}, {\"sendWhen\":\"immediate\",\"timeout\":10000,\"disableResponse\":false,\"disableRecovery\":false,\"disableDefaultResponse\":true,\"direction\":0,\"srcEndpoint\":null,\"reservedBits\":0,\"manufacturerCode\":null,\"transactionSequenceNumber\":null,\"writeUndiv\":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'","meta":{"friendly_name":"0x54ef4410002e019d"},"type":"zigbee_publish_error"}'
Zigbee2MQTT:error 2023-02-27 23:04:11: Publish 'set' 'position' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({"85":{"value":0,"type":57}}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'
Zigbee2MQTT:info  2023-02-27 23:04:11: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'position' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({\"85\":{\"value\":0,\"type\":57}}, {\"sendWhen\":\"immediate\",\"timeout\":10000,\"disableResponse\":false,\"disableRecovery\":false,\"disableDefaultResponse\":true,\"direction\":0,\"srcEndpoint\":null,\"reservedBits\":0,\"manufacturerCode\":null,\"transactionSequenceNumber\":null,\"writeUndiv\":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'","meta":{"friendly_name":"0x54ef4410002e019d"},"type":"zigbee_publish_error"}'
Zigbee2MQTT:info  2023-02-27 23:04:27: Configuring '0x54ef4410002e019d'
Zigbee2MQTT:error 2023-02-27 23:04:55: Publish 'set' 'position' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({"85":{"value":80,"type":57}}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'
Zigbee2MQTT:info  2023-02-27 23:04:55: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'position' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({\"85\":{\"value\":80,\"type\":57}}, {\"sendWhen\":\"immediate\",\"timeout\":10000,\"disableResponse\":false,\"disableRecovery\":false,\"disableDefaultResponse\":true,\"direction\":0,\"srcEndpoint\":null,\"reservedBits\":0,\"manufacturerCode\":null,\"transactionSequenceNumber\":null,\"writeUndiv\":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'","meta":{"friendly_name":"0x54ef4410002e019d"},"type":"zigbee_publish_error"}'
Zigbee2MQTT:error 2023-02-27 23:05:39: Failed to configure '0x54ef4410002e019d', attempt 1 (Error: Read 0x54ef4410002e019d/1 aqaraOpple([1034], {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":4447,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'MAC transaction expired' (240))
    at ZStackAdapter.sendZclFrameToEndpointInternal (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:415:23)
    at Queue.executeNext (/app/node_modules/zigbee-herdsman/src/utils/queue.ts:32:32))
Zigbee2MQTT:info  2023-02-27 23:05:39: MQTT publish: topic 'zigbee2mqtt/bridge/response/device/configure', payload '{"data":{"id":"0x54ef4410002e019d"},"error":"Failed to configure (Read 0x54ef4410002e019d/1 aqaraOpple([1034], {\"sendWhen\":\"immediate\",\"timeout\":10000,\"disableResponse\":false,\"disableRecovery\":false,\"disableDefaultResponse\":true,\"direction\":0,\"srcEndpoint\":null,\"reservedBits\":0,\"manufacturerCode\":4447,\"transactionSequenceNumber\":null,\"writeUndiv\":false}) failed (Data request failed with error: 'MAC transaction expired' (240)))","status":"error","transaction":"vpxe4-1"}'
Zigbee2MQTT:error 2023-02-27 23:06:23: Publish 'set' 'state' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({"85":{"value":0,"type":57}}, {"sendWhen":"immediate","timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'
Zigbee2MQTT:info  2023-02-27 23:06:23: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"message":"Publish 'set' 'state' to '0x54ef4410002e019d' failed: 'Error: Write 0x54ef4410002e019d/1 genAnalogOutput({\"85\":{\"value\":0,\"type\":57}}, {\"sendWhen\":\"immediate\",\"timeout\":10000,\"disableResponse\":false,\"disableRecovery\":false,\"disableDefaultResponse\":true,\"direction\":0,\"srcEndpoint\":null,\"reservedBits\":0,\"manufacturerCode\":null,\"transactionSequenceNumber\":null,\"writeUndiv\":false}) failed (Data request failed with error: 'MAC transaction expired' (240))'","meta":{"friendly_name":"0x54ef4410002e019d"},"type":"zigbee_publish_error"}'

EDIT: I fixed it by using an usb extender, seems that there were some usb3 interferences from my hdd dock that was closer to the sonoff usb dongle.

Is there an option to invert the shade driver? In zigbee2mqtt I can invert it, but HA does not recognize it.

What I need to do?

image

1 Like

I have 4 E1’s, all have been working fine on ZHA without needing to do anything i.e. setting the max_preset_value

One became unavailable, which happens from time to time for my zigbee devices. I rejoined it to the network and started to have problems, I think the issue is it’s no longer picking up the custom Quirk: zhaquirks.xiaomi.aqara.roller_curtain_e1.RollerE1AQ

Issue is up/down buttons not working, blind does work with the slider. I tried setting all combinations of the max/min reset, nothing working.

For some unknown reason I decided to reset one of the 3 remaining working E1’s, it now has the same issue :roll_eyes:

I’m wondering if something has changed in 2023.3 which is preventing the E1s picking up the Quirk?

Edit: may or may not be relevant, the two which are not functioning as expected are showing as having Firmware: 0x00000e1b. The two working do not have a Firmware line under device info. I’ve not changed the firmware on any of the devices since purchase.

Edit: issue being tracked here ZHA not recognizing the Aqara Roller Shutter E1 correctly · Issue #86752 · home-assistant/core · GitHub

1 Like

I just bought an E1 and mine also shows Firmware: 0x00000e1b
same issues everyone is reporting, batter % unknown, incorrect position tracking. also tried the custom quirk from that link, didn’t fix :frowning:

I also had the 0x00000e1b firmware. I had coincidentally found out that the E1 sets a number first and then opens / closes. The automation I made after I noticed this worked flawlessly since then:

  - service: number.set_value
    data:
      value: "100"
    target:
      entity_id: number.lumi_lumi_curtain_xxx_number
  - service: cover.close_cover
    data: {}
    target:
      entity_id: cover.lumi_lumi_curtain_xxx_cover

And then on open set number to 0 and use open_cover. Hope this helps.

Hi Guys,
I’m having a really strange issue I can’t seem to figure out
for some reason every now and then Z2M gets a report that the position of the blinds is 0 when it was previously 100, yet the blinds haven’t physically changed

info  30-10-2023 10:26:58: MQTT publish: topic 'zigbee2mqtt/Games Room blinds', payload '{"battery":83,"charging_status":false,"device_temperature":19,"last_seen":"2023-10-30T10:26:58+00:00","linkquality":98,"motor_state":"pause","position":100,"power_outage_count":14,"running":false,"state":"OFF","update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null}'
info  30-10-2023 10:27:01: MQTT publish: topic 'zigbee2mqtt/Games Room blinds', payload '{"battery":83,"charging_status":false,"device_temperature":19,"last_seen":"2023-10-30T10:27:01+00:00","linkquality":98,"motor_state":"pause","position":0,"power_outage_count":14,"running":false,"state":"OFF","update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null}'
info  30-10-2023 10:27:01: MQTT publish: topic 'zigbee2mqtt/Games Room blinds', payload '{"battery":83,"charging_status":false,"device_temperature":19,"last_seen":"2023-10-30T10:27:01+00:00","linkquality":94,"motor_state":"pause","position":0,"power_outage_count":14,"running":false,"state":"OFF","update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null}'
info  30-10-2023 10:27:01: MQTT publish: topic 'zigbee2mqtt/Games Room blinds', payload '{"battery":83,"charging_status":false,"device_temperature":19,"last_seen":"2023-10-30T10:27:01+00:00","linkquality":94,"motor_state":"pause","position":0,"power_outage_count":14,"running":false,"state":"OFF","update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null}'
info  30-10-2023 10:27:02: MQTT publish: topic 'zigbee2mqtt/Games Room blinds', payload '{"battery":83,"charging_status":false,"device_temperature":19,"last_seen":"2023-10-30T10:27:02+00:00","linkquality":98,"motor_state":"pause","position":0,"power_outage_count":14,"running":false,"state":"OFF","update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null}'
info  30-10-2023 10:27:03: MQTT publish: topic 'zigbee2mqtt/Games Room blinds', payload '{"battery":83,"charging_status":false,"device_temperature":19,"last_seen":"2023-10-30T10:27:03+00:00","linkquality":94,"motor_state":"pause","position":0,"power_outage_count":14,"running":false,"state":"OFF","update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null}'
info  30-10-2023 10:27:08: MQTT publish: topic 'zigbee2mqtt/Games Room blinds', payload '{"battery":83,"charging_status":false,"device_temperature":19,"last_seen":"2023-10-30T10:27:06+00:00","linkquality":94,"motor_state":"pause","position":0,"power_outage_count":15,"running":false,"state":"OFF","update":{"installed_version":-1,"latest_version":-1,"state":null},"update_available":null}'

has anyone else come across this

Hey, I would like to share with you a solution for a bunch of issues that I had with this shade driver

My setup:

  1. Sonoff Zigbee 3.0 USB Dongle Plus. Bought a new one, but it had firmware somewhere from 2021.
  2. Aqara Roller Shade Driver E1: lumi.curtain.acn002
  3. ZHA

The issues:

  1. Battery percent wasn’t displayed.
  2. After roller had stoped moving, the state wasn’t updated to open/closed.
  3. Temperature had always fixed value (apparently the wrong one) and was never updated.
  4. Sometimes the current position of the device was reseted to 100 (fully open), even when it was closed.

Investigating the issues, I ended up in tinkering with clusters of this device, where WindowCovering doesn’t update current_position_lift_percentage (which always is 0), but HA polls it from time to time to sync its’ status according to debug logs.
So when it receives this value as zero (because it’s not updated) it displays state of the device as open.
I tried to install custom quirk and it didn’t help, but some people report that it helps them.

Solution
Update firmware of your Sonoff Zigbee 3.0 USB Dongle Plus.
I installed a new firmware from here because it’s the most stable firmware for the current moment according to this topic.

If you are MacOS user, I found a good guide:

Now problems are gone:

  1. Battery is displayed correctly.
  2. State is updated correctly.
  3. Temperture is displayed correctly.
  4. As a bonus by some reason HA stopped polling WindowCovering cluster and started to poll AnalogOutputRollerE1 which always had (even before update) correct value for current position of the shade driver. I thought that the issue in quirk, but ended up that coordinator firmware update helped with this particular issue.
    But WindowCovering.current_position_lift_percentage is still not updated with or without custom quirk.

So hope it will help somebody.

1 Like

Based on @ishmelev23 suggestion I decided to do the same with my Conbee 2 stick.
So far, I was avoiding it because I was afraid that when upgrading will loose my configuration.

I had invented a silly solution to bypass the battery problem. (silly while on HA era)
I created a counter that counts the times that my shade turns on / off.
After a whole cycle untill re-charge I knew that battery runs out approximately to 100 times.

image

Anyway above suggestion was very promising so I thought I shall try it.

Did the same with my conbee 2.
As per docs I updated manually. Update in Windows of course.

The update was pretty easy and completed successfully.
I have spent almost a year trying to solve the battery puzzle.

I was so sure that I solved it this time.

What a disappointment!
I downloaded the following firmware
https://deconz.dresden-elektronik.de/deconz-firmware/deCONZ_ConBeeII_0x26480700.bin.GCF

But still the same problem. No battery status

So I must ask again. Has anyone solve the battery problem ???
If yes, using Conbee 2 stick and ZHA integration ???
if yes, can you please provide a step by step solution as per @ishmelev23 ??