diff --git a/src/Accessories/ControlUnit.ts b/src/Accessories/ControlUnit.ts index c40a199..7491bf2 100644 --- a/src/Accessories/ControlUnit.ts +++ b/src/Accessories/ControlUnit.ts @@ -35,7 +35,6 @@ export interface IControlUnitProps { api: any, log: any, homebridge: any, - isExternal: boolean, } /** @@ -48,7 +47,6 @@ export class ControlUnit implements IAccessory { //fields private log: any = {}; private displayName: string = ""; - private isExternal: boolean = false; //Service fields private televisionService: HAPNodeJS.Service | undefined; @@ -73,8 +71,7 @@ export class ControlUnit implements IAccessory { Service = props.api.hap.Service; Characteristic = props.api.hap.Characteristic; this.name = props.displayName; - this.displayName = props.isExternal ? `${props.displayName}-Remote` : props.displayName; - this.isExternal = props.isExternal; + this.displayName = props.displayName; this.activities = props.activities; @@ -150,12 +147,10 @@ export class ControlUnit implements IAccessory { * Event handler for SET active characteristic */ private onSetAccessoryActive = async (value: any) => { - if (!this.isExternal) { - switch (value) { - case 0: this.dataProvider.powerOff(this.name); break; - //Turn on with first activity - case 1: this.dataProvider.powerOn(this.name, this.activities[0]); break; - } + switch (value) { + case 0: this.dataProvider.powerOff(this.name); break; + //Turn on with first activity + case 1: this.dataProvider.powerOn(this.name, this.activities[0]); break; } } @@ -171,18 +166,14 @@ export class ControlUnit implements IAccessory { * Event handler for SET remote key */ private onSetRemoteKey = async (key: any) => { - if (this.isExternal) { - this.dataProvider.sendKeyPress(this.name, key); - } + this.dataProvider.sendKeyPress(this.name, key); } /** * Event handler for SET active identifier characteristic */ private onSetActiveIdentifier = async (identifier: any) => { - if (!this.isExternal) { - this.dataProvider.startActivity(this.name, this.activities[identifier]); - } + this.dataProvider.startActivity(this.name, this.activities[identifier]); } /** @@ -232,11 +223,9 @@ export class ControlUnit implements IAccessory { * Event handler for SET volume characteristic */ private onSetVolumeSelector = async (value: any) => { - if (this.isExternal) { - switch (value) { - case 0: this.dataProvider.volumeUp(this.name); break; - case 1: this.dataProvider.volumeDown(this.name); break; - } + switch (value) { + case 0: this.dataProvider.volumeUp(this.name); break; + case 1: this.dataProvider.volumeDown(this.name); break; } } diff --git a/src/index.ts b/src/index.ts index 14b2cb7..acf90aa 100644 --- a/src/index.ts +++ b/src/index.ts @@ -26,8 +26,8 @@ class HarmonyMatrixPlatform { log: any = {}; config: any = {}; api: any; - externalAccessories: Array = []; dataProvider: HarmonyDataProvider | null; + controlUnits: Array = []; constructor(log: any, config: any, api: any) { this.log = log; @@ -48,7 +48,7 @@ class HarmonyMatrixPlatform { this.log(`Publishing external accessories`); //This is required in order to have multiple tv remotes on one platform - this.externalAccessories.forEach((accessory: ControlUnit) => { + this.controlUnits.forEach((accessory: ControlUnit) => { this.api.publishExternalAccessories("HarmonyMatrixPlatform", [accessory.platformAccessory]); }) @@ -109,7 +109,7 @@ class HarmonyMatrixPlatform { //Parse control units let configControlUnits: any = this.config["ControlUnits"]; - let controlUnits: Array = []; + configControlUnits.forEach((configControlUnit: any) => { //Parse activities list let configActivities: any = configControlUnit["Activities"]; @@ -146,31 +146,17 @@ class HarmonyMatrixPlatform { log: this.log, activities: activities, homebridge: Homebridge, - isExternal: false - }); - - let controlUnitExternal: ControlUnit = new ControlUnit({ - dataProvider: this.dataProvider!, - displayName: `${configControlUnit["DisplayName"]}`, - api: this.api, - log: this.log, - activities: activities, - homebridge: Homebridge, - isExternal: true }); //@ts-ignore let accessory = controlUnit as homebridge.platformAccessory; //@ts-ignore - let externalAccessory = controlUnitExternal as homebridge.platformAccessory; //Add control unit - controlUnits.push(accessory); - //Add to list of remotes - this.externalAccessories.push(externalAccessory); + this.controlUnits.push(accessory); this.log(`INFO - Added ControlUnit`); }); - callback(controlUnits); + callback(this.controlUnits); } } \ No newline at end of file