Trouble with pairing zigbee device

I am having trouble adding a zigbee lock to my hub. (Onesti Products AS easyCodeTouch_v1 control via MQTT | Zigbee2MQTT)

The device is found during zigbee paring and I am able to add it to the hub. But the device stays in pairing mode and sends no more data to the hub. Watching the zigbee logs the only data sent is during pairing.
If i re-run zigbee paring the device shows up as a previously added device and there is new data in the zigbee logs, but under a new tab with the same device name.

The zigbee logs usually says

Lock2023-01-17 20:11:20.626 profileId:0x0, clusterId:0x13, sourceEndpoint:0, destinationEndpoint:0 , groupId:0, lastHopLqi:255, lastHopRssi:-67

I have only been able to send a command to the lock once, and I have tried pairing and factory resetting maany times.. Also in different places closer to the hub.

I am thinking that maybe the lock is waiting for a handshake or something like that to successfully pair?

Looking at the product sheet, no where does it say its any form of Zigbee, other devices in their catalog state Zigbee Home Automation 1.2...

I have this lock Touch Pro - Smart dörrlås för ditt hem | nimly.se with this zigbee module Modul som möjliggör uppkoppling av dörrlås | nimly.se. From what I understand EasyAccess and Nimly has the same hardware but different names. Nimly.io has © EasyAccess Sverige AB on the bottom of the page, so it is the same company.

The device details data is

  • endpointId: 0B
  • application: 07
  • inClusters: 0000,0001,0003,0005,0004,0101,FEA2
  • manufacturer: Onesti Products AS
  • model: NimlyPRO
  • outClusters: 0019

So it seems to be the same device as in my first post.

On the Swedish site for the module it says that it is based on open Zigbee 3.0 standard for easy integration into different smarthome systems.
Since it works with Zigbee2MTTQ it should also work with Hubitat? Isn't it just a matter of getting the driver right?

But shouldn't the device pair to the hub regardless of which driver i use? Even if it is not useable with the driver?

I ask again, which driver did it initially pair with?

When first paired it shows up as "Device"

Hm. Out of nowhere after hours of testing over and over it just started working. I didn't do anything special. Weird..

Anytime you have that you simply can switch the driver to something else like generic zigbee lock then click save then configure. The reason it defaulted to device is because it didn't have a reference for the fingerprint.

1 Like

Damn, I broke it again. Decided to do a reset of the zigbee module and now I am stuck again.
I have the device set as Generic zigbee lock.
Start zigbee discovery - device is found. Press configure on the device page. The device sends a couple of commands. Then nothing.
If I run discovery again without doing nothing other and press configure again it does the same again, but under a new tab in zigbee logs. During discovery I am able to send commands to the lock, but after a while it stops working again. During the whole time the zigbee module keeps flashing indicating it is in pairing-mode.

Device log:

