homebridge-vwconnectid
Version:
Homebridge plugin for Volkswagen ID.x cars
33 lines • 1.95 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.DestinationSwitchAccessory = void 0;
class DestinationSwitchAccessory {
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.Switch) ||
this.accessory.addService(this.platform.Service.Switch);
this.service.setCharacteristic(this.platform.Characteristic.Name, accessory.context.device.name);
this.service.getCharacteristic(this.platform.Characteristic.On)
.onGet(this.getOn.bind(this))
.onSet(this.setOn.bind(this));
}
async getOn() {
return false;
}
async setOn(value) {
if (value) {
const destination = { destinations: [{ poiProvider: 'unknown', destinationName: this.accessory.context.device.name, address: this.accessory.context.device.address, destinationSource: 'MobileApp', geoCoordinate: { longitude: this.accessory.context.device.lon, latitude: this.accessory.context.device.lat } }] };
this.platform.vwConn.setDestination(destination);
setTimeout(() => {
this.accessory.getService(this.platform.Service.Switch).getCharacteristic(this.platform.Characteristic.On).updateValue(false);
}, 500);
}
}
}
exports.DestinationSwitchAccessory = DestinationSwitchAccessory;
//# sourceMappingURL=destinationSwitchAccessory.js.map