lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
167 lines • 7.34 kB
JavaScript
import { DeviceResponseType } from "../Devices/IDevice";
import { BatteryState, BinarySensorState, BlindPostionState, BlindRemoteButtonState, ChannelOnOffState, CurrentWindThresholdState, DoorBellState, FacadeRemoteButtonState, FloodSensorState, GatePositionState, HumiditySensorState, LightBrightnessState, LightColorState, LightWarmthState, MeasuredBrightnessState, MeasuredEnergyState, MeasuredTemperatureState, MovementSensorState, PressureSensorState, ReedState, RemoteButtonState, WindSpeedState } from "../Devices/IDeviceState";
export class DeviceStateArgument {
constructor() {
this._comparisonParams = new Map();
/**
* Field is set when the method SetCheckDeviceState<T extends IDeviceStateData> is called,
* type is set based on instancof state: T - so this object so this object must have a prototype.
*
* If the object has no prototypes you need to set this field manually AFTER calling SetCheckDeviceState<T extends IDeviceStateData>(state: T)
*/
this.Type = DeviceResponseType.Unknown;
this.DeviceGuid = "";
this.ComparisonMethod = DeviceStateComparisonMethod.Default;
}
GetCheckDeviceState() {
return this._checkDeviceState;
}
SetCheckDeviceState(state) {
this._checkDeviceState = state;
if (state instanceof BatteryState)
this.Type = DeviceResponseType.BatteryState;
if (state instanceof BinarySensorState)
this.Type = DeviceResponseType.BinarySensorState;
if (state instanceof BlindPostionState)
this.Type = DeviceResponseType.BlindPosition;
if (state instanceof LightBrightnessState)
this.Type = DeviceResponseType.LightBrightness;
if (state instanceof MeasuredBrightnessState)
this.Type = DeviceResponseType.MeasuredBrightness;
if (state instanceof RemoteButtonState)
this.Type = DeviceResponseType.RemoteButtonState;
if (state instanceof ChannelOnOffState)
this.Type = DeviceResponseType.ChannelOnOffState;
if (state instanceof DoorBellState)
this.Type = DeviceResponseType.DoorBellState;
if (state instanceof MeasuredEnergyState)
this.Type = DeviceResponseType.MeasuredEnergy;
if (state instanceof FloodSensorState)
this.Type = DeviceResponseType.FloodSensorState;
if (state instanceof GatePositionState)
this.Type = DeviceResponseType.GatePosition;
if (state instanceof LightColorState)
this.Type = DeviceResponseType.LightColor;
if (state instanceof LightWarmthState)
this.Type = DeviceResponseType.LightWarmth;
if (state instanceof ReedState)
this.Type = DeviceResponseType.ReedState;
if (state instanceof MeasuredTemperatureState)
this.Type = DeviceResponseType.MeasuredTemperature;
if (state instanceof HumiditySensorState)
this.Type = DeviceResponseType.HumiditySensorState;
if (state instanceof BlindRemoteButtonState)
this.Type = DeviceResponseType.BlindRemoteButtonState;
if (state instanceof FacadeRemoteButtonState)
this.Type = DeviceResponseType.FacadeRemoteButtonState;
if (state instanceof MovementSensorState)
this.Type = DeviceResponseType.MovementSensorState;
if (state instanceof MeasuredEnergyState)
this.Type = DeviceResponseType.MeasuredEnergy;
if (state instanceof PressureSensorState)
this.Type = DeviceResponseType.PressureSensorState;
if (state instanceof WindSpeedState)
this.Type = DeviceResponseType.WindSpeedState;
if (state instanceof CurrentWindThresholdState)
this.Type = DeviceResponseType.CurrentWindThreshold;
}
GetComparisonParam(comparisonParam) {
return this._comparisonParams.get(comparisonParam);
}
GetComparisonParams() {
return this._comparisonParams;
}
SetComparisonParam(comparisonParam, value) {
this._comparisonParams.set(comparisonParam, value);
}
}
export class NumberParam {
constructor(val) {
this._value = val;
}
get Value() {
return this._value;
}
set Value(val) {
this._value = val;
}
}
export class TimeSpanParam {
constructor(...args) {
this._value = "00:00:00";
if (args.length > 1)
this.SetTimeSpan(args[0], args[1], args[2], args[3]);
else
this._value = args[0];
}
SetTimeSpan(seconds, minutes, hours, days) {
if (days <= 0)
this._value = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
else
this._value = `${days}.${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
}
get Value() {
return this._value;
}
}
export var DeviceStateComparisonMethod;
(function (DeviceStateComparisonMethod) {
DeviceStateComparisonMethod[DeviceStateComparisonMethod["Default"] = 0] = "Default";
DeviceStateComparisonMethod[DeviceStateComparisonMethod["Delta"] = 1] = "Delta";
DeviceStateComparisonMethod[DeviceStateComparisonMethod["StateRepeat"] = 2] = "StateRepeat";
})(DeviceStateComparisonMethod || (DeviceStateComparisonMethod = {}));
export var DeviceStateComparisonParams;
(function (DeviceStateComparisonParams) {
DeviceStateComparisonParams[DeviceStateComparisonParams["DeltaValue"] = 0] = "DeltaValue";
DeviceStateComparisonParams[DeviceStateComparisonParams["DeltaCalculationTimeRange"] = 1] = "DeltaCalculationTimeRange";
DeviceStateComparisonParams[DeviceStateComparisonParams["StateRepeatCount"] = 2] = "StateRepeatCount";
DeviceStateComparisonParams[DeviceStateComparisonParams["StateRepeatTimeRange"] = 3] = "StateRepeatTimeRange";
})(DeviceStateComparisonParams || (DeviceStateComparisonParams = {}));
export class AstronomicalClockArgument {
constructor() {
this.Position = SunPosition.SunRise;
}
}
export class AstronomicalClockWithOffsetArgument {
constructor() {
this.Position = SunPosition.SunRise;
this.Offset = 0;
}
}
export var SunPosition;
(function (SunPosition) {
SunPosition[SunPosition["SunRise"] = 1] = "SunRise";
SunPosition[SunPosition["SunSet"] = 2] = "SunSet";
})(SunPosition || (SunPosition = {}));
export class TimeArgument {
constructor(seconds, minutes, hours) {
this.Hour = 0;
this.Minute = 0;
this.Second = 0;
if (seconds && minutes && hours) {
this.Hour = hours;
this.Minute = minutes;
this.Second = seconds;
}
}
}
export class SimpleTimeSpanArgument {
constructor(seconds, minutes, hours, days) {
this.hours = 0;
this.minutes = 0;
this.seconds = 0;
this.days = 0;
if (seconds && minutes && hours && days) {
this.days = days;
this.hours = hours;
this.minutes = minutes;
this.seconds = seconds;
}
}
}
export class ConditionInfoArgument {
constructor() {
this.DeviceGuid = "";
}
}
//# sourceMappingURL=LeftArgumentTypes.js.map