lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
83 lines (82 loc) • 2.79 kB
TypeScript
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
}