Skip to content

Commit

Permalink
fix: Ember: Lumi manuf code workaround for permit join (#1334)
Browse files Browse the repository at this point in the history
  • Loading branch information
Nerivec authored Mar 9, 2025
1 parent 84f16d7 commit b87246b
Showing 1 changed file with 11 additions and 7 deletions.
18 changes: 11 additions & 7 deletions src/adapter/ember/adapter/emberAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,7 @@ const WORKAROUND_JOIN_MANUF_IEEE_PREFIX_TO_CODE: {[ieeePrefix: string]: Zcl.Manu
// NOTE: Lumi has a new prefix registered since 2021, in case they start using that one with new devices, it might need to be added here too...
// "0x18c23c" https://maclookup.app/vendors/lumi-united-technology-co-ltd
'0x54ef44': Zcl.ManufacturerCode.LUMI_UNITED_TECHOLOGY_LTD_SHENZHEN,
'0x04cf8c': Zcl.ManufacturerCode.LUMI_UNITED_TECHOLOGY_LTD_SHENZHEN,
};

/**
Expand Down Expand Up @@ -402,6 +403,16 @@ export class EmberAdapter extends Adapter {
case SLStatus.ZIGBEE_NETWORK_CLOSED: {
this.oneWaitress.resolveEvent(OneWaitressEvents.STACK_STATUS_NETWORK_CLOSED);
logger.info(`[STACK STATUS] Network closed.`, NS);

if (this.manufacturerCode !== DEFAULT_MANUFACTURER_CODE) {
await this.queue.execute<void>(async () => {
logger.debug(`[WORKAROUND] Reverting coordinator manufacturer code to default.`, NS);
await this.ezsp.ezspSetManufacturerCode(DEFAULT_MANUFACTURER_CODE);

this.manufacturerCode = DEFAULT_MANUFACTURER_CODE;
});
}

break;
}
case SLStatus.ZIGBEE_CHANNEL_CHANGED: {
Expand Down Expand Up @@ -1864,13 +1875,6 @@ export class EmberAdapter extends Adapter {
throw new Error(`[ZDO] Failed set join policy with status=${SLStatus[setJPstatus]}.`);
}
} else {
if (this.manufacturerCode !== DEFAULT_MANUFACTURER_CODE) {
logger.debug(`[WORKAROUND] Reverting coordinator manufacturer code to default.`, NS);
await this.ezsp.ezspSetManufacturerCode(DEFAULT_MANUFACTURER_CODE);

this.manufacturerCode = DEFAULT_MANUFACTURER_CODE;
}

await this.ezsp.ezspClearTransientLinkKeys();

const setJPstatus = await this.emberSetJoinPolicy(EmberJoinDecision.ALLOW_REJOINS_ONLY);
Expand Down

0 comments on commit b87246b

Please sign in to comment.