UNPKG

lavva.exalushome.extalife

Version:

Library implementing communication and abstraction layers for ExtaLife API in ExalusHome system

85 lines 4.91 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { Status } from "lavva.exalushome/build/js/DataFrame"; import { InputModeSwitch, ReactionToInput } from "../Common/OnOffSwitchConfigurations/OnOffSwitchParameters"; import { OnOffSwitchService } from "../Common/OnOffSwitchConfigurations/OnOffSwitchService"; import { LedControllerService } from "../Common/LedControllersConfigurations/LedControllerService"; /** * @type Class */ export class Sln22ConfigService extends LedControllerService { constructor() { super(); } GetServiceName() { return Sln22ConfigService.ServiceName; } SetTurnOnTimeAsync(device, params) { const _super = Object.create(null, { SetTurnOnTimeAsync: { get: () => super.SetTurnOnTimeAsync } }); return __awaiter(this, void 0, void 0, function* () { if ((params.Time.Hours > 0 || params.Time.Minutes > 4) || (params.Time.Minutes >= 4 && params.Time.Seconds > 0)) { this._logger.Error(OnOffSwitchService.ServiceName, `Failed to turn on time - time must be in range between 0 and 240 seconds.`); return Status.WrongData; } return _super.SetTurnOnTimeAsync.call(this, device, params); }); } SetSwitchInputOutputParamAsync(device, params) { const _super = Object.create(null, { GetSwitchInputOutputParamAsync: { get: () => super.GetSwitchInputOutputParamAsync }, SetSwitchInputOutputParamAsync: { get: () => super.SetSwitchInputOutputParamAsync } }); return __awaiter(this, void 0, void 0, function* () { if (params.ReactionToInput == ReactionToInput.Off || params.ReactionToInput == ReactionToInput.On || params.ReactionToInput == ReactionToInput.OnOff || params.ReactionToInput == ReactionToInput.None) { if (params.InputMode == InputModeSwitch.Bistable) { let currentParams = yield _super.GetSwitchInputOutputParamAsync.call(this, device, params.Channel); if (currentParams.Type != null) { this._logger.Error(OnOffSwitchService.ServiceName, `Failed to get current configuration of SLR-22`); return Status.Error; } let currentParam = currentParams.firstOrDefault(x => x.InputChannel == params.InputChannel); if (currentParam == null) return Status.Error; if (params.ReactionToInput != ReactionToInput.None && currentParam.ReactionToInput != params.ReactionToInput) { this._logger.Error(OnOffSwitchService.ServiceName, `Failed to set input/output parameters - reaction to input cannot be change when mode is Bistable.`); return Status.WrongData; } params.ReactionToInput = currentParam.ReactionToInput; } return _super.SetSwitchInputOutputParamAsync.call(this, device, params); } else { this._logger.Error(OnOffSwitchService.ServiceName, `Failed to set reaction to input, SLR-22 allows to set: On, Off or OnOff`); return Status.WrongData; } }); } SetSwitchInputOutputReactionToInputParamAsync(device, params) { const _super = Object.create(null, { SetSwitchInputOutputReactionToInputParamAsync: { get: () => super.SetSwitchInputOutputReactionToInputParamAsync } }); return __awaiter(this, void 0, void 0, function* () { if (params.ReactionToInput == ReactionToInput.Off || params.ReactionToInput == ReactionToInput.On || params.ReactionToInput == ReactionToInput.OnOff) { this._logger.Error(OnOffSwitchService.ServiceName, `Failed to set reaction to input, SLR-22 allows to set: On, Off or OnOff`); return Status.WrongData; } return _super.SetSwitchInputOutputReactionToInputParamAsync.call(this, device, params); }); } } Sln22ConfigService.ServiceName = "Slr22ConfigService"; //# sourceMappingURL=Sln22ConfigService.js.map