homebridge-izone-airconditioner
Version:
Homebridge plugin for the iZone airconditioner controller.
62 lines (60 loc) • 3.37 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = _default;
var _api = _interopRequireDefault(require("./api"));
var _currentHeaterCoolerState = require("./handlers/currentHeaterCoolerState");
var _targetHeaterCoolerState = require("./handlers/targetHeaterCoolerState");
var _currentTemperature = require("./handlers/currentTemperature");
var _rotationSpeed = require("./handlers/rotationSpeed");
var _active = require("./handlers/active");
var _heatingThreshold = require("./handlers/heatingThreshold");
var _coolingThreshold = require("./handlers/coolingThreshold");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
// handlers
function _default(homebridge) {
var Service = homebridge.hap.Service;
var Characteristic = homebridge.hap.Characteristic;
var Thermostat = function Thermostat(log, config) {
log('config', config);
var service = new Service.HeaterCooler(config.name);
var apiClient = (0, _api["default"])(config.url);
var getName = function getName(callback) {
log('getName');
var value = config.name;
callback(null, value);
};
return {
getServices: function getServices() {
var informationService = new Service.AccessoryInformation();
informationService.setCharacteristic(Characteristic.Manufacturer, 'iZone').setCharacteristic(Characteristic.Model, '-').setCharacteristic(Characteristic.SerialNumber, '-');
service.getCharacteristic(Characteristic.Active).on('get', (0, _active.get)(apiClient, log)).on('set', (0, _active.set)(apiClient, log));
service.getCharacteristic(Characteristic.CurrentHeaterCoolerState).on('get', (0, _currentHeaterCoolerState.get)(apiClient, log, Characteristic));
service.getCharacteristic(Characteristic.TargetHeaterCoolerState).on('get', (0, _targetHeaterCoolerState.get)(apiClient, log, Characteristic)).on('set', (0, _targetHeaterCoolerState.set)(apiClient, log, Characteristic));
service.getCharacteristic(Characteristic.CurrentTemperature).setProps({
minStep: 0.1
}).on('get', config.reportSetpointAsCurrentTemperature ? (0, _coolingThreshold.get)(apiClient, log) : (0, _currentTemperature.get)(apiClient, log));
service.getCharacteristic(Characteristic.CoolingThresholdTemperature).setProps({
minValue: 15,
maxValue: 30,
minStep: 1.0
}).on('get', (0, _coolingThreshold.get)(apiClient, log)).on('set', (0, _coolingThreshold.set)(apiClient, log));
service.getCharacteristic(Characteristic.HeatingThresholdTemperature).setProps({
minValue: 15,
maxValue: 30,
minStep: 1.0
}).on('get', (0, _heatingThreshold.get)(apiClient, log)).on('set', (0, _heatingThreshold.set)(apiClient, log));
service.getCharacteristic(Characteristic.RotationSpeed).setProps({
minStep: 25,
minValue: 0,
maxValue: 100
}).on('get', (0, _rotationSpeed.get)(apiClient, log)).on('set', (0, _rotationSpeed.set)(apiClient, log));
service.getCharacteristic(Characteristic.Name).on('get', getName);
return [informationService, service];
}
};
};
homebridge.registerAccessory('homebridge-izone-airconditioner', 'iZone Air Conditioner', Thermostat);
}
//# sourceMappingURL=index.js.map
;