Koenkk / zigbee-herdsman

A Node.js Zigbee library
MIT License
482 stars 300 forks source link

Aqara Opple Switch support ( Model WXCJKG12LM ) #98

Closed uncle-fed closed 5 years ago

uncle-fed commented 5 years ago

https://homekitnews.com/2019/10/23/aqara-and-opple-release-new-smart-switches/

I got my 4-button switch today, model WXCJKG12LM (also 2 and 6 button switches are available) and was eager to make it work with zigbee2mqtt.

The device is currently not supported and I started following the instructions here https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html

Immediately ran into a pairing issue. The instruction states that pairing can be done in any case with the message that goes like

Successfully interviewed '0x00.....', device has successfully been paired.

What I get is the following instead:


Nov 27 20:00:47 rpi npm[3807]: zigbee2mqtt:info  2019-11-27T20:00:47: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"device_connected","message":{"friendly_name":"0x04cf8cdf3c75c05f"}}'
Nov 27 20:00:47 rpi npm[3807]: zigbee2mqtt:info  2019-11-27T20:00:47: Starting interview of '0x04cf8cdf3c75c05f'
Nov 27 20:00:47 rpi npm[3807]: zigbee2mqtt:info  2019-11-27T20:00:47: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_started","meta":{"friendly_name":"0x04cf8cdf3c75c05f"}}'
Nov 27 20:00:58 rpi npm[3807]: zigbee2mqtt:error 2019-11-27T20:00:58: Failed to interview '0x04cf8cdf3c75c05f', device has not successfully been paired
Nov 27 20:00:58 rpi npm[3807]: zigbee2mqtt:info  2019-11-27T20:00:58: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_failed","meta":{"friendly_name":"0x04cf8cdf3c75c05f"}}'

Any hints on how to carry on would be appreciated.
uncle-fed commented 5 years ago

Debug log below


  serialport/binding-abstract read +17s
  serialport/bindings/unixRead Starting read +17s
  serialport/bindings/unixRead Finished read { bytesRead: 18,
  buffer:
   <Buffer fe 0e 61 02 02 00 02 06 03 90 15 34 01 02 00 00 00 00 da fe 03 61 08 00 01 55 3e fe 03 61 08 00 01 55 3e fe 06 61 08 00 04 00 08 00 00 63 fe 03 61 08 ... > } bytes +1ms
  serialport/stream binding.read finished { bytesRead: 18 } +17s
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,13,69,201,67,103,95,192,117,60,223,140,207,4,0,0,0,235] +17s
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,13,69,201,67,103,95,192,117,60,223,140,207,4,0,0,0,235] +0ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 13 - 2 - 5 - 201 - [Cg_�u<ߌ�] - 235 +1ms
  zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - leaveInd - {"srcaddr":26435,"extaddr":"0x04cf8cdf3c75c05f","request":0,"removechildren":0,"rejoin":0} +17s
  zigbee-herdsman:controller:log Device leave '0x04cf8cdf3c75c05f' +17s
  zigbee-herdsman:controller:log Removing device from database '0x04cf8cdf3c75c05f' +0ms
zigbee2mqtt:warn  2019-11-27T20:17:44: Device '0x04cf8cdf3c75c05f' left the network
winston:file written true false
zigbee2mqtt:info  2019-11-27T20:17:44: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"device_removed","message":"left_network","meta":{"friendly_name":"0x04cf8cdf3c75c05f"}}'
winston:file written true false
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +21ms
winston:file logged 3512 warn  2019-11-27T20:17:44: Device '0x04cf8cdf3c75c05f' left the network

