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.
50 lines • 1.89 kB
TypeScript
import { AnsiLogger } from 'matterbridge/logger';
import { Config, EntityName } from './config-types.js';
import { DysonMqttLike } from './dyson-mqtt.js';
import { MatterbridgeEndpoint } from 'matterbridge';
import { Constructor } from './utils.js';
import { Changed } from './decorator-changed.js';
import { DeviceConfigMqtt } from './dyson-mqtt-client.js';
export interface DysonDeviceModel {
type: string;
number: string;
name: string;
}
export type DysonDeviceConstructorParams<MQTT extends DysonMqttLike = DysonMqttLike> = [
log: AnsiLogger,
config: Config,
device: DeviceConfigMqtt,
mqtt: MQTT
];
export interface DysonDeviceConstructor<MQTT extends DysonMqttLike = DysonMqttLike, Device extends DysonDevice<MQTT> = DysonDevice<MQTT>> {
new (...args: DysonDeviceConstructorParams<MQTT>): Device;
readonly mqttConstructor: Constructor<MQTT>;
}
export declare abstract class DysonDevice<MQTT extends DysonMqttLike = DysonMqttLike> {
readonly log: AnsiLogger;
readonly config: Config;
readonly device: DeviceConfigMqtt;
readonly mqtt: MQTT;
static readonly model: DysonDeviceModel;
static readonly filters: {
hepa: string[];
carbon?: string[];
};
static readonly mqttConstructor: Constructor<DysonMqttLike>;
changed: Changed;
constructor(log: AnsiLogger, config: Config, device: DeviceConfigMqtt, mqtt: MQTT);
abstract getEntities(): {
name: EntityName;
description: string;
}[];
abstract getEndpoints(validatedNames: EntityName[]): MatterbridgeEndpoint[];
abstract start(): Promise<void>;
stop(): Promise<void>;
get uniqueId(): string;
get classStatic(): typeof DysonDevice;
get modelName(): string;
get modelNumber(): string;
get deviceName(): string;
get serialNumber(): string;
}
//# sourceMappingURL=dyson-device-base.d.ts.map