dev:7972023-01-31 21:46:12.280infoLock battery is 100%
dev:7972023-01-31 21:46:12.273debugparseAttributeResponse: [raw:48090B00010A210020C8, dni:4809, endpoint:0B, cluster:0001, size:0A, attrId:0021, encoding:20, command:01, value:C8, clusterInt:1, attrInt:33]
dev:7972023-01-31 21:46:10.325debugparseAttributeResponse: [raw:48090B01010A00003001, dni:4809, endpoint:0B, cluster:0101, size:0A, attrId:0000, encoding:30, command:01, value:01, clusterInt:257, attrInt:0]
dev:7972023-01-31 21:46:09.400warnCommandResponse skipped clusterId:0020, descMap:[raw:catchall: 0104 0020 0B 01 0040 00 4809 00 00 0000 0B 01 02C3, profileId:0104, clusterId:0020, clusterInt:32, sourceEndpoint:0B, destinationEndpoint:01, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[02, C3]]
dev:7972023-01-31 21:46:09.397debugparseCommandResponse: [raw:catchall: 0104 0020 0B 01 0040 00 4809 00 00 0000 0B 01 02C3, profileId:0104, clusterId:0020, clusterInt:32, sourceEndpoint:0B, destinationEndpoint:01, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[02, C3]]
dev:7972023-01-31 21:46:08.318debugparseCommandResponse: [raw:catchall: 0104 0101 0B 01 0040 00 4809 00 00 0000 04 01 863200, profileId:0104, clusterId:0101, clusterInt:257, sourceEndpoint:0B, destinationEndpoint:01, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:04, direction:01, data:[86, 32, 00]]
dev:7972023-01-31 21:46:08.212debugfetchLockCode- 1
dev:7972023-01-31 21:46:08.209debugparseAttributeResponse: [raw:48090B01010C1200213200, dni:4809, endpoint:0B, cluster:0101, size:0C, attrId:0012, encoding:21, command:01, value:0032, clusterInt:257, attrInt:18]
dev:7972023-01-31 21:46:07.246infoLock lock was forced open
dev:7972023-01-31 21:46:07.244debugparseCommandResponse: [raw:catchall: 0104 0009 0B 01 0040 00 4809 00 00 0000 0B 01 06C3, profileId:0104, clusterId:0009, clusterInt:9, sourceEndpoint:0B, destinationEndpoint:01, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:0B, direction:01, data:[06, C3]]
dev:7972023-01-31 21:46:06.109infoLock battery is 100%
dev:7972023-01-31 21:46:06.106debugparseAttributeResponse: [raw:48090B000108210020C8, dni:4809, endpoint:0B, cluster:0001, size:08, attrId:0021, encoding:20, command:0A, value:C8, clusterInt:1, attrInt:33]
dev:7972023-01-31 21:46:06.093warnCommandResponse skipped clusterId:0001, descMap:[raw:catchall: 0104 0001 0B 01 0040 00 4809 00 00 0000 07 01 00, profileId:0104, clusterId:0001, clusterInt:1, sourceEndpoint:0B, destinationEndpoint:01, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:07, direction:01, data:[00]]
dev:7972023-01-31 21:46:06.088debugparseCommandResponse: [raw:catchall: 0104 0001 0B 01 0040 00 4809 00 00 0000 07 01 00, profileId:0104, clusterId:0001, clusterInt:1, sourceEndpoint:0B, destinationEndpoint:01, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:07, direction:01, data:[00]]
dev:7972023-01-31 21:46:05.634warnparseAttributeResponse skip: 0101:0100, hexValue:0A010000
dev:7972023-01-31 21:46:05.632debugparseAttributeResponse: [raw:48090B01010E00011B0000010A, dni:4809, endpoint:0B, cluster:0101, size:0E, attrId:0100, encoding:1B, command:0A, value:0A010000, clusterInt:257, attrInt:256]
dev:7972023-01-31 21:46:05.475debugparseAttributeResponse: [raw:48090B01010800003001, dni:4809, endpoint:0B, cluster:0101, size:08, attrId:0000, encoding:30, command:0A, value:01, clusterInt:257, attrInt:0]
dev:7972023-01-31 21:46:05.446debugparseCommandResponse: [raw:catchall: 0104 0101 0B 01 0040 00 4809 00 00 0000 07 01 00, profileId:0104, clusterId:0101, clusterInt:257, sourceEndpoint:0B, destinationEndpoint:01, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:07, direction:01, data:[00]]
dev:7972023-01-31 21:46:04.242warnCommandResponse skipped clusterId:8021, descMap:[raw:catchall: 0000 8021 00 00 0040 00 4809 00 00 0000 00 00 0800, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[08, 00]]
dev:7972023-01-31 21:46:04.213debugparseCommandResponse: [raw:catchall: 0000 8021 00 00 0040 00 4809 00 00 0000 00 00 0800, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[08, 00]]
dev:7972023-01-31 21:46:03.245warnCommandResponse skipped clusterId:8021, descMap:[raw:catchall: 0000 8021 00 00 0040 00 4809 00 00 0000 00 00 0700, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[07, 00]]
dev:7972023-01-31 21:46:03.242debugparseCommandResponse: [raw:catchall: 0000 8021 00 00 0040 00 4809 00 00 0000 00 00 0700, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[07, 00]]
dev:7972023-01-31 21:46:02.764warnCommandResponse skipped clusterId:8021, descMap:[raw:catchall: 0000 8021 00 00 0040 00 4809 00 00 0000 00 00 0600, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[06, 00]]
dev:7972023-01-31 21:46:02.760debugparseCommandResponse: [raw:catchall: 0000 8021 00 00 0040 00 4809 00 00 0000 00 00 0600, profileId:0000, clusterId:8021, clusterInt:32801, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[06, 00]]
dev:7972023-01-31 21:46:02.557warnCommandResponse skipped clusterId:0013, descMap:[raw:catchall: 0000 0013 00 00 0040 00 4809 00 00 0000 00 00 0109486AC6E50D1D36CEF480, profileId:0000, clusterId:0013, clusterInt:19, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[01, 09, 48, 6A, C6, E5, 0D, 1D, 36, CE, F4, 80]]
dev:7972023-01-31 21:46:02.553debugparseCommandResponse: [raw:catchall: 0000 0013 00 00 0040 00 4809 00 00 0000 00 00 0109486AC6E50D1D36CEF480, profileId:0000, clusterId:0013, clusterInt:19, sourceEndpoint:00, destinationEndpoint:00, options:0040, messageType:00, dni:4809, isClusterSpecific:false, isManufacturerSpecific:false, manufacturerId:0000, command:00, direction:00, data:[01, 09, 48, 6A, C6, E5, 0D, 1D, 36, CE, F4, 80]]
dev:7972023-01-31 21:46:01.983debugrefresh()

