UNPKG

homebridge-homeconnect

Version:

A Homebridge plugin that connects Home Connect appliances to Apple HomeKit

239 lines 5.95 kB
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