UNPKG

dirigera

Version:

A TypeScript client for IKEA's DIRIGERA smart home hub

42 lines (41 loc) 1.75 kB
import { type CommonDeviceAttributes, type Device, type IdentifiableDeviceAttributes, type JoinableDeviceAttributes, type OtaUpdatableDeviceAttributes } from './Device.ts'; export interface CommonControllerAttributes extends CommonDeviceAttributes, JoinableDeviceAttributes, OtaUpdatableDeviceAttributes { batteryPercentage: number; isOn: boolean; lightLevel: number; circadianPresets?: any[]; } interface CommonControllerProperties extends Device { type: 'controller'; isHidden: boolean; } export interface ShortcutController extends CommonControllerProperties { deviceType: 'shortcutController'; attributes: CommonControllerAttributes; } export interface LightController extends CommonControllerProperties { deviceType: 'lightController'; attributes: CommonControllerAttributes; } export interface BlindsController extends CommonControllerProperties { deviceType: 'blindsController'; attributes: CommonControllerAttributes & { blindsCurrentLevel: number; blindsState: 'stopped' | 'up' | 'down'; }; } export interface SoundController extends CommonControllerProperties { deviceType: 'soundController'; attributes: CommonControllerAttributes; } export interface GenericSwitch extends CommonControllerProperties { deviceType: 'genericSwitch'; attributes: CommonDeviceAttributes & OtaUpdatableDeviceAttributes & JoinableDeviceAttributes & IdentifiableDeviceAttributes & { switchGroup?: number; switchLabel: string; controlMode: 'light' | 'speaker' | 'blind' | 'shortcut'; batteryPercentage: number; }; } export type Controller = ShortcutController | LightController | SoundController | BlindsController | GenericSwitch; export {};