PiotrMachowski / Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor

This custom integration provides a way to present a live view of a map for Xiaomi (Roborock/Viomi/Roidmi/Dreame) vacuums without a need for rooting.
MIT License
1.14k stars 121 forks source link

Failed to retrieve map from vacuum. #364

Open awesome33rabbit opened 1 year ago

awesome33rabbit commented 1 year ago

Checklist

What vacuum model do you want to be supported?

roborock.vacuum.a52

What is its name?

Roborock T8 Plus

Available APIs

Errors shown in the HA logs (if applicable)

Logger: homeassistant.components.camera
Source: helpers/entity_platform.py:797
Integration: 摄像头 (documentation, issues)
First occurred: 10:04:30 (266 occurrences)
Last logged: 10:29:43

Updating xiaomi_cloud_map_extractor camera took longer than the scheduled update interval 0:00:05

Other info

image image

I can't find raw map file. There is no such file.

Installation: HomeAssistant OS. 2022.11.2

image
octopuss commented 1 year ago

@awesome33rabbit I have same problem after playing with wifi. The Roborock obtained new ip. Check if your device has correct IP in secrets.yaml. In my case it was different and after change and restart of Home assistant the map was back

jfarley248 commented 1 year ago

Having similar issues.

Related, I could not for the life of me get the Xiaomi Miio integration configured correctly with my S7 even though I had correct tokens and region, have the robot in a non segregated VLAN (diff VLAN from HA but I'll explain later). What did work was instead turning to this HACS repo xiaomi_miot_raw:

https://github.com/ha0y/xiaomi_miot_raw

Which describes how Xiaomi is now using a new specification to communicate with devices. And like I said it was able to connect to my device, even when it was on a different VLAN (granted there's rules for communication between, but one of the troubleshooting steps I've seen on this repo was to move it to the same, but I would rather not move it to my prod VLAN where HA resides until I really need to..).

When trying to then set up the Cloud Map Extractor, it kept failing with the issue described here (did reboots, remove from config + reboot + readd etc). Checking the logs I can see my account successfully logging in, (and I kept double checking my tokens weren't rotating as well), however then I see warnings about Cloud Map Extractor being unable to connect to my S7's IP, which was odd because right next to it in the logs was the xiaomi_miot_raw HACS integration logging that it was successfully connecting to my S7's IP!

So yea that's my long way of saying that new communication method may help some issues, or not, idk, I didn't do too much investigating.

YoMan12 commented 1 year ago

I have similar (but not the same) problem. The integration starts OK but after a certain time the map disappeared Could not retrive map from vacuum. Nieprawidłowa kalibracja, sprawdź konfigurację. The device (Roborock S&) has a static IP. The problem seems to be with Xiaomi cloud because I cannot see the map even in the Xiaomi app. After couple tries to fix (uninstall, reinstall, restart, changing config ... or maybe it is only question of time) it came back but ... next day in the morning was OK and after couple hours the problem was back.

Config:

camera:
  - platform: xiaomi_cloud_map_extractor
    host: !secret xiaomi_vacuum_host
    token: !secret xiaomi_vacuum_token
    username: !secret xiaomi_cloud_username
    password: !secret `xiaomi_cloud_password

Are there any known limitations? Is there possibility to solve that problem?

PiotrMachowski commented 1 year ago

@YoMan12 https://github.com/PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor/issues/422

YoMan12 commented 1 year ago

@PiotrMachowski I'm sorry. I should see that thread. Maybe I'm overworked :( Thanks for great integration.

sca075 commented 1 year ago

It looks the issue is not the integration (the work of Piotr is simply amazing), since we are actually in cyber war period.. the internet providers and as consequence DNS are more.. restricted. The 2Fa, is actually also used to let us trash old devices that can not do authenticate to the network (forcing the users to acquire new one). Indeed I guess Local Control means.. we do already have the calibration points downloaded when it was working.. I assume (did not download and test the code locally) the integration need to be connected to server to get the vacuum actual position and locate it on the map data. Valetudo looks to be solution but it is a pain to install... @PiotrMachowski turned off the vacuum waited 5 minutes (disconnected) turn on again and same error occurs... we need to wait few minutes and then the vacuum will start to communicate again with HA and your super implementation.. thanks a lot for the great job.. would try to help you as much I can ;)

kem-a commented 1 year ago

I believe Xiaomi have setup some map pooling quota. Exceeding it device is locked to get map data from cloud on this integration and also default Mi app. I don't know how long ban lasts, but I know it can be reset by removing device from Mi app and adding back. This will also reset token so you will need to get new token for this integration.

I contacted Xiaomi EU support about this problem only saying that I have a problem with loading map. Look what they replied me:

Good day, Thank you for reaching out to us! We're sorry to hear that you are having issues with your device. However, are you connecting the Roborock robotic vacuum to home assist with an integration named Xiaomi Miio? If yes, we are almost sure it is caused by that integration. Could you tell us which command or feature did you use in Xiaomi Miio to get map of the robot? It may help us figure out what is wrong." Best, Cliff Tech Support Roborock Technology Co.

Interestingly they went straight to blaming HA integration even so I never mentioned anything about HA.

PiotrMachowski commented 1 year ago

@AI-ien yeah, but I'm sure you aren't the only one that messaged them.

You can check out this thread: https://github.com/PiotrMachowski/Home-Assistant-custom-components-Xiaomi-Cloud-Map-Extractor/issues/422. It contains a link to a blueprint that should resolve these problems. Quota seems to be reset everyday, around midnight (exact time might depend on a used server).

x3style commented 1 year ago

@AI-ien yeah, but I'm sure you aren't the only one that messaged them.

You can check out this thread: #422. It contains a link to a blueprint that should resolve these problems. Quota seems to be reset everyday, around midnight (exact time might depend on a used server).

I can confirm this that the map re-appears in the morning but then suddenly becomes unavailable again. I beleive there should be an improvement added to the integration that does not query map status when the vacuum isn't actually moving to drastically reduce the API usage and potentially avoid hitting the quota limit.