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.
127 lines • 3.71 kB
TypeScript
import { Dyson360CleaningMode, Dyson360CleaningType, Dyson360Faults, Dyson360Position, Dyson360PowerMode, Dyson360State } from './dyson-360-types.js';
import { DysonModeReason, DysonMsg } from './dyson-types.js';
export interface Dyson360MsgDeviceCredentials extends DysonMsg {
msg: 'DEVICE-CREDENTIALS';
serialNumber: string;
apPasswordHash: string;
}
export interface Dyson360MsgConnectionStatus extends DysonMsg {
msg: 'CONNECTION-STATUS';
status: string;
phase: string;
network: string;
requestId: string;
ip: string;
}
export interface Dyson360MsgHello extends DysonMsg {
msg: 'HELLO';
protocol: string;
serial: string;
version: string;
}
export interface Dyson360MsgGoodbye extends DysonMsg {
msg: 'GOODBYE';
reason: 'UNKNOWN';
}
export interface Dyson360MsgGoneAway extends DysonMsg {
msg: 'GONE-AWAY';
}
export interface Dyson360MsgImBack extends DysonMsg {
msg: 'IM-BACK';
state?: Dyson360State;
}
export interface Dyson360MsgCurrentState extends DysonMsg {
msg: 'CURRENT-STATE';
batteryChargeLevel: number;
cleanDuration?: number;
cleanId: string;
currentVacuumPowerMode: Dyson360PowerMode;
defaultVacuumPowerMode: Dyson360PowerMode;
currentCleaningMode?: Dyson360CleaningMode;
defaultCleaningMode?: Dyson360CleaningMode;
faults?: Dyson360Faults;
fullCleanType: Dyson360CleaningType;
globalPosition: Dyson360Position;
state: Dyson360State;
}
export interface Dyson360MsgStateChange extends DysonMsg {
msg: 'STATE-CHANGE';
batteryChargeLevel: number;
cleanDuration?: number;
cleanId: string;
currentVacuumPowerMode: Dyson360PowerMode;
defaultVacuumPowerMode: Dyson360PowerMode;
currentCleaningMode?: Dyson360CleaningMode;
defaultCleaningMode?: Dyson360CleaningMode;
faults?: Dyson360Faults;
fullCleanType: Dyson360CleaningType;
globalPosition: Dyson360Position;
newstate: Dyson360State;
oldstate: Dyson360State;
endOfClean?: boolean;
}
export interface Dyson360MsgMapData extends DysonMsg {
msg: 'MAP-DATA';
gridID: string;
cleanId: string;
data: {
content: string;
contentType: string;
contentEncoding: string;
};
}
export interface Dyson360MsgMapGlobal extends DysonMsg {
msg: 'MAP-GLOBAL';
angle: number;
cleanId: string;
gridID: string;
x: number;
y: number;
}
export interface Dyson360MsgMapGrid extends DysonMsg {
msg: 'MAP-GRID';
anchor: Dyson360Position;
cleanId: string;
gridID: string;
height: number;
resolution: number;
width: number;
}
export interface Dyson360MsgTelemetryData extends DysonMsg {
msg: 'TELEMETRY-DATA';
field1: string;
field2: string;
field3: string;
field4: string;
id: string;
}
export interface Dyson360MsgRequestCurrentState extends DysonMsg {
msg: 'REQUEST-CURRENT-STATE';
'mode-reason'?: DysonModeReason;
}
export interface Dyson360MsgStateSet extends DysonMsg {
msg: 'STATE-SET';
'mode-reason': DysonModeReason;
data: {
defaultVacuumPowerMode: Dyson360PowerMode;
};
}
export interface Dyson360MsgStart extends DysonMsg {
msg: 'START';
'mode-reason': DysonModeReason;
fullCleanType: Dyson360CleaningType;
cleaningMode?: Dyson360CleaningMode;
}
export interface Dyson360MsgPause extends DysonMsg {
msg: 'PAUSE';
'mode-reason': DysonModeReason;
}
export interface Dyson360MsgResume extends DysonMsg {
msg: 'RESUME';
'mode-reason': DysonModeReason;
}
export interface Dyson360MsgAbort extends DysonMsg {
msg: 'ABORT';
'mode-reason': DysonModeReason;
}
//# sourceMappingURL=dyson-360-msg-types.d.ts.map