dreame-vacuum icon indicating copy to clipboard operation
dreame-vacuum copied to clipboard

Support for new Xiaomi Robot Vacuum X20+

Open stich86 opened this issue 10 months ago • 61 comments

Can you please add support for Xiaomi Robot Vacuum X20+?
It's the twin of Dreame L10s Ultra

Currently when I add new account, it says that no robot has been found.

Thanks in advance

stich86 avatar Apr 19 '24 13:04 stich86

Which version are you using? Also I need the full model number.

Tasshack avatar Apr 19 '24 13:04 Tasshack

here is it: xiaomi.vacuum.c102gl firmware version: 4.3.9_1066

stich86 avatar Apr 19 '24 15:04 stich86

I cannot access the miot right now to check it but that device probably not manufactured by Dreame therefore cannot be used with this integration. I will notify you when miot-stats will be availabile again.

Tasshack avatar Apr 19 '24 15:04 Tasshack

I can add it to the supported devices list if I can confirm that this is actually the same device with the L10s Ultra as you claimed.

Tasshack avatar Apr 19 '24 15:04 Tasshack

here is it: xiaomi.vacuum.c102gl

i've tried to add it to config_flow.py , but when it sends token there is no response from the device :(

stich86 avatar Apr 19 '24 15:04 stich86

here is it: xiaomi.vacuum.c102gl

i've tried to add to config_flow.py , but when it send token there is no response from the device :(

You need to select Prefer Cloud Connection since Dreame has disabled the local api recently. Also adding it to the config flow would not be enough since integration requires private key of the map for decoding it. Also if your are using the Beta, integration would require model capabilities to work properly.

Tasshack avatar Apr 19 '24 15:04 Tasshack

here is it: xiaomi.vacuum.c102gl

i've tried to add to config_flow.py , but when it send token there is no response from the device :(

You need to select Prefer Cloud Connection since Dreame has disabled the local api recently. Also adding it to the config flow would not be enough since integration requires private key of the map for decoding it. Also if your are using the Beta, integration would require model capabilities to work properly.

ok, i'll wait your feedback if it's possible to add or not thanks :)

stich86 avatar Apr 19 '24 15:04 stich86

You can at least try to add the device using the Beta version of the integration by adding it to the config flow but just to confirm that this is a Dreame device. But remove it just after the confirmatiun to not to break anything until the new version is available.

Tasshack avatar Apr 19 '24 16:04 Tasshack

I would be very nice if you enable the info logs and share me too.

Tasshack avatar Apr 19 '24 16:04 Tasshack

You can at least try to add the device using the Beta version of the integration by adding it to the config flow but just to confirm that this is a Dreame device. But remove it just after the confirmatiun to not to break anything until the new version is available.

i've seen that in the latest beta13 there was xiaomi.vacuum.c102cn, this one is c102gl (I presume global version because it's sold in Italy)

Which flags do I need to enable debug? It's not a problem for me to share logs :)

stich86 avatar Apr 19 '24 16:04 stich86

ok looks like it attach after change c102cn to c102gl and use cloud connection (some items are missing, may be because not fully supported) - for instance, this version doesn't have detergent tank:

image image image image

stich86 avatar Apr 19 '24 16:04 stich86

Yeah it is the same device with same firmware but its model name still needs to be in the keystore list otherwise you cannot use the map function.

I won't be releasing a new version soon but I can send you the files need to be changed to make this device properly when I am available in couple of days.

Tasshack avatar Apr 19 '24 16:04 Tasshack

Yeah it is the same device with same firmware but its model name still needs to be in the keystore list otherwise you cannot use the map function.

I won't be releasing a new version soon but I can send you the files need to be changed to make this device properly when I am available in couple of days.

that sounds good :)

i'm waiting your info, ATM i've added it so I can use basic command :)

stich86 avatar Apr 19 '24 16:04 stich86

You can use basic services like start, stop but i don't recommend changing any setting because robot does not have checks for any wrong parameter and everything is only limited by the app. So if you try to change a setting on a device that does not support it, it still tries to do the related work and may break things with the operation. As you already see, it still advertises the detergent settings even it does not have it, thats why integration needs to know capabilities of each model.

Tasshack avatar Apr 19 '24 16:04 Tasshack

Also looking for these archives or implementation. Receiving mine in 3 days.

