UNPKG

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