Files
2026-05-05 12:03:46 +00:00

65 lines
1.1 KiB
TypeScript

export type TDeviceProtocol =
| 'matter'
| 'zigbee'
| 'zwave'
| 'thread'
| 'mqtt'
| 'homekit'
| 'esphome'
| 'homeassistant'
| 'hue'
| 'http'
| 'cloud'
| 'virtual'
| 'unknown';
export type TDeviceCapability =
| 'switch'
| 'sensor'
| 'light'
| 'cover'
| 'lock'
| 'fan'
| 'climate'
| 'camera'
| 'media'
| 'energy'
| 'notification';
export type TDeviceStateValue = string | number | boolean | null | Record<string, unknown>;
export interface IDeviceFeature {
id: string;
capability: TDeviceCapability;
name: string;
readable: boolean;
writable: boolean;
unit?: string;
}
export interface IDeviceState {
featureId: string;
value: TDeviceStateValue;
updatedAt: string;
}
export interface IDeviceDefinition {
id: string;
integrationDomain?: string;
name: string;
room?: string;
protocol: TDeviceProtocol;
manufacturer?: string;
model?: string;
online: boolean;
features: IDeviceFeature[];
state: IDeviceState[];
metadata?: Record<string, unknown>;
}
export interface IRoomDefinition {
id: string;
name: string;
floor?: string;
}