UNPKG

homebridge-vwconnectid

Version:
79 lines 5.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClimatisationAccessory = void 0; class ClimatisationAccessory { constructor(platform, accessory) { this.platform = platform; this.accessory = accessory; this.accessory.getService(this.platform.Service.AccessoryInformation) .setCharacteristic(this.platform.Characteristic.Manufacturer, 'Volkswagen') .setCharacteristic(this.platform.Characteristic.Model, this.platform.vwConn.vehicles.data.find(({ vin }) => vin === this.platform.config.weconnect.vin).model) .setCharacteristic(this.platform.Characteristic.SerialNumber, this.platform.config.weconnect.vin); this.service = this.accessory.getService(this.platform.Service.Thermostat) || this.accessory.addService(this.platform.Service.Thermostat); this.service.setCharacteristic(this.platform.Characteristic.Name, this.accessory.displayName); this.service.getCharacteristic(this.platform.Characteristic.TargetTemperature) .onSet(this.setTargetTemperature.bind(this)) .onGet(this.getTargetTemperature.bind(this)); this.service.getCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState) .onSet(this.setCurrentHeatingCoolingState.bind(this)) .onGet(this.getCurrentHeatingCoolingState.bind(this)); this.service.getCharacteristic(this.platform.Characteristic.CurrentTemperature) .onGet(this.getTargetTemperature.bind(this)); this.platform.idStatusEmitter.on('climatisationHeatingStarted', () => { this.service.updateCharacteristic(this.platform.Characteristic.CurrentHeatingCoolingState, this.platform.Characteristic.CurrentHeatingCoolingState.HEAT); this.service.updateCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState, this.platform.Characteristic.TargetHeatingCoolingState.HEAT); }); this.platform.idStatusEmitter.on('climatisationCoolingStarted', () => { this.service.updateCharacteristic(this.platform.Characteristic.CurrentHeatingCoolingState, this.platform.Characteristic.CurrentHeatingCoolingState.COOL); this.service.updateCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState, this.platform.Characteristic.TargetHeatingCoolingState.COOL); }); this.platform.idStatusEmitter.on('climatisationStopped', () => { this.service.updateCharacteristic(this.platform.Characteristic.CurrentHeatingCoolingState, this.platform.Characteristic.CurrentHeatingCoolingState.OFF); this.service.updateCharacteristic(this.platform.Characteristic.TargetHeatingCoolingState, this.platform.Characteristic.TargetHeatingCoolingState.OFF); }); this.platform.idStatusEmitter.on('climatisationTemperatureUpdated', () => { this.service.updateCharacteristic(this.platform.Characteristic.TargetTemperature, this.platform.vwConn.idData.climatisation.climatisationSettings.value.targetTemperature_C); this.service.updateCharacteristic(this.platform.Characteristic.CurrentTemperature, this.platform.vwConn.idData.climatisation.climatisationSettings.value.targetTemperature_C); }); } async setTargetTemperature(value) { value = Math.round(value * 2) / 2; this.platform.vwConn.setClimatisation(value); this.platform.log.info('Set Characteristic TargetTemperature ->', value); } async getCurrentHeatingCoolingState() { var _a, _b, _c; if (typeof ((_c = (_b = (_a = this.platform.vwConn.idData.climatisation) === null || _a === void 0 ? void 0 : _a.climatisationStatus) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.climatisationState) === 'undefined') return 0; const state = this.platform.vwConn.idData.climatisation.climatisationStatus.value.climatisationState; let ret = 0; this.platform.log.debug('Get Characteristic CurrentHeatingCoolingState ->', state); if (state === 'cooling') { ret = this.platform.Characteristic.CurrentHeatingCoolingState.COOL; } else if (state === 'heating') { ret = this.platform.Characteristic.CurrentHeatingCoolingState.HEAT; } return ret; } async setCurrentHeatingCoolingState(value) { if (value === this.platform.Characteristic.CurrentHeatingCoolingState.OFF) { this.platform.vwConn.stopClimatisation(); } else { this.platform.vwConn.startClimatisation(); } this.platform.log.info('Set Characteristic CurrentHeatingCoolingState ->', value); } async getTargetTemperature() { var _a, _b, _c; if (typeof ((_c = (_b = (_a = this.platform.vwConn.idData.climatisation) === null || _a === void 0 ? void 0 : _a.climatisationSettings) === null || _b === void 0 ? void 0 : _b.value) === null || _c === void 0 ? void 0 : _c.targetTemperature_C) === 'undefined') return 10; const targetTemperature = this.platform.vwConn.idData.climatisation.climatisationSettings.value.targetTemperature_C; this.platform.log.debug('Get Characteristic TargetTemperature ->', targetTemperature); return targetTemperature; } } exports.ClimatisationAccessory = ClimatisationAccessory; //# sourceMappingURL=climatisationAccessory.js.map