winston:file logged 3692 info  2019-11-27T20:17:44: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"device_removed","message":"left_network","meta":{"friendly_name":"0x04cf8cdf3c75c05f"}}'

  serialport/stream _read reading { start: 226, toRead: 65310 } +27ms
  serialport/binding-abstract read +30ms
  serialport/bindings/unixRead Starting read +30ms
  serialport/bindings/unixRead waiting for readable because of code: EAGAIN +1ms
  serialport/bindings/poller Polling for "readable" +33ms
  serialport/bindings/poller received "readable" +1s
  serialport/binding-abstract read +1s
  serialport/bindings/unixRead Starting read +1s
  serialport/bindings/unixRead Finished read { bytesRead: 17,
  buffer:
   <Buffer fe 0e 61 02 02 00 02 06 03 90 15 34 01 02 00 00 00 00 da fe 03 61 08 00 01 55 3e fe 03 61 08 00 01 55 3e fe 06 61 08 00 04 00 08 00 00 63 fe 03 61 08 ... > } bytes +1ms
  serialport/stream binding.read finished { bytesRead: 17 } +1s
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,12,69,202,143,210,95,192,117,60,223,140,207,4,0,0,144] +1s
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,12,69,202,143,210,95,192,117,60,223,140,207,4,0,0,144] +1ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 12 - 2 - 5 - 202 - [��_�u<ߌ�] - 144 +0ms
  zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - tcDeviceInd - {"nwkaddr":53903,"extaddr":"0x04cf8cdf3c75c05f","parentaddr":0} +1s
  zigbee-herdsman:controller:log Device '0x04cf8cdf3c75c05f' joined +1s
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +6ms
  zigbee-herdsman:controller:log Device '0x04cf8cdf3c75c05f' accepted by handler +3ms
  zigbee-herdsman:controller:log New device '0x04cf8cdf3c75c05f' joined +0ms
  zigbee-herdsman:controller:log Creating device '0x04cf8cdf3c75c05f' +0ms
zigbee2mqtt:info  2019-11-27T20:17:45: Device '0x04cf8cdf3c75c05f' joined
winston:file written true false
zigbee2mqtt:info  2019-11-27T20:17:45: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"device_connected","message":{"friendly_name":"0x04cf8cdf3c75c05f"}}'
winston:file written true false
  zigbee-herdsman:controller:log Interview '0x04cf8cdf3c75c05f' start +15ms
zigbee2mqtt:info  2019-11-27T20:17:45: Starting interview of '0x04cf8cdf3c75c05f'
winston:file written true false
zigbee2mqtt:info  2019-11-27T20:17:45: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_started","meta":{"friendly_name":"0x04cf8cdf3c75c05f"}}'
winston:file written true false
  zigbee-herdsman:controller:device Interview - start device '0x04cf8cdf3c75c05f' +0ms
  zigbee-herdsman:adapter:zStack:znp:SREQ --> ZDO - nodeDescReq - {"dstaddr":53903,"nwkaddrofinterest":53903} +18s
  zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,4,37,2,143,210,143,210,35] +18s
  serialport/stream _write 9 bytes of data +40ms
  serialport/binding-abstract write 9 bytes +42ms
  serialport/bindings/unixWrite Starting write 9 bytes offset 0 bytesToWrite 9 +18s
  serialport/stream _read reading { start: 243, toRead: 65293 } +2ms
  serialport/binding-abstract read +3ms
winston:file logged 3754 info  2019-11-27T20:17:45: Device '0x04cf8cdf3c75c05f' joined

winston:file logged 3914 info  2019-11-27T20:17:45: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"device_connected","message":{"friendly_name":"0x04cf8cdf3c75c05f"}}'

winston:file logged 3984 info  2019-11-27T20:17:45: Starting interview of '0x04cf8cdf3c75c05f'

