处理Vaillant VR900/VR920数据的连接器

vr900-connector的Python项目详细描述


VR900接头

PyPI - LicenseBuild StatusCoverage StatusPyPIPyPI - StatusPyPI - Python Version

请注意,该项目仍处于beta状态,这意味着我可能会做一些(非)有意中断的更改

法律免责声明

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

安装

[sudo] pip install vr900-connector 

测试

您可以使用

pytest

用法

命令行用法

python3vaillant.pyusernamepasswordmethodcommand[commandparameters]

命令列表是api.url模块中函数的名称。

示例:

python3vaillant.pyusernamepasswordGETroom0

输出:

{"body":{"roomIndex":0,"configuration":{"name":"Room name","temperatureSetpoint":17.5,"operationMode":"AUTO","currentTemperature":19.4,"childLock":false,"isWindowOpen":false,"devices":[{"name":"Device name","sgtin":"000000000000000000000000","deviceType":"VALVE","isBatteryLow":false,"isRadioOutOfReach":false}],"iconId":"BEDROOM"},"timeprogram":{"monday":[{"startTime":"00:00","temperatureSetpoint":17.5}],"tuesday":[{"startTime":"00:00","temperatureSetpoint":17.5}],"wednesday":[{"startTime":"00:00","temperatureSetpoint":17.5}],"thursday":[{"startTime":"00:00","temperatureSetpoint":17.5}],"friday":[{"startTime":"00:00","temperatureSetpoint":17.5}],"saturday":[{"startTime":"00:00","temperatureSetpoint":17.5}],"sunday":[{"startTime":"00:00","temperatureSetpoint":17.5}]}},"meta":{"resourceState":[{"state":"SYNCED","timestamp":1551383333000,"link":{"rel":"child","resourceLink":"/facilities/1234567891234567891234567890/rbr/v1/rooms/0/configuration"}},{"state":"SYNCED","timestamp":1549054971000,"link":{"rel":"child","resourceLink":"/facilities/1234567891234567891234567890/rbr/v1/rooms/0/timeprogram"}}]}}

模块使用

连接器分为两层:

1.顶端连接器

这是使用vaillant api并直接从api返回原始数据的低级连接器。连接器正在处理登录和会话。 连接器能够重用已经存在的会话(Cookie)。文件系统中保存了两个文件(cookies和安装的序列号)。默认位置为:

tempfile.gettempdir()+"/.vaillant_vr900_files"

但它可以被覆盖。文件名为.vr900-vaillant.cookies和.vr900-vaillant.serial。

下面是一个如何使用它的示例:

fromvr900connector.apiimportApiConnector,Urlsconnector=ApiConnector('user','pass')connector.get(Urls.facilities_list())

要获取有关安装的一些信息,这将返回原始响应,如下所示:

{"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":{}}

基本上,您可以使用

fromvr900connector.apiimportApiConnectorconnector=ApiConnector('user','pass')connector.get('')

网址来自

vr900connector.api.urls

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

2.系统管理器

此层允许您以更友好的方式与系统交互。 底层连接器被隐藏,原始响应被映射到更有用的对象。

目前,唯一的功能是:

fromvr900connector.systemmanagerimportSystemManagermanager=SystemManager('user','pass')system=manager.get_system()

要操作的主要对象是

vr900connector.model.system

它对系统的所有信息进行分组。

如果你想做更复杂的事情,我建议你使用这个层,例如:如果你想得到 一个房间或一个区域,它可能变得有点复杂,因为你必须处理假日模式,快速模式,快速否决,时间计划等。 这个层隐藏着这个复杂性

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将图片从网站自动复制到数据库中   给定长度的java随机字符串单元测试   将java应用程序(Azure函数应用程序)迁移到运行时3。x从2开始。GRADLE的x   java会自动为maven项目的eclipse构建路径添加额外的源目录   java应用程序。属性与applicationContext。xml   如何在shell脚本中获取Java应用程序的退出状态、标准输出和标准错误流?   尽管使用了:setVerticalScrollBarPolicy(JScrollPane.VERTICAL\u SCROLLBAR\u ALWAYS),但JScrollPane滚动条未显示的java奇怪问题;   java使用本机SQL Hibernate从存储过程中检索值   java当用户在安卓应用程序中更改另一个交换机时,如何更改一个交换机的状态   java Java8 DateTimeFormatter am/pm   java使用选项“XinjectCodeExtension”插入XJC+xsd+jxb代码   适用于cocos2d Android的java Stop背景音乐   java HttpPost到asp服务器(HTML格式)   java Maven解析属性占位符