https://github.com/robertd502/lavviebotaio
Asynchronous Python library for the PurrSong API utilized by LavvieBot S litter boxes
https://github.com/robertd502/lavviebotaio
api-wrapper lavviebot lavviebot-s lavviescanner lavvietag purrsong python3 python3-library
Last synced: 25 days ago
JSON representation
Asynchronous Python library for the PurrSong API utilized by LavvieBot S litter boxes
- Host: GitHub
- URL: https://github.com/robertd502/lavviebotaio
- Owner: RobertD502
- License: mit
- Created: 2021-04-13T03:24:14.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-07-27T18:31:36.000Z (9 months ago)
- Last Synced: 2025-03-14T10:06:03.016Z (about 1 month ago)
- Topics: api-wrapper, lavviebot, lavviebot-s, lavviescanner, lavvietag, purrsong, python3, python3-library
- Language: Python
- Homepage:
- Size: 96.7 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# Lavviebotaio
Asynchronous Python library for the PurrSong API utilized by LavvieBot S litter boxes, LavvieScanners, and LavvieTags.This package provides an API client for the [PurrSong](https://purrsong.com/en/) API allowing you to fetch the status of Lavviebot S litter boxes, LavvieScanners, LavvieTags, and cats associated with a PurrSong account.
**The API is not published by PurrSong, so it may break without notice.**
## Installation
```
pip3 install lavviebotaio
```This package depdends on [aiohttp](https://docs.aiohttp.org/en/stable/), and requires Python 3.9 or greater.
## Usage
```python
import asyncio
from lavviebot import LavviebotClient
from aiohttp import ClientSessionasync def main():
async with ClientSession() as session:
# Create a client using PurrSong account email and password
client = LavviebotClient("email", "password", session)# Discover all devices associated with PurrSong account
devices = await client.async_discover_devices()
# Discover all cats associated with account. Requires `location id` as an `int`.
cats = await client.async_discover_cats(123)
# Get info pertaining to a particular litter box (state, usage, error log) using device_id integer
litter_box_status = await self.async_get_litter_box_status(device_id)
# Get litter box usage log pertaining to a particular litter box using device_id integer
litter_box_log = await client.async_get_litter_box_cat_log(device_id)
# Get weights, durations, and usage counts for "Unknown" cat using cat_id integer (cat_id for unknown cats is equal to the location_id)
unknown_cat_status = await client.async_get_unknown_status(cat_id)
# Get weights, durations, and usage counts for a particular cat using cat_id integer
cat_status = await client.async_get_cat_status(cat_id)# Get info about a particular LavvieScanner using device_id and device_type of "lavvie_scanner")
lavvie_scanner = await client.async_get_iot_device_status(device_id, "lavvie_scanner")# Get info about a particular LavvieTag using device_id and device_type of "lavvie_tag")
lavvie_tag = await client.async_get_iot_device_status(device_id, "lavvie_tag")
# Get all associated litter boxes, scanners, tags, and cats and store in a LavviebotData object
get_all = await client.async_get_data()loop = asyncio.get_event_loop()
loop.run_until_complete(main())
```