Worked around bug where receiver was not turning off
This commit is contained in:
parent
6f7fc4c2af
commit
3ac6ffb8a3
@ -82,7 +82,9 @@ class HarmonyDataProvider extends EventEmitter {
|
|||||||
|
|
||||||
//Turn off devices
|
//Turn off devices
|
||||||
devicesToTurnOff.forEach(async (device: HarmonyDevice) => {
|
devicesToTurnOff.forEach(async (device: HarmonyDevice) => {
|
||||||
await device.powerOff();
|
if (device) {
|
||||||
|
await device.powerOff();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
this._states[controlUnitName] = undefined;
|
this._states[controlUnitName] = undefined;
|
||||||
@ -299,16 +301,17 @@ class HarmonyDataProvider extends EventEmitter {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
private connect = async (hubs: Array<IHub>) => {
|
private connect = async (hubs: Array<IHub>) => {
|
||||||
// for (let i = 0; i < hubs.length; i++) {
|
let readyCount = 0;
|
||||||
// const hub = hubs[i];
|
|
||||||
// const newHarmonyHub = new HarmonyHub(hub.Ip, this._log);
|
|
||||||
// this._hubs[hub.Name] = newHarmonyHub;
|
|
||||||
// await newHarmonyHub.initialize();
|
|
||||||
// }
|
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
hubs.map(async (hub: IHub): Promise<void> => {
|
hubs.map(async (hub: IHub): Promise<void> => {
|
||||||
const newHarmonyHub = new HarmonyHub(hub.Name, hub.Ip, this._log);
|
const newHarmonyHub = new HarmonyHub(hub.Name, hub.Ip, this._log);
|
||||||
this._hubs[hub.Name] = newHarmonyHub;
|
this._hubs[hub.Name] = newHarmonyHub;
|
||||||
|
newHarmonyHub.on("Ready", () => {
|
||||||
|
readyCount++;
|
||||||
|
if (readyCount === Object.keys(this._hubs).length) {
|
||||||
|
this.emit("Ready");
|
||||||
|
}
|
||||||
|
})
|
||||||
await newHarmonyHub.initialize();
|
await newHarmonyHub.initialize();
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
@ -76,6 +76,13 @@ export class HarmonyDevice {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
//Execute command
|
//Execute command
|
||||||
|
//HACK to fix Harmon Kardon receiver not turning off
|
||||||
|
if (command.command === "PowerOff") {
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
await this._harmony.sendCommand(JSON.stringify(command));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
await this._harmony.sendCommand(JSON.stringify(command));
|
await this._harmony.sendCommand(JSON.stringify(command));
|
||||||
|
|
||||||
//Sleep
|
//Sleep
|
||||||
|
@ -55,7 +55,6 @@ export class HarmonyHub extends EventEmitter {
|
|||||||
harmony: this._harmony
|
harmony: this._harmony
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
this._log(`Harmony data provider ready`);
|
|
||||||
this.emit("Ready");
|
this.emit("Ready");
|
||||||
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
@ -49,9 +49,10 @@ class HarmonyMatrixPlatform {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//Emit devices if requested
|
//Emit devices if requested
|
||||||
if (this.config.EmitDevicesOnStartup) {
|
|
||||||
this.dataProvider.on("Ready", () => {
|
|
||||||
|
|
||||||
|
this.dataProvider.on("Ready", () => {
|
||||||
|
this.log("All hubs connected");
|
||||||
|
if (this.config.EmitDevicesOnStartup) {
|
||||||
const hubs = this.dataProvider!.hubs;
|
const hubs = this.dataProvider!.hubs;
|
||||||
Object.values(hubs).forEach((hub: HarmonyHub) => {
|
Object.values(hubs).forEach((hub: HarmonyHub) => {
|
||||||
const deviceDictionary = hub.devices;
|
const deviceDictionary = hub.devices;
|
||||||
@ -64,9 +65,9 @@ class HarmonyMatrixPlatform {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user