跳转到主要内容

一个用于控制某些吸尘机器人的废弃库

项目描述

注意:前方是废弃软件

截至2020年3月,该项目不再是活跃项目。我的Ecovacs吸尘机器人已经损坏,并已被Roomba取代。这意味着我无法看到代码更改是否工作,因此我甚至无法有效地批准补丁。到目前为止,没有人同意接管它。如果您有兴趣这样做,请加入邮件列表并在那里讨论。

概览

一个简单的命令行Python脚本来驱动吸尘机器人。目前已知与来自北美和欧洲的Ecovacs Deebot N79、M80 Pro、M81、M88 Pro和R95 MKII兼容。

它对您的型号也有效吗?加入sucks-users邮件列表的讨论。

如果您对协议感兴趣,我已经开始了一个粗略文档。我乐于接受对该文档的pull请求。

项目名称的由来?嗯,a) 我需要MITM自己的吸尘器真是太荒谬了。这不是我签署的未来。b) 这是一个吸尘器。

安装

如果您安装了最新版本的Python 3,应该可以使用pip install sucks命令来获取最新版本。

使用方法

要开始使用,您需要使用智能手机设置一个EcoVacs账户。

准备好后,第一步是登录

% sucks login
Ecovacs app email: [your email]
Ecovacs app password: [your password]
your two-letter country code: us
your two-letter continent code: na
Config saved.

这将在平台合适的位置创建一个配置文件。密码在保存前会被加密,因此相对安全。(如果对您的洲不起作用,请尝试“ww”,这是他们的全球通用名称。)

设置好后,您可以将其设置为自动清洁10分钟后返回充电器

% sucks clean 10

您也可以让它清洁15分钟,然后额外进行10分钟的边缘清洁

% sucks clean 15 edge 10

如果您希望它清洁5分钟后停止充电

% sucks clean 5 stop

如果它失控了,您只想让它停在原地

% sucks stop

告诉它去充电

% sucks charge

我用crontab运行我的程序,但我不想每天都清洁,所以它还有一个基于您提供的频率随机决定是否运行的模式。我的crontab条目如下

0 10 * * * /home/william/projects/sucks/sucks.sh clean -f 4/7 15 edge -f 1/14 10

这意味着每天上午10点,它可能会做些什么。7天中有4天会进行15分钟的自动清洁。14天中有1天会进行10分钟的边缘清洁。然后它总是会返回充电。

库使用

您可以使用此作为Python库在其他项目中使用。API仍然是实验性的,所以请期待变化。请加入邮件列表以参与API的构建。

简单的使用可能如下所示

import sucks

config = ...

api = EcoVacsAPI(config['device_id'], config['email'], config['password_hash'],
                         config['country'], config['continent'])
my_vac = api.devices()[0]
vacbot = VacBot(api.uid, api.REALM, api.resource, api.user_access_token, my_vac, config['continent'])
vacbot.connect_and_wait_until_ready()

vacbot.run(Clean())  # start cleaning
time.sleep(900)      # clean for 15 minutes
vacbot.run(Charge()) # return to the charger

开发

如果您想参与开发,我建议查看代码,设置虚拟环境,并以可编辑模式安装此包。您可以通过运行测试来确认您的环境是否正常工作。并请加入邮件列表来讨论您的计划。

更多信息请参阅开发文档

另请参阅

现在还有类似库在JavaScriptGo中。

感谢

我衷心感谢

  • xmpppeek,这是一个用于检查XMPP流量流(是的,您的吸尘器说Jabbber!)的优秀库,

  • mitmproxy,这是一个用于分析HTTPS的出色工具,

  • click,这是一个制作Python命令行接口的完整且考虑周到的库,

  • requests,这是一个用于HTTP请求的精良的Python库,

  • 在线反编译器,这在了解Android应用行为方面非常有帮助,

  • Albert Louw,他非常慷慨地分享了他自己对设备进行的实验代码,以及

  • 所有提供有用反馈和贡献代码的用户!

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。

源代码分发

此版本没有提供源代码分发文件。请参阅 生成分发归档教程

构建分发

sucks-0.9.6-py3-none-any.whl (25.3 kB 查看哈希值)

上传于 Python 3

支持者