CodeFoodPixels/robovac

Multi-Map

Opened this issue · 2 comments

Howdy, thanks

has somebody already figured it out how to select/toggle between multi-floors?

I don't care about the visual map itself, i just want to press clean "first floor" and clean "second floor".
There are some xiaomi pendants which accepts the command: "load_multi_map : ".

Room cleaning with roomsNumbers bigger than the maximum rooms of the first floors doesn't work either.

I tried to bruteforce it with my fingers, no luck :)

Thanks!

I'm setting up a template that just looks at when each room was last cleaned, if > 2 days it adds it to a string. It's a WIP but I'm planning on running the send command clean room with the state of the following as the parameter:

{{- "{""roomIds"": [" -}}
{%- if ((now().timestamp() - states('input_datetime.eufy_living_room_last_cleaned') | as_timestamp()) / 60 / 60 / 24) | round(1) > 2 -%}
  {{- "0," -}}
{%- endif -%}
{%- if ((now().timestamp() - states('input_datetime.eufy_hallway_last_cleaned') | as_timestamp()) / 60 / 60 / 24) | round(1) > 2 -%}
  {{- "1," -}}
{%- endif -%}
{%- if ((now().timestamp() - states('input_datetime.eufy_bathroom_last_cleaned') | as_timestamp()) / 60 / 60 / 24) | round(1) > 2 -%}
  {{- "2," -}}
{%- endif -%}
{%- if ((now().timestamp() - states('input_datetime.eufy_kitchen_last_cleaned') | as_timestamp()) / 60 / 60 / 24) | round(1) > 2 -%}
  {{- "4," -}}
{%- endif -%}
{%- if ((now().timestamp() - states('input_datetime.eufy_dining_room_last_cleaned') | as_timestamp()) / 60 / 60 / 24) | round(1) > 2 -%}
  {{- "5," -}}
{%- endif -%}
{%- if ((now().timestamp() - states('input_datetime.eufy_bedroom_last_cleaned') | as_timestamp()) / 60 / 60 / 24) | round(1) > 2 -%}
  {{- "7," -}}
{%- endif -%}
{{- "]}" -}}

Once the eufy is done I'll increment my date/time helpers to the current date.

you should be able to get a full list of room IDs on all floors through trial and error. You'll need to put your eufy on the correct floor for it to find the room you sent it to. So if you have 8 rooms on the first floor, you'll need to keep going with room ID 8, 9, etc until you hit your second floor rooms.

Ok, I moved the Eufy to the lower floor and as it turns out the room IDs start from 0 in the basement too... So it looks like each map has a set of roomIDs. Really unfortunate. So I'll second this feature request. Eve if there's a way to determine which map is being used would be hugely helpful.

Edit: Seems like it would be possible:
https://developer.tuya.com/en/docs/control-panel-sdk/laser-sweeper-data-api?id=Kacloflhzfi1p#title-5-getLaserMultiFloorMapList