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

Support for Roborock Zeo One #197

Open
efstajas opened this issue Mar 31, 2024 · 7 comments
Open

Support for Roborock Zeo One #197

efstajas opened this issue Mar 31, 2024 · 7 comments

Comments

@efstajas
Copy link

Hey there! I'm wondering whether supporting the Roborock Zeo One washer / drier is at all planned or even considered in-scope for this package. It'd be amazing if this would eventually be supported, maybe at least with a limited feature set (e.g. remote start).

The Zeo One uses the same Roborock app as the vacuums supported by this package already. The interface appears relatively simple compared to the vacuums — within the app, you can only view the current status, select a program, start / stop / pause if remote control has been enabled on the appliance, and set a few settings that aren't all that important (detergent auto dosing etc).

I own a Zeo One and would be more than happy to support with reverse-engineering and, assuming you consider it in-scope, maybe even give it a shot myself, though I have very limited python experience.

@Lash-L
Copy link
Collaborator

Lash-L commented Mar 31, 2024

It uses a different protocol similar to the dyad vacuums. I am almost done adding support for those that should make support for the washer dryers easier. But they require some RE still

@efstajas
Copy link
Author

efstajas commented Apr 2, 2024

Great to hear, thanks. Let me know if I can help with the RE work somehow, happy to help.

@Lash-L
Copy link
Collaborator

Lash-L commented Apr 10, 2024

Hi @efstajas

I've finally got everything in a decent state.

v1.0.0 of the api adds support for the A01 devices (dyad + washing machine)

and home-assistant/core#115331 adds support to HA for Dyad vacuums.

If you are still interested, I would happily take your help getting the Zeo incorporated.

@efstajas
Copy link
Author

Great news! For sure, just lmk what to do.

@Lash-L
Copy link
Collaborator

Lash-L commented Apr 10, 2024

Okay if you want to add me on discord it may be easier. conway220 is my username, or you can search for Lash-L on the HA discord.

But to start off with you need to do the following:

I just did a lot of the RE myself right now based on some api calls, so lets see how this goes.

Clone this repo: https://github.com/humbertogontijo/python-roborock/tree/zeo_support

As a rough start:
api = RoborockApiClient("email_here")
ud = await api.pass_login("pass_here")
hd = await api.get_home_data_v2(ud)
client = RoborockMqttClientA01(ud, DeviceData(Put the device from hd here, put the model from hd.products here), put the category from hd.products here)
print(await client.update_values([RoborockZeoProtocol.MODE (You can try a list of all of them if you want.]))

@yangqian
Copy link

Thanks. I only have a Zeo One/H1 and running the following

from roborock.web_api import RoborockApiClient
from roborock.version_a01_apis import RoborockMqttClientA01
from roborock import DeviceData
from roborock.roborock_message import RoborockZeoProtocol
import asyncio

async def main():
    api = RoborockApiClient("email_here")
    ud = await api.pass_login("pass_here")
    hd = await api.get_home_data_v2(ud)
    device = hd.devices[0]
    cat = hd.products[0].category
    model = hd.products[0].model
    client = RoborockMqttClientA01(ud,DeviceData(device,model),cat)
    print(await client.update_values([RoborockZeoProtocol.MODE,RoborockZeoProtocol.STATE]))

if __name__ == '__main__':
    asyncio.run(main())

gives {204: 'wash_and_dry', 203: 'standby'}, which suggests that the API is working properly.

@Lash-L
Copy link
Collaborator

Lash-L commented Aug 20, 2024

Basic zero support has been added. Further support should be possible and PRs are welcome.

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

3 participants