Dear support team & community
Our company tries to integrate communications between our NRF52840-based product and a Philips Hue Bridge gateway.
We successfully connect, bind and exchange ZLL & Zigbee HA frames.
In the process of development, we encountered the problem, that if
- our NRF52840-based device (Zigbee HA, On/Off) is deleted in the Philips Hue app while being turned off
- and while our device is factory reset during booting (zb_set_nvram_erase_at_start(true);)
our device will connect to the Philips Hue Bridge's network, but won't be found in a scan for new devices in the Philips Hue App.
To be found again by the Philips Hue Bridge, our product needs to change its MAC-Address.
For us, this is not an acceptable way to workaround the problem, as it requires a complex procedure to detect when to trigger a MAC-switch and do a reboot of the device, which causes disconnection of BLE communications with our own Smartphone App (we use Multiprotocol BLE + Zigbee which is working flawlessly).
An original factory reset Philips Hue Lightbulb behaves correctly in the same scenario.
We did some protocol sniffing, comparing communications for
- a factory reset device (failing find, but network connection successful)
- a fresh device (new MAC-address, successful)
- a factory reset Philips Hue Lamp (same MAC-address, successful)
In the failing case we encountered several differences:
- The Philips Hue Bridge does not send a "Node Descriptor Request" packet: Therefore the Philips Hue Gateway does not list our device.
- Our device sends "Mgmt Permit Joining Req" packets directly after device announcement. This is not the case in the other scenarios. We cannot explain how this can be since our device was factory reset and strongly suspect this to be cause of our problems.
- Our device sends a "Device Announcement" packet with the NWK Header's frame control flag "Source IEEE Address Included" being set, which is not the case for the Philips Hue Lightbulb. We do not think this to be relevant, as the device announcement packets from a fresh device with new MAC-address have the same flag set (yet working flawlessly).
- We see some early "Route Request: ManyToOne No RRT" frames
Do you have some ideas what might cause our problems? How would we be able to prevent our own device from sending "Mgmt Permit Joining Req" packets? Do you need more information?
Best regards
Markus Wegmann, Technokrat GmbH
A factory reset device (failing find, but network connection successful). Note the "Mgmt Permit Joining Req" packets after device announcement: