From 0e11ae07d9bcde0142202938f9739bd1818fe373 Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Fri, 4 Feb 2022 18:02:47 +0100 Subject: [PATCH] Recompute device definition when device changes modelID. https://github.com/Koenkk/zigbee-herdsman-converters/issues/3016 --- lib/model/device.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/model/device.ts b/lib/model/device.ts index 84f40bed8..8363b6237 100644 --- a/lib/model/device.ts +++ b/lib/model/device.ts @@ -5,6 +5,7 @@ import zigbeeHerdsmanConverters from 'zigbee-herdsman-converters'; export default class Device { public zh: zh.Device; private _definition: zhc.Definition; + private _definitionModelID: string; get ieeeAddr(): string {return this.zh.ieeeAddr;} get ID(): string {return this.zh.ieeeAddr;} @@ -13,8 +14,11 @@ export default class Device { return this.zh.type === 'Coordinator' ? 'Coordinator' : this.options?.friendly_name || this.ieeeAddr; } get definition(): zhc.Definition { - if (!this._definition && !this.zh.interviewing) { + // Some devices can change modelID, reconsider the definition in that case. + // https://github.com/Koenkk/zigbee-herdsman-converters/issues/3016 + if (!this.zh.interviewing && (!this._definition || this._definitionModelID !== this.zh.modelID)) { this._definition = zigbeeHerdsmanConverters.findByDevice(this.zh); + this._definitionModelID = this.zh.modelID; } return this._definition; }