winston:file logged 4162 info  2019-11-27T20:17:45: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_started","meta":{"friendly_name":"0x04cf8cdf3c75c05f"}}'

  serialport/bindings/unixRead Starting read +48ms
  serialport/bindings/unixWrite write returned: wrote 9 bytes +7ms
  serialport/bindings/unixWrite Finished writing 9 bytes +1ms
  serialport/stream binding.write write finished +7ms
  serialport/bindings/unixRead waiting for readable because of code: EAGAIN +3ms
  serialport/bindings/poller Polling for "readable" +53ms
  serialport/bindings/poller received "readable" +1ms
  serialport/binding-abstract read +8ms
  serialport/bindings/unixRead Starting read +1ms
  serialport/bindings/unixRead Finished read { bytesRead: 6,
  buffer:
   <Buffer fe 0e 61 02 02 00 02 06 03 90 15 34 01 02 00 00 00 00 da fe 03 61 08 00 01 55 3e fe 03 61 08 00 01 55 3e fe 06 61 08 00 04 00 08 00 00 63 fe 03 61 08 ... > } bytes +1ms
  serialport/stream binding.read finished { bytesRead: 6 } +4ms
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,101,2,0,102] +47ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,101,2,0,102] +0ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 5 - 2 - [] - 102 +0ms
  zigbee-herdsman:adapter:zStack:znp:SRSP <-- ZDO - nodeDescReq - {"status":0} +18s
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +2ms
  serialport/stream _read reading { start: 249, toRead: 65287 } +4ms
  serialport/binding-abstract read +6ms
  serialport/bindings/unixRead Starting read +6ms
  serialport/bindings/unixRead waiting for readable because of code: EAGAIN +1ms
  serialport/bindings/poller Polling for "readable" +8ms
  serialport/bindings/poller received "readable" +507ms
  serialport/binding-abstract read +510ms
  serialport/bindings/unixRead Starting read +509ms
  serialport/bindings/unixRead Finished read { bytesRead: 41,
  buffer:
   <Buffer fe 0e 61 02 02 00 02 06 03 90 15 34 01 02 00 00 00 00 da fe 03 61 08 00 01 55 3e fe 03 61 08 00 01 55 3e fe 06 61 08 00 04 00 08 00 00 63 fe 03 61 08 ... > } bytes +0ms
  serialport/stream binding.read finished { bytesRead: 41 } +512ms
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,13,69,193,143,210,143,210,95,192,117,60,223,140,207,4,132,67,254,18,69,130,143,210,0,143,210,2,64,132,95,17,127,100,0,0,44,100,0,0,14] +514ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,13,69,193,143,210,143,210,95,192,117,60,223,140,207,4,132,67,254,18,69,130,143,210,0,143,210,2,64,132,95,17,127,100,0,0,44,100,0,0,14] +0ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 13 - 2 - 5 - 193 - [�ҏ�_�u<ߌ��] - 67 +1ms
  zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - endDeviceAnnceInd - {"srcaddr":53903,"nwkaddr":53903,"ieeeaddr":"0x04cf8cdf3c75c05f","capabilities":132} +570ms
  zigbee-herdsman:controller:log Device announce '0x04cf8cdf3c75c05f' +550ms
zigbee2mqtt:debug 2019-11-27T20:17:46: Device '0x04cf8cdf3c75c05f' announced itself
winston:file written true false
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,18,69,130,143,210,0,143,210,2,64,132,95,17,127,100,0,0,44,100,0,0,14] +6ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 18 - 2 - 5 - 130 - [����@�d,d] - 14 +0ms
  zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - nodeDescRsp - {"srcaddr":53903,"status":0,"nwkaddr":53903,"logicaltype_cmplxdescavai_userdescavai":2,"apsflags_freqband":64,"maccapflags":132,"manufacturercode":4447,"maxbuffersize":127,"maxintransfersize":100,"servermask":11264,"maxouttransfersize":100,"descriptorcap":0} +6ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +2ms
  zigbee-herdsman:controller:device Interview - got node descriptor for device '0x04cf8cdf3c75c05f' +555ms
  zigbee-herdsman:adapter:zStack:znp:SREQ --> ZDO - activeEpReq - {"dstaddr":53903,"nwkaddrofinterest":53903} +549ms
  zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,4,37,5,143,210,143,210,36] +550ms
  serialport/stream _write 9 bytes of data +20ms
  serialport/binding-abstract write 9 bytes +22ms
  serialport/bindings/unixWrite Starting write 9 bytes offset 0 bytesToWrite 9 +541ms
