UNPKG

matterbridge-dyson-robot

Version:

A Matterbridge plugin that connects Dyson robot vacuums and air treatment devices to the Matter smart home ecosystem via their local or cloud MQTT APIs.

74 lines 2.52 kB
export type ProvisioningMethod = 'Remote Account' | 'Local Account' | 'Local Wi-Fi' | 'Local MQTT'; export interface DysonAccountBase { china: boolean; finishAuth?: boolean; startAuth?: boolean; } export interface DysonAccountLogin extends DysonAccountBase { email: string; password: string; } export interface DysonAccountToken extends DysonAccountBase { token: string; email?: string; password?: string; } export type DysonAccount = DysonAccountLogin | DysonAccountToken; export interface DeviceConfigNetwork { host: string; port: number; } export interface DeviceConfigLocalAccount extends DeviceConfigNetwork { serialNumber: string; } export interface DeviceConfigLocalWiFi extends DeviceConfigNetwork { name: string; ssid: string; password: string; } export interface DeviceConfigLocalMqtt extends DeviceConfigNetwork { name: string; serialNumber: string; password: string; rootTopic: string; } export type EntityName = 'Air Purifier' | 'Air Quality Sensor' | 'Composed Air Purifier' | 'Humidity Sensor' | 'Temperature Sensor' | 'Thermostat'; export type DebugFeatures = 'Log Endpoint Debug' | 'Log API Headers' | 'Log API Bodies' | 'Log MQTT Client' | 'Log MQTT Payloads' | 'Log Serial Numbers' | 'Log Debug as Info'; export interface ConfigBase { name: string; type: string; version: string; whiteList: string[]; blackList: string[]; entityWhiteList: EntityName[]; entityBlackList: EntityName[]; deviceEntityBlackList: { [serialNumber: string]: EntityName[]; }; provisioningMethod: ProvisioningMethod; enableServerRvc: boolean; wildcardTopic: boolean; debug: boolean; debugFeatures: DebugFeatures[]; unregisterOnShutdown: boolean; } export interface ConfigAccount extends ConfigBase { dysonAccount: DysonAccount; } export interface ConfigRemoteAccount extends ConfigAccount { provisioningMethod: 'Remote Account'; } export interface ConfigLocalAccount extends ConfigAccount { provisioningMethod: 'Local Account'; devices: DeviceConfigLocalAccount[]; } export interface ConfigLocalWiFi extends ConfigBase { provisioningMethod: 'Local Wi-Fi'; devices: DeviceConfigLocalWiFi[]; } export interface ConfigLocalMqtt extends ConfigBase { provisioningMethod: 'Local MQTT'; devices: DeviceConfigLocalMqtt[]; } export type Config = ConfigRemoteAccount | ConfigLocalAccount | ConfigLocalWiFi | ConfigLocalMqtt; //# sourceMappingURL=config-types.d.ts.map