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  | 
