jeremywillans / ha-rest980-roomba

HA iRobot Roomba Configuration using rest980
MIT License
211 stars 42 forks source link

Adding mopping feature to J7+ #65

Open satyricon-hu opened 10 months ago

satyricon-hu commented 10 months ago

Hello.

I was wondering, if there's a way to add mop feature?

I have a j7+, and managed to work out if you add some attributes to the payload that is sent to the API, you can trigger mopping.

example: {"params":{"noAutoPasses":true,"operatingMode":6,"padWetness":{"disposable":2,"reusable":2}}

there is also "twoPass":true/false for double passing a room.

jeremywillans commented 8 months ago

Hi there,

If adding those extra commands it whats required, then it shouldn't be an issue - however I dont have a J7+ so i cant really test it.

You would probably want to have another input_boolean for selecting vacuum or mapping status? i presume thats how it works? and this could be used to change the payload passed to the automation on line 451 of vacuum.yaml

PRs are welcome

jeremywillans commented 6 months ago

bump?

HartD92 commented 6 months ago

@satyricon-hu did you make any progress on this? I'm working on this same issue for my j9+ and don't want to duplicate effort if you've already done any.

@jeremywillans I can definitely work on and do a PR for the API call changes, but I know zero js. Would you be able to make updates to the card itself to account for a combo device?

satyricon-hu commented 6 months ago

@satyricon-hu did you make any progress on this? I'm working on this same issue for my j9+ and don't want to duplicate effort if you've already done any.

Nah.. didn't had time to do anything on it.

HartD92 commented 6 months ago

Ok, so my thought is to use an input_number for each room to encode the various cleaning options, and custom:button-cards that use bitwise operators to check/toggle their respective bits. These are the settings that I've found so far. Let me know if you have thoughts or if you think there might be settings that I'm missing:

Vac only is operatingMode = 2, vac + mop is operatingMode = 6 twoPass is a boolean for two passes vacHigh = true && carpetBoost = false | high power vacuum vacHigh = false && carpetBoost = false | low power vacuum vacHigh = false && carpetBoost = true | normal power vacuum swScrub = 1 for scrub mode For heavy fluid use, values = 3, for medium fluid, values = 2, for low fluid use, values = 1: padWetness { disposable = 3 reusable = 3 }

example so far: image image