@shadman-a/homebridge-my-ac
Version:
A Homebridge plugin for controlling/monitoring LG ThinQ devices via LG ThinQ platform.
35 lines • 1.62 kB
JavaScript
import { EventEmitter } from 'events';
export class BaseDevice extends EventEmitter {
platform;
accessory;
logger;
constructor(platform, accessory, logger) {
super();
this.platform = platform;
this.accessory = accessory;
this.logger = logger;
const device = accessory.context.device;
const { AccessoryInformation } = this.platform.Service;
const serviceAccessoryInformation = accessory.getService(AccessoryInformation) || accessory.addService(AccessoryInformation);
// set accessory information
serviceAccessoryInformation
.setCharacteristic(this.platform.Characteristic.Manufacturer, 'LG')
.setCharacteristic(this.platform.Characteristic.Model, device.salesModel || device.model || 'Unknown')
.setCharacteristic(this.platform.Characteristic.SerialNumber, this.config.serial_number || device.serialNumber || 'Unknown');
}
updateAccessoryCharacteristic(device) {
this.accessory.context.device = device;
}
update(snapshot) {
this.platform.log.debug('[' + this.accessory.context.device.name + '] Received snapshot: ', JSON.stringify(snapshot));
this.accessory.context.device.data.snapshot = { ...this.accessory.context.device.snapshot, ...snapshot };
this.updateAccessoryCharacteristic(this.accessory.context.device);
}
get config() {
return this.platform.config.devices.find((enabled) => enabled.id === this.accessory.context.device.id) || {};
}
static model() {
return '';
}
}
//# sourceMappingURL=baseDevice.js.map