Skip to content

Commit

Permalink
feat(vendor.roborock): Add manual map segment trigger quirk
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Feb 7, 2023
1 parent aba7931 commit 54891dc
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 5 deletions.
18 changes: 18 additions & 0 deletions backend/lib/robots/roborock/RoborockQuirkFactory.js
Expand Up @@ -209,6 +209,23 @@ class RoborockQuirkFactory {
return this.robot.sendCommand("set_mop_mode", [val], {});
}
});
case RoborockQuirkFactory.KNOWN_QUIRKS.MANUAL_MAP_SEGMENT_TRIGGER:
return new Quirk({
id: id,
title: "Manual map segment trigger",
description: "If you only see a blue map without segments, you can try to manually trigger map segmentation using this quirk.",
options: ["select_to_trigger", "trigger"],
getter: async () => {
return "select_to_trigger";
},
setter: async (value) => {
if (value === "trigger") {
await this.robot.sendCommand("manual_segment_map", [], {timeout: 10000});

this.robot.pollMap();
}
}
});
default:
throw new Error(`There's no quirk with id ${id}`);
}
Expand All @@ -221,6 +238,7 @@ RoborockQuirkFactory.KNOWN_QUIRKS = {
STATUS_LED: "1daf5179-0689-48a5-8f1b-0a23e11836dc",
CARPET_HANDLING: "070c07ef-e35b-476f-9f80-6a286fef1a48",
MOP_PATTERN: "767fc859-3383-4485-bfdf-7aa800cf487e",
MANUAL_MAP_SEGMENT_TRIGGER: "3e467ac1-7d14-4e66-b09b-8d0554a3194e",
};

module.exports = RoborockQuirkFactory;
3 changes: 2 additions & 1 deletion backend/lib/robots/roborock/RoborockS4MaxValetudoRobot.js
Expand Up @@ -25,7 +25,8 @@ class RoborockS4MaxValetudoRobot extends RoborockGen4ValetudoRobot {
this.registerCapability(new QuirksCapability({
robot: this,
quirks: [
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS)
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS),
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.MANUAL_MAP_SEGMENT_TRIGGER)
]
}));
}
Expand Down
3 changes: 2 additions & 1 deletion backend/lib/robots/roborock/RoborockS4ValetudoRobot.js
Expand Up @@ -41,7 +41,8 @@ class RoborockS4ValetudoRobot extends RoborockValetudoRobot {
this.registerCapability(new QuirksCapability({
robot: this,
quirks: [
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS)
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS),
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.MANUAL_MAP_SEGMENT_TRIGGER)
]
}));
}
Expand Down
3 changes: 2 additions & 1 deletion backend/lib/robots/roborock/RoborockS5ValetudoRobot.js
Expand Up @@ -44,7 +44,8 @@ class RoborockS5ValetudoRobot extends RoborockValetudoRobot {
this.registerCapability(new QuirksCapability({
robot: this,
quirks: [
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS)
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS),
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.MANUAL_MAP_SEGMENT_TRIGGER)
]
}));
}
Expand Down
3 changes: 2 additions & 1 deletion backend/lib/robots/roborock/RoborockS6PureValetudoRobot.js
Expand Up @@ -40,7 +40,8 @@ class RoborockS6PureValetudoRobot extends RoborockValetudoRobot {
this.registerCapability(new QuirksCapability({
robot: this,
quirks: [
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS)
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS),
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.MANUAL_MAP_SEGMENT_TRIGGER)
]
}));
}
Expand Down
3 changes: 2 additions & 1 deletion backend/lib/robots/roborock/RoborockS6ValetudoRobot.js
Expand Up @@ -48,7 +48,8 @@ class RoborockS6ValetudoRobot extends RoborockValetudoRobot {
this.registerCapability(new QuirksCapability({
robot: this,
quirks: [
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS)
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.BUTTON_LEDS),
quirkFactory.getQuirk(RoborockQuirkFactory.KNOWN_QUIRKS.MANUAL_MAP_SEGMENT_TRIGGER)
]
}));
}
Expand Down

0 comments on commit 54891dc

Please sign in to comment.