Nuki SmartLock cannot connect

Hi,
I want to try using nymea with my nuki SmartLock. I use a pi zero, with the latest nymea image burnt on a sd card. The Pi is 1 meter away from the lock. I tried more than once, rebooted, waited on the system updates, and so on. Of course, il put my lock in pairing mode when asked.

Here are the logs :

I | Nuki: Start bluetooth discovery…
I | Nuki: Bluetooth discovery for nuki devices finished
W | Nuki: Could not read serial number from bluetooth thing name “Nuki_Opener_1D97FE32”
I | Nuki: Pairing confirmed, assuming the pairing mode is active. Start authentication process
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Disconnected
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Connecting
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Connected
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Discovering
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Disconnected
W | Bluez: Could not connect device “54:D2:72:B0:20:05” “org.bluez.Error.Failed” “Software caused connection abort”
W | JsonRpc: RPC call timed out: “Devices” : “ConfirmPairing”
I | Nuki: Start bluetooth discovery…
I | Nuki: Bluetooth discovery for nuki devices finished
W | Nuki: Could not read serial number from bluetooth thing name “Nuki_Opener_1D97FE32”
I | Nuki: Pairing confirmed, assuming the pairing mode is active. Start authentication process
W | Nuki: There is already an async setup for a nuki running.
W | ThingManager: ConfirmPairing failed for “Nuki” QUuid("{4a1cc5d9-9b44-4632-8db0-66d64efd4767}")

Is there something I miss?

Thanks! Laurent

Hi @heriss,

This message seems suspicious:

 Nuki: Could not read serial number from bluetooth thing name “Nuki_Opener_1D97FE32”

I’m wondering if there might have been a Firmware update for the nuki which would render it incompatible with the current nymea Plugin. I don’t have such a device but I know @Simon has one in use with nymea. Perhaps you guys want to compare firmware versions as a first step.

No, nothing to do with the problem : I have two nuki equipment showing when I look for my SmartLock, and one of them is an Opener (Nuki_Opener_1D97FE32). I don’t choose it, but the SmartLock (Nuki_1CB02005) when trying to pair… you see the serial number equals the end of the bluetooth mac address,…

Thanks to look into my problem…

Laurent

PS : I wonder, is the rpi zero powerful enough to work with Nymea? could it be that the pairing times out before succeeding?

Good question… I do run nymea on a Pi0 and while it is not exactly a great experience because it is a very slow device, I did not experience any major issues with it either. But I also didn’t try any Bluetooth device with it. I wouldn’t think that is the problem, but to be sure, you could probably try that yourself by installing nymea on something more powerful and try with that…

I’ve read again through your log and I see there seems to be a bug in the Nuki plugin that it doesn’t properly recover if a pairing fails. If I am reading the code correctly, once a setup process fails, all subsequent attempts will fail too with the message “There is already an async setup for a nuki running.”

That needs to be fixed in the plugin, however, that might indicate that you could have success by restarting nymea in between attempts… So perhaps it’s a combination of the connections sometimes timing out as you suspected and then you only having one attempt to make it work…

Can you try again a couple of times but restart nymead in between failed attempts?

Hi @heriss!
I do use a Nuki lock with nymea on a Pi 3.
Also just re-paired it to check if it still works and it does. (Logs attached)

So my suspicion is (adding to @mzanetti thoughts):
The nymea Plugin has been build when there was only the Nuki Smartlock on the market (and I have the first one). So I suppose since opener (and other Nuki products) are not implemented in the plugin, it might get confused when other products than the Smartlock advertise themself on the same API.

Maybe check if we have the same firmware (1.7.3 for me).

