UNPKG

matterbridge-roborock-vacuum-plugin

Version:
22 lines 1.5 kB
import { debugStringify } from 'matterbridge/logger'; import { RvcCleanMode } from 'matterbridge/matter/clusters'; import { CleanModeSetting } from '../../behaviors/roborock.vacuum/core/CleanModeSetting.js'; import { CleanSequenceType } from '../../behaviors/roborock.vacuum/enums/CleanSequenceType.js'; import { getCleanModeName } from '../../share/matterStateNames.js'; import { getCleanModeResolver } from '../../share/runtimeHelper.js'; export async function handleCleanModeUpdate(robot, message, platform) { platform.log.debug(`Handling clean mode update: ${debugStringify(message)}`); const deviceData = robot.device.specs; const currentCleanModeSetting = new CleanModeSetting(message.suctionPower, message.waterFlow, message.distance_off, message.mopRoute, message.seq_type ?? CleanSequenceType.Persist); if (currentCleanModeSetting.hasFullSettings) { robot.cleanModeSetting = currentCleanModeSetting; const forceRunAtDefault = platform.configManager.forceRunAtDefault; const currentCleanModeResolver = getCleanModeResolver(deviceData.model, forceRunAtDefault); const currentCleanMode = currentCleanModeResolver.resolve(currentCleanModeSetting); if (currentCleanMode) { platform.log.notice(`Calculated current clean mode: ${getCleanModeName(currentCleanMode)}`); await robot.updateAttribute(RvcCleanMode.id, 'currentMode', currentCleanMode, platform.log); } } } //# sourceMappingURL=cleanModeHandler.js.map