{"id":14985272,"url":"https://github.com/yozik04/vallox_websocket_api","last_synced_at":"2025-05-16T12:09:48.282Z","repository":{"id":19135219,"uuid":"86261677","full_name":"yozik04/vallox_websocket_api","owner":"yozik04","description":"Async API for Vallox ventilation units. Is used in HomeAssistant.","archived":false,"fork":false,"pushed_at":"2025-02-26T11:43:16.000Z","size":895,"stargazers_count":26,"open_issues_count":0,"forks_count":15,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-04-12T06:15:00.506Z","etag":null,"topics":["home-assistant","home-automation","library","python","vallox"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yozik04.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-26T20:11:22.000Z","updated_at":"2025-03-09T12:40:16.000Z","dependencies_parsed_at":"2024-02-09T19:40:07.612Z","dependency_job_id":"570b44ad-6718-40d8-9297-f35d5adf3dc7","html_url":"https://github.com/yozik04/vallox_websocket_api","commit_stats":{"total_commits":180,"total_committers":8,"mean_commits":22.5,"dds":"0.23333333333333328","last_synced_commit":"75581ce95e0193f9f33dc7061adfcac40e4b651f"},"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yozik04%2Fvallox_websocket_api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yozik04%2Fvallox_websocket_api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yozik04%2Fvallox_websocket_api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yozik04%2Fvallox_websocket_api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yozik04","download_url":"https://codeload.github.com/yozik04/vallox_websocket_api/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248525138,"owners_count":21118619,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["home-assistant","home-automation","library","python","vallox"],"created_at":"2024-09-24T14:10:38.073Z","updated_at":"2025-04-12T06:15:13.590Z","avatar_url":"https://github.com/yozik04.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Test and Lint](https://github.com/yozik04/vallox_websocket_api/actions/workflows/test.yml/badge.svg)](https://github.com/yozik04/vallox_websocket_api/actions/workflows/test.yml)\n[![PyPI - Status](https://img.shields.io/pypi/status/vallox_websocket_api)](https://github.com/yozik04/vallox_websocket_api/actions)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/vallox_websocket_api)\n[![PyPI](https://img.shields.io/pypi/v/vallox_websocket_api)](https://pypi.org/project/vallox-websocket-api/)\n[![PyPI - License](https://img.shields.io/pypi/l/vallox_websocket_api)](./LICENSE.txt)\n[![Codecov](https://img.shields.io/codecov/c/github/yozik04/vallox_websocket_api)](https://app.codecov.io/gh/yozik04/vallox_websocket_api)\n\n\n\n# vallox_websocket_api\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## Releases\n\nRelease notes for the new versions are [here](https://github.com/yozik04/vallox_websocket_api/releases)\n\n## Requirements\nPython 3.9.0+\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\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 the following units:\n\nVallox:\n\n- Vallox 096 MV\n- Vallox 096 MV-E\n- Vallox 110 MV\n- Vallox 110 MV-E\n- Vallox 145 MV\n- Vallox 145 MV-E\n- Vallox 245 MV\n- Vallox 245 MV-E\n- Vallox 51 MV\n- Vallox 51 MV-E\n- Vallox 101 MV\n- Vallox 101 MV-E\n- Vallox 90 MV\n- Vallox 90K MV\n- Vallox 139 MV\n- Vallox 139 MV-E\n- Vallox 99 MV\n- Vallox 99 MV CF\n- Vallox 125 MV\n- ValloPlus 180 MV\n- ValloPlus 180-K MV\n- ValloPlus 180-E MV\n- ValloPlus 240 MV\n- ValloPlus 240-K MV\n- ValloPlus 240-E MV\n- ValloPlus 270 MV\n- ValloPlus 270 MV-E\n- ValloPlus 350 MV\n- ValloPlus 350 MV-E\n- ValloPlus 370 MV\n- ValloPlus 370 MV-E\n- ValloPlus 510 MV\n- ValloPlus 510 MV-E\n- ValloPlus 850 MV\n- ValloPlus 850 MV-E\n- Vallox TSK Multi 50 MV\n- Vallox TSK Multi 80 MV\n- TSK Multi 50 MV-E\n- TSK Multi 80 MV-E\n- ValloMulti 200 MV\n- ValloMulti 200 MV-E\n- ValloMulti 300 MV\n- ValloMulti 300 MV-E\n\nAirflow:\n\n- DV96 Adroit\n- DV110 Adroit\n- DV145 Adroit\n- DV245 Adroit\n- DV51 Adroit\n- DV51K Adroit\n- DV90 Adroit\n- DV90K Adroit\n- DV 139 adroit\n- DV TSK Multi 50 Adroit\n- DV TSK Multi 80 Adroit\n\nDevices with Helios easyControls 3.0:\n\n- KWL 170 W\n- KWL 170 W ET\n- KWL 200 W R\n- KWL 200 W L\n- KWL 200 W ET R\n- KWL 200 W ET L\n- KWL 220 D R\n- KWL 220 D L\n- KWL 250 W\n- KWL 250 W ET\n- KWL 300 W R\n- KWL 300 W L\n- KWL 300 W ET R\n- KWL 300 W ET L\n- KWL 340 D R\n- KWL 340 D L\n- KWL 360 W\n- KWL 360 W ET\n- KWL 470 W\n- KWL 470 W ET\n- KWL 500 W R\n- KWL 500 W L\n- KWL 500 W ET R\n- KWL 500 W ET L\n- KWL 890 W L\n- KWL 890 W R\n- KWL 890 W ET L\n- KWL 890 W ET R\n\nOther:\n\n- Aito kotilämpökone\n\n# Dependencies\n\nCode uses next libraries\n\n* construct\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\u003e=1.5.0,\u003c2.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    data = await client.fetch_metric_data()\n    profile = data.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.run(run())\n```\n\n## Metrics\n\nReading metrics and setting values\n\n## Reading Metrics\n```python\nimport asyncio\nfrom vallox_websocket_api import Vallox\nfrom pprint import pprint\n\nclient = Vallox('192.168.1.2')\n\nasync def run():\n    data = await client.fetch_metric_data()\n    pprint(data)\n\nasyncio.run(run())\n```\n\nOr if you want just a subset of metrics:\n\n```python\nimport asyncio\nfrom vallox_websocket_api import Vallox\n\nclient = Vallox('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.run(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 Vallox\n\nclient = Vallox('192.168.1.2')\nasync def run():\n    data = await client.fetch_raw_logs()\n\n    from pprint import pprint\n    pprint(data)\nasyncio.run(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 Vallox\n\nclient = Vallox('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.run(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': 512,\n 'A_CYC_APPL_SW_VERSION_8': 0,\n 'A_CYC_APPL_SW_VERSION_9': 512,\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_BYPASS_LOCKED': 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_COMP_LIMIT': 630,\n 'A_CYC_DEFROST_COUNT_IN_24H': 0,\n 'A_CYC_DEFROST_COUNT_IN_WEEK': 0,\n 'A_CYC_DEFROST_EXH_OFFSET': 11,\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_DEWPOINT_LIMIT_IN_USE': 0,\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_AUTO_MANUAL': 0,\n 'A_CYC_MLV_MODES': 0,\n 'A_CYC_MLV_STATE': 0,\n 'A_CYC_MLV_SUMMER_HYSTERESIS': 1,\n 'A_CYC_MLV_SUMMER_SETPOINT': 28815,\n 'A_CYC_MLV_SUPPLY_LOWER_LIMIT': 29115,\n 'A_CYC_MLV_WINTER_HYSTERESIS': 5,\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_MULTISENSOR_CO2': 0,\n 'A_CYC_MULTISENSOR_RH': 46,\n 'A_CYC_MULTISENSOR_TEMP': 29550,\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_PARTIAL_BYPASS': 0,\n 'A_CYC_POST_HEATER_TYPE': 1,\n 'A_CYC_POST_HEATER_WINTER_SETPOINT': 29215,\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_FACTORY_SETTINGS': 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_MLV_OUTDOOR': 0,\n 'C_CYC_MLV_SUPPLY': 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_NONE': 0,\n 'C_CYC_OPT_TEMP_EXTRACT': -273.1,\n 'C_CYC_OPT_TEMP_MLV': -273.1,\n 'C_CYC_OPT_TEMP_NONE': -273.1,\n 'C_CYC_RELAY_AIRHEATER': 0,\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_RUNSTATE': 512,\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_BYPASS_LOCKED': 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_MLV_SUMMER_SETPOINT': 0,\n 'EXT_CYC_MLV_SUPPLY_LOWER_LIMIT': 0,\n 'EXT_CYC_MLV_WINTER_SETPOINT': 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_GATEWAY_ADDRESS': 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_IP_ADDRESS': 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_MASK_ADDRESS': 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_POST_HEATER_WINTER_SETPOINT': 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_FAN_SPEED': 512,\n 'WS_LOG_MAX_CO2': 0,\n 'WS_LOG_MAX_HUMIDITY': 0,\n 'WS_LOG_METRICS_1': 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\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyozik04%2Fvallox_websocket_api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyozik04%2Fvallox_websocket_api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyozik04%2Fvallox_websocket_api/lists"}