UNPKG

matterbridge-aeg-robot

Version:

A Matterbridge plugin that connects AEG RX 9 / Electrolux Pure i9 robot vacuums to the Matter smart home ecosystem.

71 lines 2.8 kB
import { AnsiLogger } from 'matterbridge/logger'; import { Config } from './config-types.js'; import { RX9ApplianceInfo, RX9ApplianceState, RX9BatteryStatus, RX9Capabilities, RX9Dustbin, RX9Message, RX92PowerMode, RX9RobotStatus } from './aegapi-rx9-types.js'; import { AEGAPIRX9 } from './aegapi-rx9.js'; import { Appliance, ApplianceInfoDTO } from './aegapi-types.js'; import EventEmitter from 'events'; import { PeriodicOp } from './periodic-op.js'; import { ActivityRX9 } from './aeg-appliance-rx9-ctrl-activity.js'; export interface DynamicStateRX9 { connected: boolean; enabled: boolean; batteryStatus: RX9BatteryStatus; dustbinStatus: RX9Dustbin; firmwareVersion: string; robotStatus: RX9RobotStatus; messages: RX9Message[]; ecoMode?: boolean; powerMode?: RX92PowerMode; apiError?: unknown; isDocked: boolean; isCharging: boolean; fauxStatus: RX9RobotStatus; } export type StatusEventRX9 = keyof DynamicStateRX9; type StatusEventMap = { [event in StatusEventRX9]-?: [DynamicStateRX9[event], Partial<DynamicStateRX9>[event]]; }; interface OtherEventMap { error: [unknown]; preEmitPatch: [DynamicStateRX9]; message: [RX9Message]; changed: [StatusEventRX9[], DynamicStateRX9]; } export declare class AEGApplianceRX9 extends EventEmitter<StatusEventMap & OtherEventMap> implements Appliance, ApplianceInfoDTO { readonly log: AnsiLogger; readonly config: Config; readonly api: AEGAPIRX9; readonly setActivity: (command: ActivityRX9) => Promise<boolean>; readonly applianceId: string; readonly applianceName: string; readonly applianceType: string; readonly created: string; readonly brand: string; readonly colour: string; readonly deviceType: string; readonly model: string; readonly pnc: string; readonly serialNumber: string; readonly variant: string; readonly capabilities: RX9Capabilities[]; readonly platform: string; readonly state: DynamicStateRX9; private emittedState; private readonly emittedMessages; poll?: PeriodicOp; constructor(log: AnsiLogger, config: Config, api: AEGAPIRX9, appliance: Appliance, info: RX9ApplianceInfo, state: RX9ApplianceState); start(): Promise<void>; stop(): Promise<void>; pollApplianceState(): Promise<void>; pollError(err?: unknown): void; toString(): string; updateFromApplianceState(state: RX9ApplianceState): void; updateDerivedAndEmit(): void; updateDerived(): void; updateStatus(update: Partial<DynamicStateRX9>): void; emitChangeEvents(): void; emitMessages(): void; static create(log: AnsiLogger, config: Config, api: AEGAPIRX9, appliance: Appliance): Promise<AEGApplianceRX9>; } export {}; //# sourceMappingURL=aeg-appliance-rx9.d.ts.map