homebridge-tahoma-fork
Version:
Sample Platform plugin for TaHoma and Cozytouch services (Somfy,Atlantic,Thermor,Sauter): https://github.com/Stuard40/homebridge-tahoma
57 lines • 2.15 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const Platform_1 = require("../Platform");
const overkiz_client_1 = require("overkiz-client");
const Mapper_1 = __importDefault(require("../Mapper"));
class Siren extends Mapper_1.default {
registerMainService() {
const service = this.registerService(Platform_1.Services.Speaker);
this.mute = service.getCharacteristic(Platform_1.Characteristics.Mute);
this.volume = service.getCharacteristic(Platform_1.Characteristics.Volume);
this.mute.onSet(this.setMute.bind(this));
this.volume.onSet(this.setVolume.bind(this));
this.mute.updateValue(true);
return service;
}
getMuteCommands(value) {
return new overkiz_client_1.Command(value ? 'off' : 'on');
}
async setMute(value) {
const action = await this.executeCommands(this.getMuteCommands(value));
action.on('update', (state, data) => {
switch (state) {
case overkiz_client_1.ExecutionState.COMPLETED:
break;
case overkiz_client_1.ExecutionState.FAILED:
break;
}
});
}
getVolumeCommands(value) {
return new overkiz_client_1.Command('setVolume', value);
}
async setVolume(value) {
const action = await this.executeCommands(this.getVolumeCommands(value));
action.on('update', (state, data) => {
switch (state) {
case overkiz_client_1.ExecutionState.COMPLETED:
break;
case overkiz_client_1.ExecutionState.FAILED:
break;
}
});
}
onStateChanged(name, value) {
var _a;
switch (name) {
case 'core:OnOffState':
(_a = this.mute) === null || _a === void 0 ? void 0 : _a.updateValue(value === 'off');
break;
}
}
}
exports.default = Siren;
//# sourceMappingURL=Siren.js.map