[RELEASE] Aqara (B1) Smart Curtain Motor (ZNCLDJ11LM & ZNCLDJ12LM) Driver

Yes you can charge in place. I haven't charged yet but I can certainly try charging in place tomorrow

I'll reach out to him

Please update the driver before you do more testing. I've added a scheduled event to take place once every 12 hours to get the battery level. It is automatically activated when the device is installed or the hub reboots. To manually activate it click Initialize.

With the curtain starting at open position and debug logging still on I did the following today in this order and all is in the log below:

  • updated driver
  • hit initialize
  • plugged in charge cable on motor in place
  • waited 2-3 hours
  • checked device and shows screen shot below (battery updated but not sure if position data is correct)
  • checked dashboard tiles and the status is different for my two curtains even thought they are both fully open ( see screenshot #2, but this seemed to correct itself once I moved the curtains)
  • went back to device and clicked "close" ( it worked)
  • went back to device and clicked "open" ( it worked)
  • went back to device and clicked "close" ( it worked)
  • set postion to 60 (it worked and also updated current states to show "60" and "partially open")
  • set postion to 46 (it worked and also updated current states to show "46" and "partially open")
  • checked dashboard and slider shows position "46" and is near the middle
  • on dashboard I moved slider of same curtain to 75, 92 and 100. All functions works as expected!
  • on dashboard I clicked curtain icon and both curtains closed and showed "closed". Then I clicked icon again and both curtains opened and showed "open"

All seems to be working correctly now! Good work! I'll keep doing random testing and let you know if anything acts weird but if you don't hear from me assume it's all working with my setup :slight_smile:

dev:72020-04-21 03:13:52.512 pm debugPARSE END-----------------------

dev:72020-04-21 03:13:52.508 pm debugmsgMap: [raw:E85F0100000807003003, dni:E85F, endpoint:01, cluster:0000, size:08, attrId:0007, encoding:30, command:0A, value:03, clusterInt:0, attrInt:7]
dev:72020-04-21 03:13:52.503 pm debugParsing: read attr - raw: E85F0100000807003003, dni: E85F, endpoint: 01, cluster: 0000, size: 08, attrId: 0007, encoding: 30, command: 0A, value: 03
dev:72020-04-21 03:13:52.500 pm debugPARSE START---------------------
dev:72020-04-21 03:12:55.823 pm debugPARSE END-----------------------
dev:72020-04-21 03:12:55.819 pm debugCHANGING device.currentValue('position') = 0, curtainPosition = 100
dev:72020-04-21 03:12:55.815 pm debugdevice.currentValue('position') = 0, curtainPosition = 100
dev:72020-04-21 03:12:55.790 pm debugFully Open
dev:72020-04-21 03:12:55.787 pm debugSETTING POSITION: long => 1120403456, BigDecimal => 100
dev:72020-04-21 03:12:55.780 pm debugGOT POSITION DATA: long => 1120403456, BigDecimal => 100
dev:72020-04-21 03:12:55.777 pm debugcluster 000D
dev:72020-04-21 03:12:55.774 pm debugmsgMap: [raw:E85F01000D105500390000C842, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:42C80000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:12:55.770 pm debugParsing: read attr - raw: E85F01000D105500390000C842, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 0000C842
dev:72020-04-21 03:12:55.767 pm debugPARSE START---------------------
dev:72020-04-21 03:12:55.635 pm debugPARSE END-----------------------
dev:72020-04-21 03:12:55.627 pm debugPARSE END-----------------------
dev:72020-04-21 03:12:55.625 pm debugdevice.currentValue('position') = 0, curtainPosition = 0
dev:72020-04-21 03:12:55.597 pm debugSending request for the actual position...
dev:72020-04-21 03:12:55.594 pm debugClosed
dev:72020-04-21 03:12:55.592 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:12:55.592 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:12:55.590 pm debugcluster 000D
dev:72020-04-21 03:12:55.586 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:12:55.586 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:12:55.584 pm debugcluster 000D
dev:72020-04-21 03:12:55.580 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:12:55.580 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:12:55.578 pm debugPARSE START---------------------
dev:72020-04-21 03:12:55.574 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:12:55.572 pm debugPARSE START---------------------
dev:72020-04-21 03:12:39.564 pm debugPARSE END-----------------------
dev:72020-04-21 03:12:39.557 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:12:39.553 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:12:39.550 pm debugPARSE START---------------------
dev:72020-04-21 03:12:39.473 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {42C80000} {}, delay 2000]
dev:72020-04-21 03:12:39.466 pm debugSet Position: 100%
dev:72020-04-21 03:12:39.455 pm debugsetPosition(position: 100)
dev:72020-04-21 03:12:39.452 pm debugopen()
dev:72020-04-21 03:12:37.302 pm debugPARSE END-----------------------
dev:72020-04-21 03:12:37.299 pm debugdevice.currentValue('position') = 0, curtainPosition = 0
dev:72020-04-21 03:12:37.291 pm debugClosed
dev:72020-04-21 03:12:37.289 pm debugSETTING POSITION: long => 0, BigDecimal => 0
dev:72020-04-21 03:12:37.283 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:12:37.280 pm debugcluster 000D
dev:72020-04-21 03:12:37.277 pm debugmsgMap: [raw:E85F01000D1055003900000000, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:00000000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:12:37.277 pm debugPARSE END-----------------------
dev:72020-04-21 03:12:37.273 pm debugParsing: read attr - raw: E85F01000D1055003900000000, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 00000000
dev:72020-04-21 03:12:37.272 pm debugmsgMap: [raw:E85F0100000807003004, dni:E85F, endpoint:01, cluster:0000, size:08, attrId:0007, encoding:30, command:0A, value:04, clusterInt:0, attrInt:7]
dev:72020-04-21 03:12:37.270 pm debugPARSE START---------------------
dev:72020-04-21 03:12:37.268 pm debugParsing: read attr - raw: E85F0100000807003004, dni: E85F, endpoint: 01, cluster: 0000, size: 08, attrId: 0007, encoding: 30, command: 0A, value: 04
dev:72020-04-21 03:12:37.265 pm debugPARSE START---------------------
dev:72020-04-21 03:12:37.106 pm debugPARSE END-----------------------
dev:72020-04-21 03:12:37.102 pm debugCHANGING device.currentValue('position') = 100, curtainPosition = 0
dev:72020-04-21 03:12:37.102 pm debugPARSE END-----------------------
dev:72020-04-21 03:12:37.099 pm debugdevice.currentValue('position') = 100, curtainPosition = 0
dev:72020-04-21 03:12:37.094 pm debugSending request for the actual position...
dev:72020-04-21 03:12:37.091 pm debugClosed
dev:72020-04-21 03:12:37.089 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:12:37.088 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:12:37.087 pm debugcluster 000D
dev:72020-04-21 03:12:37.083 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:12:37.083 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:12:37.080 pm debugcluster 000D
dev:72020-04-21 03:12:37.076 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:12:37.077 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:12:37.075 pm debugPARSE START---------------------
dev:72020-04-21 03:12:37.070 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:12:37.067 pm debugPARSE START---------------------
dev:72020-04-21 03:12:20.740 pm debugPARSE END-----------------------
dev:72020-04-21 03:12:20.733 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:12:20.729 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:12:20.726 pm debugPARSE START---------------------
dev:72020-04-21 03:12:19.870 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {00000000} {}, delay 2000]
dev:72020-04-21 03:12:19.861 pm debugSet Position: 0%
dev:72020-04-21 03:12:19.832 pm debugsetPosition(position: 0)
dev:72020-04-21 03:12:19.829 pm debugclose()
dev:72020-04-21 03:10:57.222 pm debugPARSE END-----------------------
dev:72020-04-21 03:10:57.214 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:10:57.210 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:10:57.207 pm debugPARSE START---------------------
dev:72020-04-21 03:10:56.143 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {42C80000} {}, delay 2000]
dev:72020-04-21 03:10:56.137 pm debugSet Position: 100%
dev:72020-04-21 03:10:56.124 pm debugsetPosition(position: 100)
dev:72020-04-21 03:09:40.731 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:40.726 pm debugCHANGING device.currentValue('position') = 0, curtainPosition = 100
dev:72020-04-21 03:09:40.723 pm debugdevice.currentValue('position') = 0, curtainPosition = 100
dev:72020-04-21 03:09:40.715 pm debugFully Open
dev:72020-04-21 03:09:40.712 pm debugSETTING POSITION: long => 1120403456, BigDecimal => 100
dev:72020-04-21 03:09:40.707 pm debugGOT POSITION DATA: long => 1120403456, BigDecimal => 100
dev:72020-04-21 03:09:40.704 pm debugcluster 000D
dev:72020-04-21 03:09:40.700 pm debugmsgMap: [raw:E85F01000D105500390000C842, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:42C80000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:09:40.695 pm debugParsing: read attr - raw: E85F01000D105500390000C842, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 0000C842
dev:72020-04-21 03:09:40.693 pm debugPARSE START---------------------
dev:72020-04-21 03:09:40.554 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:40.549 pm debugCHANGING device.currentValue('position') = 75, curtainPosition = 0
dev:72020-04-21 03:09:40.539 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:40.537 pm debugdevice.currentValue('position') = 75, curtainPosition = 0
dev:72020-04-21 03:09:40.532 pm debugSending request for the actual position...
dev:72020-04-21 03:09:40.529 pm debugClosed
dev:72020-04-21 03:09:40.526 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:09:40.526 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:09:40.524 pm debugcluster 000D
dev:72020-04-21 03:09:40.519 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:09:40.519 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:09:40.516 pm debugcluster 000D
dev:72020-04-21 03:09:40.512 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:09:40.512 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:09:40.509 pm debugPARSE START---------------------
dev:72020-04-21 03:09:40.505 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:09:40.502 pm debugPARSE START---------------------
dev:72020-04-21 03:09:36.458 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:36.451 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:09:36.447 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:09:36.444 pm debugPARSE START---------------------
dev:72020-04-21 03:09:36.290 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {42C80000} {}, delay 2000]
dev:72020-04-21 03:09:36.282 pm debugSet Position: 100%
dev:72020-04-21 03:09:36.270 pm debugsetPosition(position: 100)
dev:72020-04-21 03:09:34.453 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:34.445 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:09:34.441 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:09:34.438 pm debugPARSE START---------------------
dev:72020-04-21 03:09:34.190 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {42B80000} {}, delay 2000]
dev:72020-04-21 03:09:34.185 pm debugSet Position: 92%
dev:72020-04-21 03:09:34.177 pm debugsetPosition(position: 92)
dev:72020-04-21 03:09:32.203 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:32.199 pm debugCHANGING device.currentValue('position') = 0, curtainPosition = 75
dev:72020-04-21 03:09:32.195 pm debugdevice.currentValue('position') = 0, curtainPosition = 75
dev:72020-04-21 03:09:32.187 pm debug75% Partially Open
dev:72020-04-21 03:09:32.184 pm debugSETTING POSITION: long => 1117126656, BigDecimal => 75
dev:72020-04-21 03:09:32.179 pm debugGOT POSITION DATA: long => 1117126656, BigDecimal => 75
dev:72020-04-21 03:09:32.176 pm debugcluster 000D
dev:72020-04-21 03:09:32.172 pm debugmsgMap: [raw:E85F01000D1055003900009642, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:42960000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:09:32.169 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:32.167 pm debugParsing: read attr - raw: E85F01000D1055003900009642, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 00009642
dev:72020-04-21 03:09:32.165 pm debugPARSE START---------------------
dev:72020-04-21 03:09:32.164 pm debugmsgMap: [raw:E85F0100000807003003, dni:E85F, endpoint:01, cluster:0000, size:08, attrId:0007, encoding:30, command:0A, value:03, clusterInt:0, attrInt:7]
dev:72020-04-21 03:09:32.159 pm debugParsing: read attr - raw: E85F0100000807003003, dni: E85F, endpoint: 01, cluster: 0000, size: 08, attrId: 0007, encoding: 30, command: 0A, value: 03
dev:72020-04-21 03:09:32.157 pm debugPARSE START---------------------
dev:72020-04-21 03:09:32.008 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:32.000 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:31.997 pm debugdevice.currentValue('position') = 0, curtainPosition = 0
dev:72020-04-21 03:09:31.993 pm debugSending request for the actual position...
dev:72020-04-21 03:09:31.990 pm debugClosed
dev:72020-04-21 03:09:31.988 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:09:31.987 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:09:31.986 pm debugcluster 000D
dev:72020-04-21 03:09:31.981 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:09:31.981 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:09:31.979 pm debugcluster 000D
dev:72020-04-21 03:09:31.976 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:09:31.975 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:09:31.973 pm debugPARSE START---------------------
dev:72020-04-21 03:09:31.969 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:09:31.966 pm debugPARSE START---------------------
dev:72020-04-21 03:09:20.061 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:20.053 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:09:20.049 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:09:20.046 pm debugPARSE START---------------------
dev:72020-04-21 03:09:19.899 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {42960000} {}, delay 2000]
dev:72020-04-21 03:09:19.894 pm debugSet Position: 75%
dev:72020-04-21 03:09:19.885 pm debugsetPosition(position: 75)
dev:72020-04-21 03:09:16.976 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:16.972 pm debugdevice.currentValue('position') = 0, curtainPosition = 0
dev:72020-04-21 03:09:16.964 pm debugClosed
dev:72020-04-21 03:09:16.961 pm debugSETTING POSITION: long => 0, BigDecimal => 0
dev:72020-04-21 03:09:16.954 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:09:16.951 pm debugcluster 000D
dev:72020-04-21 03:09:16.948 pm debugmsgMap: [raw:E85F01000D1055003900000000, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:00000000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:09:16.943 pm debugParsing: read attr - raw: E85F01000D1055003900000000, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 00000000
dev:72020-04-21 03:09:16.940 pm debugPARSE START---------------------
dev:72020-04-21 03:09:16.836 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:16.819 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:16.816 pm debugCHANGING device.currentValue('position') = 46, curtainPosition = 0
dev:72020-04-21 03:09:16.812 pm debugSending request for the actual position...
dev:72020-04-21 03:09:16.811 pm debugdevice.currentValue('position') = 46, curtainPosition = 0
dev:72020-04-21 03:09:16.802 pm debugClosed
dev:72020-04-21 03:09:16.801 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:09:16.799 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:09:16.797 pm debugcluster 000D
dev:72020-04-21 03:09:16.766 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:09:16.765 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:09:16.762 pm debugcluster 000D
dev:72020-04-21 03:09:16.760 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:09:16.757 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:09:16.756 pm debugPARSE START---------------------
dev:72020-04-21 03:09:16.750 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:09:16.748 pm debugPARSE START---------------------
dev:72020-04-21 03:09:07.780 pm debugPARSE END-----------------------
dev:72020-04-21 03:09:07.772 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:09:07.769 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:09:07.766 pm debugPARSE START---------------------
dev:72020-04-21 03:09:06.900 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {00000000} {}, delay 2000]
dev:72020-04-21 03:09:06.895 pm debugSet Position: 0%
dev:72020-04-21 03:09:06.884 pm debugsetPosition(position: 0)
dev:72020-04-21 03:06:00.533 pm debugPARSE END-----------------------
dev:72020-04-21 03:06:00.529 pm debugCHANGING device.currentValue('position') = 0, curtainPosition = 46
dev:72020-04-21 03:06:00.526 pm debugdevice.currentValue('position') = 0, curtainPosition = 46
dev:72020-04-21 03:06:00.518 pm debug46% Partially Open
dev:72020-04-21 03:06:00.515 pm debugSETTING POSITION: long => 1110966272, BigDecimal => 46
dev:72020-04-21 03:06:00.508 pm debugGOT POSITION DATA: long => 1110966272, BigDecimal => 46
dev:72020-04-21 03:06:00.505 pm debugcluster 000D
dev:72020-04-21 03:06:00.501 pm debugmsgMap: [raw:E85F01000D1055003900003842, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:42380000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:06:00.496 pm debugParsing: read attr - raw: E85F01000D1055003900003842, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 00003842
dev:72020-04-21 03:06:00.493 pm debugPARSE START---------------------
dev:72020-04-21 03:06:00.492 pm debugPARSE END-----------------------
dev:72020-04-21 03:06:00.487 pm debugmsgMap: [raw:E85F0100000807003004, dni:E85F, endpoint:01, cluster:0000, size:08, attrId:0007, encoding:30, command:0A, value:04, clusterInt:0, attrInt:7]
dev:72020-04-21 03:06:00.483 pm debugParsing: read attr - raw: E85F0100000807003004, dni: E85F, endpoint: 01, cluster: 0000, size: 08, attrId: 0007, encoding: 30, command: 0A, value: 04
dev:72020-04-21 03:06:00.480 pm debugPARSE START---------------------
dev:72020-04-21 03:06:00.353 pm debugPARSE END-----------------------
dev:72020-04-21 03:06:00.342 pm debugPARSE END-----------------------
dev:72020-04-21 03:06:00.339 pm debugCHANGING device.currentValue('position') = 60, curtainPosition = 0
dev:72020-04-21 03:06:00.336 pm debugdevice.currentValue('position') = 60, curtainPosition = 0
dev:72020-04-21 03:06:00.336 pm debugSending request for the actual position...
dev:72020-04-21 03:06:00.329 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:06:00.328 pm debugClosed
dev:72020-04-21 03:06:00.327 pm debugcluster 000D
dev:72020-04-21 03:06:00.326 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:06:00.323 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:06:00.320 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:06:00.317 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:06:00.317 pm debugcluster 000D
dev:72020-04-21 03:06:00.315 pm debugPARSE START---------------------
dev:72020-04-21 03:06:00.313 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:06:00.306 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:06:00.304 pm debugPARSE START---------------------
dev:72020-04-21 03:05:56.151 pm debugPARSE END-----------------------
dev:72020-04-21 03:05:56.144 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:05:56.140 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:05:56.137 pm debugPARSE START---------------------
dev:72020-04-21 03:05:55.579 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {42380000} {}, delay 2000]
dev:72020-04-21 03:05:55.575 pm debugSet Position: 46%
dev:72020-04-21 03:05:55.566 pm debugsetPosition(position: 46)
dev:72020-04-21 03:04:46.931 pm debugPARSE END-----------------------
dev:72020-04-21 03:04:46.927 pm debugCHANGING device.currentValue('position') = 0, curtainPosition = 60
dev:72020-04-21 03:04:46.924 pm debugdevice.currentValue('position') = 0, curtainPosition = 60
dev:72020-04-21 03:04:46.916 pm debug60% Partially Open
dev:72020-04-21 03:04:46.913 pm debugSETTING POSITION: long => 1114636288, BigDecimal => 60
dev:72020-04-21 03:04:46.907 pm debugGOT POSITION DATA: long => 1114636288, BigDecimal => 60
dev:72020-04-21 03:04:46.904 pm debugcluster 000D
dev:72020-04-21 03:04:46.901 pm debugmsgMap: [raw:E85F01000D1055003900007042, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:42700000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:04:46.896 pm debugParsing: read attr - raw: E85F01000D1055003900007042, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 00007042
dev:72020-04-21 03:04:46.895 pm debugPARSE END-----------------------
dev:72020-04-21 03:04:46.894 pm debugPARSE START---------------------
dev:72020-04-21 03:04:46.891 pm debugmsgMap: [raw:E85F0100000807003003, dni:E85F, endpoint:01, cluster:0000, size:08, attrId:0007, encoding:30, command:0A, value:03, clusterInt:0, attrInt:7]
dev:72020-04-21 03:04:46.886 pm debugParsing: read attr - raw: E85F0100000807003003, dni: E85F, endpoint: 01, cluster: 0000, size: 08, attrId: 0007, encoding: 30, command: 0A, value: 03
dev:72020-04-21 03:04:46.884 pm debugPARSE START---------------------
dev:72020-04-21 03:04:46.719 pm debugPARSE END-----------------------
dev:72020-04-21 03:04:46.719 pm debugPARSE END-----------------------
dev:72020-04-21 03:04:46.714 pm debugdevice.currentValue('position') = 0, curtainPosition = 0
dev:72020-04-21 03:04:46.712 pm debugSending request for the actual position...
dev:72020-04-21 03:04:46.706 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:04:46.706 pm debugClosed
dev:72020-04-21 03:04:46.703 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:04:46.703 pm debugcluster 000D
dev:72020-04-21 03:04:46.699 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:04:46.696 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:04:46.694 pm debugcluster 000D
dev:72020-04-21 03:04:46.693 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:04:46.689 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:04:46.690 pm debugPARSE START---------------------
dev:72020-04-21 03:04:46.683 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:04:46.680 pm debugPARSE START---------------------
dev:72020-04-21 03:04:36.336 pm debugPARSE END-----------------------
dev:72020-04-21 03:04:36.329 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:04:36.326 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:04:36.323 pm debugPARSE START---------------------
dev:72020-04-21 03:04:35.700 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {42700000} {}, delay 2000]
dev:72020-04-21 03:04:35.695 pm debugSet Position: 60%
dev:72020-04-21 03:04:35.687 pm debugsetPosition(position: 60)
dev:72020-04-21 03:04:19.163 pm debugPARSE END-----------------------
dev:72020-04-21 03:04:19.160 pm debugdevice.currentValue('position') = 0, curtainPosition = 0
dev:72020-04-21 03:04:19.152 pm debugClosed
dev:72020-04-21 03:04:19.149 pm debugSETTING POSITION: long => 0, BigDecimal => 0
dev:72020-04-21 03:04:19.143 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:04:19.140 pm debugcluster 000D
dev:72020-04-21 03:04:19.137 pm debugmsgMap: [raw:E85F01000D1055003900000000, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:00000000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:04:19.132 pm debugParsing: read attr - raw: E85F01000D1055003900000000, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 00000000
dev:72020-04-21 03:04:19.129 pm debugPARSE START---------------------
dev:72020-04-21 03:04:18.974 pm debugPARSE END-----------------------
dev:72020-04-21 03:04:18.968 pm debugPARSE END-----------------------
dev:72020-04-21 03:04:18.963 pm debugCHANGING device.currentValue('position') = 100, curtainPosition = 0
dev:72020-04-21 03:04:18.961 pm debugSending request for the actual position...
dev:72020-04-21 03:04:18.959 pm debugdevice.currentValue('position') = 100, curtainPosition = 0
dev:72020-04-21 03:04:18.955 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:04:18.951 pm debugcluster 000D
dev:72020-04-21 03:04:18.950 pm debugClosed
dev:72020-04-21 03:04:18.946 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:04:18.946 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:04:18.939 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:04:18.940 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:04:18.936 pm debugcluster 000D
dev:72020-04-21 03:04:18.935 pm debugPARSE START---------------------
dev:72020-04-21 03:04:18.931 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:04:18.924 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:04:18.920 pm debugPARSE START---------------------
dev:72020-04-21 03:04:02.484 pm debugPARSE END-----------------------
dev:72020-04-21 03:04:02.476 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:04:02.472 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:04:02.468 pm debugPARSE START---------------------
dev:72020-04-21 03:04:02.353 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {00000000} {}, delay 2000]
dev:72020-04-21 03:04:02.348 pm debugSet Position: 0%
dev:72020-04-21 03:04:02.336 pm debugsetPosition(position: 0)
dev:72020-04-21 03:04:02.333 pm debugclose()
dev:72020-04-21 03:03:42.801 pm debugPARSE END-----------------------
dev:72020-04-21 03:03:42.797 pm debugCHANGING device.currentValue('position') = 0, curtainPosition = 100
dev:72020-04-21 03:03:42.793 pm debugdevice.currentValue('position') = 0, curtainPosition = 100
dev:72020-04-21 03:03:42.785 pm debugFully Open
dev:72020-04-21 03:03:42.782 pm debugSETTING POSITION: long => 1120403456, BigDecimal => 100
dev:72020-04-21 03:03:42.775 pm debugGOT POSITION DATA: long => 1120403456, BigDecimal => 100
dev:72020-04-21 03:03:42.772 pm debugcluster 000D
dev:72020-04-21 03:03:42.768 pm debugmsgMap: [raw:E85F01000D105500390000C842, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:42C80000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:03:42.762 pm debugParsing: read attr - raw: E85F01000D105500390000C842, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 0000C842
dev:72020-04-21 03:03:42.759 pm debugPARSE START---------------------
dev:72020-04-21 03:03:42.601 pm debugPARSE END-----------------------
dev:72020-04-21 03:03:42.600 pm debugPARSE END-----------------------
dev:72020-04-21 03:03:42.596 pm debugdevice.currentValue('position') = 0, curtainPosition = 0
dev:72020-04-21 03:03:42.594 pm debugSending request for the actual position...
dev:72020-04-21 03:03:42.588 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:03:42.588 pm debugClosed
dev:72020-04-21 03:03:42.585 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:03:42.585 pm debugcluster 000D
dev:72020-04-21 03:03:42.580 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:03:42.578 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:03:42.575 pm debugcluster 000D
dev:72020-04-21 03:03:42.573 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:03:42.570 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:03:42.570 pm debugPARSE START---------------------
dev:72020-04-21 03:03:42.563 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:03:42.560 pm debugPARSE START---------------------
dev:72020-04-21 03:03:26.411 pm debugPARSE END-----------------------
dev:72020-04-21 03:03:26.403 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:03:26.399 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:03:26.396 pm debugPARSE START---------------------
dev:72020-04-21 03:03:26.186 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {42C80000} {}, delay 2000]
dev:72020-04-21 03:03:26.181 pm debugSet Position: 100%
dev:72020-04-21 03:03:26.169 pm debugsetPosition(position: 100)
dev:72020-04-21 03:03:26.166 pm debugopen()
dev:72020-04-21 03:03:24.211 pm debugPARSE END-----------------------
dev:72020-04-21 03:03:24.206 pm debugdevice.currentValue('position') = 0, curtainPosition = 0
dev:72020-04-21 03:03:24.196 pm debugClosed
dev:72020-04-21 03:03:24.192 pm debugSETTING POSITION: long => 0, BigDecimal => 0
dev:72020-04-21 03:03:24.185 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:03:24.181 pm debugcluster 000D
dev:72020-04-21 03:03:24.176 pm debugmsgMap: [raw:E85F01000D1055003900000000, dni:E85F, endpoint:01, cluster:000D, size:10, attrId:0055, encoding:39, command:01, value:00000000, clusterInt:13, attrInt:85]
dev:72020-04-21 03:03:24.166 pm debugParsing: read attr - raw: E85F01000D1055003900000000, dni: E85F, endpoint: 01, cluster: 000D, size: 10, attrId: 0055, encoding: 39, command: 01, value: 00000000
dev:72020-04-21 03:03:24.166 pm debugPARSE END-----------------------
dev:72020-04-21 03:03:24.163 pm debugPARSE START---------------------
dev:72020-04-21 03:03:24.160 pm debugmsgMap: [raw:E85F0100000807003004, dni:E85F, endpoint:01, cluster:0000, size:08, attrId:0007, encoding:30, command:0A, value:04, clusterInt:0, attrInt:7]
dev:72020-04-21 03:03:24.154 pm debugParsing: read attr - raw: E85F0100000807003004, dni: E85F, endpoint: 01, cluster: 0000, size: 08, attrId: 0007, encoding: 30, command: 0A, value: 04
dev:72020-04-21 03:03:24.150 pm debugPARSE START---------------------
dev:72020-04-21 03:03:24.031 pm debugPARSE END-----------------------
dev:72020-04-21 03:03:24.003 pm debugPARSE END-----------------------
dev:72020-04-21 03:03:23.997 pm debugdevice.currentValue('position') = 0, curtainPosition = 0
dev:72020-04-21 03:03:23.986 pm debugClosed
dev:72020-04-21 03:03:23.980 pm debugSending request for the actual position...
dev:72020-04-21 03:03:23.977 pm debugSETTING POSITION: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:03:23.971 pm debugGOT POSITION DATA: long => 0, BigDecimal => 0
dev:72020-04-21 03:03:23.968 pm debugGOT POSITION DATA: long => 1073741824, BigDecimal => 2
dev:72020-04-21 03:03:23.967 pm debugcluster 000D
dev:72020-04-21 03:03:23.964 pm debugcluster 000D
dev:72020-04-21 03:03:23.959 pm debugmsgMap: [raw:E85F01000D1C5500390000000000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:00000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:03:23.956 pm debugmsgMap: [raw:E85F01000D1C5500390000004000F02300000200, dni:E85F, endpoint:01, cluster:000D, size:1C, attrId:0055, encoding:39, command:0A, value:40000000, clusterInt:13, attrInt:85, additionalAttrs:[[value:00020000, encoding:23, attrId:F000, consumedBytes:7, attrInt:61440]]]
dev:72020-04-21 03:03:23.948 pm debugParsing: read attr - raw: E85F01000D1C5500390000000000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000000000F02300000200
dev:72020-04-21 03:03:23.944 pm debugPARSE START---------------------
dev:72020-04-21 03:03:23.941 pm debugParsing: read attr - raw: E85F01000D1C5500390000004000F02300000200, dni: E85F, endpoint: 01, cluster: 000D, size: 1C, attrId: 0055, encoding: 39, command: 0A, value: 0000004000F02300000200
dev:72020-04-21 03:03:23.938 pm debugPARSE START---------------------
dev:72020-04-21 03:03:07.648 pm debugPARSE END-----------------------
dev:72020-04-21 03:03:07.638 pm debugmsgMap: [raw:catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00, profileId:0104, clusterId:000D, clusterInt:13, sourceEndpoint:01, destinationEndpoint:01, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[00]]
dev:72020-04-21 03:03:07.633 pm debugParsing: catchall: 0104 000D 01 01 0040 00 E85F 00 00 0000 04 01 00
dev:72020-04-21 03:03:07.630 pm debugPARSE START---------------------
dev:72020-04-21 03:03:06.357 pm debugcmd=[he wattr 0xE85F 0x01 0x000D 0x0055 0x39 {00000000} {}, delay 2000]
dev:72020-04-21 03:03:06.326 pm debugSet Position: 0%
dev:72020-04-21 03:03:06.313 pm debugsetPosition(position: 0)
dev:72020-04-21 03:03:06.302 pm debugclose()
dev:72020-04-21 02:03:16.600 pm debugPARSE END-----------------------
dev:72020-04-21 02:03:16.596 pm debugBattery: 100%, C8
dev:72020-04-21 02:03:16.588 pm debugmsgMap: [raw:E85F0100010A210020C8, dni:E85F, endpoint:01, cluster:0001, size:0A, attrId:0021, encoding:20, command:01, value:C8, clusterInt:1, attrInt:33]
dev:72020-04-21 02:03:16.573 pm debugParsing: read attr - raw: E85F0100010A210020C8, dni: E85F, endpoint: 01, cluster: 0001, size: 0A, attrId: 0021, encoding: 20, command: 01, value: C8
dev:72020-04-21 02:03:16.569 pm debugPARSE START---------------------
dev:72020-04-21 02:03:16.112 pm debugcmd: [he raw 0xE85F 1 0x01 0x0001 {10 00 00 21 00}, delay 2000]
dev:72020-04-21 02:03:16.106 pm infogetBattery()
dev:72020-04-21 12:39:50.353 pm debugPARSE END-----------------------
dev:72020-04-21 12:39:50.347 pm debugBattery: 100%, C8
dev:72020-04-21 12:39:50.346 pm debugPARSE END-----------------------
dev:72020-04-21 12:39:50.335 pm debugmsgMap: [raw:E85F0100000807003003, dni:E85F, endpoint:01, cluster:0000, size:08, attrId:0007, encoding:30, command:0A, value:03, clusterInt:0, attrInt:7]
dev:72020-04-21 12:39:50.333 pm debugmsgMap: [raw:E85F01000108210020C8, dni:E85F, endpoint:01, cluster:0001, size:08, attrId:0021, encoding:20, command:0A, value:C8, clusterInt:1, attrInt:33]
dev:72020-04-21 12:39:50.318 pm debugParsing: read attr - raw: E85F01000108210020C8, dni: E85F, endpoint: 01, cluster: 0001, size: 08, attrId: 0021, encoding: 20, command: 0A, value: C8
dev:72020-04-21 12:39:50.318 pm debugParsing: read attr - raw: E85F0100000807003003, dni: E85F, endpoint: 01, cluster: 0000, size: 08, attrId: 0007, encoding: 30, command: 0A, value: 03
dev:72020-04-21 12:39:50.313 pm debugPARSE START---------------------
dev:72020-04-21 12:39:50.313 pm debugPARSE START---------------------
dev:72020-04-21 12:14:47.008 pm debugPARSE END-----------------------
dev:72020-04-21 12:14:46.999 pm debugmsgMap: [raw:catchall: 0000 0013 00 00 0040 00 E85F 00 00 0000 00 00 055FE84C3F753CDF8CCF0484, profileId:0000, clusterId:0013, clusterInt:19, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:E85F, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[05, 5F, E8, 4C, 3F, 75, 3C, DF, 8C, CF, 04, 84]]
dev:72020-04-21 12:14:46.994 pm debugParsing: catchall: 0000 0013 00 00 0040 00 E85F 00 00 0000 00 00 055FE84C3F753CDF8CCF0484
dev:72020-04-21 12:14:46.990 pm debugPARSE START---------------------
dev:72020-04-21 11:44:47.822 am debugPARSE END-----------------------
dev:72020-04-21 11:44:47.815 am debugBattery: 99%, C6
dev:72020-04-21 11:44:47.811 am debugPARSE END-----------------------
dev:72020-04-21 11:44:47.805 am debugmsgMap: [raw:E85F01000108210020C6, dni:E85F, endpoint:01, cluster:0001, size:08, attrId:0021, encoding:20, command:0A, value:C6, clusterInt:1, attrInt:33]
dev:72020-04-21 11:44:47.804 am debugmsgMap: [raw:E85F0100000807003004, dni:E85F, endpoint:01, cluster:0000, size:08, attrId:0007, encoding:30, command:0A, value:04, clusterInt:0, attrInt:7]
dev:72020-04-21 11:44:47.795 am debugParsing: read attr - raw: E85F0100000807003004, dni: E85F, endpoint: 01, cluster: 0000, size: 08, attrId: 0007, encoding: 30, command: 0A, value: 04
dev:72020-04-21 11:44:47.795 am debugParsing: read attr - raw: E85F01000108210020C6, dni: E85F, endpoint: 01, cluster: 0001, size: 08, attrId: 0021, encoding: 20, command: 0A, value: C6
dev:72020-04-21 11:44:47.791 am debugPARSE START---------------------
dev:72020-04-21 11:44:47.791 am debugPARSE START---------------------
dev:72020-04-21 10:49:45.798 am debugPARSE END-----------------------
dev:72020-04-21 10:49:45.794 am debugBattery: 89%, B2
dev:72020-04-21 10:49:45.786 am debugmsgMap: [raw:E85F0100010A210020B2, dni:E85F, endpoint:01, cluster:0001, size:0A, attrId:0021, encoding:20, command:01, value:B2, clusterInt:1, attrInt:33]
dev:72020-04-21 10:49:45.768 am debugParsing: read attr - raw: E85F0100010A210020B2, dni: E85F, endpoint: 01, cluster: 0001, size: 0A, attrId: 0021, encoding: 20, command: 01, value: B2
dev:72020-04-21 10:49:45.765 am debugPARSE START---------------------
dev:72020-04-21 10:49:45.021 am debugcmds: [he raw 0xE85F 1 0x01 0x0001 {10 00 00 21 00}, delay 2000]
dev:72020-04-21 10:49:44.989 am debugrefresh() model='lumi.curtain.hagl04'
dev:72020-04-21 10:49:44.922 am infomakeSchedule()
dev:72020-04-21 10:49:44.913 am debugold model = lumi.curtain.hagl04, new model=lumi.curtain.hagl04
dev:72020-04-21 10:49:44.909 am infoinitializeAdditional()
dev:72020-04-21 10:49:44.877 am infoinitialize()

dev:72020-04-21 10:49:44.877 am infoinitialize()

Now I have another question you might be able to answer. How can I enable "Alexa, open the bedroom curtains"? I'm guessing I get the Alexa app installed and look into configuring it? Any knowledge of Alexa integrations?

It does look like all is in order, I will clean up the driver and release it soon then. I'd probably consider this driver feature complete, but it's possible to catch and show that the curtain is in charging/battery/power supply mode, I see the messages in the log. I think I'd like to add that part if you don't mind testing that as well?

From what I can see in the logs it has 2 states: "Battery powered" and "DC source", there is no separate charging state reported. I think I will just call them "battery" and "DC" in Current States, what do you think? I'll add it when I clean up the rest.

EDIT: There is a standard attribute to use, so I will use that: powerSource - ENUM ["battery", "dc", "mains", "unknown"]

I don't personally use Alexa, but from my understanding you'd end up with having to use "on" and "off" unless you setup a routine:

Not sure if the driver has to support on and off for that to work though, do tell me if that is needed. @ogiewon, do you know?

I don't believe Hubitat's Alexa Skill support curtains/blinds, but I am not 100% sure. I know it does support Switches and Dimmers, so that is definitely an option. Just add

capability "Switch" 

and the corresponding on() and off() commands which can simply call the open() and close() commands.

If you add Set Level functionality, perhaps it could simply call the Set Position command.

1 Like

Thank you. Ok, I will do that, I don't use any integrations with anything so far, but I do see that many of them needs workarounds the moment it's not a light or a simple switch. At least with this added it is more "compatible" than without.

1 Like

Sure. I don't mind seeing this through to completion. I said I would and I want to help the community...

Yea it looks like something definitely needs to be added within the driver. I added the Hubitat built in Alexa Skill app and then enabled the skill in my Alexa App on my iPhone. It found a couple switches and sensors in Hubitat but not the curtains. And this is what I see in the Hubitat Alexa Skill app settings:

Can we make it a dimmer instead of a switch? This way it can be set to partially open the curtains using "Dim to 50%" etc....? Is there any downside to it being dimmer? If so a switch will be much better than nothing...

Great, there is now a new version, it should have everything, included correct power source. It looks like it switched to DC power when at 99% charged, then at 100% it went back to "battery". Do try it at some point.

It is now exposed as a dimming light. So there is on, off and setlevel.

EDIT: Refresh will get the current battery level and power source as well as the current position.

1 Like

Yep. I see all that now:

And I refreshed the Skill on my iPhone and the curtains took awhile but they finally showed up as a dimmable bulb. I can't test now but I will in the AM:

And FYI here is the description of the Hubitat skill in the Alexa iPhone App (doesn't mention window shades):

1 Like

Thank you @claytonelliott for sticking the course, you now have your driver! :slight_smile:

The driver is now properly updated and ready for use. Anyone using it, please report any issues in this thread.

1 Like

Alexa skill works. After installing the Alexa Skill app in Hubitat and enabling the skill in my Amazon Alexa iPhone app the curtain motors were exposed and shown as devices in phone app. Then I simply created these routines which were programmed to change the Set Level to 0, 60 & 100

Alexa, open curtains
Alexa, close curtains
Alexa, 60 percent curtains)

You can also say:
Alexa, turn on XXX (where XXX is the name of your curtain motor)
Alexa, turn off XXX
Alexa, XXX level 50 (or another percentage, and not sure if this is the exact command)

1 Like

Thank you for reporting in :slight_smile: There are some minor changes to the driver coming soon, like Checkin and Presence indicators to know that it has not dropped. Apart form that it is mostly a matter of code having been rearranged and cleaned up.

I just got the original aqara curtain motor but can't get it to work. When I do a zigbee discovery, it finds the curtain but never initializes it. As a result, it shows up as null in Hubitat. I can then edit the device and use your driver but even though it claims it's present, it only checks in the first time (hitting refresh does nothing) and the controls don't work. It's not responding to open or close commands.

Any help would be appreciated. Thanks

It sounds like it didn't pair properly, WITHOUT deleting the device, go to device discovery and re-pair the curtain motor. Just to confirm, we're talking about the ZNCLDJ11LM model, right?

Once you've paired successfully, check the bottom of the device page under Data that model displays as "lumi.curtain" without "garbled" characters. If it is "garbled", short press the button on the curtain and refresh the device page and check again, it should now be correct.

Yup ZNCLDJ11LM . The model is lumi.curtain. I just tried with the 2nd one and the same thing is happening. It seems to pair (although it stays stuck at initializing and the device name is Zigbee device null:null. Can't control either

If it displays "lumi.curtain" on the device page at least you got far enough to get that sent properly.
Turn on debug logging and press Track Discovery Mode. Try to use Open and Close after that. Show me the logs.

Will do so now. Just paired one of them with SmartThings and it works fine there.