Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-Map #81

Open
Patpatolino opened this issue Apr 14, 2024 · 2 comments
Open

Multi-Map #81

Patpatolino opened this issue Apr 14, 2024 · 2 comments

Comments

@Patpatolino
Copy link

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!

@dxmnkd316
Copy link

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.

@dxmnkd316
Copy link

dxmnkd316 commented Jul 16, 2024

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants