UNPKG

matterbridge-roborock-vacuum-plugin

Version:
33 lines 1.89 kB
import { BehaviorDeviceGeneric, CommandNames } from '../behaviors/BehaviorDeviceGeneric.js'; import { buildBehaviorConfig } from '../behaviors/roborock.vacuum/core/behaviorConfig.js'; import { registerCommonCommands } from '../behaviors/roborock.vacuum/core/commonCommands.js'; import { getRunModeDisplayMap } from '../behaviors/roborock.vacuum/core/runModeConfig.js'; /** * Configure device behavior handler based on model capabilities. * Creates and initializes the appropriate command handler for the device model. */ export function configureBehavior(model, duid, roborockService, enableCleanModeMapping, cleanModeSettings, forceRunAtDefault, logger, onActionTriggered) { const modelKey = forceRunAtDefault ? '' : model; const config = buildBehaviorConfig(modelKey); const deviceHandler = new BehaviorDeviceGeneric(logger); setCommandHandler(duid, deviceHandler, logger, roborockService, enableCleanModeMapping, cleanModeSettings, config, onActionTriggered); return deviceHandler; } function setCommandHandler(duid, handler, logger, roborockService, enableCleanModeMapping, cleanModeSettings, config, onActionTriggered) { const runModeMap = getRunModeDisplayMap(config.runModeConfigs); handler.setCommandHandler(CommandNames.CHANGE_TO_MODE, async (newMode) => { const activity = runModeMap[newMode] || config.cleanModes[newMode]; const context = { roborockService, logger, enableCleanModeMapping: enableCleanModeMapping, cleanModeSettings, cleanSettings: config.cleanSettings, behaviorName: config.name, }; await config.registry.handle(duid, newMode, activity, context); onActionTriggered(); }); registerCommonCommands(duid, handler, logger, roborockService, config.name, onActionTriggered); } //# sourceMappingURL=behaviorFactory.js.map