Creating a flow for vacuum cleaner for different rooms

Hello!

I have a robot vacuum cleaner and I want to create a flow where the robot vacuum cleaner can clean rooms depending if a variable is set to yes/no in a dashboard.

I made a flow and this works fine for the floor where there are 2 rooms (Linda + Waskamer). But now I have a floor with 5 rooms, and there are way to much options for all variables.

I can create this with 5 rooms, but there should be an easier way?

I prefer not having to install extra apps since my memory on the Homey Pro2023 is already kinda full.

Thanks!

With 2 Yes/No variables you can make 4 combinations:
YY, YN, NY,NN

With 3 Yes/No variables you can make 8 combinations

YYY,YYN,YNY,YNN
NYY,NYN,NNY,NNN

With 4 Yes/No variables you can make 16 combinations

YYYY,YYYN,YYNY,YYNN
YNYY,YNYN,YNNY,YNNN
NYYY,NYYN,NYNY,NYNN
NNYY,NNYN,NNNY,NNNN

And so on.

Thanks for your reply.

Yes, i understand, but the thing is that with 5 rooms i have to make a LOT of combinations.
I’m just wondering if there aint an easier way.

Just for fun I tried if using the yellow-lines and ALL-cards could make your flow more slick.
With 2 rooms it’s not to bad, I think.
With 3 rooms it becomes messy, to say the least. Still not sure it’s flwless.:winking_face_with_tongue:

Use it with a time as well? You can then seperate each task fe

  • time = 14:00 and stfz room A is yes then vacuum room A
  • Time = 14:30 and stfz room B is yes them vacuum room B

Or instead of making it overly complex keep it simple

  • day is tuesday clean room A, C and E
  • Day is friday clean all rooms

Just for fun I created this flow for ‘3 rooms’:

Every time one of the 3 YES/NO-variables changes a TEXT-variable is updated. Depending on the content of the TEXT-variable one of the 8 options is selected each Tuesday and Friday.
Still a lot of work for 5 rooms (32 options) but doable?

Timing is a pretty good idea.

Downside is it takes longer, cause it doenst continue room after room and it has longer breaks between assignments. Also gives quite some extra pings to my phone cause he has multiple assignments and he sends a PM after finishing a job.

Reason for wanting a variable, is that sometimes in the morning some floors are filles with lego and clothes from children. :grinning_face: Often I dont have the time to clean it before vacuuming, so I want to have an easy skip that room(s) for that day.

Thanks for sharing the idea tho.

Good thing it is automated though :). You could finetune timing to lower the breaks between rooms.

If Homey is sending the “pings” you could change that automation to your wishes, with extra yes/no variables (Room X cleaned today)

Good idea. I just don’t see a “manageable flow” to fully suit your needs, since it will become quite complex. Maybe a HomeyScript could fit your needs, but i don’t have much experience with that.

Its the Dreame app itself sending the pings. Cause there are multiple types of error, i dont want to have all pings send from Homey, but from the Dreame app itself.

Thanks all for all the ideas tho. I’m gonna stick with my first idea, and try to minimize amount of rooms to 4, to keep an organised flow.

I’ve tried something with HomeyScript and it seems to work, as in: Dreame app card requires a comma seperated input with room names, this script returns a comma seperated list.

The order of input variables (in my case “Aanwezigheidswaarschuwing”, “Bewegingsalarm”, ..) must match with the const namen = ['Kamer Linda', 'Waskamer' ,... So we can match the yes/no variabels with the required rooms, since the Dreame card requires the room ids.

In my example I have picked some random yes/no variables that i have available in my Homey, the current values are: ✓✓⨯✓⨯ and they match with the result.

Script

const namen = ['Kamer Linda', 'Waskamer', 'Badkamer', 'Slaapkamer', 'Gang'];
const chars = [...args[0]];
const ruimten = namen.filter((_, i) => chars[i] === '✓');
return ruimten.join(', ');

After this card you can add the Dreame card to clean the room, hopefully you can select the flow variable resultaat (in Dutch) in the “rooms” field.

Edit: oops responded in Dutch instead of English, translated.

Amazing, next level :grinning_face:

Sadly tho, i don’t think I can put a variable result in a room field. There is only a card for an id or a room name. But both have to be selected from a dropdown.

I’ll bookmark this, and see if I can let it work with a workaround.

Many thanks!

@Pjotr_Grootkop

Just FYI, since you build the fantastic app.

This is not a request, but maybe it inspires you. Excluding a room feature.

And what about this?

Havent tested it yet, but curious about your input.

Looking pretty good!

Only needs the starting trigger(s) and a yellow line from “room D is yes” to “Terug naar basisstation”.

Great thinking, you really left your original workflow / idea aside for this :+1: