Skip to content

Commit

Permalink
feat(vendor.dreame): Some dreames allow for more than one zone
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed Oct 27, 2022
1 parent cc34e20 commit f7ff27c
Show file tree
Hide file tree
Showing 13 changed files with 216 additions and 20 deletions.
19 changes: 19 additions & 0 deletions backend/lib/robots/dreame/DreameD9ProValetudoRobot.js
Expand Up @@ -32,6 +32,25 @@ class DreameD9ProValetudoRobot extends DreameGen2LidarValetudoRobot {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.WATER_USAGE.PIID
}));

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
19 changes: 19 additions & 0 deletions backend/lib/robots/dreame/DreameD9ValetudoRobot.js
Expand Up @@ -37,6 +37,25 @@ class DreameD9ValetudoRobot extends DreameGen2LidarValetudoRobot {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.WATER_USAGE.PIID
}));

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
19 changes: 19 additions & 0 deletions backend/lib/robots/dreame/DreameF9ValetudoRobot.js
Expand Up @@ -14,6 +14,25 @@ class DreameF9ValetudoRobot extends DreameGen2VSlamValetudoRobot {
constructor(options) {
super(options);

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
19 changes: 0 additions & 19 deletions backend/lib/robots/dreame/DreameGen2ValetudoRobot.js
Expand Up @@ -96,25 +96,6 @@ class DreameGen2ValetudoRobot extends DreameValetudoRobot {
aiid: MIOT_SERVICES.AUDIO.ACTIONS.LOCATE.AIID
}));

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: MIOT_SERVICES.VACUUM_2.SIID,
aiid: MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19
}));

this.registerCapability(new capabilities.DreameMapSegmentationCapability({
robot: this,
miot_actions: {
Expand Down
19 changes: 19 additions & 0 deletions backend/lib/robots/dreame/DreameL10ProValetudoRobot.js
Expand Up @@ -37,6 +37,25 @@ class DreameL10ProValetudoRobot extends DreameGen2LidarValetudoRobot {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.WATER_USAGE.PIID
}));

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
20 changes: 20 additions & 0 deletions backend/lib/robots/dreame/DreameL10SProValetudoRobot.js
Expand Up @@ -54,6 +54,26 @@ class DreameL10SProValetudoRobot extends DreameGen2LidarValetudoRobot {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.WATER_USAGE.PIID
}));

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19,
maxZoneCount: 4
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
20 changes: 20 additions & 0 deletions backend/lib/robots/dreame/DreameL10SUltraValetudoRobot.js
Expand Up @@ -53,6 +53,26 @@ class DreameL10SUltraValetudoRobot extends DreameGen2LidarValetudoRobot {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.WATER_USAGE.PIID
}));

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19,
maxZoneCount: 4
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
19 changes: 19 additions & 0 deletions backend/lib/robots/dreame/DreameMopValetudoRobot.js
Expand Up @@ -24,6 +24,25 @@ class DreameMopValetudoRobot extends DreameGen2LidarValetudoRobot {
constructor(options) {
super(options);

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
19 changes: 19 additions & 0 deletions backend/lib/robots/dreame/DreameMovaZ500ValetudoRobot.js
Expand Up @@ -14,6 +14,25 @@ class DreameMovaZ500ValetudoRobot extends DreameGen2VSlamValetudoRobot {
constructor(options) {
super(options);

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
19 changes: 19 additions & 0 deletions backend/lib/robots/dreame/DreameP2148ValetudoRobot.js
Expand Up @@ -14,6 +14,25 @@ class DreameP2148ValetudoRobot extends DreameGen2VSlamValetudoRobot {
constructor(options) {
super(options);

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
20 changes: 20 additions & 0 deletions backend/lib/robots/dreame/DreameX10PlusValetudoRobot.js
Expand Up @@ -53,6 +53,26 @@ class DreameX10PlusValetudoRobot extends DreameGen2LidarValetudoRobot {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.WATER_USAGE.PIID
}));

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19,
maxZoneCount: 4
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
19 changes: 19 additions & 0 deletions backend/lib/robots/dreame/DreameZ10ProValetudoRobot.js
Expand Up @@ -38,6 +38,25 @@ class DreameZ10ProValetudoRobot extends DreameGen2LidarValetudoRobot {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.WATER_USAGE.PIID
}));

this.registerCapability(new capabilities.DreameZoneCleaningCapability({
robot: this,
miot_actions: {
start: {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
aiid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.ACTIONS.START.AIID
}
},
miot_properties: {
mode: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MODE.PIID
},
additionalCleanupParameters: {
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.ADDITIONAL_CLEANUP_PROPERTIES.PIID
}
},
zoneCleaningModeId: 19
}));

this.registerCapability(new capabilities.DreameConsumableMonitoringCapability({
robot: this,
miot_properties: {
Expand Down
Expand Up @@ -25,6 +25,8 @@ class DreameZoneCleaningCapability extends ZoneCleaningCapability {
* @param {number} options.miot_properties.additionalCleanupParameters.piid
*
* @param {number} options.zoneCleaningModeId
*
* @param {number} [options.maxZoneCount]
*/
constructor(options) {
super(options);
Expand All @@ -33,6 +35,7 @@ class DreameZoneCleaningCapability extends ZoneCleaningCapability {
this.miot_properties = options.miot_properties;

this.zoneCleaningModeId = options.zoneCleaningModeId;
this.maxZoneCount = options.maxZoneCount ?? 1;

this.helper = new DreameMiotHelper({robot: this.robot});
}
Expand Down Expand Up @@ -97,7 +100,7 @@ class DreameZoneCleaningCapability extends ZoneCleaningCapability {
return {
zoneCount: {
min: 1,
max: 1
max: this.maxZoneCount
},
iterationCount: {
min: 1,
Expand Down

0 comments on commit f7ff27c

Please sign in to comment.