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.
40 lines • 1.86 kB
TypeScript
import { DeviceTypeDefinition, MatterbridgeEndpoint } from 'matterbridge';
import { AtLeastOne, ServerNode } from 'matterbridge/matter';
import { BasicInformation } from 'matterbridge/matter/clusters';
import { AnsiLogger } from 'matterbridge/logger';
import { Config } from './config-types.js';
import { Changed } from './decorator-changed.js';
export interface BasicInformationOptions {
uniqueId: string;
hardwareVersion?: string;
nodeLabel: string;
productId: number;
productName: string;
softwareVersion?: string;
vendorId: number;
vendorName: string;
manufacturingDate?: string;
partNumber?: string;
productAppearance?: BasicInformation.ProductAppearance;
productLabel?: string;
productUrl?: string;
serialNumber?: string;
}
export interface EndpointOptionsBase {
uniqueStorageKey: string;
matterbridgeDeviceName: string;
basicInformation: BasicInformationOptions;
}
export type EndpointLike = Pick<EndpointBase, 'behaviors' | 'log' | 'triggerEvent' | 'updateAttribute' | 'changed'>;
export declare class EndpointBase extends MatterbridgeEndpoint {
readonly config: Config;
readonly options: EndpointOptionsBase;
changed: Changed;
constructor(log: AnsiLogger, config: Config, options: EndpointOptionsBase, definition: DeviceTypeDefinition | AtLeastOne<DeviceTypeDefinition>);
postRegister(): Promise<void>;
patchBasicInformationClusterServer(serverNode: ServerNode, info: BasicInformationOptions): Promise<void>;
createBridgedDeviceBasicInformationClusterServer(info: BasicInformationOptions): this;
updateReachable(reachable: boolean): Promise<void>;
}
export declare function formatEnumLog<T extends Record<string, number | string>>(enumMap: T, value: T[keyof T] extends number ? T[keyof T] : never): string;
//# sourceMappingURL=endpoint-base.d.ts.map