Skip to content

Commit

Permalink
feat(vendor.dreame): Add quirk for triggering the mop dock cleaning p…
Browse files Browse the repository at this point in the history
…rocedure
  • Loading branch information
Hypfer committed Sep 14, 2024
1 parent 0928cf0 commit 76280bd
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ class DreameL10SProUltraHeatValetudoRobot extends DreameGen4ValetudoRobot {
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_WATER_HEATER),
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.CARPET_DETECTION_AUTO_DEEP_CLEANING),
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_WATER_USAGE),
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_CLEANING_PROCESS_TRIGGER),
]
}));

Expand Down
1 change: 1 addition & 0 deletions backend/lib/robots/dreame/DreameL10UltraValetudoRobot.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ class DreameL10UltraValetudoRobot extends DreameGen2LidarValetudoRobot {
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_AUTO_DRYING),
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.EDGE_MOPPING),
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.DRAIN_INTERNAL_WATER_TANK),
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_CLEANING_PROCESS_TRIGGER),
]
}));

Expand Down
28 changes: 27 additions & 1 deletion backend/lib/robots/dreame/DreameQuirkFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -1134,6 +1134,31 @@ class DreameQuirkFactory {
);
}
});
case DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_CLEANING_PROCESS_TRIGGER:
return new Quirk({
id: id,
title: "Mop Dock Cleaning Process",
description: "Trigger a manual base cleaning. The robot needs to be docked. " +
"Keep a brush ready and follow the instructions the robot will give you.",
options: ["select_to_trigger", "trigger"],
getter: async () => {
return "select_to_trigger";
},
setter: async (value) => {
if (value === "trigger") {
return this.helper.executeAction(
DreameMiotServices["GEN2"].VACUUM_2.SIID,
DreameMiotServices["GEN2"].VACUUM_2.ACTIONS.MOP_DOCK_INTERACT.AIID,
[
{
piid: DreameMiotServices["GEN2"].VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID,
value: "5,1"
}
]
);
}
}
});
default:
throw new Error(`There's no quirk with id ${id}`);
}
Expand Down Expand Up @@ -1164,7 +1189,8 @@ DreameQuirkFactory.KNOWN_QUIRKS = {
SIDE_BRUSH_EXTEND: "e560d60c-76de-4ccc-8c01-8ccbcece850e",
EDGE_EXTENSION_FREQUENCY: "8f6a7013-794e-40d9-9bbe-8fdeed7c0b9d",
CAMERA_LIGHT: "bba079c2-293b-4ad5-99b8-4102a1220b12",
DETACH_MOPS: "4a52e16b-3c73-479d-b308-7f0bbdde0884"
DETACH_MOPS: "4a52e16b-3c73-479d-b308-7f0bbdde0884",
MOP_DOCK_CLEANING_PROCESS_TRIGGER: "42c7db4b-2cad-4801-a526-44de8944a41f"
};

module.exports = DreameQuirkFactory;
1 change: 1 addition & 0 deletions backend/lib/robots/dreame/DreameX40UltraValetudoRobot.js
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,7 @@ class DreameX40UltraValetudoRobot extends DreameGen4ValetudoRobot {
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.EDGE_EXTENSION_FREQUENCY),
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.CAMERA_LIGHT),
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.DETACH_MOPS),
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_CLEANING_PROCESS_TRIGGER),
]
}));

Expand Down

0 comments on commit 76280bd

Please sign in to comment.