UNPKG

matterbridge-roborock-vacuum-plugin

Version:
153 lines (144 loc) 4.91 kB
import { RvcCleanMode, RvcOperationalState, RvcRunMode } from 'matterbridge/matter/clusters'; import { RvcCleanMode as RvcCleanModeDisplayMap } from './default.js'; import { ExperimentalFeatureSetting } from '../../../model/ExperimentalFeatureSetting.js'; export function getDefaultSupportedRunModes(): RvcRunMode.ModeOption[] { return [ { label: 'Idle', mode: 1, modeTags: [{ value: RvcRunMode.ModeTag.Idle }], }, { label: 'Cleaning', mode: 2, modeTags: [{ value: RvcRunMode.ModeTag.Cleaning }], }, { label: 'Mapping', mode: 3, modeTags: [{ value: RvcRunMode.ModeTag.Mapping }], }, ]; } export function getDefaultSupportedCleanModes(enableExperimentalFeature: ExperimentalFeatureSetting | undefined): RvcCleanMode.ModeOption[] { const result = [ { label: RvcCleanModeDisplayMap[5], mode: 5, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Auto }], }, { label: RvcCleanModeDisplayMap[6], mode: 6, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Quick }], }, { label: RvcCleanModeDisplayMap[7], mode: 7, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Max }], }, { label: RvcCleanModeDisplayMap[8], mode: 8, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Min }], }, { label: RvcCleanModeDisplayMap[9], mode: 9, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Quiet }], }, { label: RvcCleanModeDisplayMap[10], mode: 10, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.LowEnergy }], }, { label: RvcCleanModeDisplayMap[31], mode: 31, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Auto }], }, { label: RvcCleanModeDisplayMap[32], mode: 32, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Max }], }, { label: RvcCleanModeDisplayMap[33], mode: 33, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Min }], }, { label: RvcCleanModeDisplayMap[34], mode: 34, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Quick }], }, { label: RvcCleanModeDisplayMap[35], mode: 35, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.DeepClean }], }, { label: RvcCleanModeDisplayMap[66], mode: 66, modeTags: [{ value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Auto }], }, { label: RvcCleanModeDisplayMap[67], mode: 67, modeTags: [{ value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Max }], }, { label: RvcCleanModeDisplayMap[68], mode: 68, modeTags: [{ value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Quiet }], }, { label: RvcCleanModeDisplayMap[69], mode: 69, modeTags: [{ value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Quick }], }, ]; if (enableExperimentalFeature?.advancedFeature?.useVacationModeToSendVacuumToDock ?? false) { return [ ...result, { label: RvcCleanModeDisplayMap[99], mode: 99, modeTags: [{ value: RvcCleanMode.ModeTag.Mop }, { value: RvcCleanMode.ModeTag.Vacuum }, { value: RvcCleanMode.ModeTag.Vacation }], }, ]; } return result; } export function getDefaultOperationalStates(): RvcOperationalState.OperationalStateStruct[] { return [ { operationalStateId: RvcOperationalState.OperationalState.Stopped, operationalStateLabel: 'Stopped', }, { operationalStateId: RvcOperationalState.OperationalState.Running, operationalStateLabel: 'Running', }, { operationalStateId: RvcOperationalState.OperationalState.Paused, operationalStateLabel: 'Paused', }, { operationalStateId: RvcOperationalState.OperationalState.Error, operationalStateLabel: 'Error', }, { operationalStateId: RvcOperationalState.OperationalState.SeekingCharger, operationalStateLabel: 'SeekingCharger', }, { operationalStateId: RvcOperationalState.OperationalState.Charging, operationalStateLabel: 'Charging', }, { operationalStateId: RvcOperationalState.OperationalState.Docked, operationalStateLabel: 'Docked', }, ]; }