%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 * Tue Apr 25 2023 Python_Bot - 3.0.2-1 - Package Spec generated