UNPKG

lavva.exalushome

Version:

Library implementing communication and abstraction layers for ExalusHome system

167 lines 7.34 kB
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