Maybe you can get it work after restarting nymead (you can do that from the App) - if not let us know - we try to schedule a upgrade of the open source Nuki plugin.

 I | Nuki: Start bluetooth discovery...
 I | Nuki: Bluetooth discovery for nuki devices finished
 I | Nuki: Nuki with address "54:D2:72:A2:A9:C9" already added.
 I | Nuki: Start bluetooth discovery...
 I | Nuki: Bluetooth discovery for nuki devices finished
 I | Nuki: Nuki with address "54:D2:72:A2:A9:C9" already added.
 I | Nuki: Delete pairing information from bluez BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) 
 I | Nuki: Start bluetooth discovery...
 I | Nuki: Bluetooth discovery for nuki devices finished
 I | Nuki: Pairing confirmed, assuming the pairing mode is active. Start authentication process
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Disconnected
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Connecting
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Connected
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Discovering
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Discovered
 I | Nuki: GattService(Primary, Generic Attribute, {00001801-0000-1000-8000-00805f9b34fb}) 
 I | Nuki:      "GATT Service Changed" "{00002a05-0000-1000-8000-00805f9b34fb}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Device Information, {0000180a-0000-1000-8000-00805f9b34fb}) 
 I | Nuki:      "Hardware Revision String" "{00002a27-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Serial Number String" "{00002a25-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Firmware Revision String" "{00002a26-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Unknown Service, {a92ee200-5501-11e4-916c-0800200c9a66}) 
 I | Nuki:      "Unknown Characteristic" "{a92ee201-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Unknown Characteristic" "{a92ee202-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Unknown Characteristic" "{a92ee203-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Unknown Service, {a92ee100-5501-11e4-916c-0800200c9a66}) 
 I | Nuki:      "Unknown Characteristic" "{a92ee101-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: Init BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) 
 I | Nuki: Authenticator: Settings loaded from "/etc/nymea/plugin-nuki.conf"
 I | Nuki: NukiAuthenticator::AuthenticationStateAuthenticated
 I | Nuki: Device "54:D2:72:A2:A9:C9" authenticated.
 I | Nuki: Read thing information characteristic finished "Serial Number String" 0EA2A9C9
 I | Nuki: Read thing information characteristic finished "Hardware Revision String" 5.1
 I | Nuki: Read thing information characteristic finished "Firmware Revision String" 1.7.3
 I | Nuki: Bluetooth device "Nuki_0EA2A9C9" is now available
 I | Nuki: Executing Nuki::NukiActionAuthenticate
 I | Nuki: NukiAuthenticator::AuthenticationStateRequestPublicKey
 I | Nuki: Authenticator: Request public key fom Nuki
 I | Nuki: Authenticator: Nuki public key message received ""
 I | Nuki: NukiAuthenticator::AuthenticationStateGenerateKeyPair
 I | Nuki: Generate key pair
 I | Nuki: NukiAuthenticator::AuthenticationStateSendPublicKey
 I | Nuki: Authenticator: Send public key to Nuki
 I | Nuki: NukiAuthenticator::AuthenticationStateReadChallenge
 I | Nuki: Authenticator: Nuki challenge message received ""
 I | Nuki: NukiAuthenticator::AuthenticationStateAutorization
 I | Nuki: Authenticator: Calculate shared key
 I | Nuki: Authenticator: Calculate authenticator data
 I | Nuki: Authenticator: Send authorization authenticator to Nuki
 I | Nuki: NukiAuthenticator::AuthenticationStateReadSecondChallenge
 I | Nuki: Authenticator: Nuki challenge message received ""
 I | Nuki: NukiAuthenticator::AuthenticationStateAuthenticateData
 I | Nuki: Authenticator: Calculate shared key
 I | Nuki: Authenticator: Calculate authenticator data
 I | Nuki: Authenticator: Send authentication data to Nuki
 I | Nuki: NukiAuthenticator::AuthenticationStateAuthorizationId
 I | Nuki: Authenticator: Nuki authorization ID message received ""
 I | Nuki: NukiAuthenticator::AuthenticationStateAuthorizationIdConfirm
 I | Nuki: Authenticator: Create data for authentication ID confirm
 I | Nuki: Authenticator: Calculate shared key
 I | Nuki: Authenticator: Calculate authenticator data
 I | Nuki: Authenticator: Send authentication ID confirm to Nuki
 I | Nuki: NukiAuthenticator::AuthenticationStateStatus
 I | Nuki: Nuki authentication process finished successfully!
 I | Nuki: Authenticator: Settings saved to "/etc/nymea/plugin-nuki.conf"
 I | Nuki: NukiAuthenticator::AuthenticationStateAuthenticated
 I | Nuki: Device "54:D2:72:A2:A9:C9" authenticated.
 I | Nuki: Authentication process finished successfully.
 I | Nuki: Deleting the temporary pairing device
 I | Nuki: Setup thing "Nuki" ParamList (count:3)
     0: Param(Id: "{2477abba-874b-4c48-b543-7b911ff215b3}", Value:QVariant(QString, "Nuki_0EA2A9C9")) 
     1: Param(Id: "{30976794-6066-4f72-8135-6d50499247a5}", Value:QVariant(QString, "54:D2:72:A2:A9:C9")) 
     2: Param(Id: "{ea51d911-f94a-4d2d-97fd-9f1d4c6519bf}", Value:QVariant(QString, "0EA2A9C9")) 
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Discovered
 I | Nuki: GattService(Primary, Generic Attribute, {00001801-0000-1000-8000-00805f9b34fb}) 
 I | Nuki:      "GATT Service Changed" "{00002a05-0000-1000-8000-00805f9b34fb}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Device Information, {0000180a-0000-1000-8000-00805f9b34fb}) 
 I | Nuki:      "Hardware Revision String" "{00002a27-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Serial Number String" "{00002a25-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Firmware Revision String" "{00002a26-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Unknown Service, {a92ee200-5501-11e4-916c-0800200c9a66}) 
 I | Nuki:      "Unknown Characteristic" "{a92ee201-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Unknown Characteristic" "{a92ee202-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Unknown Characteristic" "{a92ee203-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Unknown Service, {a92ee100-5501-11e4-916c-0800200c9a66}) 
 I | Nuki:      "Unknown Characteristic" "{a92ee101-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: Init BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) 
 I | Nuki: Authenticator: Settings loaded from "/etc/nymea/plugin-nuki.conf"
 I | Nuki: NukiAuthenticator::AuthenticationStateAuthenticated
 I | Nuki: Device "54:D2:72:A2:A9:C9" authenticated.
 I | Nuki: Read thing information characteristic finished "Serial Number String" 0EA2A9C9
 I | Nuki: Read thing information characteristic finished "Hardware Revision String" 5.1
 I | Nuki: Read thing information characteristic finished "Firmware Revision String" 1.7.3
 I | Nuki: Bluetooth device "Nuki_0EA2A9C9" is now available
 I | Nuki: Executing Nuki::NukiActionRefresh
 I | Nuki: NukiController::NukiControllerStateReadingLockStates
 I | Nuki: Controller: Reading lock state
 I | Nuki: Authenticator: Encrypt data
 I | Nuki: Controller: Sending read lock states request
 I | Nuki: Authenticator: Decrypt data
 I | Nuki: Controller: Processing notification NukiUtils::CommandNukiStates
 I | Nuki: Nuki states refreshed.
 I | Nuki: NukiController::NukiControllerStateIdle
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Disconnecting
 I | Nuki: Bluetooth device "Nuki_0EA2A9C9" is now unavailable
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Disconnected
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Connecting
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Connected
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Discovering
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Disconnected
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Connecting
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Connected
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Discovering
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Discovered
 I | Nuki: GattService(Primary, Generic Attribute, {00001801-0000-1000-8000-00805f9b34fb}) 
 I | Nuki:      "GATT Service Changed" "{00002a05-0000-1000-8000-00805f9b34fb}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Device Information, {0000180a-0000-1000-8000-00805f9b34fb}) 
 I | Nuki:      "Hardware Revision String" "{00002a27-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Serial Number String" "{00002a25-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Firmware Revision String" "{00002a26-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Unknown Service, {a92ee200-5501-11e4-916c-0800200c9a66}) 
 I | Nuki:      "Unknown Characteristic" "{a92ee201-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Unknown Characteristic" "{a92ee202-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Unknown Characteristic" "{a92ee203-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Unknown Service, {a92ee100-5501-11e4-916c-0800200c9a66}) 
 I | Nuki:      "Unknown Characteristic" "{a92ee101-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: Init BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) 
 I | Nuki: Authenticator: Settings loaded from "/etc/nymea/plugin-nuki.conf"
 I | Nuki: NukiAuthenticator::AuthenticationStateAuthenticated
 I | Nuki: Device "54:D2:72:A2:A9:C9" authenticated.
 I | Nuki: Read thing information characteristic finished "Serial Number String" 0EA2A9C9
 I | Nuki: Read thing information characteristic finished "Hardware Revision String" 5.1
 I | Nuki: Read thing information characteristic finished "Firmware Revision String" 1.7.3
 I | Nuki: Bluetooth device "Nuki_0EA2A9C9" is now available
 I | Nuki: Executing Nuki::NukiActionRefresh
 I | Nuki: NukiController::NukiControllerStateReadingLockStates
 I | Nuki: Controller: Reading lock state
 I | Nuki: Authenticator: Encrypt data
 I | Nuki: Controller: Sending read lock states request
 I | Nuki: Authenticator: Decrypt data
 I | Nuki: Controller: Processing notification NukiUtils::CommandNukiStates
 I | Nuki: Nuki states refreshed.
 I | Nuki: NukiController::NukiControllerStateIdle
 I | Nuki: Executing Nuki::NukiActionUnlatch
 I | Nuki: NukiController::NukiControllerStateUnlatchActionRequestChallange
 I | Nuki: Controller: Request challenge
 I | Nuki: Authenticator: Encrypt data
 I | Nuki: Controller: Sending challange request
 I | Nuki: Authenticator: Decrypt data
 I | Nuki: Controller: Processing notification NukiUtils::CommandChallenge
 I | Nuki: NukiController::NukiControllerStateUnlatchActionExecute
 I | Nuki: Controller: Send lock request NukiUtils::LockActionUnlatch
 I | Nuki: Authenticator: Encrypt data
 I | Nuki: Controller: Sending lock request
 I | Nuki: NukiController::NukiControllerStateUnlatchActionAccepted
 I | Nuki: Authenticator: Decrypt data
 I | Nuki: Controller: Processing notification NukiUtils::CommandStatus
 I | Nuki: Controller: NukiUtils::StatusCodeAccepted
 I | Nuki: Controller: NukiUtils::StatusCodeAccepted
 I | Nuki: Authenticator: Decrypt data
 I | Nuki: Controller: Processing notification NukiUtils::CommandNukiStates
 I | Nuki: Nuki states refreshed.
 I | Nuki: Authenticator: Decrypt data
 I | Nuki: Controller: Processing notification NukiUtils::CommandNukiStates
 I | Nuki: Nuki states refreshed.
 I | Nuki: Authenticator: Decrypt data
 I | Nuki: Controller: Processing notification NukiUtils::CommandNukiStates
 I | Nuki: Nuki states refreshed.
 I | Nuki: Authenticator: Decrypt data
 I | Nuki: Controller: Processing notification NukiUtils::CommandStatus
 I | Nuki: Controller: NukiUtils::StatusCodeCompeted
 I | Nuki: NukiController::NukiControllerStateIdle
 I | Nuki: Controller: NukiUtils::StatusCodeCompeted
 I | Nuki: BluetoothDevice(Nuki_0EA2A9C9, 54:D2:72:A2:A9:C9) state changed --> BluetoothDevice::Disconnected

