homebridge-homeconnect
Version:
A Homebridge plugin that connects Home Connect appliances to Apple HomeKit
239 lines • 5.95 kB
TypeScript
export type Value = string | number | boolean;
export type Constraints = ConstraintsString | ConstraintsNumber | ConstraintsBoolean;
export interface ConstraintsString extends ConstraintsCommon {
default?: string;
allowedvalues?: string[];
displayvalues?: string[];
}
export interface ConstraintsNumber extends ConstraintsCommon {
default?: number;
min?: number;
max?: number;
stepsize?: number;
}
export interface ConstraintsBoolean extends ConstraintsCommon {
default?: boolean;
}
export interface ConstraintsCommon {
access?: Access;
}
export type Access = 'read' | 'readWrite';
export interface ExecuteCommandWrapper {
data: ExecuteCommand;
}
export interface ExecuteCommand {
key: string;
value: true;
}
export interface CommandsWrapper {
data: {
commands: Command[];
};
}
export interface Command {
key: string;
name?: string;
description?: string;
}
export type Event = EventKeepAlive | EventApplianceConnection | EventApplianceData;
export interface EventKeepAlive {
event: 'KEEP-ALIVE';
data?: '';
}
export interface EventApplianceConnection {
event: 'CONNECTED' | 'DISCONNECTED' | 'PAIRED' | 'DEPAIRED';
id: string;
data?: '' | EventData;
}
export interface EventApplianceData {
event: 'STATUS' | 'EVENT' | 'NOTIFY';
id: string;
data: {
items: EventData[];
haId?: string;
};
}
export interface EventData {
key: string;
name?: string;
uri?: string;
timestamp: number | null;
level: EventLevel;
handling: EventHandling;
value: Value | null;
displayvalue?: string;
unit?: string;
haId?: string;
}
export type EventLevel = 'critical' | 'alert' | 'warning' | 'hint' | 'info';
export type EventHandling = 'none' | 'acknowledge' | 'decision';
export interface HomeAppliancesWrapper {
data: {
homeappliances: HomeAppliance[];
};
}
export interface HomeApplianceWrapper {
data: HomeAppliance;
}
export interface HomeAppliance {
haId: string;
name: string;
type: string;
brand: string;
vib: string;
enumber: string;
connected: boolean;
}
export interface ImagesWrapper {
data: {
images: Image[];
};
}
export interface Image {
key: string;
name?: string;
imagekey: string;
previewimagekey: string;
timestamp: number;
quality: ImageQuality;
}
export type ImageQuality = 'good' | 'bad';
export interface ProgramsWrapper {
data: Programs;
}
export interface Programs {
programs: ProgramList[];
selected?: ProgramPartial;
active?: ProgramPartial;
}
export interface ProgramList {
key: string;
name?: string;
constraints?: ProgramConstraints;
}
export interface ProgramConstraints {
available?: boolean;
execution?: ProgramExecution;
access?: Access;
}
export type ProgramExecution = 'none' | 'selectonly' | 'startonly' | 'selectandstart';
export interface ProgramWrapper {
data: Program;
}
export interface Program extends ProgramPartial {
key: string;
}
export interface ProgramPartial {
key?: string;
name?: string;
options?: Option[];
constraints?: ProgramConstraints;
}
export interface ProgramDefinitionWrapper {
data: ProgramDefinition;
}
export interface ProgramDefinition {
key: string;
name?: string;
options?: OptionDefinition[];
}
export type OptionDefinition = OptionDefinitionString | OptionDefinitionNumber | OptionDefinitionBoolean;
export interface OptionDefinitionString extends OptionDefinitionCommon {
type: 'String' | string;
constraints?: OptionConstraintsCommon & ConstraintsString;
}
export interface OptionDefinitionNumber extends OptionDefinitionCommon {
type: 'Double' | 'Int';
constraints?: OptionConstraintsCommon & ConstraintsNumber;
}
export interface OptionDefinitionBoolean extends OptionDefinitionCommon {
type: 'Boolean';
constraints?: OptionConstraintsCommon & ConstraintsBoolean;
}
export interface OptionDefinitionCommon {
key: string;
name?: string;
unit?: string;
}
export interface OptionConstraintsCommon {
liveupdate?: boolean;
}
export interface OptionsWrapper {
data: {
options: Option[];
};
}
export interface OptionWrapper {
data: Option;
}
export interface Option {
key: string;
name?: string;
value: Value;
displayvalue?: string;
unit?: string;
}
export interface SettingsWrapper {
data: {
settings: Setting[];
};
}
export interface SettingWrapper {
data: Setting;
}
export type Setting = SettingString | SettingNumber | SettingBoolean;
export interface SettingString extends SettingCommon {
value: string;
constraints?: ConstraintsString;
}
export interface SettingNumber extends SettingCommon {
value: number;
constraints?: ConstraintsNumber;
}
export interface SettingBoolean extends SettingCommon {
value: boolean;
constraints?: ConstraintsBoolean;
}
export interface SettingCommon {
key: string;
name?: string;
type?: string;
displayvalue?: string;
unit?: string;
}
export interface StatusesWrapper {
data: {
status: Status[];
};
}
export interface StatusWrapper {
data: Status;
}
export type Status = StatusString | StatusNumber | StatusBoolean;
export interface StatusString extends StatusCommon {
value: string;
constraints?: ConstraintsString;
}
export interface StatusNumber extends StatusCommon {
value: number;
constraints?: ConstraintsNumber;
}
export interface StatusBoolean extends StatusCommon {
value: boolean;
constraints?: ConstraintsBoolean;
}
export interface StatusCommon {
key: string;
name?: string;
displayvalue?: string;
unit?: string;
}
export interface ErrorResponse {
error: {
key: string;
description?: string;
developerMessage?: string;
value?: string;
};
}
//# sourceMappingURL=api-types.d.ts.map