Skip to content

Commit 5fc6751

Browse files
authored
Force classic join/re-join for devices (dresden-elektronik#7497)
See code comment. This mainly affects ConBee III but could also affect ConBee II when setup is downgraded from ConBee III.
1 parent 4e65254 commit 5fc6751

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

zdp/zdp_handlers.cpp

+6-1
Original file line numberDiff line numberDiff line change
@@ -343,13 +343,18 @@ void ZDP_HandleNodeDescriptorRequest(const deCONZ::ApsDataIndication &ind, deCON
343343
}
344344

345345
quint16 mfCode = VENDOR_DDEL;
346+
// Force old school Zigbee join/re-join without APS level per device link keys for now via Node Descriptor
347+
// server mask. Since the random generated per device link keys aren't stored or backuped anywhere,
348+
// this caused problems for rejoining devices of some brands and perhaps battery drain.
349+
// For proper support of per device APS link keys we need further code to store them in database and
350+
// forward to firmware.
346351
quint16 serverMask = 0x0040; // compatible with stack revisions below version 21
347352
QByteArray ndRaw;
348353

349354
if (!self->nodeDescriptor().isNull())
350355
{
351356
ndRaw = self->nodeDescriptor().toByteArray();
352-
serverMask = static_cast<quint16>(self->nodeDescriptor().serverMask()) & 0xFFFF;
357+
// serverMask = static_cast<quint16>(self->nodeDescriptor().serverMask()) & 0xFFFF;
353358
}
354359
else // fallback if not known
355360
{

0 commit comments

Comments
 (0)