To contribute to this page, edit the following file

Xiaomi ZNCLDJ11LM #

Model ZNCLDJ11LM
Vendor Xiaomi
Description Aqara curtain motor
Supports open, close, stop, position
Picture Xiaomi ZNCLDJ11LM

Notes #

Device type specific configuration #

How to use device type specific configuration

Configuration of device attributes #

By publishing to zigbee2mqtt/[FRIENDLY_NAME]/set various device attributes can be configured:

{
    "options":{
        "reverse_direction": xxx,
        "hand_open": xxx,
        "reset_limits": xxx
    }
}

You can send a subset of options, all options that won’t be specified will be revered to default.

After changing reverse_direction you will need to fully open and fully close the curtain so the motor will re-detect edges. reverse_direction will get new state only after this recalibration.

Lost configuration on long power outage #

If motor is used without battery it may lose configuration after long power outage. In that case you need to perform end stops calibration again publishing the following command sequence with topic zigbee2mqtt/[FRIENDLY_NAME]/set:

  1. { "options": { "reset_limits": true } }
  2. { "state": "close" }
  3. Wait here for curtain closure.
  4. { "state": "open" }

Home Assistant automation example:

- alias: Calibrate curtain
  trigger:
  - platform: homeassistant
    event: start
  action:
  - service: mqtt.publish
    data:
      topic: zigbee2mqtt/<FRIENDLY_NAME>/set
      payload: "{ 'options': { 'reset_limits': true } }"
  - service: cover.close_cover
    entity_id: cover.<COVER_ID>
  - delay:
      seconds: 13 #wait for closure complete
  - service: cover.open_cover
    entity_id: cover.<COVER_ID>

Motor leaves calibration mode automatically after it reaches the both open and close curtain position limits. Calibration is mandatory for proper position reporting and ability to set intermediate positions.

Manual Home Assistant configuration #

Although Home Assistant integration through MQTT discovery is preferred, manual integration is possible with the following configuration:

cover:
  - platform: "mqtt"
    availability_topic: "zigbee2mqtt/bridge/state"
    command_topic: "zigbee2mqtt/<FRIENDLY_NAME>/set"
    position_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    set_position_topic: "zigbee2mqtt/<FRIENDLY_NAME>/set"
    set_position_template: "{ \"position\": {{ position }} }"
    value_template: "{{ value_json.position }}"

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    value_template: "{{ value_json.position }}"
    icon: "mdi:view-array"

sensor:
  - platform: "mqtt"
    state_topic: "zigbee2mqtt/<FRIENDLY_NAME>"
    availability_topic: "zigbee2mqtt/bridge/state"
    icon: "mdi:signal"
    unit_of_measurement: "lqi"
    value_template: "{{ value_json.linkquality }}"