lavva.exalushome.extalife
Version:
Library implementing communication and abstraction layers for ExtaLife API in ExalusHome system
248 lines (247 loc) • 7.32 kB
TypeScript
export interface IRemoteDevice {
get DeviceGuid(): string;
get Channel(): number;
get Guid(): string;
get Name(): string;
get RemoteChannelAmount(): number;
get DeviceChannelAmount(): number;
get DeviceType(): DeviceType;
get RemoteMode(): RemoteMode;
set RemoteMode(value: RemoteMode);
get CurrentRemotePairingOptions(): DeviceTypeOptions;
get RawCurrentRemoteOptions(): PairingOption;
}
export declare enum RemoteMode {
OnOff = 1,
Bistable = 2,
Monostable = 3,
Timer = 4,
Local = 5,
Central = 6,
PixoBidi_1 = 7,
PixoBidi_12 = 8,
TwoButton = 9,
OneButton = 10,
Comfort = 11,
TimerDimmer = 12,
Gate = 13,
GateWay = 14,
NXZFBidi = 15,
PXZFBidi = 16,
WSZFBidi = 17
}
export declare enum DeviceType {
OnOff = 1,
Blind = 2,
Dimmer = 3,
Gate = 4,
Gateway = 5,
Facade = 6
}
type OnOff = {
[RemoteMode.OnOff]: RemoteMode;
[RemoteMode.Bistable]: RemoteMode;
[RemoteMode.Monostable]: RemoteMode;
[RemoteMode.Timer]: RemoteMode;
};
type Blind = {
[RemoteMode.PixoBidi_1]: RemoteMode;
[RemoteMode.PixoBidi_12]: RemoteMode;
};
type Dimmer = {
[RemoteMode.TwoButton]: RemoteMode;
[RemoteMode.OneButton]: RemoteMode;
[RemoteMode.Comfort]: RemoteMode;
[RemoteMode.TimerDimmer]: RemoteMode;
};
type Gate = {
[RemoteMode.Gate]: RemoteMode;
[RemoteMode.Bistable]: RemoteMode;
};
type Gateway = {
[RemoteMode.GateWay]: RemoteMode;
[RemoteMode.Bistable]: RemoteMode;
};
type Facade = {
[RemoteMode.NXZFBidi]: RemoteMode;
[RemoteMode.PXZFBidi]: RemoteMode;
[RemoteMode.WSZFBidi]: RemoteMode;
};
type DeviceTypeRemoteMode = {
[DeviceType.OnOff]: OnOff;
[DeviceType.Blind]: Blind;
[DeviceType.Dimmer]: Dimmer;
[DeviceType.Gate]: Gate;
[DeviceType.Gateway]: Gateway;
[DeviceType.Facade]: Facade;
};
export declare class DeviceTypeMode {
static readonly AvailableModes: DeviceTypeRemoteMode;
}
declare class RemoteDeviceResponse {
DeviceGuid: string;
Channel: number;
Guid: string;
Name: string;
RemoteChannelAmount: number;
DeviceChannelAmount: number;
PairingOption: PairingOption;
OldSettingsOptional: PairingOption;
DeviceType: DeviceType;
}
declare class PairingOption {
Mode: RemoteMode;
KeyOn: number;
KeyOff: number;
KeyBrightening: number;
KeyDimmer: number;
TimeOn: number;
Channel: number;
}
type DeviceTypeOptions = {
[DeviceType.OnOff]: OnOffOptions;
[DeviceType.Blind]: BlindOptions;
[DeviceType.Dimmer]: DimmerOptions;
[DeviceType.Gate]: GateOptions;
[DeviceType.Gateway]: GateWayOptions;
[DeviceType.Facade]: FacadeOptions;
};
interface IOptions {
ModeParams: any;
}
declare class OnOffParameters {
private _remoteChannels;
private _keyOn;
private _keyOff;
constructor(remoteChannels: number, options: PairingOption);
get KeyOn(): number;
get KeyOff(): number;
set KeyOn(value: number);
set KeyOff(value: number);
}
declare class ChannelParameters {
private _remoteChannels;
private _channel;
constructor(remoteChannels: number, options: PairingOption);
get Channel(): number;
set Channel(value: number);
}
declare class BistableMonostableParameters {
private _remoteChannels;
private _keyOn;
constructor(remoteChannels: number, options: PairingOption);
get KeyOn(): number;
set KeyOn(value: number);
}
declare class TimerParameters {
private _remoteChannels;
private _keyOn;
private _timeOn;
constructor(remoteChannels: number, options: PairingOption);
get KeyOn(): number;
set KeyOn(value: number);
get TimeOn(): number;
set TimeOn(value: number);
}
declare class DimmingBrighteningParameters {
private _remoteChannels;
private _keyOn;
private _keyOff;
private _keyBrightening;
private _keyDimmer;
constructor(remoteChannels: number, options: PairingOption);
get KeyOn(): number;
set KeyOn(value: number);
get KeyOff(): number;
set KeyOff(value: number);
get KeyBrightening(): number;
set KeyBrightening(value: number);
get KeyDimmer(): number;
set KeyDimmer(value: number);
}
type OnOffModes = {
[RemoteMode.OnOff]: OnOffParameters;
[RemoteMode.Bistable]: BistableMonostableParameters;
[RemoteMode.Monostable]: BistableMonostableParameters;
[RemoteMode.Timer]: TimerParameters;
};
declare class OnOffOptions implements IOptions {
ModeParams: OnOffModes;
constructor(remoteChannels: number, options: PairingOption);
}
type BlindModes = {
[RemoteMode.PixoBidi_1]: ChannelParameters;
[RemoteMode.PixoBidi_12]: ChannelParameters;
};
declare class BlindOptions implements IOptions {
ModeParams: BlindModes;
constructor(remoteChannels: number, options: PairingOption);
}
type DimmerModes = {
[RemoteMode.TwoButton]: OnOffParameters;
[RemoteMode.OneButton]: BistableMonostableParameters;
[RemoteMode.Comfort]: DimmingBrighteningParameters;
[RemoteMode.TimerDimmer]: TimerParameters;
};
declare class DimmerOptions implements IOptions {
ModeParams: DimmerModes;
constructor(remoteChannels: number, options: PairingOption);
}
type GateModes = {
[RemoteMode.Gate]: BistableMonostableParameters;
[RemoteMode.Bistable]: BistableMonostableParameters;
};
declare class GateOptions implements IOptions {
ModeParams: GateModes;
constructor(remoteChannels: number, options: PairingOption);
}
type GateWayModes = {
[RemoteMode.GateWay]: BistableMonostableParameters;
[RemoteMode.Bistable]: BistableMonostableParameters;
};
declare class GateWayOptions implements IOptions {
ModeParams: GateWayModes;
constructor(remoteChannels: number, options: PairingOption);
}
type FacadeModes = {
[RemoteMode.NXZFBidi]: ChannelParameters;
[RemoteMode.PXZFBidi]: ChannelParameters;
[RemoteMode.WSZFBidi]: null;
};
declare class FacadeOptions implements IOptions {
ModeParams: FacadeModes;
constructor(remoteChannels: number, options: PairingOption);
}
export declare class RemoteDevice implements IRemoteDevice {
private _configs;
protected _deviceGuid: string;
protected _channel: number;
protected _guid: string;
protected _name: string;
protected _remoteChannelAmount: number;
protected _deviceChannelAmount: number;
protected _deviceType: DeviceType;
protected _remoteMode: RemoteMode;
protected _currentRemotePairingOptions: DeviceTypeOptions;
protected _rawCurrentRemoteOptions: PairingOption;
protected _rawOldRemoteOptions: PairingOption;
constructor(data: RemoteDeviceResponse);
get DeviceGuid(): string;
set DeviceGuid(value: string);
get Channel(): number;
set Channel(value: number);
get Guid(): string;
set Guid(value: string);
get Name(): string;
set Name(value: string);
get RemoteChannelAmount(): number;
get DeviceChannelAmount(): number;
get DeviceType(): DeviceType;
set DeviceType(value: DeviceType);
get RemoteMode(): RemoteMode;
set RemoteMode(value: RemoteMode);
get CurrentRemotePairingOptions(): DeviceTypeOptions;
get RawCurrentRemoteOptions(): PairingOption;
get RawOldRemoteOptions(): PairingOption;
}
export {};