UNPKG

lavva.exalushome

Version:

Library implementing communication and abstraction layers for ExalusHome system

109 lines (108 loc) 4.69 kB
import { IDIService } from '../../IDIService'; import { ITypedEvent } from '../../TypedEvent'; import { IDevice, DeviceTasksInfo, ManuallyPairedDevice } from './IDevice'; import { DeviceTaskPairExecutionResult, IDevicesService } from './IDevicesService'; import { IDeviceState, IDeviceStateData, StateReliability } from './IDeviceState'; import { IDeviceChannel } from './IDeviceChannel'; import { Status } from '../../DataFrame'; import { IDeviceTask } from './IDeviceTask'; import { DeviceTaskExecutionResult } from './TaskExecutionResult'; import { ISequenceInfo } from '../Scenes/Scenes'; /** * @type Class */ export declare class DevicesService implements IDIService, IDevicesService { private _devices; static readonly ServiceName: string; private _onDevicesTasksChangedEvent; private _onDeviceFoundEvent; private _onDeviceRegisteredEvent; private _onDeviceRemovedEvent; private _onDeviceFirmwareVersionChangedEvent; private _onDeviceStateChangedEvent; private _onDeviceStateRefreshedOrChangedEvent; private _connection; private _session; private _controllerConfiguration; private _synchronized; private _synchronizedDevicesStates; private _devicesChannelsStates; private _synchronizationTaskCompletionSource; private _deviceStatesSynchronizationTaskCompletionSource; constructor(); ProtocolGuidToProtocolName(guid: string): string | null; CheckIfDeviceUsedInScenesAsync(deviceGuid: string): Promise<Status | DeviceUsedInScenes>; CheckIfDeviceUsedInScenesAsync(device: IDevice): Promise<Status | DeviceUsedInScenes>; CanEditDevicesInfo(): boolean; CanAddAndRemoveAndConfigureDevices(): boolean; GetDeviceChannelByChannelId(channelId: string): IDeviceChannel | null; EnableFastStatesSyncAsync(): Promise<Status>; DisableFastStatesSyncAsync(): Promise<Status>; IsFastStatesSyncEnabledAsync(): Promise<boolean | Status>; GetDevicesForManualPairingAsync(protocolExtensionGuids?: string[] | undefined): Promise<ManuallyPairedDevice[]>; GetDevicesForManualPairingAsync(protocolExtensionGuid?: string | undefined): Promise<ManuallyPairedDevice[]>; AddManuallyPairedDevice(device: ManuallyPairedDevice): Promise<DeviceTaskExecutionResult>; GetDeviceChannelStates(device: IDevice, channel: number): DeviceChannelStates[]; GetDeviceStates(device: IDevice): DeviceChannelStates[]; private PutDeviceStateOnList; WaitForSynchronizationAsync(): Promise<void>; WaitForDevicesStatesSynchronizationAsync(): Promise<void>; GetCurrentlyRunningTaksAsync(): Promise<void>; ParseDeviceTaskInfo(tasks: string[]): void; MapApiDeviceStateToDeviceState(device: IDevice, state: DeviceStateChangedObject): IDeviceState<IDeviceStateData> | null; GetServiceName(): string; SyncDevicesStatesAsync(forceSlow?: boolean): Promise<boolean>; OnDevicesTasksExecutionChangeEvent(): ITypedEvent<DeviceTasksInfo[]>; OnDeviceStateChangedEvent(): ITypedEvent<{ Device: IDevice; State: IDeviceState<IDeviceStateData>; }>; OnDeviceStateRefreshedOrChangedEvent(): ITypedEvent<{ Device: IDevice; State: IDeviceState<IDeviceStateData>; }>; OnDeviceRegisteredEvent(): ITypedEvent<IDevice>; OnDeviceRemovedEvent(): ITypedEvent<IDevice>; OnDeviceFoundEvent(): ITypedEvent<IDevice>; private MapApiDevices; private GetPairedDevicesAsync; GetDevicesAsync(withScenes?: boolean): Promise<IDevice[]>; GetFoundDevicesAsync(): Promise<IDevice[]>; GetDevice(guid: string): IDevice | undefined; FindDevicesAsync(): Promise<void>; StopSearchingForDevices(): Promise<void>; RegisterDeviceAsync(device: IDevice): Promise<DeviceTaskExecutionResult>; RemoveDeviceAsync(device: IDevice, force?: boolean): Promise<DeviceTaskExecutionResult>; private MapDeviceTaskToDeviceTaskInfo; ExecuteDeviceTaskAsync(device: IDevice, task: IDeviceTask): Promise<DeviceTaskExecutionResult>; ExecuteDevicesTasksAsync(tasks: [Device: IDevice, Task: IDeviceTask][]): Promise<DeviceTaskPairExecutionResult[]>; } declare class DeviceChannelStates { Channel: number; States: IDeviceState<IDeviceStateData>[]; } /** * @type Class */ export declare class DeviceStateChangedObject { DeviceGuid: string; state: DeviceStateObject; Type: number; DataType: string; } /** * @type Class */ export declare class DeviceStateObject { Channel: number; StateReliability: StateReliability; } /** * @type Class */ export declare class DeviceUsedInScenes { DeviceGuid: string; ConditionsAsCondition: ISequenceInfo[]; ConditionsAsTask: ISequenceInfo[]; } export {};