homebridge-orbit-irrigation
Version:
Orbit Irrigation System platform plugin for [Homebridge](https://github.com/nfarina/homebridge).
51 lines • 2.57 kB
JavaScript
export default class battery {
platform;
log;
Service;
Characteristic;
constructor(platform, log = platform.log) {
this.platform = platform;
this.log = log;
this.Service = platform.Service;
this.Characteristic = platform.Characteristic;
}
createBatteryService(device) {
let batteryStatus;
if (device.location_name) {
this.log.debug('create battery service for %s', device.location_name + ' ' + device.name);
batteryStatus = new this.Service.Battery(device.location_name + ' ' + device.name, device.id);
}
else {
this.log.debug('create battery service for %s', device.name);
batteryStatus = new this.Service.Battery(device.name, device.id);
}
let percent = 100;
if (device.battery.percent) {
percent = device.battery.percent;
}
else if (device.battery.mv) {
percent = ((device.battery.mv - 2000) / (3400 - 2000)) * 100 > 100 ? 100 : ((device.battery.mv - 2000) / (3400 - 2000)) * 100;
}
batteryStatus
.setCharacteristic(this.Characteristic.ChargingState, this.Characteristic.ChargingState.NOT_CHARGEABLE)
.setCharacteristic(this.Characteristic.StatusLowBattery, this.Characteristic.StatusLowBattery.BATTERY_LEVEL_NORMAL)
.setCharacteristic(this.Characteristic.BatteryLevel, percent);
return batteryStatus;
}
configureBatteryService(batteryStatus) {
this.log.debug('configured battery service for %s', batteryStatus.getCharacteristic(this.Characteristic.Name).value);
batteryStatus.getCharacteristic(this.Characteristic.StatusLowBattery).onGet(this.getStatusLowBattery.bind(this, batteryStatus));
}
async getStatusLowBattery(batteryStatus) {
const name = batteryStatus.getCharacteristic(this.Characteristic.Name).value;
const batteryValue = batteryStatus.getCharacteristic(this.Characteristic.BatteryLevel).value;
let currentValue = batteryStatus.getCharacteristic(this.Characteristic.StatusLowBattery).value;
if (batteryValue <= this.platform.lowBattery) {
this.log.warn('%s Battery Status Low %s% Remaining', name, batteryValue);
batteryStatus.setCharacteristic(this.Characteristic.StatusLowBattery, this.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW);
currentValue = this.Characteristic.StatusLowBattery.BATTERY_LEVEL_LOW;
}
return currentValue;
}
}
//# sourceMappingURL=battery.js.map