Skip to content

Commit

Permalink
feat(vacuum.roborock): Re-added support for S6 Pure
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Jan 1, 2021
1 parent 2ced1d9 commit 0226cd5
Show file tree
Hide file tree
Showing 3 changed files with 52 additions and 3 deletions.
3 changes: 2 additions & 1 deletion lib/core/ValetudoRobotFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ const Robots = {
"RoborockV1ValetudoRobot": require("../robots/roborock/RoborockV1ValetudoRobot"),
"RoborockS5ValetudoRobot": require("../robots/roborock/RoborockS5ValetudoRobot"),
"RoborockS6ValetudoRobot": require("../robots/roborock/RoborockS6ValetudoRobot"),
"RoborockS4ValetudoRobot": require("../robots/roborock/RoborockS4VacuumRobot"),
"RoborockS4ValetudoRobot": require("../robots/roborock/RoborockS4ValetudoRobot"),
"RoborockS6PureValetudoRobot": require("../robots/roborock/RoborockS6PureValetudoRobot"),
"RoborockS5MaxValetudoRobot": require("../robots/roborock/RoborockS5MaxValetudoRobot"),
"DreameMc1808ValetudoRobot": require("../robots/dreame/DreameMc1808ValetudoRobot"),
"ViomiV7ValetudoRobot": require("../robots/viomi/ViomiV7ValetudoRobot"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ const capabilities = require("./capabilities");
const entities = require("../../entities");


class RoborockS4VacuumRobot extends RoborockValetudoRobot {
class RoborockS4ValetudoRobot extends RoborockValetudoRobot {
/**
*
* @param {object} options
Expand Down Expand Up @@ -47,4 +47,4 @@ const FAN_SPEEDS = {
[entities.state.attributes.IntensityStateAttribute.VALUE.OFF] : 105 //also known as mop mode
};

module.exports = RoborockS4VacuumRobot;
module.exports = RoborockS4ValetudoRobot;
48 changes: 48 additions & 0 deletions lib/robots/roborock/RoborockS6PureValetudoRobot.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
const RoborockValetudoRobot = require("./RoborockValetudoRobot");
const MiioValetudoRobot = require("../MiioValetudoRobot");
const capabilities = require("./capabilities");
const entities = require("../../entities");

class RoborockS6PureValetudoRobot extends RoborockValetudoRobot {
/**
*
* @param {object} options
* @param {import("../../Configuration")} options.config
*/
constructor(options) {
super(Object.assign({}, options, {fanSpeeds: FAN_SPEEDS}));

this.registerCapability(new capabilities.RoborockMapSnapshotCapability({
robot: this
}));
this.registerCapability(new capabilities.RoborockCombinedVirtualRestrictionsCapability({
robot: this
}));
this.registerCapability(new capabilities.RoborockMultiMapPersistentMapControlCapability({
robot: this
}));
this.registerCapability(new capabilities.RoborockMapSegmentationCapability({
robot: this
}));
}

getModelName() {
return "S6 Pure";
}

static IMPLEMENTATION_AUTO_DETECTION_HANDLER() {
const deviceConf = MiioValetudoRobot.READ_DEVICE_CONF(RoborockValetudoRobot.DEVICE_CONF_PATH);

return !!(deviceConf && (deviceConf.model === "roborock.vacuum.a08" || deviceConf.model === "roborock.vacuum.p5"));
}
}

const FAN_SPEEDS = {
[entities.state.attributes.IntensityStateAttribute.VALUE.LOW]: 101,
[entities.state.attributes.IntensityStateAttribute.VALUE.MEDIUM]: 102,
[entities.state.attributes.IntensityStateAttribute.VALUE.HIGH]: 103,
[entities.state.attributes.IntensityStateAttribute.VALUE.MAX]: 104,
[entities.state.attributes.IntensityStateAttribute.VALUE.OFF] : 105 //also known as mop mode
};

module.exports = RoborockS6PureValetudoRobot;

0 comments on commit 0226cd5

Please sign in to comment.