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.
73 lines • 2.49 kB
TypeScript
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;
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