Skip to main content

威能 multiMATIC 的 Python 接口

项目描述

pymultiMATIC

PyPI - 许可证 编解码器 派皮 PyPI - Python 版本

法律免责声明

该软件不隶属于 Vaillant,开发人员对您的 vaillant 设备的功能或安全性不承担任何法律责任。

安装

[sudo] pip3 install pymultimatic 

测试

你可以运行测试

pytest

用法

模块使用

该项目分为两层:

1.ApiConnector

json这是使用 vaillant API 并直接从 API 返回原始数据(基本上是格式化响应)的低级连接器。连接器正在处理登录和会话(基于 cookie)。有 2 个用于 url 和有效负载的帮助程序包:pymultimatic.api.urlspymultimatic.api.payloads.

下面是一个关于如何使用它的例子:

import aiohttp
from pymultimatic.api import Connector, urls, payloads

async with aiohttp.ClientSession() as session:
    connector = Connector('user', 'pass', session)
    # get information about your system
    response = await connector.request('get', urls.system(serial='123'))
    #set the target low heating temperature of a zone to 15 °C
    response = await connector.request('put', urls.zone_heating_setback_temperature(id='1', serial='123'), payload=payloads.zone_temperature_setback(15))

下面是一个响应示例:

{
    "body": {
        "facilitiesList": [
            {
                "serialNumber": "1234567891234567891234567890",
                "name": "Name",
                "responsibleCountryCode": "BE",
                "supportedBrand": "GREEN_BRAND_COMPATIBLE",
                "capabilities": [
                    "ROOM_BY_ROOM",
                    "SYSTEMCONTROL_MULTIMATIC"
                ],
                "networkInformation": {
                    "macAddressEthernet": "12:34:56:78:9A:BC",
                    "macAddressWifiAccessPoint": "34:56:78:9A:BC:DE",
                    "macAddressWifiClient": "56:78:9A:BC:DE:F0"
                },
                "firmwareVersion": "1.1.1"
            }
        ]
    },
    "meta": {}
}

如果您只想检索基本数据(室外温度、区域当前温度等),我建议您使用此层

2.系统管理器

该层允许您以更友好的方式与系统交互,并为您计算一些数据。底层Connector是隐藏的,原始响应被映射到更有用的对象。

这是一个脚本示例:

#!/usr/bin/env python3

import asyncio
import sys

import aiohttp

from pymultimatic.systemmanager import SystemManager
from pymultimatic.model import System


async def main(user, passw):
    print('Trying to connect with user ' + user)

    async with aiohttp.ClientSession() as session:
        manager = SystemManager(user, passw, session)
        system =  await manager.get_system()
        print(system)


if __name__ == "__main__":
    if not len(sys.argv) == 3:
        print('Usage: python3 dump.py user pass')
        sys.exit(0)
    user = sys.argv[1]
    passw = sys.argv[2]

    asyncio.get_event_loop().run_until_complete(main(user, passw))

然后你可以运行脚本: python3 script.py user passw

要操作的主要对象是pymultimatic.model.System,它将有关您的系统的所有信息分组。

如果 API 出现错误,pymultimtic.api.Error则会引发 a,其中包含发送到 API 的响应和有效负载。

如果你想做更复杂的事情,我建议使用这一层,例如:如果你想获得房间或区域的目标温度,它可能会变得有点复杂,因为你必须处理假期模式、快速模式、快速否决、时间计划等。这一层隐藏了这种复杂性。

项目详情


下载文件

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

源分布

pymultiMATIC-0.6.7.ta​​r.gz (34.5 kB 查看哈希

已上传 source

内置分布

pymultiMATIC-0.6.7-py3-none-any.whl (42.9 kB 查看哈希

已上传 py3