Skip to main content

Rinnai Control-R API 的 Python 接口

项目描述

aiorinnai - Rinnai Control-R API 的 Python 接口

派皮 执照

Python 库,用于通过 Rinnai Control-R 云 API与Rinnai Control-R 热水器和控制设备进行通信。

警告

  • 此库仅在您已迁移到 Rinnai 2.0 应用程序时才有效。这将需要对您的 Control-R 模块进行固件更新。
  • IOS
  • 安卓

笔记:

  • 这个库是社区支持的,请提交更改和改进。
  • 这是一个非常基本的界面,目前还没有经过深思熟虑,但适用于最初提示将其吐出的用例。

支持

  • 启动/停止再循环
  • 设定温度

安装

pip install aiorinnai==0.3.0

例子

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())

默认情况下,该库会为每个协程创建一个到 Rinnai 的新连接。如果您正在调用大量协程(或者只是想尽可能节省运行时的每一秒),可以使用 aiohttp ClientSession 进行连接池:

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())

已知的问题

  • 并非所有 API 都受支持

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

aiorinnai-0.3.0.tar.gz (20.8 kB 查看哈希

已上传 source

内置分布

aiorinnai-0.3.0-py3-none-any.whl (21.9 kB 查看哈希

已上传 py3