From 9932b03616e3631f60e9ada736011da714f448e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Beye?= Date: Thu, 5 Jan 2023 12:40:11 +0100 Subject: [PATCH] feat(vendor.dreame): Add mop dock autorepair trigger quirk --- .../dreame/DreameL10SUltraValetudoRobot.js | 1 + .../lib/robots/dreame/DreameQuirkFactory.js | 21 +++++++++++++++++++ .../dreame/DreameX10PlusValetudoRobot.js | 1 + 3 files changed, 23 insertions(+) diff --git a/backend/lib/robots/dreame/DreameL10SUltraValetudoRobot.js b/backend/lib/robots/dreame/DreameL10SUltraValetudoRobot.js index 36d4eb5dd3..dcaa6b44fb 100644 --- a/backend/lib/robots/dreame/DreameL10SUltraValetudoRobot.js +++ b/backend/lib/robots/dreame/DreameL10SUltraValetudoRobot.js @@ -205,6 +205,7 @@ class DreameL10SUltraValetudoRobot extends DreameGen2LidarValetudoRobot { QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.BASIC_AI_CAMERA_SETTINGS), QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_DETERGENT), QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_WET_DRY_SWITCH), + QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_AUTO_REPAIR_TRIGGER), ] })); diff --git a/backend/lib/robots/dreame/DreameQuirkFactory.js b/backend/lib/robots/dreame/DreameQuirkFactory.js index 0e2a90dba8..57caaecdba 100644 --- a/backend/lib/robots/dreame/DreameQuirkFactory.js +++ b/backend/lib/robots/dreame/DreameQuirkFactory.js @@ -638,6 +638,26 @@ class DreameQuirkFactory { ); } }); + case DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_AUTO_REPAIR_TRIGGER: + return new Quirk({ + id: id, + title: "Mop Dock Auto Repair", + description: "If the mops don't stay wet during cleaning, there might be air in the system," + + "preventing the water tank in the robot from being filled. In that case, try running this a few times.", + options: ["select_to_trigger", "trigger"], + getter: async () => { + return "select_to_trigger"; + }, + setter: async (value) => { + if (value === "trigger") { + return this.helper.writeProperty( + 99, + 8, + JSON.stringify({ "bittest": [19, 0] }) + ); + } + } + }); default: throw new Error(`There's no quirk with id ${id}`); } @@ -658,6 +678,7 @@ DreameQuirkFactory.KNOWN_QUIRKS = { BASIC_AI_CAMERA_SETTINGS: "6305a7bc-cc10-4251-99e1-1bf567fee74c", MOP_DOCK_DETERGENT: "a2a03d42-c710-45e5-b53a-4bc62778589f", MOP_DOCK_WET_DRY_SWITCH: "66adac0f-0a16-4049-b6ac-080ef702bb39", + MOP_DOCK_AUTO_REPAIR_TRIGGER: "ae753798-aa4f-4b35-a60c-91e7e5ae76f3", }; module.exports = DreameQuirkFactory; diff --git a/backend/lib/robots/dreame/DreameX10PlusValetudoRobot.js b/backend/lib/robots/dreame/DreameX10PlusValetudoRobot.js index 67d6337632..ca1037b44b 100644 --- a/backend/lib/robots/dreame/DreameX10PlusValetudoRobot.js +++ b/backend/lib/robots/dreame/DreameX10PlusValetudoRobot.js @@ -176,6 +176,7 @@ class DreameX10PlusValetudoRobot extends DreameGen2LidarValetudoRobot { QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_MOP_CLEANING_FREQUENCY), QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.BASIC_AI_CAMERA_SETTINGS), QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_WET_DRY_SWITCH), + QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.MOP_DOCK_AUTO_REPAIR_TRIGGER), ] }));