From c3405bdb8ebbd930a21835152211b2e8363da705 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Beye?= Date: Sat, 29 Jul 2023 23:13:29 +0200 Subject: [PATCH] fix(vendor.dreame): The L10S Pro does not support the CollisionAvoidantNavigationControlCapability --- backend/lib/robots/dreame/DreameL10SProValetudoRobot.js | 3 +-- .../DreameCarpetSensorModeControlCapability.js | 9 +++++++-- .../RoborockCarpetSensorModeControlCapability.js | 5 ++++- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/backend/lib/robots/dreame/DreameL10SProValetudoRobot.js b/backend/lib/robots/dreame/DreameL10SProValetudoRobot.js index c04c2e26db..26e28a1f31 100644 --- a/backend/lib/robots/dreame/DreameL10SProValetudoRobot.js +++ b/backend/lib/robots/dreame/DreameL10SProValetudoRobot.js @@ -134,8 +134,7 @@ class DreameL10SProValetudoRobot extends DreameGen2LidarValetudoRobot { [ capabilities.DreameCarpetModeControlCapability, capabilities.DreameKeyLockCapability, - capabilities.DreameObstacleAvoidanceControlCapability, - capabilities.DreameCollisionAvoidantNavigationControlCapability, + capabilities.DreameObstacleAvoidanceControlCapability ].forEach(capability => { this.registerCapability(new capability({robot: this})); }); diff --git a/backend/lib/robots/dreame/capabilities/DreameCarpetSensorModeControlCapability.js b/backend/lib/robots/dreame/capabilities/DreameCarpetSensorModeControlCapability.js index bbf474e4fd..7aa4401426 100644 --- a/backend/lib/robots/dreame/capabilities/DreameCarpetSensorModeControlCapability.js +++ b/backend/lib/robots/dreame/capabilities/DreameCarpetSensorModeControlCapability.js @@ -1,6 +1,7 @@ const CarpetSensorModeControlCapability = require("../../../core/capabilities/CarpetSensorModeControlCapability"); const DreameMiotHelper = require("../DreameMiotHelper"); const DreameMiotServices = require("../DreameMiotServices"); +const Logger = require("../../../Logger"); /** * @extends CarpetSensorModeControlCapability @@ -39,13 +40,17 @@ class DreameCarpetSensorModeControlCapability extends CarpetSensorModeControlCap case 1: return CarpetSensorModeControlCapability.MODE.AVOID; default: - throw new Error(`Received invalid mode ${modeRes}`); + Logger.warn(`Received invalid mode ${modeRes}`); + + return CarpetSensorModeControlCapability.MODE.OFF; } } else { return CarpetSensorModeControlCapability.MODE.AVOID; } } else { - throw new Error(`Received invalid sensor state ${sensorRes}`); + Logger.warn(`The carpet sensor reports error code ${sensorRes}. Toggle the carpet sensor mode to reset.`); + + return CarpetSensorModeControlCapability.MODE.OFF; } } diff --git a/backend/lib/robots/roborock/capabilities/RoborockCarpetSensorModeControlCapability.js b/backend/lib/robots/roborock/capabilities/RoborockCarpetSensorModeControlCapability.js index d91fc90d0f..36fa4dffd7 100644 --- a/backend/lib/robots/roborock/capabilities/RoborockCarpetSensorModeControlCapability.js +++ b/backend/lib/robots/roborock/capabilities/RoborockCarpetSensorModeControlCapability.js @@ -1,4 +1,5 @@ const CarpetSensorModeControlCapability = require("../../../core/capabilities/CarpetSensorModeControlCapability"); +const Logger = require("../../../Logger"); /** * @extends CarpetSensorModeControlCapability @@ -28,7 +29,9 @@ class RoborockCarpetSensorModeControlCapability extends CarpetSensorModeControlC case 0: return CarpetSensorModeControlCapability.MODE.AVOID; default: - throw new Error(`Received invalid value ${res?.[0]?.carpet_clean_mode}`); + Logger.warn(`Received invalid value ${res?.[0]?.carpet_clean_mode}`); + + return CarpetSensorModeControlCapability.MODE.OFF; } }