处理Vaillant VR900/VR920数据的连接器
vr900-connector的Python项目详细描述
VR900接头
请注意,该项目仍处于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
它对系统的所有信息进行分组。
如果你想做更复杂的事情,我建议你使用这个层,例如:如果你想得到 一个房间或一个区域,它可能变得有点复杂,因为你必须处理假日模式,快速模式,快速否决,时间计划等。 这个层隐藏着这个复杂性