Thank you!

alexflcl avatar Apr 21 '24 18:04 alexflcl

Another one waiting for the X20+ integration :)

joseluislucio avatar Apr 25 '24 08:04 joseluislucio

Also patiently waiting for the integration 😊

gabriel-gfs avatar May 03 '24 12:05 gabriel-gfs

Last week Xiaomi started to sell the X20+ in Germany and I'm sure many guys are now waiting for the updated integration.

Thanks in advance @Tasshack

mc-flash avatar May 07 '24 12:05 mc-flash

Got mine yesterday. Also waiting to get the integration working. Thx in advance

papst01 avatar May 09 '24 11:05 papst01

miot-spec : https://home.miot-spec.com/spec/xiaomi.vacuum.c102gl Can I help with add this device? Thanks.

radim-ek avatar May 26 '24 18:05 radim-ek

@Tasshack @radim-ek Hi, I just got mine. I'm a developer so I can help with testing or development. Does anyone working on it?

martindybal avatar May 27 '24 11:05 martindybal

ok. Thank you. Let me know if there is anything I can do to help. Is Ko-Fi not an issue for you?

gunnm80 avatar Jun 04 '24 12:06 gunnm80

@Tasshack очень ждем интеграцию от Вас! Огромное спасибо за Ваши труды!

privedentsev avatar Jun 07 '24 17:06 privedentsev

Support for xiaomi.vacuum.c102gl has been added on latest Beta release. https://github.com/Tasshack/dreame-vacuum/releases/tag/v2.0.0b15

Tasshack avatar Jun 10 '24 13:06 Tasshack

ok. Thank you. Let me know if there is anything I can do to help. Is Ko-Fi not an issue for you?

https://www.ko-fi.com/Tasshack

Tasshack avatar Jun 10 '24 13:06 Tasshack

@Tasshack My card doesn't work.

privedentsev avatar Jun 11 '24 08:06 privedentsev

@privedentsev I have the same problem and no idea what to do.

Found an old issue about that: https://github.com/Tasshack/dreame-vacuum/issues/229 The guy there uses HA in docker, maybe that's the problem. But I'm using HA OS... ?!

mc-flash avatar Jun 11 '24 08:06 mc-flash

I can confirm basic functionality. But map is not working

image image

image

martindybal avatar Jun 11 '24 09:06 martindybal

Have you checked the logs. This probably happening because the private key of the map is not the same with the xiaomi.vacuum.120cn. I cannot confirm this because miot does not have the plugin for device yet but i dont know where app downloads it. I need the model app plugin to get the map private key and put it in the integration.

Tasshack avatar Jun 11 '24 09:06 Tasshack

Thanks for your quick answer!

Here are some of the logs (got even some more problems from the integration):

Dieser Fehler wurde von einer benutzerdefinierten Integration verursacht

Logger: custom_components.dreame_vacuum.dreame.protocol Quelle: custom_components/dreame_vacuum/dreame/protocol.py:997 Integration: Dreame Vacuum (Dokumentation, Probleme) Erstmals aufgetreten: 04:25:10 (12 Vorkommnisse) Zuletzt protokolliert: 08:41:12

Error while executing request: https://de.api.io.mi.com/app/v2/home/rpc/1064917535 HTTPSConnectionPool(host='de.api.io.mi.com', port=443): Read timed out. (read timeout=5)

Dieser Fehler wurde von einer benutzerdefinierten Integration verursacht

Logger: custom_components.dreame_vacuum.dreame.map Quelle: custom_components/dreame_vacuum/dreame/map.py:237 Integration: Dreame Vacuum (Dokumentation, Probleme) Erstmals aufgetreten: 08:39:52 (1 Vorkommnisse) Zuletzt protokolliert: 08:39:52

Getting map_data from cloud failed

Dieser Fehler wurde von einer benutzerdefinierten Integration verursacht

Logger: custom_components.dreame_vacuum.dreame.map Quelle: custom_components/dreame_vacuum/dreame/map.py:293 Integration: Dreame Vacuum (Dokumentation, Probleme) Erstmals aufgetreten: 00:00:00 (12 Vorkommnisse) Zuletzt protokolliert: 08:41:56

Send request map failed: Unable to discover the device over cloud

mc-flash avatar Jun 11 '24 09:06 mc-flash