Thanks for your reactivity!

I tried again, directly after rebooting. Didn’t work. I confirm I’ve got the SmartLock 2 with firmware 2.9.10 (last one).

Here are the logs :

1st try

 I | Nuki: Pairing confirmed, assuming the pairing mode is active. Start authentication process
 I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Disconnected
 I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Connecting
 I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Connected
 I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Discovering
 I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Discovered
 I | Nuki: GattService(Primary, Unknown Service, {000000a2-0000-1000-8000-0026bb765291}) 
 I | Nuki:      "Unknown Characteristic" "{e604e95d-a759-4817-87d3-aa005083a0d1}"
 I | Nuki:      "Unknown Characteristic" "{00000037-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{000000a5-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki: GattService(Primary, Unknown Service, {0000003e-0000-1000-8000-0026bb765291}) 
 I | Nuki:      "Unknown Characteristic" "{e604e95d-a759-4817-87d3-aa005083a0d1}"
 I | Nuki:      "Unknown Characteristic" "{00000014-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000020-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000021-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000023-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000030-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000052-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000053-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{000000a6-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki: GattService(Primary, Unknown Service, {00000055-0000-1000-8000-0026bb765291}) 
 I | Nuki:      "Unknown Characteristic" "{e604e95d-a759-4817-87d3-aa005083a0d1}"
 I | Nuki:      "Unknown Characteristic" "{0000004c-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{0000004e-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{0000004f-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000050-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki: GattService(Primary, Unknown Service, {00000045-0000-1000-8000-0026bb765291}) 
 I | Nuki:      "Unknown Characteristic" "{e604e95d-a759-4817-87d3-aa005083a0d1}"
 I | Nuki:      "Unknown Characteristic" "{000000a5-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{0000001d-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{0000001e-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000023-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki: GattService(Primary, Unknown Service, {00000044-0000-1000-8000-0026bb765291}) 
 I | Nuki:      "Unknown Characteristic" "{e604e95d-a759-4817-87d3-aa005083a0d1}"
 I | Nuki:      "Unknown Characteristic" "{00000019-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000037-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki: GattService(Primary, Unknown Service, {a92ee100-5501-11e4-916c-0800200c9a66}) 
 I | Nuki:      "Unknown Characteristic" "{a92ee101-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Unknown Service, {a92ee200-5501-11e4-916c-0800200c9a66}) 
 I | Nuki:      "Unknown Characteristic" "{a92ee201-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Unknown Characteristic" "{a92ee202-5501-11e4-916c-0800200c9a66}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Unknown Characteristic" "{a92ee203-5501-11e4-916c-0800200c9a66}"
 I | Nuki: GattService(Primary, Device Information, {0000180a-0000-1000-8000-00805f9b34fb}) 
 I | Nuki:      "Serial Number String" "{00002a25-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Hardware Revision String" "{00002a27-0000-1000-8000-00805f9b34fb}"
 I | Nuki:      "Firmware Revision String" "{00002a26-0000-1000-8000-00805f9b34fb}"
 I | Nuki: GattService(Primary, Unknown Service, {00000096-0000-1000-8000-0026bb765291}) 
 I | Nuki:      "Unknown Characteristic" "{e604e95d-a759-4817-87d3-aa005083a0d1}"
 I | Nuki:      "Unknown Characteristic" "{00000068-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{0000008f-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki:      "Unknown Characteristic" "{00000079-0000-1000-8000-0026bb765291}"
 I | Nuki:          "Client Characteristic Configuration" "{00002902-0000-1000-8000-00805f9b34fb}"
 I | Nuki:          "Unknown Descriptor" "{dc46f0fe-81d2-4616-b5d9-6abdd796939a}"
 I | Nuki: Init BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) 
 I | Nuki: Authenticator: Settings loaded from "/etc/nymea/plugin-nuki.conf"
 I | Nuki: Read thing information characteristic finished "Serial Number String" 1CB02005
 I | Nuki: Read thing information characteristic finished "Hardware Revision String" 12.2
 I | Nuki: Read thing information characteristic finished "Firmware Revision String" 1.5.4
 I | Nuki: Bluetooth device "Nuki_1CB02005" is now available
 I | Nuki: Executing Nuki::NukiActionAuthenticate
 I | Nuki: NukiAuthenticator::AuthenticationStateRequestPublicKey
 I | Nuki: Authenticator: Request public key fom Nuki
 W | JsonRpc: RPC call timed out: "Devices" : "ConfirmPairing"
 I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Disconnected
 I | Nuki: Deleting the temporary pairing device
 I | Nuki: Bluetooth device "Nuki_1CB02005" is now unavailable
 W | Nuki: Cancel authentication process because of disconnection.
 W | ThingManager: ConfirmPairing failed for "Nuki" QUuid("{4a1cc5d9-9b44-4632-8db0-66d64efd4767}")

