lavva.exalushome
Version:
Library implementing communication and abstraction layers for ExalusHome system
56 lines (55 loc) • 2.98 kB
TypeScript
import { Status } from "../../DataFrame";
import { IDIService } from "../../IDIService";
import { ITypedEvent } from "../../TypedEvent";
import { DeviceUsedInScenes } from "./DevicesService";
import { DeviceTasksInfo, IDevice, ManuallyPairedDevice } from './IDevice';
import { IDeviceChannel } from "./IDeviceChannel";
import { IDeviceState, IDeviceStateData } from './IDeviceState';
import { IDeviceTask } from "./IDeviceTask";
import { DeviceTaskExecutionResult } from './TaskExecutionResult';
export interface IDevicesService extends IDIService {
OnDeviceStateChangedEvent(): ITypedEvent<{
Device: IDevice;
State: IDeviceState<IDeviceStateData>;
}>;
OnDeviceStateRefreshedOrChangedEvent(): ITypedEvent<{
Device: IDevice;
State: IDeviceState<IDeviceStateData>;
}>;
OnDeviceRegisteredEvent(): ITypedEvent<IDevice>;
OnDeviceRemovedEvent(): ITypedEvent<IDevice>;
OnDeviceFoundEvent(): ITypedEvent<IDevice>;
OnDevicesTasksExecutionChangeEvent(): ITypedEvent<DeviceTasksInfo[]>;
CanDisplaySceneDevices(): boolean;
CanEditDevicesInfo(): boolean;
CanAddAndRemoveAndConfigureDevices(): boolean;
GetDeviceChannelByChannelId(channelId: string): IDeviceChannel | null;
GetDevicesAsync(): Promise<IDevice[]>;
GetDevicesAsync(withScenes: boolean): Promise<IDevice[]>;
SyncDevicesStatesAsync(forceSlow?: boolean): Promise<boolean>;
GetDevice(guid: string): IDevice | undefined;
FindDevicesAsync(): Promise<void>;
GetFoundDevicesAsync(): Promise<IDevice[]>;
StopSearchingForDevices(): Promise<void>;
RegisterDeviceAsync(device: IDevice): Promise<DeviceTaskExecutionResult>;
RemoveDeviceAsync(device: IDevice, force?: boolean): Promise<DeviceTaskExecutionResult>;
ExecuteDeviceTaskAsync(device: IDevice, task: IDeviceTask): Promise<DeviceTaskExecutionResult>;
WaitForSynchronizationAsync(): Promise<void>;
WaitForDevicesStatesSynchronizationAsync(): Promise<void>;
ExecuteDevicesTasksAsync(tasks: [Device: IDevice, Task: IDeviceTask][]): Promise<DeviceTaskPairExecutionResult[]>;
GetDevicesForManualPairingAsync(protocolExtensionGuids?: string[]): Promise<ManuallyPairedDevice[]>;
GetDevicesForManualPairingAsync(protocolExtensionGuid?: string): Promise<ManuallyPairedDevice[]>;
AddManuallyPairedDevice(device: ManuallyPairedDevice): Promise<DeviceTaskExecutionResult>;
CheckIfDeviceUsedInScenesAsync(deviceGuid: string): Promise<DeviceUsedInScenes | Status>;
CheckIfDeviceUsedInScenesAsync(device: IDevice): Promise<DeviceUsedInScenes | Status>;
EnableFastStatesSyncAsync(): Promise<Status>;
DisableFastStatesSyncAsync(): Promise<Status>;
IsFastStatesSyncEnabledAsync(): Promise<boolean | Status>;
ProtocolGuidToProtocolName(guid: string): string | null;
}
export declare class DeviceTaskPairExecutionResult {
Device: IDevice | null;
Channel: number;
Task: IDeviceTask | null;
Result: DeviceTaskExecutionResult;
}