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
TypeScript
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