{ "info": { "author": "Jevgeni Kiski", "author_email": "yozik04@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3" ], "description": "# vallox_websocket_api 2.0\nNew async version of WebSocket API for Vallox ventilation units\n\nOld sync version is available [1.5.x](https://pypi.org/project/vallox-websocket-api/1.5.2/)\n\n## Requirements\nPython 3.5.1+\n\nIf you want to use Python 2.7, then use old sync version [1.5.x](https://pypi.org/project/vallox-websocket-api/1.5.2/)\n\nCurrent code can:\n* Set unit profile and fan speeds\n* Fetch and decode metrics\n* Fetch temperature logs\n\n[![Build Status](https://travis-ci.org/yozik04/vallox_websocket_api.svg?branch=master)](https://travis-ci.org/yozik04/vallox_websocket_api)\n\n# Requirements\n\nYour ventilation unit should be connected to LAN.\n\nCode will use websockets API that Valox's own web interface uses.\n\n## Supported units\n\nTested only with **Vallox 145 MV** and **Vallox 270 MV**.\n\nBut API should also work with next units:\n\n \"Vallox 096 MV\",\n \"Vallox 110 MV\",\n \"Vallox 145 MV\",\n \"Vallox 245 MV\",\n \"ValloPlus 270 MV\",\n \"ValloPlus 350 MV\",\n \"ValloPlus 510 MV\",\n \"ValloPlus 850 MV\",\n \"Vallox TSK Multi 50 MV\",\n \"Vallox TSK Multi 80 MV\",\n \"ValloMulti 200 MV\",\n \"ValloMulti 300 MV\",\n \"DV96 Adroit\",\n \"DV110 Adroit\",\n \"DV145 Adroit\",\n \"DV245 Adroit\",\n \"DV TSK Multi 50 Adroit\",\n \"DV TSK Multi 80 Adroit\"\n\n\n# Dependencies\n\nCode uses next libraries\n\n* numpy\n* websockets\n\n# Installation\n\n pip install vallox-websocket-api\n \n # or\n\n pip install git+https://github.com/yozik04/vallox_websocket_api\n \n # for old version for Python 2.7\n pip install 'vallox-websocket-api>=1.5.0,<2.0.0'\n\n# Usage\n\nChanging unit profile and reading metrics\n\n## Profile control:\n\n```python\nimport asyncio\nfrom vallox_websocket_api import Vallox, PROFILE\nclient = Vallox('192.168.1.10') # Vallox unit IP\n\nasync def run():\n await client.get_profile() # RETURNS a PROFILE.* value\n await client.set_profile(PROFILE.HOME) # Permanently HOME profile\n await client.set_profile(PROFILE.AWAY) # Permanently AWAY profile\n await client.set_profile(PROFILE.FIREPLACE) # FIREPLACE mode for configured timeout\n await client.set_profile(PROFILE.FIREPLACE, 120) # FIREPLACE mode for 120 min\n await client.set_profile(PROFILE.FIREPLACE, 65535) # FIREPLACE mode, never TIMEOUT\n await client.set_profile(PROFILE.EXTRA) # EXTRA mode for configured timeout\n await client.set_profile(PROFILE.EXTRA, 120) # EXTRA mode for 120 min\n await client.set_profile(PROFILE.EXTRA, 65535) # EXTRA mode, never TIMEOUT\n\nasyncio.get_event_loop().run_until_complete(run())\n```\n\n## Metrics\n\nReading metrics and setting values\n\n## Reading Metrics\n```python\nimport asyncio\nfrom vallox_websocket_api import Client\n\nclient = Client('192.168.1.2')\n\nasync def run():\n metrics = await client.fetch_metrics()\n \n from pprint import pprint\n pprint(metrics)\n \nasyncio.get_event_loop().run_until_complete(run())\n```\n\nOr if you want just a subset of metrics:\n\n```python\nimport asyncio\nfrom vallox_websocket_api import Client\n\nclient = Client('192.168.1.2')\nasync def run():\n metrics = await client.fetch_metrics([\n 'A_CYC_TEMP_EXHAUST_AIR',\n 'A_CYC_TEMP_EXTRACT_AIR',\n 'A_CYC_TEMP_OUTDOOR_AIR',\n 'A_CYC_TEMP_SUPPLY_AIR',\n 'A_CYC_TEMP_SUPPLY_CELL_AIR'\n ])\n \n from pprint import pprint\n pprint(metrics)\nasyncio.get_event_loop().run_until_complete(run())\n```\n\n## Reading historical data\n\nDevice stores some historical data in its memory. Code to retrieve it:\n\n```python\nimport asyncio\nfrom vallox_websocket_api import Client\n\nclient = Client('192.168.1.2')\nasync def run():\n data = await client.fetch_raw_logs()\n \n from pprint import pprint\n pprint(data)\nasyncio.get_event_loop().run_until_complete(run())\n```\n\n## Setting values\n\nTextual values will be converted to integers before sending to the unit.\n```python\nimport asyncio\nfrom vallox_websocket_api import Client\n\nclient = Client('192.168.9.106')\n\nasync def run():\n # Setting Home profile fan speed\n await client.set_values({'A_CYC_HOME_SPEED_SETTING': 10})\n \n # Setting Home profile target temperature\n await client.set_values({'A_CYC_HOME_AIR_TEMP_TARGET': 15})\n \n \n # Setting Away profile fan speed\n await client.set_values({'A_CYC_AWAY_SPEED_SETTING': 10})\n \n # Setting Away profile target temperature\n await client.set_values({'A_CYC_AWAY_AIR_TEMP_TARGET': 15})\n \n \n # Setting Boost profile fan speed\n await client.set_values({'A_CYC_BOOST_SPEED_SETTING': 10})\n \n # Setting Boost profile target temperature\n await client.set_values({'A_CYC_BOOST_AIR_TEMP_TARGET': 15})\n \n # Setting Boost profile timer\n await client.set_values({\n 'A_CYC_BOOST_TIMER': 30, #Minutes\n })\n \n # Setting Fireplace profile fan speeds\n await client.set_values({\n 'A_CYC_FIREPLACE_EXTR_FAN': 50,\n 'A_CYC_FIREPLACE_SUPP_FAN': 50\n })\n \n # Setting Fireplace profile timer\n await client.set_values({\n 'A_CYC_FIREPLACE_TIMER': 15, #Minutes\n })\n \nasyncio.get_event_loop().run_until_complete(run())\n```\n\nNot all addresses are settable.\n\n**If you think that a currently unsettable address needs to become settable, please create a new issue on the github.**\n\nAs a temporary solution you can make any address settable:\n```python\nclient.set_settable_address('A_CYC_REMAINING_TIME_FOR_FILTER', int)\n```\n\n**int** in the end is accepted value type\n\n\n## Details\n\n### Available Metrics\n\nBasically all that you can get via Modbus connection\n```\n 'A_CYC_12_HOUR_CLOCK_ENABLED': 0,\n 'A_CYC_ACCESS_LEVEL': 0,\n 'A_CYC_ANALOG_CTRL_INPUT': 0,\n 'A_CYC_ANALOG_INPUT_MODE': 0,\n 'A_CYC_ANALOG_SENSOR_INPUT': 68,\n 'A_CYC_APPL_SW_SIZE_0': 0,\n 'A_CYC_APPL_SW_SIZE_1': 0,\n 'A_CYC_APPL_SW_VERSION': 0,\n 'A_CYC_APPL_SW_VERSION_1': 0,\n 'A_CYC_APPL_SW_VERSION_2': 0,\n 'A_CYC_APPL_SW_VERSION_3': 0,\n 'A_CYC_APPL_SW_VERSION_4': 0,\n 'A_CYC_APPL_SW_VERSION_5': 0,\n 'A_CYC_APPL_SW_VERSION_6': 0,\n 'A_CYC_APPL_SW_VERSION_7': 256,\n 'A_CYC_APPL_SW_VERSION_8': 2048,\n 'A_CYC_APPL_SW_VERSION_9': 768,\n 'A_CYC_AWAY_AIR_TEMP_TARGET': 14.9,\n 'A_CYC_AWAY_CO2_CTRL_ENABLED': 0,\n 'A_CYC_AWAY_RH_CTRL_ENABLED': 0,\n 'A_CYC_AWAY_SPEED_SETTING': 25,\n 'A_CYC_BETA_STATE': 0,\n 'A_CYC_BG_LIGHT_LEVEL': 50,\n 'A_CYC_BOOST_AIR_TEMP_TARGET': 14.9,\n 'A_CYC_BOOST_CO2_CTRL_ENABLED': 0,\n 'A_CYC_BOOST_RH_CTRL_ENABLED': 0,\n 'A_CYC_BOOST_SPEED_SETTING': 65,\n 'A_CYC_BOOST_TIME': 30,\n 'A_CYC_BOOST_TIMER': 0,\n 'A_CYC_BOOST_TIMER_ENABLED': 1,\n 'A_CYC_BOOT_SW_VERSION': 0,\n 'A_CYC_BRANDING': 0,\n 'A_CYC_BY_PASS_TEST': 0,\n 'A_CYC_CELL_STATE': 0,\n 'A_CYC_CELL_TYPE': 0,\n 'A_CYC_CLOUD_STATUS': 0,\n 'A_CYC_CO2_0_ADDRESS': 0,\n 'A_CYC_CO2_1_ADDRESS': 0,\n 'A_CYC_CO2_2_ADDRESS': 0,\n 'A_CYC_CO2_3_ADDRESS': 0,\n 'A_CYC_CO2_4_ADDRESS': 0,\n 'A_CYC_CO2_5_ADDRESS': 0,\n 'A_CYC_CO2_LEVEL': 0,\n 'A_CYC_CO2_SENSOR_0': 65535,\n 'A_CYC_CO2_SENSOR_1': 65535,\n 'A_CYC_CO2_SENSOR_2': 65535,\n 'A_CYC_CO2_SENSOR_3': 65535,\n 'A_CYC_CO2_SENSOR_4': 65535,\n 'A_CYC_CO2_SENSOR_5': 65535,\n 'A_CYC_CO2_THRESHOLD': 900,\n 'A_CYC_CO2_VALUE': 0,\n 'A_CYC_COMMAND': 0,\n 'A_CYC_CONFIGURATION_CHECKSUM': 86,\n 'A_CYC_CONFIGURATION_LSW': 817,\n 'A_CYC_CONFIGURATION_MSW': 47440,\n 'A_CYC_CONFIGURATION_NA_0': 0,\n 'A_CYC_CONFIGURATION_NA_1': 0,\n 'A_CYC_CONFIGURATION_NA_2': 0,\n 'A_CYC_CONFIGURATION_NA_3': 0,\n 'A_CYC_CURRENT_UP_TIME_HOURS': 35,\n 'A_CYC_DAY': 26,\n 'A_CYC_DEFROSTING': 0,\n 'A_CYC_DEFROST_COUNT_IN_24H': 0,\n 'A_CYC_DEFROST_COUNT_IN_WEEK': 0,\n 'A_CYC_DEFROST_MODE': 0,\n 'A_CYC_DEFROST_RH_OFFSET': 20,\n 'A_CYC_DEFROST_RH_PARAM': 55,\n 'A_CYC_DEFROST_SUPERMELT_THRESHOLD': 30,\n 'A_CYC_DEFROST_TEMP_PARAM': -273.1,\n 'A_CYC_DEFROST_TRIM': 2,\n 'A_CYC_DIGITAL_INPUT': 0,\n 'A_CYC_DIGITAL_INPUT_1_MODE': 0,\n 'A_CYC_DIGITAL_INPUT_2_MODE': 0,\n 'A_CYC_DIP_SWITCH_0': 0,\n 'A_CYC_DIP_SWITCH_1': 0,\n 'A_CYC_DIP_SWITCH_2': 0,\n 'A_CYC_DIP_SWITCH_3': 0,\n 'A_CYC_EFFICIENCY_TEST': 0,\n 'A_CYC_ENABLED': 1,\n 'A_CYC_ETH_CLOUD_ENABLED': 0,\n 'A_CYC_EXTRACT_EFFICIENCY': 82,\n 'A_CYC_EXTRA_AIR_TEMP_TARGET': 14.9,\n 'A_CYC_EXTRA_ENABLED': 0,\n 'A_CYC_EXTRA_EXTR_FAN': 50,\n 'A_CYC_EXTRA_HEATER_TEST': 0,\n 'A_CYC_EXTRA_HEATER_TYPE': 1,\n 'A_CYC_EXTRA_SUPP_FAN': 50,\n 'A_CYC_EXTRA_TIME': 10,\n 'A_CYC_EXTRA_TIMER': 0,\n 'A_CYC_EXTRA_TIMER_ENABLED': 1,\n 'A_CYC_EXTR_FAN_BALANCE_BASE': 30,\n 'A_CYC_EXTR_FAN_SPEED': 1498,\n 'A_CYC_EXTR_FAN_TEST': 0,\n 'A_CYC_FAN_SPEED': 50,\n 'A_CYC_FAULT_ACTIVITY': 0,\n 'A_CYC_FAULT_ACTIVITY_10': 0,\n 'A_CYC_FAULT_ACTIVITY_11': 0,\n 'A_CYC_FAULT_ACTIVITY_12': 0,\n 'A_CYC_FAULT_ACTIVITY_13': 0,\n 'A_CYC_FAULT_ACTIVITY_14': 0,\n 'A_CYC_FAULT_ACTIVITY_15': 0,\n 'A_CYC_FAULT_ACTIVITY_16': 0,\n 'A_CYC_FAULT_ACTIVITY_17': 0,\n 'A_CYC_FAULT_ACTIVITY_18': 0,\n 'A_CYC_FAULT_ACTIVITY_19': 0,\n 'A_CYC_FAULT_ACTIVITY_2': 0,\n 'A_CYC_FAULT_ACTIVITY_20': 0,\n 'A_CYC_FAULT_ACTIVITY_21': 0,\n 'A_CYC_FAULT_ACTIVITY_22': 0,\n 'A_CYC_FAULT_ACTIVITY_23': 0,\n 'A_CYC_FAULT_ACTIVITY_24': 0,\n 'A_CYC_FAULT_ACTIVITY_25': 0,\n 'A_CYC_FAULT_ACTIVITY_26': 0,\n 'A_CYC_FAULT_ACTIVITY_27': 0,\n 'A_CYC_FAULT_ACTIVITY_28': 0,\n 'A_CYC_FAULT_ACTIVITY_29': 0,\n 'A_CYC_FAULT_ACTIVITY_3': 0,\n 'A_CYC_FAULT_ACTIVITY_30': 0,\n 'A_CYC_FAULT_ACTIVITY_31': 0,\n 'A_CYC_FAULT_ACTIVITY_32': 0,\n 'A_CYC_FAULT_ACTIVITY_33': 0,\n 'A_CYC_FAULT_ACTIVITY_4': 0,\n 'A_CYC_FAULT_ACTIVITY_5': 0,\n 'A_CYC_FAULT_ACTIVITY_6': 0,\n 'A_CYC_FAULT_ACTIVITY_7': 0,\n 'A_CYC_FAULT_ACTIVITY_8': 0,\n 'A_CYC_FAULT_ACTIVITY_9': 0,\n 'A_CYC_FAULT_CODE': 0,\n 'A_CYC_FAULT_CODE_10': 0,\n 'A_CYC_FAULT_CODE_11': 0,\n 'A_CYC_FAULT_CODE_12': 0,\n 'A_CYC_FAULT_CODE_13': 0,\n 'A_CYC_FAULT_CODE_14': 0,\n 'A_CYC_FAULT_CODE_15': 0,\n 'A_CYC_FAULT_CODE_16': 0,\n 'A_CYC_FAULT_CODE_17': 0,\n 'A_CYC_FAULT_CODE_18': 0,\n 'A_CYC_FAULT_CODE_19': 0,\n 'A_CYC_FAULT_CODE_2': 0,\n 'A_CYC_FAULT_CODE_20': 0,\n 'A_CYC_FAULT_CODE_21': 0,\n 'A_CYC_FAULT_CODE_22': 0,\n 'A_CYC_FAULT_CODE_23': 0,\n 'A_CYC_FAULT_CODE_24': 0,\n 'A_CYC_FAULT_CODE_25': 0,\n 'A_CYC_FAULT_CODE_26': 0,\n 'A_CYC_FAULT_CODE_27': 0,\n 'A_CYC_FAULT_CODE_28': 0,\n 'A_CYC_FAULT_CODE_29': 0,\n 'A_CYC_FAULT_CODE_3': 0,\n 'A_CYC_FAULT_CODE_30': 0,\n 'A_CYC_FAULT_CODE_31': 0,\n 'A_CYC_FAULT_CODE_32': 0,\n 'A_CYC_FAULT_CODE_33': 0,\n 'A_CYC_FAULT_CODE_4': 0,\n 'A_CYC_FAULT_CODE_5': 0,\n 'A_CYC_FAULT_CODE_6': 0,\n 'A_CYC_FAULT_CODE_7': 0,\n 'A_CYC_FAULT_CODE_8': 0,\n 'A_CYC_FAULT_CODE_9': 0,\n 'A_CYC_FAULT_COUNT': 0,\n 'A_CYC_FAULT_COUNT_10': 0,\n 'A_CYC_FAULT_COUNT_11': 0,\n 'A_CYC_FAULT_COUNT_12': 0,\n 'A_CYC_FAULT_COUNT_13': 0,\n 'A_CYC_FAULT_COUNT_14': 0,\n 'A_CYC_FAULT_COUNT_15': 0,\n 'A_CYC_FAULT_COUNT_16': 0,\n 'A_CYC_FAULT_COUNT_17': 0,\n 'A_CYC_FAULT_COUNT_18': 0,\n 'A_CYC_FAULT_COUNT_19': 0,\n 'A_CYC_FAULT_COUNT_2': 0,\n 'A_CYC_FAULT_COUNT_20': 0,\n 'A_CYC_FAULT_COUNT_21': 0,\n 'A_CYC_FAULT_COUNT_22': 0,\n 'A_CYC_FAULT_COUNT_23': 0,\n 'A_CYC_FAULT_COUNT_24': 0,\n 'A_CYC_FAULT_COUNT_25': 0,\n 'A_CYC_FAULT_COUNT_26': 0,\n 'A_CYC_FAULT_COUNT_27': 0,\n 'A_CYC_FAULT_COUNT_28': 0,\n 'A_CYC_FAULT_COUNT_29': 0,\n 'A_CYC_FAULT_COUNT_3': 0,\n 'A_CYC_FAULT_COUNT_30': 0,\n 'A_CYC_FAULT_COUNT_31': 0,\n 'A_CYC_FAULT_COUNT_32': 0,\n 'A_CYC_FAULT_COUNT_33': 0,\n 'A_CYC_FAULT_COUNT_4': 0,\n 'A_CYC_FAULT_COUNT_5': 0,\n 'A_CYC_FAULT_COUNT_6': 0,\n 'A_CYC_FAULT_COUNT_7': 0,\n 'A_CYC_FAULT_COUNT_8': 0,\n 'A_CYC_FAULT_COUNT_9': 0,\n 'A_CYC_FAULT_FIRST_DATE': 0,\n 'A_CYC_FAULT_FIRST_DATE_10': 0,\n 'A_CYC_FAULT_FIRST_DATE_11': 0,\n 'A_CYC_FAULT_FIRST_DATE_12': 0,\n 'A_CYC_FAULT_FIRST_DATE_13': 0,\n 'A_CYC_FAULT_FIRST_DATE_14': 0,\n 'A_CYC_FAULT_FIRST_DATE_15': 0,\n 'A_CYC_FAULT_FIRST_DATE_16': 0,\n 'A_CYC_FAULT_FIRST_DATE_17': 0,\n 'A_CYC_FAULT_FIRST_DATE_18': 0,\n 'A_CYC_FAULT_FIRST_DATE_19': 0,\n 'A_CYC_FAULT_FIRST_DATE_2': 0,\n 'A_CYC_FAULT_FIRST_DATE_20': 0,\n 'A_CYC_FAULT_FIRST_DATE_21': 0,\n 'A_CYC_FAULT_FIRST_DATE_22': 0,\n 'A_CYC_FAULT_FIRST_DATE_23': 0,\n 'A_CYC_FAULT_FIRST_DATE_24': 0,\n 'A_CYC_FAULT_FIRST_DATE_25': 0,\n 'A_CYC_FAULT_FIRST_DATE_26': 0,\n 'A_CYC_FAULT_FIRST_DATE_27': 0,\n 'A_CYC_FAULT_FIRST_DATE_28': 0,\n 'A_CYC_FAULT_FIRST_DATE_29': 0,\n 'A_CYC_FAULT_FIRST_DATE_3': 0,\n 'A_CYC_FAULT_FIRST_DATE_30': 0,\n 'A_CYC_FAULT_FIRST_DATE_31': 0,\n 'A_CYC_FAULT_FIRST_DATE_32': 0,\n 'A_CYC_FAULT_FIRST_DATE_33': 0,\n 'A_CYC_FAULT_FIRST_DATE_4': 0,\n 'A_CYC_FAULT_FIRST_DATE_5': 0,\n 'A_CYC_FAULT_FIRST_DATE_6': 0,\n 'A_CYC_FAULT_FIRST_DATE_7': 0,\n 'A_CYC_FAULT_FIRST_DATE_8': 0,\n 'A_CYC_FAULT_FIRST_DATE_9': 0,\n 'A_CYC_FAULT_LAST_DATE': 0,\n 'A_CYC_FAULT_LAST_DATE_10': 0,\n 'A_CYC_FAULT_LAST_DATE_11': 0,\n 'A_CYC_FAULT_LAST_DATE_12': 0,\n 'A_CYC_FAULT_LAST_DATE_13': 0,\n 'A_CYC_FAULT_LAST_DATE_14': 0,\n 'A_CYC_FAULT_LAST_DATE_15': 0,\n 'A_CYC_FAULT_LAST_DATE_16': 0,\n 'A_CYC_FAULT_LAST_DATE_17': 0,\n 'A_CYC_FAULT_LAST_DATE_18': 0,\n 'A_CYC_FAULT_LAST_DATE_19': 0,\n 'A_CYC_FAULT_LAST_DATE_2': 0,\n 'A_CYC_FAULT_LAST_DATE_20': 0,\n 'A_CYC_FAULT_LAST_DATE_21': 0,\n 'A_CYC_FAULT_LAST_DATE_22': 0,\n 'A_CYC_FAULT_LAST_DATE_23': 0,\n 'A_CYC_FAULT_LAST_DATE_24': 0,\n 'A_CYC_FAULT_LAST_DATE_25': 0,\n 'A_CYC_FAULT_LAST_DATE_26': 0,\n 'A_CYC_FAULT_LAST_DATE_27': 0,\n 'A_CYC_FAULT_LAST_DATE_28': 0,\n 'A_CYC_FAULT_LAST_DATE_29': 0,\n 'A_CYC_FAULT_LAST_DATE_3': 0,\n 'A_CYC_FAULT_LAST_DATE_30': 0,\n 'A_CYC_FAULT_LAST_DATE_31': 0,\n 'A_CYC_FAULT_LAST_DATE_32': 0,\n 'A_CYC_FAULT_LAST_DATE_33': 0,\n 'A_CYC_FAULT_LAST_DATE_4': 0,\n 'A_CYC_FAULT_LAST_DATE_5': 0,\n 'A_CYC_FAULT_LAST_DATE_6': 0,\n 'A_CYC_FAULT_LAST_DATE_7': 0,\n 'A_CYC_FAULT_LAST_DATE_8': 0,\n 'A_CYC_FAULT_LAST_DATE_9': 0,\n 'A_CYC_FAULT_SEVERITY': 0,\n 'A_CYC_FAULT_SEVERITY_10': 0,\n 'A_CYC_FAULT_SEVERITY_11': 0,\n 'A_CYC_FAULT_SEVERITY_12': 0,\n 'A_CYC_FAULT_SEVERITY_13': 0,\n 'A_CYC_FAULT_SEVERITY_14': 0,\n 'A_CYC_FAULT_SEVERITY_15': 0,\n 'A_CYC_FAULT_SEVERITY_16': 0,\n 'A_CYC_FAULT_SEVERITY_17': 0,\n 'A_CYC_FAULT_SEVERITY_18': 0,\n 'A_CYC_FAULT_SEVERITY_19': 0,\n 'A_CYC_FAULT_SEVERITY_2': 0,\n 'A_CYC_FAULT_SEVERITY_20': 0,\n 'A_CYC_FAULT_SEVERITY_21': 0,\n 'A_CYC_FAULT_SEVERITY_22': 0,\n 'A_CYC_FAULT_SEVERITY_23': 0,\n 'A_CYC_FAULT_SEVERITY_24': 0,\n 'A_CYC_FAULT_SEVERITY_25': 0,\n 'A_CYC_FAULT_SEVERITY_26': 0,\n 'A_CYC_FAULT_SEVERITY_27': 0,\n 'A_CYC_FAULT_SEVERITY_28': 0,\n 'A_CYC_FAULT_SEVERITY_29': 0,\n 'A_CYC_FAULT_SEVERITY_3': 0,\n 'A_CYC_FAULT_SEVERITY_30': 0,\n 'A_CYC_FAULT_SEVERITY_31': 0,\n 'A_CYC_FAULT_SEVERITY_32': 0,\n 'A_CYC_FAULT_SEVERITY_33': 0,\n 'A_CYC_FAULT_SEVERITY_4': 0,\n 'A_CYC_FAULT_SEVERITY_5': 0,\n 'A_CYC_FAULT_SEVERITY_6': 0,\n 'A_CYC_FAULT_SEVERITY_7': 0,\n 'A_CYC_FAULT_SEVERITY_8': 0,\n 'A_CYC_FAULT_SEVERITY_9': 0,\n 'A_CYC_FILTER_CHANGED_DAY': 23,\n 'A_CYC_FILTER_CHANGED_MONTH': 3,\n 'A_CYC_FILTER_CHANGED_YEAR': 17,\n 'A_CYC_FILTER_CHANGE_INTERVAL': 120,\n 'A_CYC_FIREPLACE_EXTR_FAN': 50,\n 'A_CYC_FIREPLACE_SUPP_FAN': 50,\n 'A_CYC_FIREPLACE_SWITCH': 0,\n 'A_CYC_FIREPLACE_TIME': 15,\n 'A_CYC_FIREPLACE_TIMER': 0,\n 'A_CYC_FIREPLACE_TIMER_ENABLED': 1,\n 'A_CYC_GW_ADDRESS_1': 49320,\n 'A_CYC_GW_ADDRESS_2': 2305,\n 'A_CYC_HEATER_TEST': 0,\n 'A_CYC_HOME_AIR_TEMP_TARGET': 14.9,\n 'A_CYC_HOME_CO2_CTRL_ENABLED': 0,\n 'A_CYC_HOME_RH_CTRL_ENABLED': 1,\n 'A_CYC_HOME_SPEED_SETTING': 50,\n 'A_CYC_HOUR': 23,\n 'A_CYC_INSTALLATION_DONE': 0,\n 'A_CYC_IN_BYPASS': 0,\n 'A_CYC_IN_ERROR': 1,\n 'A_CYC_IN_EXTRACT_FAN': 50,\n 'A_CYC_IN_EXTRA_HEATER': 0,\n 'A_CYC_IN_HEATER': 0,\n 'A_CYC_IN_SUPPLY_FAN': 50,\n 'A_CYC_IO_BYPASS': 0,\n 'A_CYC_IO_ERROR': 1,\n 'A_CYC_IO_EXTRACT_FAN': 148,\n 'A_CYC_IO_EXTRA_HEATER': 0,\n 'A_CYC_IO_HEATER': 1,\n 'A_CYC_IO_SUPPLY_FAN': 148,\n 'A_CYC_IP_ADDRESS_1': 44526,\n 'A_CYC_IP_ADDRESS_2': 3186,\n 'A_CYC_LANGUAGE': 0,\n 'A_CYC_LIMP_MODE': 0,\n 'A_CYC_MACHINE_MODEL': 3,\n 'A_CYC_MACHINE_TYPE': 3,\n 'A_CYC_MASK_ADDRESS_1': 65535,\n 'A_CYC_MASK_ADDRESS_2': 65280,\n 'A_CYC_MASTER_PASSWORD': 1222,\n 'A_CYC_METRICS': 0,\n 'A_CYC_MINUTE': 43,\n 'A_CYC_MIN_DEFROST_TIME': 3,\n 'A_CYC_MLV_STATE': 0,\n 'A_CYC_MLV_SUMMER_SETPOINT': 29115,\n 'A_CYC_MLV_WINTER_SETPOINT': 26815,\n 'A_CYC_MODBUS_ADDRESS': 1,\n 'A_CYC_MODBUS_BAUD_X100': 192,\n 'A_CYC_MODBUS_FRAME': 257,\n 'A_CYC_MODE': 0,\n 'A_CYC_MONTH': 3,\n 'A_CYC_OPT_TEMP_SENSOR_MODE': -273.1,\n 'A_CYC_PARENTAL_CTRL_ENABLED': 0,\n 'A_CYC_PARENTAL_PASSWORD': 2345,\n 'A_CYC_POST_HEATER_TYPE': 1,\n 'A_CYC_POST_HEATING_TRIM': 419,\n 'A_CYC_PWM_OFFSET_TRIM': 658,\n 'A_CYC_RELAY_MODE': 0,\n 'A_CYC_REMAINING_TIME_FOR_FILTER': 117,\n 'A_CYC_RH_0_ADDRESS': 0,\n 'A_CYC_RH_1_ADDRESS': 0,\n 'A_CYC_RH_2_ADDRESS': 0,\n 'A_CYC_RH_3_ADDRESS': 0,\n 'A_CYC_RH_4_ADDRESS': 0,\n 'A_CYC_RH_5_ADDRESS': 0,\n 'A_CYC_RH_BASIC_LEVEL': 69,\n 'A_CYC_RH_LEVEL': 1,\n 'A_CYC_RH_LEVEL_MODE': 0,\n 'A_CYC_RH_SENSOR_0': 65535,\n 'A_CYC_RH_SENSOR_1': 65535,\n 'A_CYC_RH_SENSOR_2': 65535,\n 'A_CYC_RH_SENSOR_3': 65535,\n 'A_CYC_RH_SENSOR_4': 65535,\n 'A_CYC_RH_SENSOR_5': 65535,\n 'A_CYC_RH_VALUE': 68,\n 'A_CYC_SCHEDULE_FRIDAY_00': 0,\n 'A_CYC_SCHEDULE_FRIDAY_01': 0,\n 'A_CYC_SCHEDULE_FRIDAY_02': 0,\n 'A_CYC_SCHEDULE_FRIDAY_03': 0,\n 'A_CYC_SCHEDULE_FRIDAY_04': 0,\n 'A_CYC_SCHEDULE_FRIDAY_05': 0,\n 'A_CYC_SCHEDULE_FRIDAY_06': 0,\n 'A_CYC_SCHEDULE_FRIDAY_07': 0,\n 'A_CYC_SCHEDULE_FRIDAY_08': 0,\n 'A_CYC_SCHEDULE_FRIDAY_09': 0,\n 'A_CYC_SCHEDULE_FRIDAY_10': 0,\n 'A_CYC_SCHEDULE_FRIDAY_11': 0,\n 'A_CYC_SCHEDULE_FRIDAY_12': 0,\n 'A_CYC_SCHEDULE_FRIDAY_13': 0,\n 'A_CYC_SCHEDULE_FRIDAY_14': 0,\n 'A_CYC_SCHEDULE_FRIDAY_15': 0,\n 'A_CYC_SCHEDULE_FRIDAY_16': 0,\n 'A_CYC_SCHEDULE_FRIDAY_17': 0,\n 'A_CYC_SCHEDULE_FRIDAY_18': 0,\n 'A_CYC_SCHEDULE_FRIDAY_19': 0,\n 'A_CYC_SCHEDULE_FRIDAY_20': 0,\n 'A_CYC_SCHEDULE_FRIDAY_21': 0,\n 'A_CYC_SCHEDULE_FRIDAY_22': 0,\n 'A_CYC_SCHEDULE_FRIDAY_23': 0,\n 'A_CYC_SCHEDULE_MONDAY_00': 0,\n 'A_CYC_SCHEDULE_MONDAY_01': 0,\n 'A_CYC_SCHEDULE_MONDAY_02': 0,\n 'A_CYC_SCHEDULE_MONDAY_03': 0,\n 'A_CYC_SCHEDULE_MONDAY_04': 0,\n 'A_CYC_SCHEDULE_MONDAY_05': 0,\n 'A_CYC_SCHEDULE_MONDAY_06': 0,\n 'A_CYC_SCHEDULE_MONDAY_07': 0,\n 'A_CYC_SCHEDULE_MONDAY_08': 0,\n 'A_CYC_SCHEDULE_MONDAY_09': 0,\n 'A_CYC_SCHEDULE_MONDAY_10': 0,\n 'A_CYC_SCHEDULE_MONDAY_11': 0,\n 'A_CYC_SCHEDULE_MONDAY_12': 0,\n 'A_CYC_SCHEDULE_MONDAY_13': 0,\n 'A_CYC_SCHEDULE_MONDAY_14': 0,\n 'A_CYC_SCHEDULE_MONDAY_15': 0,\n 'A_CYC_SCHEDULE_MONDAY_16': 0,\n 'A_CYC_SCHEDULE_MONDAY_17': 0,\n 'A_CYC_SCHEDULE_MONDAY_18': 0,\n 'A_CYC_SCHEDULE_MONDAY_19': 0,\n 'A_CYC_SCHEDULE_MONDAY_20': 0,\n 'A_CYC_SCHEDULE_MONDAY_21': 0,\n 'A_CYC_SCHEDULE_MONDAY_22': 0,\n 'A_CYC_SCHEDULE_MONDAY_23': 0,\n 'A_CYC_SCHEDULE_SATURDAY_00': 0,\n 'A_CYC_SCHEDULE_SATURDAY_01': 0,\n 'A_CYC_SCHEDULE_SATURDAY_02': 0,\n 'A_CYC_SCHEDULE_SATURDAY_03': 0,\n 'A_CYC_SCHEDULE_SATURDAY_04': 0,\n 'A_CYC_SCHEDULE_SATURDAY_05': 0,\n 'A_CYC_SCHEDULE_SATURDAY_06': 0,\n 'A_CYC_SCHEDULE_SATURDAY_07': 0,\n 'A_CYC_SCHEDULE_SATURDAY_08': 0,\n 'A_CYC_SCHEDULE_SATURDAY_09': 0,\n 'A_CYC_SCHEDULE_SATURDAY_10': 0,\n 'A_CYC_SCHEDULE_SATURDAY_11': 0,\n 'A_CYC_SCHEDULE_SATURDAY_12': 0,\n 'A_CYC_SCHEDULE_SATURDAY_13': 0,\n 'A_CYC_SCHEDULE_SATURDAY_14': 0,\n 'A_CYC_SCHEDULE_SATURDAY_15': 0,\n 'A_CYC_SCHEDULE_SATURDAY_16': 0,\n 'A_CYC_SCHEDULE_SATURDAY_17': 0,\n 'A_CYC_SCHEDULE_SATURDAY_18': 0,\n 'A_CYC_SCHEDULE_SATURDAY_19': 0,\n 'A_CYC_SCHEDULE_SATURDAY_20': 0,\n 'A_CYC_SCHEDULE_SATURDAY_21': 0,\n 'A_CYC_SCHEDULE_SATURDAY_22': 0,\n 'A_CYC_SCHEDULE_SATURDAY_23': 0,\n 'A_CYC_SCHEDULE_SUNDAY_00': 0,\n 'A_CYC_SCHEDULE_SUNDAY_01': 0,\n 'A_CYC_SCHEDULE_SUNDAY_02': 0,\n 'A_CYC_SCHEDULE_SUNDAY_03': 0,\n 'A_CYC_SCHEDULE_SUNDAY_04': 0,\n 'A_CYC_SCHEDULE_SUNDAY_05': 0,\n 'A_CYC_SCHEDULE_SUNDAY_06': 0,\n 'A_CYC_SCHEDULE_SUNDAY_07': 0,\n 'A_CYC_SCHEDULE_SUNDAY_08': 0,\n 'A_CYC_SCHEDULE_SUNDAY_09': 0,\n 'A_CYC_SCHEDULE_SUNDAY_10': 0,\n 'A_CYC_SCHEDULE_SUNDAY_11': 0,\n 'A_CYC_SCHEDULE_SUNDAY_12': 0,\n 'A_CYC_SCHEDULE_SUNDAY_13': 0,\n 'A_CYC_SCHEDULE_SUNDAY_14': 0,\n 'A_CYC_SCHEDULE_SUNDAY_15': 0,\n 'A_CYC_SCHEDULE_SUNDAY_16': 0,\n 'A_CYC_SCHEDULE_SUNDAY_17': 0,\n 'A_CYC_SCHEDULE_SUNDAY_18': 0,\n 'A_CYC_SCHEDULE_SUNDAY_19': 0,\n 'A_CYC_SCHEDULE_SUNDAY_20': 0,\n 'A_CYC_SCHEDULE_SUNDAY_21': 0,\n 'A_CYC_SCHEDULE_SUNDAY_22': 0,\n 'A_CYC_SCHEDULE_SUNDAY_23': 0,\n 'A_CYC_SCHEDULE_THURSDAY_00': 0,\n 'A_CYC_SCHEDULE_THURSDAY_01': 0,\n 'A_CYC_SCHEDULE_THURSDAY_02': 0,\n 'A_CYC_SCHEDULE_THURSDAY_03': 0,\n 'A_CYC_SCHEDULE_THURSDAY_04': 0,\n 'A_CYC_SCHEDULE_THURSDAY_05': 0,\n 'A_CYC_SCHEDULE_THURSDAY_06': 0,\n 'A_CYC_SCHEDULE_THURSDAY_07': 0,\n 'A_CYC_SCHEDULE_THURSDAY_08': 0,\n 'A_CYC_SCHEDULE_THURSDAY_09': 0,\n 'A_CYC_SCHEDULE_THURSDAY_10': 0,\n 'A_CYC_SCHEDULE_THURSDAY_11': 0,\n 'A_CYC_SCHEDULE_THURSDAY_12': 0,\n 'A_CYC_SCHEDULE_THURSDAY_13': 0,\n 'A_CYC_SCHEDULE_THURSDAY_14': 0,\n 'A_CYC_SCHEDULE_THURSDAY_15': 0,\n 'A_CYC_SCHEDULE_THURSDAY_16': 0,\n 'A_CYC_SCHEDULE_THURSDAY_17': 0,\n 'A_CYC_SCHEDULE_THURSDAY_18': 0,\n 'A_CYC_SCHEDULE_THURSDAY_19': 0,\n 'A_CYC_SCHEDULE_THURSDAY_20': 0,\n 'A_CYC_SCHEDULE_THURSDAY_21': 0,\n 'A_CYC_SCHEDULE_THURSDAY_22': 0,\n 'A_CYC_SCHEDULE_THURSDAY_23': 0,\n 'A_CYC_SCHEDULE_TUESDAY_00': 0,\n 'A_CYC_SCHEDULE_TUESDAY_01': 0,\n 'A_CYC_SCHEDULE_TUESDAY_02': 0,\n 'A_CYC_SCHEDULE_TUESDAY_03': 0,\n 'A_CYC_SCHEDULE_TUESDAY_04': 0,\n 'A_CYC_SCHEDULE_TUESDAY_05': 0,\n 'A_CYC_SCHEDULE_TUESDAY_06': 0,\n 'A_CYC_SCHEDULE_TUESDAY_07': 0,\n 'A_CYC_SCHEDULE_TUESDAY_08': 0,\n 'A_CYC_SCHEDULE_TUESDAY_09': 0,\n 'A_CYC_SCHEDULE_TUESDAY_10': 0,\n 'A_CYC_SCHEDULE_TUESDAY_11': 0,\n 'A_CYC_SCHEDULE_TUESDAY_12': 0,\n 'A_CYC_SCHEDULE_TUESDAY_13': 0,\n 'A_CYC_SCHEDULE_TUESDAY_14': 0,\n 'A_CYC_SCHEDULE_TUESDAY_15': 0,\n 'A_CYC_SCHEDULE_TUESDAY_16': 0,\n 'A_CYC_SCHEDULE_TUESDAY_17': 0,\n 'A_CYC_SCHEDULE_TUESDAY_18': 0,\n 'A_CYC_SCHEDULE_TUESDAY_19': 0,\n 'A_CYC_SCHEDULE_TUESDAY_20': 0,\n 'A_CYC_SCHEDULE_TUESDAY_21': 0,\n 'A_CYC_SCHEDULE_TUESDAY_22': 0,\n 'A_CYC_SCHEDULE_TUESDAY_23': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_00': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_01': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_02': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_03': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_04': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_05': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_06': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_07': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_08': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_09': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_10': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_11': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_12': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_13': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_14': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_15': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_16': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_17': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_18': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_19': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_20': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_21': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_22': 0,\n 'A_CYC_SCHEDULE_WEDNESDAY_23': 0,\n 'A_CYC_SERIAL_NUMBER_LSW': 98327,\n 'A_CYC_SERIAL_NUMBER_MSW': 32794,\n 'A_CYC_SIDEDNESS': 1,\n 'A_CYC_SLEEP_DELAY': 10,\n 'A_CYC_STATE': 0,\n 'A_CYC_SUMMER_TIME_AUTO_ENAB': 1,\n 'A_CYC_SUPPLY_EFFICIENCY': 59,\n 'A_CYC_SUPPLY_HEATING_ADJUST_MODE': 0,\n 'A_CYC_SUPP_FAN_BALANCE_BASE': 30,\n 'A_CYC_SUPP_FAN_SPEED': 1500,\n 'A_CYC_SUPP_FAN_TEST': 0,\n 'A_CYC_TEMP_EXHAUST_AIR': 6.9,\n 'A_CYC_TEMP_EXTRACT_AIR': 16.9,\n 'A_CYC_TEMP_OPTIONAL': -49.1,\n 'A_CYC_TEMP_OUTDOOR_AIR': 5.9,\n 'A_CYC_TEMP_SUPPLY_AIR': 14.9,\n 'A_CYC_TEMP_SUPPLY_CELL_AIR': 11.9,\n 'A_CYC_TOTAL_FAULT_COUNT': 0,\n 'A_CYC_TOTAL_UP_TIME_HOURS': 69,\n 'A_CYC_TOTAL_UP_TIME_YEARS': 0,\n 'A_CYC_TYP_APPL_SW_SIZE_0': 0,\n 'A_CYC_TYP_APPL_SW_SIZE_1': 0,\n 'A_CYC_TYP_APPL_SW_VERSION': 0,\n 'A_CYC_TYP_APPL_SW_VERSION_1': 0,\n 'A_CYC_TYP_APPL_SW_VERSION_2': 0,\n 'A_CYC_TYP_APPL_SW_VERSION_3': 0,\n 'A_CYC_TYP_APPL_SW_VERSION_4': 0,\n 'A_CYC_TYP_APPL_SW_VERSION_5': 0,\n 'A_CYC_TYP_APPL_SW_VERSION_6': 0,\n 'A_CYC_TYP_APPL_SW_VERSION_7': 0,\n 'A_CYC_TYP_APPL_SW_VERSION_8': 0,\n 'A_CYC_TYP_APPL_SW_VERSION_9': 0,\n 'A_CYC_TYP_BOOT_SW_VERSION': 0,\n 'A_CYC_TYP_PANEL_MODEL': 0,\n 'A_CYC_TYP_SERIAL_NUMBER_LSW': 0,\n 'A_CYC_TYP_SERIAL_NUMBER_MSW': 0,\n 'A_CYC_UPD_ADDRESS_1': 0,\n 'A_CYC_UPD_ADDRESS_2': 0,\n 'A_CYC_USED_SETTINGS_VARIABLES': 76,\n 'A_CYC_USER_PASSWORD': 0,\n 'A_CYC_UUID0': 25432,\n 'A_CYC_UUID1': 25432,\n 'A_CYC_UUID2': 25432,\n 'A_CYC_UUID3': 25432,\n 'A_CYC_UUID4': 25432,\n 'A_CYC_UUID5': 25432,\n 'A_CYC_UUID6': 25432,\n 'A_CYC_UUID7': 25432,\n 'A_CYC_VOC_LEVEL': 1000,\n 'A_CYC_VOC_SENSOR_0': 65535,\n 'A_CYC_VOC_SENSOR_1': 65535,\n 'A_CYC_VOC_SENSOR_2': 65535,\n 'A_CYC_VOC_SENSOR_3': 0,\n 'A_CYC_VOLTAGE_LOW': 0,\n 'A_CYC_WATERHEATER_STORED_I': 35340,\n 'A_CYC_WEEKDAY': 7,\n 'A_CYC_WEEKLY_TIMER_ENABLED': 0,\n 'A_CYC_YEAR': 17,\n 'C_COMMAND_CHECK_STORAGES': 0,\n 'C_COMMAND_CLEARSCRATCHFLASH': 0,\n 'C_COMMAND_CLEAR_ALL': 0,\n 'C_COMMAND_CLEAR_AND_REBOOT': 0,\n 'C_COMMAND_CREATE_NEW_UUID': 0,\n 'C_COMMAND_DEBUGGING_GET': 0,\n 'C_COMMAND_DEBUGGING_START': 0,\n 'C_COMMAND_DUMPSCRATCHFLASH': 0,\n 'C_COMMAND_FORCE_UPDATE': 0,\n 'C_COMMAND_RESET': 0,\n 'C_COMMAND_RESTART': 817,\n 'C_COMMAND_RESTORE_FACTORY_SETTINGS': 0,\n 'C_COMMAND_RESTORE_INSTALLATION_SETTINGS': 0,\n 'C_COMMAND_RESTORE_USER_SETTINGS': 0,\n 'C_COMMAND_REVERSE_NETDEBUG': 0,\n 'C_COMMAND_SAVE_CLIENT_DATA': 0,\n 'C_COMMAND_SAVE_FACTORY_SETTINGS': 0,\n 'C_COMMAND_SAVE_INSTALLATION_SETTINGS': 0,\n 'C_COMMAND_SAVE_USER_SETTINGS': 0,\n 'C_COMMAND_START_APPLICATION': 47440,\n 'C_COMMAND_START_CONTROL': 0,\n 'C_COMMAND_STOP_CONTROL': 0,\n 'C_COMMAND_TYPHOON_READY_FOR_UPDATE': 0,\n 'C_COMMAND_TYPHOON_USB_TRANSFER': 0,\n 'C_COMMAND_UPDATE_CHECK_CLOUD_VERSION': 0,\n 'C_COMMAND_UPDATE_CLOUD_ALPHA': 0,\n 'C_COMMAND_UPDATE_CLOUD_BETA': 86,\n 'C_COMMAND_UPDATE_CLOUD_FORCE_MASTER': 0,\n 'C_COMMAND_UPDATE_CLOUD_INSIDER': 0,\n 'C_COMMAND_UPDATE_GET': 8255,\n 'C_COMMAND_UPDATE_GET_ETH': 0,\n 'C_COMMAND_UPDATE_GET_ETH_CLOUD': 0,\n 'C_COMMAND_UPDATE_REQUEST': 3,\n 'C_COMMAND_UPDATE_SEND': 3,\n 'C_CYC_ACCESS_FREE': 0,\n 'C_CYC_ACCESS_LIMITED': 0,\n 'C_CYC_ACCESS_VERY_LIMITED': 0,\n 'C_CYC_AFFIRMATIVE': 0,\n 'C_CYC_ANA_IN_NONE': 0,\n 'C_CYC_ANA_IN_POST_HEAT': 0,\n 'C_CYC_ANA_IN_SITUATION': 0,\n 'C_CYC_ANA_IN_SPEED': 0,\n 'C_CYC_BYPASS_MODE': 0,\n 'C_CYC_CELL_STATE_BYPASS': 0,\n 'C_CYC_CELL_STATE_COOLRECO': 0,\n 'C_CYC_CELL_STATE_DEFROST': 0,\n 'C_CYC_CELL_STATE_HEATRECO': 0,\n 'C_CYC_DIG_IN_BOOST': 0,\n 'C_CYC_DIG_IN_BYPASS': 0,\n 'C_CYC_DIG_IN_EXTRA': 256,\n 'C_CYC_DIG_IN_FIREPLACE': 0,\n 'C_CYC_DIG_IN_FIRE_ALARM': 0,\n 'C_CYC_DIG_IN_FP_DIRECT': 0,\n 'C_CYC_DIG_IN_HOME_STATE': 0,\n 'C_CYC_DIG_IN_NONE': 0,\n 'C_CYC_DIG_IN_SCHEDULER': 0,\n 'C_CYC_ELECTRIC': 0,\n 'C_CYC_EVENT_AWAY': 0,\n 'C_CYC_EVENT_BOOST': 0,\n 'C_CYC_EVENT_HOME': 0,\n 'C_CYC_EVENT_NONE': 0,\n 'C_CYC_FAILED': 0,\n 'C_CYC_FAN_STOP_MODE': 0,\n 'C_CYC_HEATING_COOLING': 0,\n 'C_CYC_HEATING_EXTRACT': 0,\n 'C_CYC_HEATING_SUPPLY': 0,\n 'C_CYC_HRC_ALUMINIUM': 0,\n 'C_CYC_HRC_ENTALPHY': 0,\n 'C_CYC_HRC_PLASTIC': 0,\n 'C_CYC_LEFT': 0,\n 'C_CYC_MLV': 0,\n 'C_CYC_MODE_DEFROST': 0,\n 'C_CYC_MODE_EMC_TEST': 0,\n 'C_CYC_MODE_MANUAL': 0,\n 'C_CYC_MODE_NORMAL': 0,\n 'C_CYC_MODE_OFF': 0,\n 'C_CYC_MODE_SELF_TEST': 0,\n 'C_CYC_MODE_TESTING': 0,\n 'C_CYC_NEGATIVE': 0,\n 'C_CYC_NONE': 0,\n 'C_CYC_NOT_TESTABLE': 0,\n 'C_CYC_NOT_TESTED': 0,\n 'C_CYC_OPT_TEMP_MLV': -273.1,\n 'C_CYC_OPT_TEMP_NONE': -273.1,\n 'C_CYC_RELAY_BYPASS_STATE': 0,\n 'C_CYC_RELAY_ERROR': 0,\n 'C_CYC_RELAY_ERR_SERVICE': 0,\n 'C_CYC_RELAY_FIRE_ALARM': 0,\n 'C_CYC_RELAY_MLV': 0,\n 'C_CYC_RELAY_NONE': 0,\n 'C_CYC_RELAY_SERVICE_REM': 0,\n 'C_CYC_RIGHT': 0,\n 'C_CYC_STATE_AWAY': 0,\n 'C_CYC_STATE_BOOST': 0,\n 'C_CYC_STATE_HOME': 0,\n 'C_CYC_TESTED': 0,\n 'C_CYC_TESTING': 0,\n 'C_CYC_WATER': 0,\n 'EXT_ACCESSRIGHTS_ARRAY': 0,\n 'EXT_ANALOG_INPUT_MODE': 0,\n 'EXT_AWAY_AIR_TEMP_TARGET': -273.1,\n 'EXT_BOOST_AIR_TEMP_TARGET': -273.1,\n 'EXT_BOOST_TIME': 0,\n 'EXT_BOOST_TIMER_ENABLED': 0,\n 'EXT_BOOT_FINISHED': 0,\n 'EXT_BROWSER_IP': 0,\n 'EXT_BROWSER_PORT': 0,\n 'EXT_CLEAR_WEEK_EVENTS': 0,\n 'EXT_CLOUD_CONNECT': 0,\n 'EXT_CLOUD_CONNECTION_STATUS': 0,\n 'EXT_CLOUD_DISCONNECT': 0,\n 'EXT_CONFIG_BUTTON': 0,\n 'EXT_CONFIG_DONE': 0,\n 'EXT_CYC_ACTIVE_PROFILE': 0,\n 'EXT_CYC_APPL_SW_VERSION': 0,\n 'EXT_CYC_CONFIG_NUMBER': 0,\n 'EXT_CYC_CURRENT_UP_TIME': 0,\n 'EXT_CYC_DATE': 0,\n 'EXT_CYC_DEFROSTING': 0,\n 'EXT_CYC_DEFROST_RH_OFFSET': 0,\n 'EXT_CYC_DEFROST_TEMP_PARAM': -273.1,\n 'EXT_CYC_EXTRA_HEATER_TYPE': 0,\n 'EXT_CYC_EXTR_FAN_SPEED': 0,\n 'EXT_CYC_FAULT_ARRAY': 0,\n 'EXT_CYC_FILTER_CHANGED_DATE': 0,\n 'EXT_CYC_OLD_WEEKLY_EVENTS': 0,\n 'EXT_CYC_POST_HEATER_TYPE': 0,\n 'EXT_CYC_POWER': 0,\n 'EXT_CYC_PROFILE_OUTDOOR_AIR': 0,\n 'EXT_CYC_PROFILE_SUPPLY_AIR': 0,\n 'EXT_CYC_RESTORE_FACTORY_SETTINGS': 0,\n 'EXT_CYC_RESTORE_INSTALLATION_SETTINGS': 0,\n 'EXT_CYC_RESTORE_SERVICE_MODE': 0,\n 'EXT_CYC_RESTORE_USER_SETTINGS': 0,\n 'EXT_CYC_SAVE_INSTALLATION_SETTINGS': 0,\n 'EXT_CYC_SAVE_USER_SETTINGS': 0,\n 'EXT_CYC_SERIAL_NUMBER': 0,\n 'EXT_CYC_START_SELFTEST': 0,\n 'EXT_CYC_SUPP_FAN_SPEED': 0,\n 'EXT_CYC_TIME': 0,\n 'EXT_CYC_TOTAL_UP_TIME': 0,\n 'EXT_CYC_WEEKLY_EVENTS': 0,\n 'EXT_DATA_POLLING': 0,\n 'EXT_DATA_POLLING_ENABLED': 0,\n 'EXT_DATA_POLLING_INTERVAL': 0,\n 'EXT_DATA_POLLING_UI_UPDATE_ENABLED': 0,\n 'EXT_DATA_SC': 0,\n 'EXT_DEFROST_ON': 0,\n 'EXT_DIGITAL_INPUT_1_MODE': 0,\n 'EXT_DIGITAL_INPUT_2_MODE': 0,\n 'EXT_ERROR_SOLVED': 0,\n 'EXT_EXTRA_AIR_TEMP_TARGET': -273.1,\n 'EXT_EXTRA_EXTR_FAN': 0,\n 'EXT_EXTRA_SUPP_FAN': 0,\n 'EXT_EXTRA_TIME': 0,\n 'EXT_EXTRA_TIMER_ENABLED': 0,\n 'EXT_FILTER_CHANGE_INTERVAL': 0,\n 'EXT_GRANT_ACCESS_EMAIL': 0,\n 'EXT_GRANT_ACCESS_EMAIL_LIST': 0,\n 'EXT_GRANT_ACCESS_EMAIL_VALID': 0,\n 'EXT_GRANT_ACCESS_SEND': 0,\n 'EXT_GRAPH_DURATION': 0,\n 'EXT_GRAPH_DURATION_IN_DAYS': 0,\n 'EXT_HOME_AIR_TEMP_TARGET': -273.1,\n 'EXT_INFOBANNER_CONTENT': 0,\n 'EXT_LANGUAGE': 0,\n 'EXT_LC_CHANGED': 0,\n 'EXT_LISTENER_ENABLED': 0,\n 'EXT_LISTENER_SKIPPER': 0,\n 'EXT_MACHINE_TYPE': 0,\n 'EXT_MODBUS_PARITY': 0,\n 'EXT_MODBUS_STOPBIT': 0,\n 'EXT_NUM_OF_CO2_SENSORS': 0,\n 'EXT_NUM_OF_RH_SENSORS': 0,\n 'EXT_OFFLINE_MODE': 0,\n 'EXT_PAGES_LOADED': 0,\n 'EXT_REFRESH_GRAPHS': 0,\n 'EXT_SEN_ANALOG_SENSOR_INPUT': 0,\n 'EXT_SEN_CO2_SENSOR_0': 0,\n 'EXT_SEN_CO2_SENSOR_1': 0,\n 'EXT_SEN_CO2_SENSOR_2': 0,\n 'EXT_SEN_CO2_SENSOR_3': 0,\n 'EXT_SEN_CO2_SENSOR_4': 0,\n 'EXT_SEN_CO2_SENSOR_5': 0,\n 'EXT_SEN_RH_SENSOR_0': 0,\n 'EXT_SEN_RH_SENSOR_1': 0,\n 'EXT_SEN_RH_SENSOR_2': 0,\n 'EXT_SEN_RH_SENSOR_3': 0,\n 'EXT_SEN_RH_SENSOR_4': 0,\n 'EXT_SEN_RH_SENSOR_5': 0,\n 'EXT_SERVICE_MODE': 0,\n 'EXT_SHOW_WIZARD': 0,\n 'EXT_TEMP_NOW_EXHAUST_AIR': -273.1,\n 'EXT_TEMP_NOW_EXTRACT_AIR': -273.1,\n 'EXT_TEMP_NOW_OUTDOOR_AIR': -273.1,\n 'EXT_TEMP_NOW_SUPPLY_AIR': -273.1,\n 'EXT_TEST_MODE_SWITCH': 0,\n 'EXT_USERNAME': 0,\n 'EXT_USER_PASSWORD': 0,\n 'EXT_UUID_STRING': 0,\n 'EXT_WIZARD_DONE': 0,\n 'RANGE_END_g_cyclone_config': 58610,\n 'RANGE_END_g_cyclone_general_info': 0,\n 'RANGE_END_g_cyclone_hw_state': 0,\n 'RANGE_END_g_cyclone_input': 0,\n 'RANGE_END_g_cyclone_output': 0,\n 'RANGE_END_g_cyclone_settings': 0,\n 'RANGE_END_g_cyclone_sw_state': 0,\n 'RANGE_END_g_cyclone_time': 7,\n 'RANGE_END_g_cyclone_weekly_schedule': 0,\n 'RANGE_END_g_faults': 0,\n 'RANGE_END_g_self_test': 0,\n 'RANGE_END_g_typhoon_general_info': 0,\n 'RANGE_END_g_typhoon_settings': 0,\n 'RANGE_START_g_cyclone_config': 0,\n 'RANGE_START_g_cyclone_general_info': 0,\n 'RANGE_START_g_cyclone_hw_state': 0,\n 'RANGE_START_g_cyclone_input': 0,\n 'RANGE_START_g_cyclone_output': 0,\n 'RANGE_START_g_cyclone_settings': 0,\n 'RANGE_START_g_cyclone_sw_state': 0,\n 'RANGE_START_g_cyclone_time': 0,\n 'RANGE_START_g_cyclone_weekly_schedule': 0,\n 'RANGE_START_g_faults': 0,\n 'RANGE_START_g_self_test': 0,\n 'RANGE_START_g_typhoon_general_info': 0,\n 'RANGE_START_g_typhoon_settings': 0,\n 'WS_LOG_EXHAUST_AIR_TEMP': 0,\n 'WS_LOG_EXTRACT_AIR_TEMP': 0,\n 'WS_LOG_MAX_CO2': 0,\n 'WS_LOG_MAX_HUMIDITY': 0,\n 'WS_LOG_OUTDOOR_AIR_TEMP': 0,\n 'WS_LOG_SUPPLY_AIR_TEMP': 0,\n 'WS_LOG_SUPPLY_CELL_AIR_TEMP': 0,\n 'WS_WEB_UI_ACK': 0,\n 'WS_WEB_UI_COMMAND_LOG': 0,\n 'WS_WEB_UI_COMMAND_LOG_LIMITED': 0,\n 'WS_WEB_UI_COMMAND_LOG_RAW': 0,\n 'WS_WEB_UI_COMMAND_READ_DATA': 0,\n 'WS_WEB_UI_COMMAND_READ_TABLES': 0,\n 'WS_WEB_UI_COMMAND_WRITE_DATA': 0,\n 'WS_WEB_UI_DATA_BOUNDARY_ERROR': 0,\n 'WS_WEB_UI_DATA_CHECKSUM_ERROR': 0,\n 'WS_WEB_UI_DATA_ERROR': 0,\n 'WS_WEB_UI_DATA_INVALID_COMMAND': 0,\n 'WS_WEB_UI_DATA_LENGTH_ERROR': 0,\n 'WS_WEB_UI_DATA_OK': 0,\n 'WS_WEB_UI_DATA_REQUEST': 0,\n 'WS_WEB_UI_DATA_RW_ERROR': 0,\n 'WS_WEB_UI_DATA_SEND_REPLY': 0,\n 'WS_WEB_UI_DATA_TABLE_BOUNDARY_ERROR': 0}\n ```\n\n# Reading\n* https://www.vallox.com/files/1092/Modbus-instructions_ENG-250915.pdf\n* https://www.vallox.com/files/1092/Manual_Modbus_ENG_20180307_PRINT.pdf", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/yozik04/vallox_websocket_api", "keywords": "vallox api", "license": "LGPL 3", "maintainer": "", "maintainer_email": "", "name": "vallox-websocket-api", "package_url": "https://pypi.org/project/vallox-websocket-api/", "platform": "", "project_url": "https://pypi.org/project/vallox-websocket-api/", "project_urls": { "Homepage": "https://github.com/yozik04/vallox_websocket_api" }, "release_url": "https://pypi.org/project/vallox-websocket-api/2.2.0/", "requires_dist": null, "requires_python": ">=3.5.1, <4", "summary": "Vallox WebSocket API", "version": "2.2.0" }, "last_serial": 5571812, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "70c7624b8e88fa90905a43ad8c439707", "sha256": "204b7c381f3a51373cbb6bd3d3064477c26e81bd74e7d1ede8f5d139664bdce0" }, "downloads": -1, "filename": "vallox_websocket_api-1.0.0.tar.gz", "has_sig": false, "md5_digest": "70c7624b8e88fa90905a43ad8c439707", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20291, "upload_time": "2018-01-22T10:15:36", "url": "https://files.pythonhosted.org/packages/93/c3/aa4cb83a34874a5ed095e506ef6fa6c7f37a891e74cf683213e35a2ed16b/vallox_websocket_api-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "7cdf315a8669f957eacbbfa5c2f3ea0d", "sha256": "63b0e83bcd2d5ae07a9869393e35f4ee50bcfb33d7d149058289cfa82c216505" }, "downloads": -1, "filename": "vallox_websocket_api-1.1.0.tar.gz", "has_sig": false, "md5_digest": "7cdf315a8669f957eacbbfa5c2f3ea0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20511, "upload_time": "2018-01-23T14:39:39", "url": "https://files.pythonhosted.org/packages/9d/15/6e5867b7685d5644b0f48a54af99c499fe2c95cabb366cc4b251ee2f8136/vallox_websocket_api-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "ba984739632c03bbbeb542fa866a1c63", "sha256": "fa5afa1538f074c60a9ebe8501959d7fe06aaf02f28841f6463095c5bdbb5100" }, "downloads": -1, "filename": "vallox_websocket_api-1.1.1.tar.gz", "has_sig": false, "md5_digest": "ba984739632c03bbbeb542fa866a1c63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20641, "upload_time": "2018-01-23T22:31:04", "url": "https://files.pythonhosted.org/packages/a9/d5/635910c4e602d204df730ccd27de388c79dcb539a1a9737f4a4208e6da6b/vallox_websocket_api-1.1.1.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "d298bbf6778d372b1ef484fcc8848460", "sha256": "eac2ceb6ef393d00ac442cb6c3d35100355bf0efa3eae21cd3e757fb150682ec" }, "downloads": -1, "filename": "vallox_websocket_api-1.2.0.tar.gz", "has_sig": false, "md5_digest": "d298bbf6778d372b1ef484fcc8848460", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21622, "upload_time": "2018-03-31T08:33:22", "url": "https://files.pythonhosted.org/packages/b9/32/21f31205ce476ed9e55e25a9a7b2106e6b943b9ddc8b9ef1a5fd91c07f19/vallox_websocket_api-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "60812c0b25970e4d73592450ba962959", "sha256": "e4ededac7ff5d8e560a1531896f1c077ea4d441134978d7fa944fa1454c4effe" }, "downloads": -1, "filename": "vallox_websocket_api-1.2.1.tar.gz", "has_sig": false, "md5_digest": "60812c0b25970e4d73592450ba962959", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21617, "upload_time": "2018-07-13T17:34:16", "url": "https://files.pythonhosted.org/packages/1b/21/11e8e41be8504da4f8992b87c526ac126ddfeb339b12be7746deb3a23804/vallox_websocket_api-1.2.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "39ae1c660248ffc6766fdfebbbe82a4b", "sha256": "64692e774d9aa911b309b9bc02328a21e367b939efc4dda949e2dfc12889023a" }, "downloads": -1, "filename": "vallox_websocket_api-1.3.2.tar.gz", "has_sig": false, "md5_digest": "39ae1c660248ffc6766fdfebbbe82a4b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21669, "upload_time": "2018-12-30T07:17:26", "url": "https://files.pythonhosted.org/packages/b1/c7/c32d8ca166c3a3ae697d565c163977583a5b83a688d974ed6c103e93be98/vallox_websocket_api-1.3.2.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "84e1bbcef172315af191e52da146ac00", "sha256": "9a5e2c43dc6d72cc82947d340a82e44fe76ad9475d36e77001a9799eec1f0954" }, "downloads": -1, "filename": "vallox_websocket_api-1.4.0.tar.gz", "has_sig": false, "md5_digest": "84e1bbcef172315af191e52da146ac00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22744, "upload_time": "2019-03-28T22:31:02", "url": "https://files.pythonhosted.org/packages/5a/72/472afac94e9b6de3ff61856dd1e4f8e81fa1738e528fb2b1a5efb179964f/vallox_websocket_api-1.4.0.tar.gz" } ], "1.5.0": [ { "comment_text": "", "digests": { "md5": "6e885b08ad432c3ebc15ff91819e9bf9", "sha256": "7bc27a0c8f5ff28b43be1b2b26c2ffa8b0a93a14e1c8aac53d5bc57cf5868f2c" }, "downloads": -1, "filename": "vallox_websocket_api-1.5.0.tar.gz", "has_sig": false, "md5_digest": "6e885b08ad432c3ebc15ff91819e9bf9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34391, "upload_time": "2019-03-29T07:07:53", "url": "https://files.pythonhosted.org/packages/bc/3e/d36154fed119ad8f6f04cc47b15b8aa0ab68dd43fca773f084503ea5b4f4/vallox_websocket_api-1.5.0.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "ae06dbab02c7d84d75e490bb41ff6ddb", "sha256": "64e578e26ed60f4ea83f7ccbff33a65ba2c2c127b0bb86f6fcbd57fe3cce1729" }, "downloads": -1, "filename": "vallox_websocket_api-1.5.1.tar.gz", "has_sig": false, "md5_digest": "ae06dbab02c7d84d75e490bb41ff6ddb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34297, "upload_time": "2019-03-29T07:22:23", "url": "https://files.pythonhosted.org/packages/cc/ec/96c9a60f8b95eaaee3f9906d999638e7b017644d485b11b9b3313f09cb53/vallox_websocket_api-1.5.1.tar.gz" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "fb73a82e251da0ab74e55f0f06af0ba7", "sha256": "e2b3ef8eb15431043c0f46b97038822d8f240fa5baa7fb4d1ae561e2dd51aac0" }, "downloads": -1, "filename": "vallox_websocket_api-1.5.2.tar.gz", "has_sig": false, "md5_digest": "fb73a82e251da0ab74e55f0f06af0ba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37200, "upload_time": "2019-06-25T07:49:16", "url": "https://files.pythonhosted.org/packages/c9/0e/ef388fb3f9ab37ef8781c049b948a23f847159a903c6d59327077922dcfe/vallox_websocket_api-1.5.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "cb5666942b6f2cab0bc83a2c82b96711", "sha256": "c9968bbd28f198f32185bb7a1ff0a256d68bd11224b6fbf8b0c0f18f4e13825e" }, "downloads": -1, "filename": "vallox_websocket_api-2.0.0.tar.gz", "has_sig": false, "md5_digest": "cb5666942b6f2cab0bc83a2c82b96711", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.1, <4", "size": 37937, "upload_time": "2019-06-26T08:13:55", "url": "https://files.pythonhosted.org/packages/f1/dc/ebb91572a278d36740a11d45fb9c1def8467b9c705df2fc5f3bd0f9c6830/vallox_websocket_api-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "8ee5ac50df55bb45b6d6062d2f0d4800", "sha256": "d868829bb7bb81de4e710bbd74c6c60d1b815f970691fda2fdf08e31879af0b4" }, "downloads": -1, "filename": "vallox_websocket_api-2.1.0.tar.gz", "has_sig": false, "md5_digest": "8ee5ac50df55bb45b6d6062d2f0d4800", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.1, <4", "size": 38194, "upload_time": "2019-07-22T11:17:31", "url": "https://files.pythonhosted.org/packages/0a/89/d5181d387b800b62dd15bddb930c36be9b02bab4ffca217e60e901a2f544/vallox_websocket_api-2.1.0.tar.gz" } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "ce0975ed71174a438d289ef6d965cb77", "sha256": "369517c361310924306add3048af26a0382b0b7322812cb5a4f8f89ec2c7d524" }, "downloads": -1, "filename": "vallox_websocket_api-2.2.0.tar.gz", "has_sig": false, "md5_digest": "ce0975ed71174a438d289ef6d965cb77", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.1, <4", "size": 38302, "upload_time": "2019-07-23T10:44:45", "url": "https://files.pythonhosted.org/packages/96/da/6dab252e6240b88b6fb4c2e3e96552d7cca54aa6791403c237ac17d5591e/vallox_websocket_api-2.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ce0975ed71174a438d289ef6d965cb77", "sha256": "369517c361310924306add3048af26a0382b0b7322812cb5a4f8f89ec2c7d524" }, "downloads": -1, "filename": "vallox_websocket_api-2.2.0.tar.gz", "has_sig": false, "md5_digest": "ce0975ed71174a438d289ef6d965cb77", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5.1, <4", "size": 38302, "upload_time": "2019-07-23T10:44:45", "url": "https://files.pythonhosted.org/packages/96/da/6dab252e6240b88b6fb4c2e3e96552d7cca54aa6791403c237ac17d5591e/vallox_websocket_api-2.2.0.tar.gz" } ] }