Git Product home page Git Product logo

Comments (18)

tobiaskuntzsch avatar tobiaskuntzsch commented on June 22, 2024 2

The requests look a little different than those from the vacuum cleaner, some have a V2 at the end but not all.
This is certainly the reason why the mower is found, but you cannot control it with the current ha integration.

I still don't fully understand how client.py works here. But I'll try to understand the code, for everyone who is faster or already knows what they're doing: https://gitlab.com/goat-g1/rest-api-dumps

from client.py.

edenhaus avatar edenhaus commented on June 22, 2024 1

As you see from the logs, many commands are not implemented yet in this library. To support the G1 first we need to add this commands and verify that we have at least covered the basic methods.

If there is a better way to get this info, let me know

The easiest would be to log the traffic between the app and the ecovacs server by a mitmproxy as want do know, which commands the app will send.

The mower support in HA will be discussed in home-assistant/architecture#894 and the first PR home-assistant/core#93623

from client.py.

tobiaskuntzsch avatar tobiaskuntzsch commented on June 22, 2024 1

Hi, I got the basic functions to work. The thing that doesn't work is the map.
I don't have a deboot vacuum cleaner and was only able to test it with a Goat G1. Before I open the PR, it would be great if someone with a vacuum cleaner and another goat could test it out.

Repo: https://github.com/tobiaskuntzsch/Deebot-4-Home-Assistant.git
(Client: https://github.com/tobiaskuntzsch/client.py)

Screenshot from 2023-10-01 11-13-15
Screenshot from 2023-10-01 11-13-29
Screenshot from 2023-10-01 11-13-37
Screenshot from 2023-10-01 11-13-47
Screenshot from 2023-10-01 11-15-12

I had difficulties importing the json commands, so i make this quick fix. If anyone has a tip what I did wrong? ;-)
https://github.com/tobiaskuntzsch/Deebot-4-Home-Assistant/blob/1245c4ba68652973fd9f438c259d92938942f504/custom_components/deebot/vacuum.py#L7

from client.py.

edenhaus avatar edenhaus commented on June 22, 2024 1

I had difficulties importing the json commands, so i make this quick fix. If anyone has a tip what I did wrong? ;-) tobiaskuntzsch/Deebot-4-Home-Assistant@1245c4b/custom_components/deebot/vacuum.py#L7

I refactored the client a lot for adding support XML based robots. The "Deebot-4-Home-assistant" needs still be updated to that change and use the new DeviceCapabilities

from client.py.

dogmatic69 avatar dogmatic69 commented on June 22, 2024 1

Bit hard to test with 10cm of snow on the ground... :)

from client.py.

dogmatic69 avatar dogmatic69 commented on June 22, 2024

If there is a better way to get this info, let me know

from client.py.

dogmatic69 avatar dogmatic69 commented on June 22, 2024

I'm happy to help out and spend some time on this. Are there any guides for doing this as I'm relatively new to this kind of thing (intercepting the traffic)

from client.py.

mikey0000 avatar mikey0000 commented on June 22, 2024

Yeah it's easier if you have a rooted Android phone. There are a few mitm proxies, there's one which you can load from desktop too, I used that.

from client.py.

JeedHome44 avatar JeedHome44 commented on June 22, 2024

I have packet capture in my Android. And I just install my Goat G1.
Can I help you ?

from client.py.

edenhaus avatar edenhaus commented on June 22, 2024

Please analyze the request from the ecovacs app. Not sure if the call the same endpoints as the vacuum cleaner...
If yes you should see some call to the endpoint iot/devmanager.do and than verify the body of the request. It should be json and the command name should be stored with the key cmdName (More details about the request can be found here)

It could also be that the G1 used different endpoint so please analyze the requests :)

from client.py.

JeedHome44 avatar JeedHome44 commented on June 22, 2024

I ordered 2 additional beacons because my land is in U. I am waiting to receive them to complete the configuration of the robot.

from client.py.

JeedHome44 avatar JeedHome44 commented on June 22, 2024

Nobody can say me how to captur my Goat G1 to send you results ?

from client.py.

edenhaus avatar edenhaus commented on June 22, 2024

@tobiaskuntzsch You can contact me over Discord for help. My username is edenhaus
And thanks a lot for the dump :D

from client.py.

edenhaus avatar edenhaus commented on June 22, 2024

@tobiaskuntzsch It is fine to open directly a PR and than I can directly write my feedback their :) I'm happy to add support for the G1

from client.py.

edenhaus avatar edenhaus commented on June 22, 2024

@dogmatic69 Are you planning to open a PR to add support for it? I'm happy to review it :)

from client.py.

dogmatic69 avatar dogmatic69 commented on June 22, 2024

I would but have no previous experience with reverse engineering the traffic. I'll see if I get some time over christmas perhaps.

from client.py.

edenhaus avatar edenhaus commented on June 22, 2024

If you can control the goat over HA, you have done everything right :) Also if it works only partly we can add it

from client.py.

edenhaus avatar edenhaus commented on June 22, 2024

That's true :)

from client.py.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.