I don't know how I got it to work the last time.. I have had it up and running for two weeks without any problems. I am trying to make a driver for it and didn't manage to run a few zigbee commands so I tested to do a reset. Dumb decision..

Can you find the fingerprint for it in the logging?

Is it this?
fingerprint profileId:"0104", endpointId:"0B", inClusters:"0000,0001,0003,0005,0004,0101,FEA2", outClusters:"0019", model:"NimlyPRO", manufacturer:"Onesti Products AS"

I got it the last time I joined it. Don't remember how.

2 Likes

I will pm you shortly with something to try.

Just bought the same lock today either the Zigbee module.
When trying to pair it. HE says it found a Zigbee device but after a while it fails initiating and the device never gets paired.
Is there a trick you did @tsaaek to get it paired?

I have moved my HE to abut 10 cm from the lock but motvind seems to work.

@mike.maxwell did your trick work and is it something you can share with me?

I just kept trying over and over with factory resetting it and hitting pair again in Hubitat and after what must have been nearly one hundred times it suddely paired.

Ok, I will have to keep trying then.
Is the lock working and are stable with HE now?

We are very happy with our lock. Easy to use, even for the kids.

It has only lost connection to HE a few times, but a simple restart of the lock by removing and reinserting the batteries has solved it quick.

The only minus that i can think of is that it doesn't always send unlock/lock status when used physically. But from what I heard from other people it is the same using Nimlys gateway. For us this isn't a big issue.

The app code manager doesn't work out of the box with this lock since the lock doesn't support the command "getCodes". I have written a driver that has a workaround. I can share it later.

Thank you for the info and offer to share your driver.
I must get the lock to pair first. Have only tried like 20 times so I guess I must try like 50 times more before it pairs. :slight_smile:

@mike.maxwell do you have any tips or trix to get this lock to pair?
Been trying all day but after my C8 found a device, it stuck at initiates and then shows a message saying it failed and that I should factory reset the device, which I’ve done several times.

without having the lock in hand there's little I can do.

You had an idea that you PM:ed tsaaek. Did that work and is something you can share?
If not, is there anything I can ask the manufacturer that can help you or do you need the device?

I thought ZigBee 3.0 was a standard that everybody followed. Guess not…