dirigera
Version:
A TypeScript client for IKEA's DIRIGERA smart home hub
352 lines (351 loc) • 15.3 kB
TypeScript
import type { Home } from './types/Home.ts';
import type { Event } from './types/event/Event.ts';
export type DirigeraClient = Awaited<ReturnType<typeof createDirigeraClient>>;
export type { AirPurifier } from './types/device/AirPurifier.ts';
export type { Blinds } from './types/device/Blinds.ts';
export type { Capabilities } from './types/Capabilities.ts';
export type { Controller } from './types/device/Controller.ts';
export type { Device } from './types/device/Device.ts';
export type { DeviceSet } from './types/DeviceSet.ts';
export type { EnvironmentSensor } from './types/device/EnvironmentSensor.ts';
export type { Home } from './types/Home.ts';
export type { Hub } from './types/device/Hub.ts';
export type { Light } from './types/device/Light.ts';
export type { LightSensor } from './types/device/LightSensor.ts';
export type { MotionSensor } from './types/device/MotionSensor.ts';
export type { Music } from './types/Music.ts';
export type { OccupancySensor } from './types/device/OccupancySensor.ts';
export type { OpenCloseSensor } from './types/device/OpenCloseSensor.ts';
export type { Outlet } from './types/device/Outlet.ts';
export type { Repeater } from './types/device/Repeater.ts';
export type { Room } from './types/Room.ts';
export type { Scene } from './types/Scene.ts';
export type { Speaker } from './types/device/Speaker.ts';
export type { User } from './types/User.ts';
export type { WaterSensor } from './types/device/WaterSensor.ts';
export type { Event } from './types/event/Event.ts';
export type { DeviceAddedEvent } from './types/event/DeviceAddedEvent.ts';
export type { DeviceConfigurationChangedEvent } from './types/event/DeviceConfigurationChangedEvent.ts';
export type { DeviceDiscoveredEvent } from './types/event/DeviceDiscoveredEvent.ts';
export type { DeviceRemovedEvent } from './types/event/DeviceRemovedEvent.ts';
export type { DeviceSetCreatedEvent } from './types/event/DeviceSetCreatedEvent.ts';
export type { DeviceSetDeletedEvent } from './types/event/DeviceSetDeletedEvent.ts';
export type { DeviceSetUpdatedEvent } from './types/event/DeviceSetUpdatedEvent.ts';
export type { DeviceStateChangedEvent } from './types/event/DeviceStateChangedEvent.ts';
export type { MusicUpdatedEvent } from './types/event/MusicUpdatedEvent.ts';
export type { PingEvent } from './types/event/PingEvent.ts';
export type { PongEvent } from './types/event/PongEvent.ts';
export type { RemotePressEvent } from './types/event/RemotePressEvent.ts';
export type { RoomCreatedEvent } from './types/event/RoomCreatedEvent.ts';
export type { RoomDeletedEvent } from './types/event/RoomDeletedEvent.ts';
export type { RoomUpdatedEvent } from './types/event/RoomUpdatedEvent.ts';
export type { SceneCompletedEvent } from './types/event/SceneCompletedEvent.ts';
export type { SceneCreatedEvent } from './types/event/SceneCreatedEvent.ts';
export type { SceneDeletedEvent } from './types/event/SceneDeletedEvent.ts';
export type { SceneTriggeredEvent } from './types/event/SceneTriggeredEvent.ts';
export type { SceneUpdatedEvent } from './types/event/SceneUpdatedEvent.ts';
export type { TerminationEvent } from './types/event/TerminationEvent.ts';
export declare function createDirigeraClient({ gatewayIP, accessToken, rejectUnauthorized, }?: {
gatewayIP?: string;
accessToken?: string;
rejectUnauthorized?: boolean;
}): Promise<{
authenticate({ verbose }?: {
verbose?: boolean;
}): Promise<string>;
home(): Promise<Home>;
hub: {
status(): Promise<import("./types/device/Hub.ts").Hub>;
checkFirmwareUpdate(): Promise<void>;
installFirmwareUpdate(): Promise<void>;
};
devices: {
list(): Promise<import("./types/device/Device.ts").Device[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Device.ts").Device>;
setCustomName({ id, customName, }: {
id: string;
customName: string;
}): Promise<void>;
setAttributes({ id, attributes, transitionTime, }: {
id: string;
attributes: Partial<import("./types/device/Device.ts").Device["attributes"]>;
transitionTime?: number;
}): Promise<void>;
startIdentifying({ id }: {
id: string;
}): Promise<void>;
stopIdentifying({ id }: {
id: string;
}): Promise<void>;
};
lights: {
list(): Promise<import("./types/device/Light.ts").Light[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Light.ts").Light>;
setIsOn({ id, isOn }: {
id: string;
isOn: boolean;
}): Promise<void>;
setLightLevel({ id, lightLevel, transitionTime, }: {
id: string;
lightLevel: number;
transitionTime?: number;
}): Promise<void>;
setLightTemperature({ id, colorTemperature, transitionTime, }: {
id: string;
colorTemperature: number;
transitionTime?: number;
}): Promise<void>;
setLightColor({ id, colorHue, colorSaturation, transitionTime, }: {
id: string;
colorHue: number;
colorSaturation: number;
transitionTime?: number;
}): Promise<void>;
setStartupOnOff({ id, startupOnOff, }: {
id: string;
startupOnOff: import("./types/device/Light.ts").Light["attributes"]["startupOnOff"];
}): Promise<void>;
};
outlets: {
list(): Promise<import("./types/device/Outlet.ts").Outlet[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Outlet.ts").Outlet>;
setIsOn({ id, isOn }: {
id: string;
isOn: boolean;
}): Promise<void>;
setStartupOnOff({ id, startupOnOff, }: {
id: string;
startupOnOff: import("./types/device/Outlet.ts").Outlet["attributes"]["startupOnOff"];
}): Promise<void>;
setStatusLight({ id, statusLight, }: {
id: string;
statusLight: import("./types/device/Outlet.ts").Outlet["attributes"]["statusLight"];
}): Promise<void>;
setChildLock({ id, childLock, }: {
id: string;
childLock: import("./types/device/Outlet.ts").Outlet["attributes"]["childLock"];
}): Promise<void>;
resetEnergyConsumption({ id }: {
id: string;
}): Promise<void>;
};
controllers: {
list(): Promise<import("./types/device/Controller.ts").Controller[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Controller.ts").Controller>;
setControlMode({ id, controlMode, }: {
id: string;
controlMode: import("./types/device/Controller.ts").GenericSwitch["attributes"]["controlMode"];
}): Promise<void>;
};
speakers: {
list(): Promise<import("./types/device/Speaker.ts").Speaker[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Speaker.ts").Speaker>;
setVolume({ id, volume }: {
id: string;
volume: number;
}): Promise<void>;
setPlayback({ id, playback, }: {
id: string;
playback: import("./types/device/Speaker.ts").Speaker["attributes"]["playback"];
}): Promise<void>;
};
blinds: {
list(): Promise<import("./types/device/Blinds.ts").Blinds[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Blinds.ts").Blinds>;
setTargetLevel({ id, blindsTargetLevel, }: {
id: string;
blindsTargetLevel: number;
}): Promise<void>;
setState({ id, blindsState, }: {
id: string;
blindsState: import("./types/device/Blinds.ts").Blinds["attributes"]["blindsState"];
}): Promise<void>;
};
airPurifiers: {
list(): Promise<import("./types/device/AirPurifier.ts").AirPurifier[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/AirPurifier.ts").AirPurifier>;
setFanMode({ id, fanMode, }: {
id: string;
fanMode: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["fanMode"];
}): Promise<void>;
setMotorState({ id, motorState, }: {
id: string;
motorState: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["motorState"];
}): Promise<void>;
setChildLock({ id, childLock, }: {
id: string;
childLock: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["childLock"];
}): Promise<void>;
setStatusLight({ id, statusLight, }: {
id: string;
statusLight: import("./types/device/AirPurifier.ts").AirPurifier["attributes"]["statusLight"];
}): Promise<void>;
};
repeaters: {
list(): Promise<import("./types/device/Repeater.ts").Repeater[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/Repeater.ts").Repeater>;
};
motionSensors: {
list(): Promise<import("./types/device/MotionSensor.ts").MotionSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/MotionSensor.ts").MotionSensor>;
setOnDuration({ id, onDuration, }: {
id: string;
onDuration: import("./types/device/MotionSensor.ts").MotionSensor["attributes"]["sensorConfig"]["onDuration"];
}): Promise<void>;
setScheduleOn({ id, scheduleOn, }: {
id: string;
scheduleOn: import("./types/device/MotionSensor.ts").MotionSensor["attributes"]["sensorConfig"]["scheduleOn"];
}): Promise<void>;
setSchedule({ id, schedule, }: {
id: string;
schedule: import("./types/device/MotionSensor.ts").MotionSensor["attributes"]["sensorConfig"]["schedule"];
}): Promise<void>;
};
occupancySensors: {
list(): Promise<import("./types/device/OccupancySensor.ts").OccupancySensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/OccupancySensor.ts").OccupancySensor>;
setOnDuration({ id, onDuration, }: {
id: string;
onDuration: import("./types/device/OccupancySensor.ts").OccupancySensor["attributes"]["sensorConfig"]["onDuration"];
}): Promise<void>;
setScheduleOn({ id, scheduleOn, }: {
id: string;
scheduleOn: import("./types/device/OccupancySensor.ts").OccupancySensor["attributes"]["sensorConfig"]["scheduleOn"];
}): Promise<void>;
setSchedule({ id, schedule, }: {
id: string;
schedule: import("./types/device/OccupancySensor.ts").OccupancySensor["attributes"]["sensorConfig"]["schedule"];
}): Promise<void>;
};
lightSensors: {
list(): Promise<import("./types/device/LightSensor.ts").LightSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/LightSensor.ts").LightSensor>;
};
environmentSensors: {
list(): Promise<import("./types/device/EnvironmentSensor.ts").EnvironmentSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/EnvironmentSensor.ts").EnvironmentSensor>;
};
openCloseSensors: {
list(): Promise<import("./types/device/OpenCloseSensor.ts").OpenCloseSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/OpenCloseSensor.ts").OpenCloseSensor>;
};
waterSensors: {
list(): Promise<import("./types/device/WaterSensor.ts").WaterSensor[]>;
get({ id }: {
id: string;
}): Promise<import("./types/device/WaterSensor.ts").WaterSensor>;
};
deviceSets: {
list(): Promise<import("./types/DeviceSet.ts").DeviceSet[]>;
create({ name, icon }: Pick<import("./types/DeviceSet.ts").DeviceSet, "name" | "icon">): Promise<{
id: string;
}>;
delete({ id }: {
id: string;
}): Promise<void>;
update({ id, name, icon }: import("./types/DeviceSet.ts").DeviceSet): Promise<void>;
updateConfiguration({ id, deviceIds, roomId, remoteLinkIds, }: {
id: string;
deviceIds: string[];
roomId?: string;
remoteLinkIds?: string[];
}): Promise<void>;
setIsOn({ id, isOn }: {
id: string;
isOn: boolean;
}): Promise<void>;
setAttributes({ id, attributes, transitionTime, }: {
id: string;
attributes: Partial<import("./types/device/Device.ts").Device["attributes"]>;
transitionTime?: number;
}): Promise<void>;
};
rooms: {
list(): Promise<import("./types/Room.ts").Room[]>;
get({ id }: {
id: string;
}): Promise<import("./types/Room.ts").Room>;
create({ name, icon, color }: Pick<import("./types/Room.ts").Room, "name" | "icon" | "color">): Promise<{
id: string;
}>;
delete({ id }: {
id: string;
}): Promise<void>;
update({ id, name, icon, color }: import("./types/Room.ts").Room): Promise<void>;
moveDevices({ id, deviceIds }: {
id: string;
deviceIds: string[];
}): Promise<void>;
setIsOn({ id, deviceType, isOn, }: {
id: string;
deviceType?: import("./types/device/Device.ts").Device["deviceType"];
isOn: boolean;
}): Promise<void>;
setAttributes({ id, deviceType, attributes, transitionTime, }: {
id: string;
deviceType?: import("./types/device/Device.ts").Device["deviceType"];
attributes: Partial<import("./types/device/Device.ts").Device["attributes"]>;
transitionTime?: number;
}): Promise<void>;
};
scenes: {
list(): Promise<import("./types/Scene.ts").Scene[]>;
get({ id }: {
id: string;
}): Promise<import("./types/Scene.ts").Scene>;
trigger({ id }: {
id: string;
}): Promise<void>;
undo({ id }: {
id: string;
}): Promise<void>;
create({ info, type, actions, triggers, }: Pick<import("./types/Scene.ts").Scene, "info" | "type" | "actions" | "triggers">): Promise<{
id: string;
}>;
delete({ id }: {
id: string;
}): Promise<void>;
update({ id, info, type, actions, triggers, }: Pick<import("./types/Scene.ts").Scene, "id" | "info" | "type" | "actions" | "triggers">): Promise<void>;
};
music: {
get(): Promise<import("./types/Music.ts").Music>;
};
users: {
list(): Promise<import("./types/User.ts").User[]>;
getCurrentUser(): Promise<import("./types/User.ts").User>;
setCurrentUserName({ name }: {
name: string;
}): Promise<void>;
delete({ id }: {
id: string;
}): Promise<void>;
};
startListeningForUpdates(callback: (updateEvent: Event) => void): void;
stopListeningForUpdates(): void;
}>;