%global _empty_manifest_terminate_build 0 Name: python-deebot-client Version: 1.6.1 Release: 1 Summary: a library for controlling certain deebot vacuums License: GPL-3.0 URL: https://github.com/DeebotUniverse/client.py Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c5/0a/8d544734b60d6a6dd0b68f317f0839106676d99682b022f9734732b177f4/deebot-client-1.6.1.tar.gz BuildArch: noarch Requires: python3-aiohttp Requires: python3-cachetools Requires: python3-gmqtt Requires: python3-numpy Requires: python3-Pillow %description # Client Library for Deebot Vacuums [![PyPI - Downloads](https://img.shields.io/pypi/dw/deebot-client?style=for-the-badge)](https://pypi.org/project/deebot-client) Buy Me A Coffee ## Installation If you have a recent version of Python 3, you should be able to do `pip install deebot-client` 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 time from deebot_client import create_instances from deebot_client.commands import * from deebot_client.commands.clean import CleanAction from deebot_client.models import Configuration from deebot_client.mqtt_client import MqttClient from deebot_client.events import BatteryEvent from deebot_client.util import md5 from deebot_client.vacuum_bot import VacuumBot device_id = md5(str(time.time())) account_id = "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) config = Configuration(session, device_id=device_id, country=country, continent=continent, ) (authenticator, api_client) = create_instances(config, account_id, password_hash) devices_ = await api_client.get_devices() bot = VacuumBot(devices_[0], api_client) mqtt = MqttClient(config, authenticator) await mqtt.initialize() 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.subscribe(BatteryEvent, 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: - [deebotozmo](https://github.com/And3rsL/Deebotozmo), After all, this is a debotozmo fork :) - [sucks](https://github.com/wpietri/sucks), deebotozmo was forked from it :) - [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-deebot-client Summary: a library for controlling certain deebot vacuums Provides: python-deebot-client BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-deebot-client # Client Library for Deebot Vacuums [![PyPI - Downloads](https://img.shields.io/pypi/dw/deebot-client?style=for-the-badge)](https://pypi.org/project/deebot-client) Buy Me A Coffee ## Installation If you have a recent version of Python 3, you should be able to do `pip install deebot-client` 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 time from deebot_client import create_instances from deebot_client.commands import * from deebot_client.commands.clean import CleanAction from deebot_client.models import Configuration from deebot_client.mqtt_client import MqttClient from deebot_client.events import BatteryEvent from deebot_client.util import md5 from deebot_client.vacuum_bot import VacuumBot device_id = md5(str(time.time())) account_id = "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) config = Configuration(session, device_id=device_id, country=country, continent=continent, ) (authenticator, api_client) = create_instances(config, account_id, password_hash) devices_ = await api_client.get_devices() bot = VacuumBot(devices_[0], api_client) mqtt = MqttClient(config, authenticator) await mqtt.initialize() 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.subscribe(BatteryEvent, 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: - [deebotozmo](https://github.com/And3rsL/Deebotozmo), After all, this is a debotozmo fork :) - [sucks](https://github.com/wpietri/sucks), deebotozmo was forked from it :) - [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 deebot-client Provides: python3-deebot-client-doc %description help # Client Library for Deebot Vacuums [![PyPI - Downloads](https://img.shields.io/pypi/dw/deebot-client?style=for-the-badge)](https://pypi.org/project/deebot-client) Buy Me A Coffee ## Installation If you have a recent version of Python 3, you should be able to do `pip install deebot-client` 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 time from deebot_client import create_instances from deebot_client.commands import * from deebot_client.commands.clean import CleanAction from deebot_client.models import Configuration from deebot_client.mqtt_client import MqttClient from deebot_client.events import BatteryEvent from deebot_client.util import md5 from deebot_client.vacuum_bot import VacuumBot device_id = md5(str(time.time())) account_id = "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) config = Configuration(session, device_id=device_id, country=country, continent=continent, ) (authenticator, api_client) = create_instances(config, account_id, password_hash) devices_ = await api_client.get_devices() bot = VacuumBot(devices_[0], api_client) mqtt = MqttClient(config, authenticator) await mqtt.initialize() 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.subscribe(BatteryEvent, 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: - [deebotozmo](https://github.com/And3rsL/Deebotozmo), After all, this is a debotozmo fork :) - [sucks](https://github.com/wpietri/sucks), deebotozmo was forked from it :) - [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 deebot-client-1.6.1 %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-deebot-client -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Fri May 05 2023 Python_Bot - 1.6.1-1 - Package Spec generated