lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
93 lines (92 loc) • 2.55 kB
TypeScript
import { DeviceResponseType } from "../Devices/IDevice";
import { EnergyMeasurementParameter, FloodSensorStates, MovementStateEnum } from "../Devices/IDeviceState";
export interface IAvailableState {
get StateObjectType(): string;
get StateInterfaceType(): string;
get StateResponseType(): DeviceResponseType;
}
export interface IAvailableStatePerChannel {
get DeviceGuid(): string;
get Channel(): number;
get AvailableStates(): IAvailableState[];
}
export declare enum StateInterval {
None = 0,
DataRange = 1,
Hour = 2,
Day = 3,
Week = 4,
Month = 5,
Year = 6
}
export declare enum AggregateDataType {
Min = "Min",
Max = "Max",
Avg = "Avg"
}
export declare class AvailableState implements IAvailableState {
private _objectType;
private _stateInterfaceType;
get StateObjectType(): string;
get StateInterfaceType(): string;
get StateResponseType(): DeviceResponseType;
set StateObjectType(value: string);
set StateInterfaceType(value: string);
}
export declare class StateDataResponse<T> {
DeviceGuid: string;
DeviceChannel: number;
Count: number;
IsNextPageAvailable: boolean;
Limit: number;
Offset: number;
Data: StateData<T>[];
AggregateDataList: AggregateDataEntry[];
}
export declare class AggregateDataEntry {
DataEntryIdentity: string;
AggregateData: Map<AggregateDataType, any>;
}
export declare class StateData<T> {
Time: string;
Values: T | null;
AggregatedBy: string;
}
export interface AveragingStateValues {
get LastValue(): number;
get Average(): number;
get Mode(): number;
get Min(): number;
get Max(): number;
}
export interface BrightnessHistory {
get LuxValue(): number;
get LuxToLinearScale(): number;
get LightCondition(): LightCondition;
}
export declare enum LightCondition {
Unknown = -1,
PitchBlack = 0,
VeryDark = 1,
DarkIndoors = 2,
DimIndoors = 3,
NormalIndoors = 4,
BrightIndoors = 5,
DimOutdoors = 6,
CloudyOutdoors = 7,
DirectSunlight = 8
}
export interface ReedStateHistory {
get State(): boolean;
}
export interface FloodStateHistory {
get State(): FloodSensorStates;
}
export interface MovementStateHistory {
get Movement(): MovementStateEnum;
get Intensity(): number;
}
export interface EnergyHistory {
get MeasurementAveragingParameters(): Map<EnergyMeasurementParameter, AveragingStateValues>;
get MeasurementNonAveragingParmeters(): Map<EnergyMeasurementParameter, number>;
}