diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-12 02:54:02 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-12 02:54:02 +0000 |
commit | b8e024d840c0d3e36407f4bfd60e54af05575a54 (patch) | |
tree | 10b99ec492207c15053f17179939bf9547c1abb1 | |
parent | d852064db53d469a4cac8a6e185ece491957f36f (diff) |
automatic import of python-deebotozmo
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-deebotozmo.spec | 297 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 299 insertions, 0 deletions
@@ -0,0 +1 @@ +/deebotozmo-3.0.2.tar.gz diff --git a/python-deebotozmo.spec b/python-deebotozmo.spec new file mode 100644 index 0000000..71cec62 --- /dev/null +++ b/python-deebotozmo.spec @@ -0,0 +1,297 @@ +%global _empty_manifest_terminate_build 0 +Name: python-deebotozmo +Version: 3.0.2 +Release: 1 +Summary: a library for controlling certain deebot vacuums +License: GPL-3.0 +URL: https://github.com/And3rsL/Deebotozmo +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/e9/3b/397d474b8f5745bcf7b4b055e0ae08ccd5c76013bfe28998f6212ff5a330/deebotozmo-3.0.2.tar.gz +BuildArch: noarch + +Requires: python3-gmqtt +Requires: python3-numpy +Requires: python3-Pillow +Requires: python3-aiohttp +Requires: python3-click +Requires: python3-cachetools + +%description +# Library for DeebotOzmo 960/950/920 +A simple command-line python script to drive a robot vacuum. Currently +known to work with the Ecovacs Deebot 960/950/920 from both North America and Europe. +## Installation +If you have a recent version of Python 3, you should be able to +do `pip install deebotozmo` to get the most recently released version of +this. +## Usage +To get started, you'll need to have already set up an EcoVacs account +using your smartphone. +You are welcome to try using this as a python library for other efforts. +A simple usage might go something like this: +```python +import aiohttp +import asyncio +import logging +import random +import string +from deebotozmo.commands import * +from deebotozmo.commands.clean import CleanAction +from deebotozmo.ecovacs_api import EcovacsAPI +from deebotozmo.ecovacs_mqtt import EcovacsMqtt +from deebotozmo.events import BatteryEvent +from deebotozmo.util import md5 +from deebotozmo.vacuum_bot import VacuumBot +device_id = "".join(random.choice(string.ascii_uppercase + string.digits) for _ in range(12)) +email = "your email or phonenumber (cn)" +password_hash = md5("yourPassword") +continent = "eu" +country = "de" +async def main(): + async with aiohttp.ClientSession() as session: + logging.basicConfig(level=logging.DEBUG) + api = EcovacsAPI(session, device_id, email, password_hash, continent=continent, country=country, + verify_ssl=False) + await api.login() + devices_ = await api.get_devices() + auth = await api.get_request_auth() + bot = VacuumBot(session, auth, devices_[0], continent=continent, country=country, verify_ssl=False) + mqtt = EcovacsMqtt(continent=continent, country=country) + await mqtt.initialize(auth) + await mqtt.subscribe(bot) + async def on_battery(event: BatteryEvent): + # Do stuff on battery event + if event.value == 100: + # Battery full + pass + # Subscribe for events (more events available) + bot.events.battery.subscribe(on_battery) + # Execute commands + await bot.execute_command(Clean(CleanAction.START)) + await asyncio.sleep(900) # Wait for... + await bot.execute_command(Charge()) +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.create_task(main()) + loop.run_forever() +``` +A more advanced example can be found [here](https://github.com/And3rsL/Deebot-for-Home-Assistant). +## Thanks +My heartfelt thanks to: +- [sucks](https://github.com/wpietri/sucks), After all, this is a sucks fork :) +- [xmpppeek](https://www.beneaththewaves.net/Software/XMPPPeek.html), a great library for examining XMPP traffic flows ( + yes, your vacuum speaks Jabbber!), +- [mitmproxy](https://mitmproxy.org/), a fantastic tool for analyzing HTTPS, +- [click](http://click.pocoo.org/), a wonderfully complete and thoughtful library for making Python command-line + interfaces, +- [requests](http://docs.python-requests.org/en/master/), a polished Python library for HTTP requests, +- [Decompilers online](http://www.javadecompilers.com/apk), which was very helpful in figuring out what the Android app + was up to, +- Albert Louw, who was kind enough to post code + from [his own experiments](https://community.smartthings.com/t/ecovacs-deebot-n79/93410/33) + with his device, and +- All the users who have given useful feedback and contributed code! + +%package -n python3-deebotozmo +Summary: a library for controlling certain deebot vacuums +Provides: python-deebotozmo +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-deebotozmo +# Library for DeebotOzmo 960/950/920 +A simple command-line python script to drive a robot vacuum. Currently +known to work with the Ecovacs Deebot 960/950/920 from both North America and Europe. +## Installation +If you have a recent version of Python 3, you should be able to +do `pip install deebotozmo` to get the most recently released version of +this. +## Usage +To get started, you'll need to have already set up an EcoVacs account +using your smartphone. +You are welcome to try using this as a python library for other efforts. +A simple usage might go something like this: +```python +import aiohttp +import asyncio +import logging +import random +import string +from deebotozmo.commands import * +from deebotozmo.commands.clean import CleanAction +from deebotozmo.ecovacs_api import EcovacsAPI +from deebotozmo.ecovacs_mqtt import EcovacsMqtt +from deebotozmo.events import BatteryEvent +from deebotozmo.util import md5 +from deebotozmo.vacuum_bot import VacuumBot +device_id = "".join(random.choice(string.ascii_uppercase + string.digits) for _ in range(12)) +email = "your email or phonenumber (cn)" +password_hash = md5("yourPassword") +continent = "eu" +country = "de" +async def main(): + async with aiohttp.ClientSession() as session: + logging.basicConfig(level=logging.DEBUG) + api = EcovacsAPI(session, device_id, email, password_hash, continent=continent, country=country, + verify_ssl=False) + await api.login() + devices_ = await api.get_devices() + auth = await api.get_request_auth() + bot = VacuumBot(session, auth, devices_[0], continent=continent, country=country, verify_ssl=False) + mqtt = EcovacsMqtt(continent=continent, country=country) + await mqtt.initialize(auth) + await mqtt.subscribe(bot) + async def on_battery(event: BatteryEvent): + # Do stuff on battery event + if event.value == 100: + # Battery full + pass + # Subscribe for events (more events available) + bot.events.battery.subscribe(on_battery) + # Execute commands + await bot.execute_command(Clean(CleanAction.START)) + await asyncio.sleep(900) # Wait for... + await bot.execute_command(Charge()) +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.create_task(main()) + loop.run_forever() +``` +A more advanced example can be found [here](https://github.com/And3rsL/Deebot-for-Home-Assistant). +## Thanks +My heartfelt thanks to: +- [sucks](https://github.com/wpietri/sucks), After all, this is a sucks fork :) +- [xmpppeek](https://www.beneaththewaves.net/Software/XMPPPeek.html), a great library for examining XMPP traffic flows ( + yes, your vacuum speaks Jabbber!), +- [mitmproxy](https://mitmproxy.org/), a fantastic tool for analyzing HTTPS, +- [click](http://click.pocoo.org/), a wonderfully complete and thoughtful library for making Python command-line + interfaces, +- [requests](http://docs.python-requests.org/en/master/), a polished Python library for HTTP requests, +- [Decompilers online](http://www.javadecompilers.com/apk), which was very helpful in figuring out what the Android app + was up to, +- Albert Louw, who was kind enough to post code + from [his own experiments](https://community.smartthings.com/t/ecovacs-deebot-n79/93410/33) + with his device, and +- All the users who have given useful feedback and contributed code! + +%package help +Summary: Development documents and examples for deebotozmo +Provides: python3-deebotozmo-doc +%description help +# Library for DeebotOzmo 960/950/920 +A simple command-line python script to drive a robot vacuum. Currently +known to work with the Ecovacs Deebot 960/950/920 from both North America and Europe. +## Installation +If you have a recent version of Python 3, you should be able to +do `pip install deebotozmo` to get the most recently released version of +this. +## Usage +To get started, you'll need to have already set up an EcoVacs account +using your smartphone. +You are welcome to try using this as a python library for other efforts. +A simple usage might go something like this: +```python +import aiohttp +import asyncio +import logging +import random +import string +from deebotozmo.commands import * +from deebotozmo.commands.clean import CleanAction +from deebotozmo.ecovacs_api import EcovacsAPI +from deebotozmo.ecovacs_mqtt import EcovacsMqtt +from deebotozmo.events import BatteryEvent +from deebotozmo.util import md5 +from deebotozmo.vacuum_bot import VacuumBot +device_id = "".join(random.choice(string.ascii_uppercase + string.digits) for _ in range(12)) +email = "your email or phonenumber (cn)" +password_hash = md5("yourPassword") +continent = "eu" +country = "de" +async def main(): + async with aiohttp.ClientSession() as session: + logging.basicConfig(level=logging.DEBUG) + api = EcovacsAPI(session, device_id, email, password_hash, continent=continent, country=country, + verify_ssl=False) + await api.login() + devices_ = await api.get_devices() + auth = await api.get_request_auth() + bot = VacuumBot(session, auth, devices_[0], continent=continent, country=country, verify_ssl=False) + mqtt = EcovacsMqtt(continent=continent, country=country) + await mqtt.initialize(auth) + await mqtt.subscribe(bot) + async def on_battery(event: BatteryEvent): + # Do stuff on battery event + if event.value == 100: + # Battery full + pass + # Subscribe for events (more events available) + bot.events.battery.subscribe(on_battery) + # Execute commands + await bot.execute_command(Clean(CleanAction.START)) + await asyncio.sleep(900) # Wait for... + await bot.execute_command(Charge()) +if __name__ == '__main__': + loop = asyncio.get_event_loop() + loop.create_task(main()) + loop.run_forever() +``` +A more advanced example can be found [here](https://github.com/And3rsL/Deebot-for-Home-Assistant). +## Thanks +My heartfelt thanks to: +- [sucks](https://github.com/wpietri/sucks), After all, this is a sucks fork :) +- [xmpppeek](https://www.beneaththewaves.net/Software/XMPPPeek.html), a great library for examining XMPP traffic flows ( + yes, your vacuum speaks Jabbber!), +- [mitmproxy](https://mitmproxy.org/), a fantastic tool for analyzing HTTPS, +- [click](http://click.pocoo.org/), a wonderfully complete and thoughtful library for making Python command-line + interfaces, +- [requests](http://docs.python-requests.org/en/master/), a polished Python library for HTTP requests, +- [Decompilers online](http://www.javadecompilers.com/apk), which was very helpful in figuring out what the Android app + was up to, +- Albert Louw, who was kind enough to post code + from [his own experiments](https://community.smartthings.com/t/ecovacs-deebot-n79/93410/33) + with his device, and +- All the users who have given useful feedback and contributed code! + +%prep +%autosetup -n deebotozmo-3.0.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-deebotozmo -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed Apr 12 2023 Python_Bot <Python_Bot@openeuler.org> - 3.0.2-1 +- Package Spec generated @@ -0,0 +1 @@ +0d2508d6e5eb2d1b120ba1592eab8bfa deebotozmo-3.0.2.tar.gz |