lavva.exalushome.extalife
Version:
Library implementing communication and abstraction layers for ExtaLife API in ExalusHome system
82 lines • 4.88 kB
JavaScript
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 { LedControllerService } from "../Common/LedControllersConfigurations/LedControllerService";
import { InputModeSwitch, ReactionToInput } from "../Common/OnOffSwitchConfigurations/OnOffSwitchParameters";
import { OnOffSwitchService } from "../Common/OnOffSwitchConfigurations/OnOffSwitchService";
export class Slr21ConfigService extends LedControllerService {
constructor() {
super();
}
GetServiceName() {
return Slr21ConfigService.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-21`);
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-21 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-21 allows to set: On, Off or OnOff`);
return Status.WrongData;
}
return _super.SetSwitchInputOutputReactionToInputParamAsync.call(this, device, params);
});
}
}
Slr21ConfigService.ServiceName = "Slr21ConfigService";
//# sourceMappingURL=Slr21ConfigService.js.map