winston:file logged 4234 debug 2019-11-27T20:17:46: Device '0x04cf8cdf3c75c05f' announced itself

  serialport/stream _read reading { start: 290, toRead: 65246 } +3ms
  serialport/binding-abstract read +3ms
  serialport/bindings/unixRead Starting read +25ms
  serialport/bindings/unixWrite write returned: wrote 9 bytes +4ms
  serialport/bindings/unixWrite Finished writing 9 bytes +0ms
  serialport/stream binding.write write finished +3ms
  serialport/bindings/unixRead waiting for readable because of code: EAGAIN +2ms
  serialport/bindings/poller Polling for "readable" +30ms
  serialport/bindings/poller received "readable" +2ms
  serialport/binding-abstract read +6ms
  serialport/bindings/unixRead Starting read +4ms
  serialport/bindings/unixRead Finished read { bytesRead: 6,
  buffer:
   <Buffer fe 0e 61 02 02 00 02 06 03 90 15 34 01 02 00 00 00 00 da fe 03 61 08 00 01 55 3e fe 03 61 08 00 01 55 3e fe 06 61 08 00 04 00 08 00 00 63 fe 03 61 08 ... > } bytes +0ms
  serialport/stream binding.read finished { bytesRead: 6 } +5ms
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,101,5,0,97] +22ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,101,5,0,97] +0ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 5 - 5 - [] - 97 +1ms
  zigbee-herdsman:adapter:zStack:znp:SRSP <-- ZDO - activeEpReq - {"status":0} +547ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +1ms
  serialport/stream _read reading { start: 296, toRead: 65240 } +4ms
  serialport/binding-abstract read +6ms
  serialport/bindings/unixRead Starting read +6ms
  serialport/bindings/unixRead waiting for readable because of code: EAGAIN +1ms
  serialport/bindings/poller Polling for "readable" +8ms
  serialport/bindings/poller received "readable" +342ms
  serialport/binding-abstract read +345ms
  serialport/bindings/unixRead Starting read +343ms
  serialport/bindings/unixRead Finished read { bytesRead: 17,
  buffer:
   <Buffer fe 0e 61 02 02 00 02 06 03 90 15 34 01 02 00 00 00 00 da fe 03 61 08 00 01 55 3e fe 03 61 08 00 01 55 3e fe 06 61 08 00 04 00 08 00 00 63 fe 03 61 08 ... > } bytes +1ms
  serialport/stream binding.read finished { bytesRead: 17 } +347ms
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,12,69,133,143,210,0,143,210,6,1,2,3,4,5,6,205] +348ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,12,69,133,143,210,0,143,210,6,1,2,3,4,5,6,205] +1ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 12 - 2 - 5 - 133 - [����] - 205 +1ms
  zigbee-herdsman:adapter:zStack:znp:AREQ <-- ZDO - activeEpRsp - {"srcaddr":53903,"status":0,"nwkaddr":53903,"activeepcount":6,"activeeplist":[1,2,3,4,5,6]} +375ms
