diff --git a/src/lib/Accessory.ts b/src/lib/Accessory.ts index 1a4db3275..d63a40129 100644 --- a/src/lib/Accessory.ts +++ b/src/lib/Accessory.ts @@ -420,17 +420,28 @@ export class Accessory extends EventEmitter { if (this.primaryService === service) { // check if we are removing out primary service this.primaryService = undefined; } + this.removeLinkedService(service); // remove it from linked service entries on the local accessory if (!this.bridged) { this._updateConfiguration(); } else { this.emit(AccessoryEventTypes.SERVICE_CONFIGURATION_CHANGE, clone({accessory:this, service:service})); + + for (const accessory of this.bridgedAccessories) { + accessory.removeLinkedService(service); + } } service.removeAllListeners(); } } + private removeLinkedService(service: Service) { + for (const service of this.services) { + service.removeLinkedService(service); + } + } + getService = >(name: string | T) => { for (let index in this.services) { const service = this.services[index];