Hi, i’m rather new to ZigBee-Binding and would like to understand where/how the coordinator stores the linked devices?
With Zigbee, is it similar to Zwave stored permanently in the stick itself…so links will not get lost if i switch the stick in another pc?
Is the communication between devices and the coordinator secured? or how does the pairing work?
Thanks a lto Norbert
I do not think so but @chris is our real expert.
It doesn’t - the coordinator has no knowledge of devices on the network.
It’s not really very easy to transfer the network to another stick - it is possible, and the underlying libraries used in the binding do support this, but it’s complex to implement and not supported by the binding.
Yes, all ZigBee communications is secured. ZigBee uses a number of different security layers and its security is very good.
So if i move to another Raspi i would best have to pair devices again. no problem at this stage but i’m wondering what the others are doing with many more devices i guess. that would mean a huge effort to bring things up and running again. Zwave from my experience is much easier to re-setup.
Chris, do you have any web link in mind where zigbee is best explained to better start my journey?
Unless you can take the same coordinator, then yes.
It is not easy to change the coordinator due to the high security in ZigBee. It is possible with the Ember NCP, but not others (as far as I know) - certainly Telegesis is not possible without a new firmware which is not available to the public.
Yes, this is because the security on ZWave is very low.
In many ways, ZigBee is easier to transfer in that the coordinator does not know anything about the network - the binding stores all this information. The BIG problem is that changing coordinator is not simple due to security - firstly the keys needs to be transferred (this is easy!), but also ZigBee uses counters to ensure that a record/replay attack is not possible. The standard requires that counters can never go backwards, so we also need to transfer these counters to the new coordinator, and this is the part that is only possible with Ember coordinators.
At some stage I can look at this for Ember - as I said, this functionality is fundamentally available and tested, but there needs to be a way to do it in the binding. It might be possible to use a console command to do this reasonably easily as I already have this feature available in my console application.
I hope that helps - if you are using Ember, then there is a way forward, but not on other coordinators.
Looking at this further, there is already the ability to do this using the console
netbackup command. This will output a string that you can save, and then use this to restore - also using the same
netbackup command and appending the string to the end of the command.
You should retain this string, and also the XML files that are stored in the
userdata/zigbee folder, and with this, and an Ember coordinator, you should be able to completely restore the network.
How can I delete the devices from the coordinator? I have the problem that deleted devices keep appearing in the inbox and this blocked the rejoin. The deletion of the xml files and the cache didn’t work either.
I use the
Telegesis ETRX3 Dongle
There is no such thing - ie there is nothing to delete. The coordinator does not know what devices are included in the network.
ZigBee does not work like (for example) ZWave where the controller knows all the devices. ZigBee is more like an IP network. A device joins the network, is given an address and the key, and can then do what it likes on the network. This is similar to your home IP network - your router gives you an IP address, and you are then free to use the network.
Thanks for the info, then there seems to be a problem with the binding, is there another possibility to delete permanently the devices?
What is the problem?
If you remove the XML, and there is no thing defined, then the binding will not know anything about the device unless it is known in the network (ie devices are actively reporting that they can hear it).
Note that if you are removing the XML, then it MUST be done when the binding is stopped.
I don’t think there is any problem with the binding - it has no other storage to remember devices!
The problem is that deleted devices keep appearing in the inbox, and thus a relearn apparently does not work.
Deleting the xml is just a workaround for me to get the problem under control.
The origin of the whole thing was the update to OH 2.5 afterwards, unfortunately all Zigbee devices were offline.
Means I have to shutdown the devices before i can delete the thing in openhab? After that i can rejoin the device?
I’m a bit confused what you are trying to do?
You say -:
But then you say -:
The two are not connected. You do not need to delete the device to rejoin the device. The device database is linked by EUI - this does not change - ever.
Please describe the problem. You have not done this - you have just asked “How can I delete the devices from the coordinator?”.
Please describe what you are trying to acheive. Are you trying to join a device that was previously joined, or are you just trying to remove a device? Or something else?
You are right, I was ready too deep in the solution and not in the original problem.
At irregular intervals I have the topic that devices (things) are offline “Node has not completed discovery”. This usually only affects Xiaomi Aqara sensors.
In order to bring them back online, I deleted the associated thing and rejoin it, but this does not currently work because the deleted thing always appears in the inbox. After rejoin, I have the message “Node has not completed discovery” again.
Unfortunately after the update to OH 2.5 all Zigbee devices are offline.
For this reason I was looking for a way to delete the device.
The fact that it is already in the inbox will not matter. The binding, or more specifically the ZigBee libraries, do not care at all about the inbox. At the ZigBee level, it will still open the network for joining, and it will still allow a device to join.
If the device is not completing discovery, this is something unrelated. Can you provide a debug log? Are you creating the thing while the device is awake?
zigbee.log (209.8 KB)
Here are the log file, from the time stamp 17:57 I tried to rejoin the device 00158D0002720DCC which is an Aqara temperature sensor.
The device was also online during the entire log file!