niceboygithub / AqaraGateway

Aqara Gateway/Hub integration for Home Assistant
513 stars 66 forks source link

Support for ZNCLBL01LM [lumi.curtain.acn003] #106

Open seanzhang98 opened 2 years ago

seanzhang98 commented 2 years ago

Here is the MQTT logs for lumi.curtain.acn003

2022-05-31 01:41:58 DEBUG gateway 192.168.50.111: MQTT on_message: gw/54EF4410001BFC2C/MessageReceived {"sourceAddress":"0x4466","eui64":"0x54EF4420004EDA4B","destinationEndpoint":"0x01","clusterId":"0xFCC0","profileId":"0x0104","sourceEndpoint":"0x01","APSCounter":"0xDE","APSPlayload":"0x1C5F1110010204001001","rssi":-72,"linkQuality":112}

2022-05-31 01:41:58 DEBUG gateway 192.168.50.111: MQTT on_message: zigbee/send {"cmd":"read_rsp","id":38,"did":"lumi.54ef4420004eda4b","time":1653932517510,"zseq":16,"results":[{"res_name":"4.1.85","value":1,"error_code":0}]}

2022-05-31 01:41:58 DEBUG gateway 192.168.50.111: MQTT on_message: gw/54EF4410001BFC2C/MessageReceived {"sourceAddress":"0x4466","eui64":"0x54EF4420004EDA4B","destinationEndpoint":"0x01","clusterId":"0xFCC0","profileId":"0x0104","sourceEndpoint":"0x01","APSCounter":"0xDF","APSPlayload":"0x1C5F1111012104002002","rssi":-71,"linkQuality":116}

2022-05-31 01:41:58 DEBUG gateway 192.168.50.154: MQTT on_message: zigbee/send {"cmd":"read_rsp","id":39,"did":"lumi.54ef4420004eda4b","time":1653932517550,"zseq":17,"results":[{"res_name":"14.4.85","value":2,"error_code":0}]}

2022-05-31 01:41:59 DEBUG gateway 192.168.50.111: MQTT on_message: gw/54EF4410001BFC2C/MessageReceived {"sourceAddress":"0x4466","eui64":"0x54EF4420004EDA4B","destinationEndpoint":"0x01","clusterId":"0xFCC0","profileId":"0x0104","sourceEndpoint":"0x01","APSCounter":"0xE0","APSPlayload":"0x1C5F1112012804002001","rssi":-71,"linkQuality":116}

2022-05-31 01:42:00 DEBUG gateway 192.168.50.111: MQTT on_message: zigbee/send {"cmd":"read_rsp","id":40,"did":"lumi.54ef4420004eda4b","time":1653932518530,"zseq":18,"results":[{"res_name":"13.10.85","value":1,"error_code":0}]} 2022-05-31 01:42:00 DEBUG gateway 192.168.50.111: MQTT on_message: zigbee/recv {"cmd":"read","did":"lumi.54ef4420004eda4b","id":41,"params":[{"res_name":"4.1.85"}]}

2022-05-31 01:42:00 DEBUG gateway 192.168.50.111: MQTT on_message: zigbee/recv {"cmd":"read","did":"lumi.54ef4420004eda4b","id":42,"params":[{"res_name":"13.10.85"}]}

rezmus commented 2 years ago

it is cn version of global lumi.curtain.agl001 btw.

niceboygithub commented 2 years ago

what is the model number, ZNJLBL01LM?

seanzhang98 commented 2 years ago

yes, the model should be ZNCLBL01LM here is a webpage about the product https://www.aqara.com/en/product/curtain-driver-e1

jwxa commented 1 year ago

i add these code and it works . but because of the direction of curtain, i must use service: 'curtain.open' to close it. maybe it has status or another option like 'inverted/reserved' ? can you help me? @niceboygithub

{
    'lumi.curtain.acn003': ["Aqara", "Curtain Driver E1", "ZNCLBL01LM"],
    'params': [
        ['0.1.85', None, 'working_time', None],
        ['1.1.85', 'curtain_level', 'position', None],
        ['4.1.85', None, 'motor_stroke', None],
        ['4.2.85', None, 'polarity', None],
        ['14.8.85', None, 'motor', 'cover'],
        ['13.1.85', None, 'charging_status', None],
        ['14.4.85', 'run_state', 'run_state', None],
        ['8.0.2041', None, 'model', None],
        ['8.0.2001', 'battery', 'battery', 'sensor'],
    ]
},

image

ryzencool commented 1 year ago

I connect this device to zigbee2mqtt, but the logs display that 'Received message from unsupported device with Zigbee model 'lumi.curtain.acn003' and manufacturer name 'LUMI'', how can I solve it?

Necroneco commented 1 year ago

@jwxa I try to resolve it by modify the open and close command

The motor direction seems to depend on the polarity, but polarity was not exist in heartbeat. Send position maybe a better choice instead of motor, I tested it on several models with no problems.

# cover.py
class XiaomiGenericCover:
  ...

  def close_cover(self, **kwargs):
      """Close the cover."""
-     self.gateway.send(self.device, {'motor': 0})
+     self.gateway.send(self.device, {'position': 0})

  def open_cover(self, **kwargs):
      """Open the cover."""
-     self.gateway.send(self.device, {'motor': 1})
+     self.gateway.send(self.device, {'position': 100})

  ...

151