dirigera
Version:
A TypeScript client for IKEA's DIRIGERA smart home hub
113 lines (107 loc) • 3.01 kB
text/typescript
import type { Capabilities } from '../Capabilities'
import type { Room } from '../Room'
import type { DeviceSet } from '../DeviceSet'
import type { AirPurifierAttributes } from './AirPurifier'
import type { BlindsAttributes } from './Blinds'
import type { Controller } from './Controller'
import type { EnvironmentSensorAttributes } from './EnvironmentSensor'
import type { HubAttributes } from './Hub'
import type { LightAttributes } from './Light'
import type { LightSensorAttributes } from './LightSensor'
import type { MotionSensorAttributes } from './MotionSensor'
import type { OpenCloseSensorAttributes } from './OpenCloseSensor'
import type { OutletAttributes } from './Outlet'
import type { RepeaterAttributes } from './Repeater'
import type { SpeakerAttributes } from './Speaker'
export interface CommonDeviceAttributes {
customName: string
firmwareVersion: string
hardwareVersion: string
manufacturer: string
model: string
productCode?: string
serialNumber: string
}
export interface IdentifiableDeviceAttributes {
identifyStarted: string
identifyPeriod: number
}
export interface JoinableDeviceAttributes {
permittingJoin: boolean
}
export interface OtaUpdatableDeviceAttributes {
otaStatus: 'upToDate' | 'updateAvailable'
otaState:
| 'batteryCheckFailed'
| 'checkFailed'
| 'checkInProgress'
| 'downloadFailed'
| 'downloadInProgress'
| 'readyToCheck'
| 'readyToDownload'
| 'readyToUpdate'
| 'updateComplete'
| 'updateFailed'
| 'updateInProgress'
otaProgress: number
otaPolicy: 'autoUpdate' | 'autoDownload'
otaScheduleStart: string
otaScheduleEnd: string
}
export interface Device {
id: string
relationId?: string
type:
| 'airPurifier'
| 'blinds'
| 'controller'
| 'gateway'
| 'light'
| 'outlet'
| 'repeater'
| 'sensor'
| 'speaker'
| 'unknown'
deviceType:
| 'airPurifier'
| 'blinds'
| 'environmentSensor'
| 'shortcutController'
| 'lightController'
| 'soundController'
| 'blindsController'
| 'gateway'
| 'light'
| 'lightSensor'
| 'motionSensor'
| 'openCloseSensor'
| 'outlet'
| 'repeater'
| 'speaker'
| 'waterSensor'
createdAt: string
isReachable: boolean
lastSeen: string
attributes: CommonDeviceAttributes &
Partial<IdentifiableDeviceAttributes> &
Partial<JoinableDeviceAttributes> &
Partial<OtaUpdatableDeviceAttributes> &
Partial<AirPurifierAttributes> &
Partial<BlindsAttributes> &
Partial<Controller['attributes']> &
Partial<EnvironmentSensorAttributes> &
Partial<HubAttributes> &
Partial<LightAttributes> &
Partial<LightSensorAttributes> &
Partial<MotionSensorAttributes> &
Partial<OpenCloseSensorAttributes> &
Partial<OutletAttributes> &
Partial<RepeaterAttributes> &
Partial<SpeakerAttributes>
capabilities: Capabilities
room?: Room
deviceSet: DeviceSet[]
remoteLinks: string[]
isHidden?: boolean
customIcon?: string
}