UNPKG

lavva.exalushome

Version:

Library implementing communication and abstraction layers for ExalusHome system

83 lines (82 loc) 2.79 kB
import { IDeviceState, IDeviceStateData } from './IDeviceState'; import { DeviceTaskExecutionResult } from './TaskExecutionResult'; import { IDeviceTask } from './IDeviceTask'; import { IDevice, IDeviceResponseTypeInfo, IDeviceTaskTypeInfo } from './IDevice'; import { ITypedEvent } from '../../TypedEvent'; import { FieldChangeResult } from '../FieldChangeResult'; export interface IDeviceChannel { get ChannelId(): string; get Number(): number; set Number(value: number); get Name(): string; set Name(value: string); get IconName(): string; set IconName(value: string); get States(): IDeviceState<IDeviceStateData>[]; get Mode(): ChannelConfigurations; get ChannelGroups(): string[]; get CustomData(): Record<string, string>; get Roles(): Roles[]; get IsHidden(): boolean; get Configurations(): Record<string, string>; get AvailableTaskTypes(): IDeviceTaskTypeInfo[]; get AvailableResponseTypes(): IDeviceResponseTypeInfo[]; IsCustomDataAndRolesSupported(): boolean; SetCustomDataAsync(dataId: string, data: string): Promise<FieldChangeResult>; RemoveCustomDataAsync(dataId: string): Promise<FieldChangeResult>; GetDevice(): IDevice; HideAsync(): Promise<FieldChangeResult>; ShowAsync(): Promise<FieldChangeResult>; ChangeNameAsync(name: string): Promise<FieldChangeResult>; ChangeIconNameAsync(name: string): Promise<FieldChangeResult>; ChangeGroupsAsync(groups: string[]): Promise<FieldChangeResult>; ExecuteTaskAsync(task: IDeviceTask): Promise<DeviceTaskExecutionResult>; OnTasksExecutionChangeEvent(): ITypedEvent<TaskExecution>; OnChannelStateChangedEvent(): ITypedEvent<IDeviceState<IDeviceStateData>>; OnChannelStateRefreshedOrChangedEvent(): ITypedEvent<IDeviceState<IDeviceStateData>>; } export declare enum TaskExecution { NoTasksExecuting = 0, ExecutingTasks = 1 } export declare enum ChannelConfigurations { Default = 0, Monostable = 1, Bistable = 2, Gate = 3, Gateway = 4 } export declare enum Roles { None = 0, OnOff = 1, OnOffLights = 2, OnOffWithDelay = 3, GateSwitchState = 4, GatePulse = 5, GateOpenClose = 6, GatewayOpenClose = 7, GatewayPulse = 8, Monostable = 9, Dimmer = 10, Blind = 11, Roller = 12, TemperatureSensor = 13, BrightnessSensor = 14, HumiditySensor = 15, PowerMeter = 16, RGBLight = 17, RGBWLight = 18, LightsWarmth = 19, TemperatureControl = 20, BlindsWithPrecisePosition = 21, MovementSensor = 21, SimpleRemote = 22, BlindsRemote = 23, DistanceSensor = 24, Multisensor = 25, IOTransmitter = 26, DoorOpenClose = 27, WindSensor = 28, BatterySensor = 29, PressureSensor = 30 }