A Python3, async-friendly library for Flo by Moen Smart Water Detectors
Project description
💧 aioflo: a Python3, asyncio-friendly library for Notion® Home Monitoring
aioflo
is a Python 3, asyncio
-friendly library for interacting with
Flo by Moen Smart Water Detectors.
Python Versions
aioflo
is currently supported on:
- Python 3.6
- Python 3.7
- Python 3.8
Installation
pip install aioflo
Usage
aioflo
starts within an
aiohttp ClientSession
:
import asyncio
from aiohttp import ClientSession
from aioflo import Client
async def main() -> None:
"""Create the aiohttp session and run the example."""
async with ClientSession() as websession:
# YOUR CODE HERE
asyncio.get_event_loop().run_until_complete(main())
Create an API object, initialize it, then get to it:
import asyncio
from aiohttp import ClientSession
from aioflo import async_get_api
async def main() -> None:
"""Create the aiohttp session and run the example."""
async with ClientSession() as websession:
api = await async_get_api(session, "<EMAIL>", "<PASSWORD>")
# Get user account information:
user_info = await api.user.get_info()
a_location_id = user_info["locations"][0]["id"]
# Get location (i.e., device) information:
location_info = await api.location.get_info(a_location_id)
# Get consumption info between a start and end datetime:
consumption_info = await api.water.get_consumption_info(
a_location_id,
datetime(2020, 1, 16, 0, 0),
datetime(2020, 1, 16, 23, 59, 59, 999000),
)
# Get various other metrics related to water usage:
metrics = await api.water.get_metrics(
"<DEVICE_MAC_ADDRESS>",
datetime(2020, 1, 16, 0, 0),
datetime(2020, 1, 16, 23, 59, 59, 999000),
)
# Set the device in "Away" mode:
await set_mode_away(a_location_id)
# Set the device in "Home" mode:
await set_mode_home(a_location_id)
# Set the device in "Sleep" mode for 120 minutes, then return to "Away" mode:
await set_mode_sleep(a_location_id, 120, "away")
asyncio.get_event_loop().run_until_complete(main())
See the module docstrings throughout the library for full info on all parameters, return types, etc.
Contributing
- Check for open features/bugs or initiate a discussion on one.
- Fork the repository.
- (optional, but highly recommended) Create a virtual environment:
python3 -m venv .venv
- (optional, but highly recommended) Enter the virtual environment:
source ./venv/bin/activate
- Install the dev environment:
script/setup
- Code your new feature or bug fix.
- Write tests that cover your new functionality.
- Run tests and ensure 100% code coverage:
script/test
- Update
README.md
with any new documentation. - Add yourself to
AUTHORS.md
. - Submit a pull request!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aioflo-0.1.5.tar.gz
(8.6 kB
view hashes)
Built Distribution
aioflo-0.1.5-py3-none-any.whl
(9.2 kB
view hashes)