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.
45 lines • 2.22 kB
JavaScript
// Matterbridge plugin for Dyson robot vacuum and air treatment devices
// Copyright © 2025 Alexander Thoukydides
import { BasicInformation } from 'matterbridge/matter/clusters';
import { RvcCleanMode360 } from './endpoint-360-behavior.js';
import { Dyson360EyePowerMode, Dyson360HeuristPowerMode, Dyson360VisNavPowerMode } from './dyson-360-types.js';
import { DysonDevice360Base } from './dyson-device-360-base.js';
// A Dyson 360 Eye device
export class DysonDevice360Eye extends DysonDevice360Base {
static model = { type: 'N223', number: 'RB01', name: '360 Eye' };
getBatteryPartNumber = () => '968734-02';
getProductAppearance = () => ({
finish: BasicInformation.ProductFinish.Polished,
primaryColor: BasicInformation.Color.Nickel // (or Fuchsia for Japan limited edition)
});
getPowerModeMaps = () => [
[Dyson360EyePowerMode.Quiet, RvcCleanMode360.Quiet, 'Quiet'],
[Dyson360EyePowerMode.Max, RvcCleanMode360.MaxBoost, 'Max']
];
}
// A Dyson 360 Heurist device
export class DysonDevice360Heurist extends DysonDevice360Base {
static model = { type: '276', number: 'RB02', name: '360 Heurist' };
getBatteryPartNumber = () => '970049-01';
getProductAppearance = () => ({
finish: BasicInformation.ProductFinish.Satin,
primaryColor: BasicInformation.Color.Blue
});
getPowerModeMaps = () => [
[Dyson360HeuristPowerMode.Quiet, RvcCleanMode360.Quiet, 'Quiet'],
[Dyson360HeuristPowerMode.High, RvcCleanMode360.High, 'High'],
[Dyson360HeuristPowerMode.Max, RvcCleanMode360.MaxBoost, 'Max']
];
}
// Alias without any functional differences
export class DysonDevice360VisNav extends DysonDevice360Heurist {
static model = { type: '277', number: 'RB03', name: '360 Vis Nav' };
getBatteryPartNumber = () => '967864-02';
getPowerModeMaps = () => [
[Dyson360VisNavPowerMode.Auto, RvcCleanMode360.Auto, 'Auto'],
[Dyson360VisNavPowerMode.Quick, RvcCleanMode360.Quick, 'Quick'],
[Dyson360VisNavPowerMode.Quiet, RvcCleanMode360.Quiet, 'Quiet'],
[Dyson360VisNavPowerMode.Boost, RvcCleanMode360.MaxBoost, 'Boost']
];
}
//# sourceMappingURL=dyson-device-360.js.map