Python interface for Rinnai Control-R API
Reason this release was yanked:
broken. missing await on coroutine
Project description
aiorinnai - Python interface for the Rinnai Control-R API
Python library for communicating with the Rinnai Control-R Water Heaters and control devices via the Rinnai Control-R cloud API.
WARNING
- This library only works if you have migrated to the Rinnai 2.0 app. This will require a firmware update to your Control-R module.
- IOS
- Android
NOTE:
- This library is community supported, please submit changes and improvements.
- This is a very basic interface, not well thought out at this point, but works for the use cases that initially prompted spitting this out from.
Supports
- starting/stop recirculation
- setting temperature
Installation
pip install aiorinnai==0.2.4
Examples
import asyncio
from aiohttp import ClientSession
from aiorinnai import async_get_api
async def main() -> None:
"""Run!"""
api = await async_get_api("<EMAIL>", "<PASSWORD>")
# Get user account information:
user_info = await api.user.get_info()
# Get device information
first_device_id = user_info["devices"]["items"][0]["id"]
device_info = await api.device.get_info(first_device_id)
#Start Recirculation
#Last variable is duration in minutes
start_recirculation = await api.device.start_recirculation(device_info['data']['getDevices'], 5)
#Stop Recirculation
stop_recirculation = await api.device.stop_recirculation(device_info['data']['getDevices'])
#Set Temperature
#Last variable is the temperature in increments of 5
set_temperature = await api.device.set_temperature(device_info['data']['getDevices'], 130)
asyncio.run(main())
By default, the library creates a new connection to Rinnai with each coroutine. If you are calling a large number of coroutines (or merely want to squeeze out every second of runtime savings possible), an aiohttp ClientSession can be used for connection pooling:
import asyncio
from aiohttp import ClientSession
from aiorinnai 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("<EMAIL>", "<PASSWORD>", session=websession)
# Get user account information:
user_info = await api.user.get_info()
# Get device information
first_device_id = user_info["devices"]["items"][0]["id"]
device_info = await api.device.get_info(first_device_id)
#Start Recirculation
#Last variable is duration in minutes
start_recirculation = await api.device.start_recirculation(user_info["id"], first_device_id, 5)
print(start_recirculation)
#Stop Recirculation
stop_recirculation = await api.device.stop_recirculation(user_info["id"], first_device_id)
print(stop_recirculation)
#Set Temperature
#Last variable is the temperature in increments of 5
set_temperature = await api.device.set_temperature(user_info["id"], first_device_id, 130)
asyncio.run(main())
Known Issues
- not all APIs supported
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
aiorinnai-0.2.4.tar.gz
(21.0 kB
view hashes)
Built Distribution
aiorinnai-0.2.4-py3-none-any.whl
(22.0 kB
view hashes)
Close
Hashes for aiorinnai-0.2.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2c38f589674043a2791cf965de274f4cc7aa4176c5d626b8648aea6ea783796d |
|
MD5 | 80f616da3748dd6f9dfc7b5356d6c7cd |
|
BLAKE2b-256 | 0d67de19a30b29dec1f2f15c2e4446da585932823242fa79226d7a906849d684 |