Skip to content

Commit

Permalink
fix(vendor.dreame): The STYTJO6ZHM does not feature a watertank
Browse files Browse the repository at this point in the history
  • Loading branch information
Hypfer committed May 12, 2022
1 parent 93cf24d commit 9b75974
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 5 deletions.
6 changes: 6 additions & 0 deletions backend/lib/robots/dreame/DreameD9ProValetudoRobot.js
Expand Up @@ -2,6 +2,7 @@ const capabilities = require("./capabilities");
const DreameGen2LidarValetudoRobot = require("./DreameGen2LidarValetudoRobot");
const DreameGen2ValetudoRobot = require("./DreameGen2ValetudoRobot");
const DreameValetudoRobot = require("./DreameValetudoRobot");
const entities = require("../../entities");
const MiioValetudoRobot = require("../MiioValetudoRobot");
const ValetudoSelectionPreset = require("../../entities/core/ValetudoSelectionPreset");

Expand Down Expand Up @@ -61,6 +62,11 @@ class DreameD9ProValetudoRobot extends DreameGen2LidarValetudoRobot {
}
},
}));

this.state.upsertFirstMatchingAttribute(new entities.state.attributes.AttachmentStateAttribute({
type: entities.state.attributes.AttachmentStateAttribute.TYPE.WATERTANK,
attached: false
}));
}

getModelName() {
Expand Down
6 changes: 6 additions & 0 deletions backend/lib/robots/dreame/DreameD9ValetudoRobot.js
Expand Up @@ -2,6 +2,7 @@ const capabilities = require("./capabilities");
const DreameGen2LidarValetudoRobot = require("./DreameGen2LidarValetudoRobot");
const DreameGen2ValetudoRobot = require("./DreameGen2ValetudoRobot");
const DreameValetudoRobot = require("./DreameValetudoRobot");
const entities = require("../../entities");
const MiioValetudoRobot = require("../MiioValetudoRobot");
const ValetudoSelectionPreset = require("../../entities/core/ValetudoSelectionPreset");

Expand Down Expand Up @@ -61,6 +62,11 @@ class DreameD9ValetudoRobot extends DreameGen2LidarValetudoRobot {
}
},
}));

this.state.upsertFirstMatchingAttribute(new entities.state.attributes.AttachmentStateAttribute({
type: entities.state.attributes.AttachmentStateAttribute.TYPE.WATERTANK,
attached: false
}));
}

getModelName() {
Expand Down
6 changes: 6 additions & 0 deletions backend/lib/robots/dreame/DreameGen2VSlamValetudoRobot.js
Expand Up @@ -2,6 +2,7 @@ const DreameGen2ValetudoRobot = require("./DreameGen2ValetudoRobot");

const capabilities = require("./capabilities");
const DreameValetudoRobot = require("./DreameValetudoRobot");
const entities = require("../../entities");
const ValetudoSelectionPreset = require("../../entities/core/ValetudoSelectionPreset");


Expand Down Expand Up @@ -30,6 +31,11 @@ class DreameGen2VSlamValetudoRobot extends DreameGen2ValetudoRobot {
siid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID,
piid: DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.CARPET_MODE.PIID
}));

this.state.upsertFirstMatchingAttribute(new entities.state.attributes.AttachmentStateAttribute({
type: entities.state.attributes.AttachmentStateAttribute.TYPE.WATERTANK,
attached: false
}));
}
}

Expand Down
4 changes: 0 additions & 4 deletions backend/lib/robots/dreame/DreameGen2ValetudoRobot.js
Expand Up @@ -303,10 +303,6 @@ class DreameGen2ValetudoRobot extends DreameValetudoRobot {
}
}));

this.state.upsertFirstMatchingAttribute(new entities.state.attributes.AttachmentStateAttribute({
type: entities.state.attributes.AttachmentStateAttribute.TYPE.WATERTANK,
attached: false
}));

