@elshaer/homebridge-lg-thinq
Version:
A Homebridge plugin for controlling/monitoring LG ThinQ device via LG ThinQ platform.
37 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.baseDevice = void 0;
const events_1 = require("events");
const helper_1 = require("./helper");
class baseDevice extends events_1.EventEmitter {
constructor(platform, accessory) {
super();
this.platform = platform;
this.accessory = accessory;
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) {
const device = this.accessory.context.device;
this.platform.log.debug('[' + device.name + '] Received snapshot: ', JSON.stringify(snapshot));
device.data.snapshot = (0, helper_1.mergeDeep)({}, device.snapshot, snapshot);
this.updateAccessoryCharacteristic(device);
}
get config() {
return this.platform.config.devices.find(enabled => enabled.id === this.accessory.context.device.id) || {};
}
static model() {
return '';
}
}
exports.baseDevice = baseDevice;
//# sourceMappingURL=baseDevice.js.map