PuTTY  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +1ms
  zigbee-herdsman:controller:device Interview - got active endpoints for device '0x04cf8cdf3c75c05f' +376ms
  zigbee-herdsman:adapter:zStack:znp:SREQ --> ZDO - simpleDescReq - {"dstaddr":53903,"nwkaddrofinterest":53903,"endpoint":1} +376ms
  zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,5,37,4,143,210,143,210,1,37] +376ms
  serialport/stream _write 10 bytes of data +14ms
  serialport/binding-abstract write 10 bytes +16ms
  serialport/bindings/unixWrite Starting write 10 bytes offset 0 bytesToWrite 10 +372ms
  serialport/stream _read reading { start: 313, toRead: 65223 } +2ms
  serialport/binding-abstract read +2ms
  serialport/bindings/unixRead Starting read +18ms
  serialport/bindings/unixWrite write returned: wrote 10 bytes +3ms
  serialport/bindings/unixWrite Finished writing 10 bytes +0ms
  serialport/stream binding.write write finished +2ms
  serialport/bindings/unixRead waiting for readable because of code: EAGAIN +2ms
  serialport/bindings/poller Polling for "readable" +22ms
  serialport/bindings/poller received "readable" +4ms
  serialport/binding-abstract read +8ms
  serialport/bindings/unixRead Starting read +5ms
  serialport/bindings/unixRead Finished read { bytesRead: 6,
  buffer:
   <Buffer fe 0e 61 02 02 00 02 06 03 90 15 34 01 02 00 00 00 00 da fe 03 61 08 00 01 55 3e fe 03 61 08 00 01 55 3e fe 06 61 08 00 04 00 08 00 00 63 fe 03 61 08 ... > } bytes +1ms
  serialport/stream binding.read finished { bytesRead: 6 } +8ms
  zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,101,4,0,96] +23ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,101,4,0,96] +1ms
  zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 5 - 4 - [] - 96 +0ms
  zigbee-herdsman:adapter:zStack:znp:SRSP <-- ZDO - simpleDescReq - {"status":0} +377ms
  zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +1ms
  serialport/stream _read reading { start: 319, toRead: 65217 } +3ms
  serialport/binding-abstract read +6ms
  serialport/bindings/unixRead Starting read +5ms
  serialport/bindings/unixRead waiting for readable because of code: EAGAIN +1ms
  serialport/bindings/poller Polling for "readable" +8ms
  zigbee-herdsman:controller:device Interview - failed for device '0x04cf8cdf3c75c05f' with error 'Error: AREQ - ZDO - simpleDescRsp after 10000ms
  zigbee-herdsman:controller:device     at Timeout.object.timer.setTimeout [as _onTimeout] (/opt/zigbee2mqtt/node_modules/zigbee-herdsman/dist/utils/waitress.js:44:24)
  zigbee-herdsman:controller:device     at ontimeout (timers.js:436:11)
  zigbee-herdsman:controller:device     at tryOnTimeout (timers.js:300:5)
  zigbee-herdsman:controller:device     at listOnTimeout (timers.js:263:5)
  zigbee-herdsman:controller:device     at Timer.processTimers (timers.js:223:10)' +10s
  zigbee-herdsman:controller:error Interview failed for '0x04cf8cdf3c75c05f with error 'Error: AREQ - ZDO - simpleDescRsp after 10000ms' +0ms
zigbee2mqtt:error 2019-11-27T20:17:56: Failed to interview '0x04cf8cdf3c75c05f', device has not successfully been paired
winston:file written true false
zigbee2mqtt:info  2019-11-27T20:17:56: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_failed","meta":{"friendly_name":"0x04cf8cdf3c75c05f"}}'
winston:file written true false
winston:file logged 4343 error 2019-11-27T20:17:56: Failed to interview '0x04cf8cdf3c75c05f', device has not successfully been paired

winston:file logged 4520 info  2019-11-27T20:17:56: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"interview_failed","meta":{"friendly_name":"0x04cf8cdf3c75c05f"}}'
uncle-fed commented 5 years ago

OK, I clicked on the switch main buttons multiple times and then and held 2 buttons out of 4 together press in various combination.. and suddenly the switch got paired. I really don't know what made it work, but the "official reset button" on the back of the switch that you need to hold for 5 seconds to start pairing did not work by itself.

Now the device got recognised as lumi.remote.b486opcn01

Koenkk commented 5 years ago

There is already a pr open, https://github.com/Koenkk/zigbee-herdsman-converters/pull/774