this.state.upsertFirstMatchingAttribute(new entities.state.attributes.AttachmentStateAttribute({
type: entities.state.attributes.AttachmentStateAttribute.TYPE.MOP,
Expand Down
6 changes: 6 additions & 0 deletions backend/lib/robots/dreame/DreameL10ProValetudoRobot.js
Expand Up @@ -3,6 +3,7 @@ const DreameGen2LidarValetudoRobot = require("./DreameGen2LidarValetudoRobot");
const DreameGen2ValetudoRobot = require("./DreameGen2ValetudoRobot");
const DreameQuirkFactory = require("./DreameQuirkFactory");
const DreameValetudoRobot = require("./DreameValetudoRobot");
const entities = require("../../entities");
const MiioValetudoRobot = require("../MiioValetudoRobot");
const QuirksCapability = require("../../core/capabilities/QuirksCapability");
const ValetudoSelectionPreset = require("../../entities/core/ValetudoSelectionPreset");
Expand Down Expand Up @@ -90,6 +91,11 @@ class DreameL10ProValetudoRobot extends DreameGen2LidarValetudoRobot {
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.OBSTACLE_AVOIDANCE)
]
}));

this.state.upsertFirstMatchingAttribute(new entities.state.attributes.AttachmentStateAttribute({
type: entities.state.attributes.AttachmentStateAttribute.TYPE.WATERTANK,
attached: false
}));
}


Expand Down
25 changes: 24 additions & 1 deletion backend/lib/robots/dreame/DreameSTYTJO6ZHMValetudoRobot.js
Expand Up @@ -149,13 +149,20 @@ class DreameSTYTJO6ZHMValetudoRobot extends DreameGen2LidarValetudoRobot {
}));
break;
}
case DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.WATER_TANK_ATTACHMENT.PIID: {
this.state.upsertFirstMatchingAttribute(new entities.state.attributes.AttachmentStateAttribute({
type: entities.state.attributes.AttachmentStateAttribute.TYPE.MOP,
attached: elem.value === 1
}));
break;
}
}
break;
}
}
});

// This filters out both the regular water-grade piid and the mopDock special one as otherwise those would confuse the state
// Filter out everything that might confuse the regular state parsing
return super.parseAndUpdateState(data.filter(e => {
return (
!(
Expand All @@ -165,11 +172,27 @@ class DreameSTYTJO6ZHMValetudoRobot extends DreameGen2LidarValetudoRobot {
!(
e.siid === DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID &&
e.piid === DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.MOP_DOCK_SETTINGS.PIID
) &&
!(
e.siid === DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.SIID &&
e.piid === DreameGen2ValetudoRobot.MIOT_SERVICES.VACUUM_2.PROPERTIES.WATER_TANK_ATTACHMENT.PIID
)
);
}));
}

getModelDetails() {
return Object.assign(
{},
super.getModelDetails(),
{
supportedAttachments: [
stateAttrs.AttachmentStateAttribute.TYPE.MOP,
]
}
);
}


getModelName() {
return "STYTJO6ZHM";
Expand Down
6 changes: 6 additions & 0 deletions backend/lib/robots/dreame/DreameZ10ProValetudoRobot.js
Expand Up @@ -3,6 +3,7 @@ const DreameGen2LidarValetudoRobot = require("./DreameGen2LidarValetudoRobot");
const DreameGen2ValetudoRobot = require("./DreameGen2ValetudoRobot");
const DreameQuirkFactory = require("./DreameQuirkFactory");
const DreameValetudoRobot = require("./DreameValetudoRobot");
const entities = require("../../entities");
const MiioValetudoRobot = require("../MiioValetudoRobot");
const QuirksCapability = require("../../core/capabilities/QuirksCapability");
const ValetudoSelectionPreset = require("../../entities/core/ValetudoSelectionPreset");
Expand Down Expand Up @@ -104,6 +105,11 @@ class DreameZ10ProValetudoRobot extends DreameGen2LidarValetudoRobot {
QuirkFactory.getQuirk(DreameQuirkFactory.KNOWN_QUIRKS.OBSTACLE_AVOIDANCE)
]
}));

this.state.upsertFirstMatchingAttribute(new entities.state.attributes.AttachmentStateAttribute({
type: entities.state.attributes.AttachmentStateAttribute.TYPE.WATERTANK,
attached: false
}));
}


Expand Down

0 comments on commit 9b75974

Please sign in to comment.