Skip to content

Commit

Permalink
feat(vendor.dreame): D9 Pro+ special edition support
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Oct 8, 2022
1 parent 0081cba commit ffbcb73
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 1 deletion.
34 changes: 34 additions & 0 deletions backend/lib/robots/dreame/DreameD9ProPlusValetudoRobot.js
@@ -0,0 +1,34 @@
const DreameD9ValetudoRobot = require("./DreameD9ValetudoRobot");
const DreameValetudoRobot = require("./DreameValetudoRobot");
const fs = require("fs");
const MiioValetudoRobot = require("../MiioValetudoRobot");

/**
* There is no such thing as a D9 Pro+
* This implementation is used by D9 Pros that use a backported D9 firmware
*/
class DreameD9ProPlusValetudoRobot extends DreameD9ValetudoRobot {
/**
*
* @param {object} options
* @param {import("../../Configuration")} options.config
* @param {import("../../ValetudoEventStore")} options.valetudoEventStore
*/
constructor(options) {
super(options);
}

getModelName() {
return "D9 Pro+";
}

static IMPLEMENTATION_AUTO_DETECTION_HANDLER() {
const deviceConf = MiioValetudoRobot.READ_DEVICE_CONF(DreameValetudoRobot.DEVICE_CONF_PATH);
const isD9Pro = !!(deviceConf && deviceConf.model === "dreame.vacuum.p2187");

return isD9Pro && fs.existsSync("/etc/dustbuilder_backport");
}
}


module.exports = DreameD9ProPlusValetudoRobot;
4 changes: 3 additions & 1 deletion backend/lib/robots/dreame/DreameD9ProValetudoRobot.js
Expand Up @@ -3,6 +3,7 @@ const DreameGen2LidarValetudoRobot = require("./DreameGen2LidarValetudoRobot");
const DreameGen2ValetudoRobot = require("./DreameGen2ValetudoRobot");
const DreameValetudoRobot = require("./DreameValetudoRobot");
const entities = require("../../entities");
const fs = require("fs");
const MiioValetudoRobot = require("../MiioValetudoRobot");
const ValetudoSelectionPreset = require("../../entities/core/ValetudoSelectionPreset");

Expand Down Expand Up @@ -75,8 +76,9 @@ class DreameD9ProValetudoRobot extends DreameGen2LidarValetudoRobot {

static IMPLEMENTATION_AUTO_DETECTION_HANDLER() {
const deviceConf = MiioValetudoRobot.READ_DEVICE_CONF(DreameValetudoRobot.DEVICE_CONF_PATH);
const isD9Pro = !!(deviceConf && deviceConf.model === "dreame.vacuum.p2187");

return !!(deviceConf && deviceConf.model === "dreame.vacuum.p2187");
return isD9Pro && !fs.existsSync("/etc/dustbuilder_backport");
}
}

Expand Down
1 change: 1 addition & 0 deletions backend/lib/robots/dreame/index.js
@@ -1,6 +1,7 @@
module.exports = {
"Dreame1CValetudoRobot": require("./Dreame1CValetudoRobot"),
"Dreame1TValetudoRobot": require("./Dreame1TValetudoRobot"),
"DreameD9ProPlusValetudoRobot": require("./DreameD9ProPlusValetudoRobot"),
"DreameD9ProValetudoRobot": require("./DreameD9ProValetudoRobot"),
"DreameD9ValetudoRobot": require("./DreameD9ValetudoRobot"),
"DreameF9ValetudoRobot": require("./DreameF9ValetudoRobot"),
Expand Down

0 comments on commit ffbcb73

Please sign in to comment.