2nd try :
I | Nuki: Start bluetooth discovery…
I | Nuki: Bluetooth discovery for nuki devices finished
W | Nuki: Could not read serial number from bluetooth thing name “Nuki_Opener_1D97FE32”
I | Nuki: Pairing confirmed, assuming the pairing mode is active. Start authentication process
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Disconnected
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Connecting
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Connected
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Discovering
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Discovered
I | Nuki: GattService(Primary, Unknown Service, {000000a2-0000-1000-8000-0026bb765291})
I | Nuki: “Unknown Characteristic” “{e604e95d-a759-4817-87d3-aa005083a0d1}”
I | Nuki: “Unknown Characteristic” “{00000037-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{000000a5-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: GattService(Primary, Unknown Service, {0000003e-0000-1000-8000-0026bb765291})
I | Nuki: “Unknown Characteristic” “{e604e95d-a759-4817-87d3-aa005083a0d1}”
I | Nuki: “Unknown Characteristic” “{00000014-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000020-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000021-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000023-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000030-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000052-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000053-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{000000a6-0000-1000-8000-0026bb765291}”
I | Nuki: “Client Characteristic Configuration” “{00002902-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: GattService(Primary, Unknown Service, {00000055-0000-1000-8000-0026bb765291})
I | Nuki: “Unknown Characteristic” “{e604e95d-a759-4817-87d3-aa005083a0d1}”
I | Nuki: “Unknown Characteristic” “{0000004c-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{0000004e-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{0000004f-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000050-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: GattService(Primary, Unknown Service, {00000045-0000-1000-8000-0026bb765291})
I | Nuki: “Unknown Characteristic” “{e604e95d-a759-4817-87d3-aa005083a0d1}”
I | Nuki: “Unknown Characteristic” “{000000a5-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{0000001d-0000-1000-8000-0026bb765291}”
I | Nuki: “Client Characteristic Configuration” “{00002902-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{0000001e-0000-1000-8000-0026bb765291}”
I | Nuki: “Client Characteristic Configuration” “{00002902-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000023-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: GattService(Primary, Unknown Service, {00000044-0000-1000-8000-0026bb765291})
I | Nuki: “Unknown Characteristic” “{e604e95d-a759-4817-87d3-aa005083a0d1}”
I | Nuki: “Unknown Characteristic” “{00000019-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000037-0000-1000-8000-0026bb765291}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: GattService(Primary, Unknown Service, {a92ee100-5501-11e4-916c-0800200c9a66})
I | Nuki: “Unknown Characteristic” “{a92ee101-5501-11e4-916c-0800200c9a66}”
I | Nuki: “Client Characteristic Configuration” “{00002902-0000-1000-8000-00805f9b34fb}”
I | Nuki: GattService(Primary, Unknown Service, {a92ee200-5501-11e4-916c-0800200c9a66})
I | Nuki: “Unknown Characteristic” “{a92ee201-5501-11e4-916c-0800200c9a66}”
I | Nuki: “Client Characteristic Configuration” “{00002902-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Unknown Characteristic” “{a92ee202-5501-11e4-916c-0800200c9a66}”
I | Nuki: “Client Characteristic Configuration” “{00002902-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Unknown Characteristic” “{a92ee203-5501-11e4-916c-0800200c9a66}”
I | Nuki: GattService(Primary, Device Information, {0000180a-0000-1000-8000-00805f9b34fb})
I | Nuki: “Serial Number String” “{00002a25-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Hardware Revision String” “{00002a27-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Firmware Revision String” “{00002a26-0000-1000-8000-00805f9b34fb}”
I | Nuki: GattService(Primary, Unknown Service, {00000096-0000-1000-8000-0026bb765291})
I | Nuki: “Unknown Characteristic” “{e604e95d-a759-4817-87d3-aa005083a0d1}”
I | Nuki: “Unknown Characteristic” “{00000068-0000-1000-8000-0026bb765291}”
I | Nuki: “Client Characteristic Configuration” “{00002902-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{0000008f-0000-1000-8000-0026bb765291}”
I | Nuki: “Client Characteristic Configuration” “{00002902-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: “Unknown Characteristic” “{00000079-0000-1000-8000-0026bb765291}”
I | Nuki: “Client Characteristic Configuration” “{00002902-0000-1000-8000-00805f9b34fb}”
I | Nuki: “Unknown Descriptor” “{dc46f0fe-81d2-4616-b5d9-6abdd796939a}”
I | Nuki: Init BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05)
I | Nuki: Authenticator: Settings loaded from “/etc/nymea/plugin-nuki.conf”
I | Nuki: Read thing information characteristic finished “Serial Number String” 1CB02005
I | Nuki: Read thing information characteristic finished “Hardware Revision String” 12.2
I | Nuki: Read thing information characteristic finished “Firmware Revision String” 1.5.4
I | Nuki: Bluetooth device “Nuki_1CB02005” is now available
I | Nuki: Executing Nuki::NukiActionAuthenticate
I | Nuki: NukiAuthenticator::AuthenticationStateRequestPublicKey
I | Nuki: Authenticator: Request public key fom Nuki
W | JsonRpc: RPC call timed out: “Devices” : “ConfirmPairing”
I | Nuki: BluetoothDevice(Nuki_1CB02005, 54:D2:72:B0:20:05) state changed --> BluetoothDevice::Disconnected
I | Nuki: Deleting the temporary pairing device
I | Nuki: Bluetooth device “Nuki_1CB02005” is now unavailable
W | Nuki: Cancel authentication process because of disconnection.
W | ThingManager: ConfirmPairing failed for “Nuki” QUuid("{4a1cc5d9-9b44-4632-8db0-66d64efd4767}").

I suppose that has to do with the lock version 2. I know that some people trying to implement a python service to unlock via bluetooth had to modify their procedure…

Any chance to have the new locks implemented? Thanks! Laurent

Hi,

Here is where I found the indication that the authentication process changes between SmartLock version 1 and 2. Maybe a hint can be found there…

Have a nice evening! Laurent

Hi Laurent,
thanks for your detailed report, this is great help!

Obviously work needs to be done on the Nuki Plugin.
Please be patient with us since our dev team maintains open source plugins in their “free time” - so it could take a bit until they upgrade the plugin.
Integrating things using ZigBee is way less complicated, but Nuki chose not to integrate ZigBee in their 2.0 Lock.

We don’t try to copy ugly hacks, but make a proper integration. :slight_smile:

Thanks a lot. Good news that you’ll maintain it! I’ll wait…

If I can be any help with testing, let me know…

Have a nice week! Laurent

1 Like