DeebotUniverse / docs

https://deebot.readthedocs.io
GNU General Public License v3.0
33 stars 9 forks source link

Cleaning a custom area by name, not by coordinates? #263

Open redlefloh opened 2 months ago

redlefloh commented 2 months ago

Hi all, I really enjoy the integration, thanks so much! I have a question, can I clean a custom area and reuse the custom areas defined in the Ecovacs App, e.g. "Pet Area Cleaning" instead of defining coordinates as described in custom_area command.

It would be really great if one could just specify the names given in the App since it is easy to define the custom areas there. Is there a way? I imagine something like:

service: vacuum.send_command
target:
  entity_id: vacuum.YOUR_ROBOT_NAME
data:
  command: custom_area
  params:
    name: 'Pet Cleaning Area'

Also, is there also a way to add cleaning preferences to this command?

Thanks!

edenhaus commented 2 months ago

As my bot doesn't support this feature, please feel free to analyze the traffic between the app and the Ecovacs servers to see which commands need to be send

redlefloh commented 2 months ago

How can one analyze the traffic between the App and the Server?

redlefloh commented 2 months ago

okay I looked arround a bit and started with redirecting the traffic from the App to the Ecovacs servers via a local RasPi by modyfing dnsmasq.conf on my UDM:

address=/ecouser.net/192.168.12.101
address=/ecovacs.com/192.168.12.101
address=/ecovacs.net/192.168.12.101

which worked fine. Then I looked at a few potential sniffing candidates that I found, e.g. xmpppeek described in bumper, or xmpp-mitm, or also xmppmitm. Unfortunately all these tools seem to be outdated (most based on python2) and seem not to be touched for many years. I tried now for almost a day and also looked further around but couldn't find anything that seems to be actively in use to sniff the Ecovacs App to Ecovacs server traffic? Is there a more current approach out there that I am missing? Wireshark also doesn't seem to capture the traffic, I assume because it is TLS encrypted. Any hint on how to best analyse the traffic would be highly appreciated. Also, if someone could confirm that any of the methods above should actually work and it is just me messing it up, that would also be super helpful as well! Thanks!

edenhaus commented 2 months ago

I use man in the middle proxy (https://mitmproxy.org/)