diff --git a/omnilogic.egg-info/PKG-INFO b/omnilogic.egg-info/PKG-INFO index 93a0dc4..3553230 100644 --- a/omnilogic.egg-info/PKG-INFO +++ b/omnilogic.egg-info/PKG-INFO @@ -1,12 +1,12 @@ Metadata-Version: 2.1 Name: omnilogic -Version: 0.4.4 +Version: 0.4.5 Summary: Integration for the Hayward OmniLogic pool control system Home-page: https://github.com/djtimca/omnilogic-api Author: Tim Empringham Author-email: tim.empringham@live.ca License: apache-2.0 -Download-URL: https://github.com/djtimca/omnilogic-api/archive/v_044.tar.gz +Download-URL: https://github.com/djtimca/omnilogic-api/archive/v_045.tar.gz Description: # Hayward OmniLogic Integration Integration library for Hayward Omnilogic pool controllers to allow easy integration through their API to your home automation system. diff --git a/omnilogic/.gitignore b/omnilogic/.gitignore index 4f68321..cb1ffd3 100644 --- a/omnilogic/.gitignore +++ b/omnilogic/.gitignore @@ -134,3 +134,6 @@ dmypy.json # VSCode config .vscode/ +# Testing Files +test.py +test_data/ diff --git a/omnilogic/__init__.py b/omnilogic/__init__.py index 94e5100..2d64583 100644 --- a/omnilogic/__init__.py +++ b/omnilogic/__init__.py @@ -716,7 +716,11 @@ def alarms_to_json(self, alarms): return alarmslist def telemetry_to_json(self, telemetry, config_data, site_alarms): - telemetryXML = ElementTree.fromstring(telemetry) + try: + telemetryXML = ElementTree.fromstring(telemetry) + except: + raise OmniLogicException("Error loading Hayward data.") + backyard = {} BOW = {} @@ -1045,9 +1049,11 @@ async def get_telemetry_data(self): # def get_alarm_list(self): def convert_to_json(self, xmlString): - my_dict = xmltodict.parse(xmlString) - json_data = json.dumps(my_dict) - # print(json_data) + try: + my_dict = xmltodict.parse(xmlString) + json_data = json.dumps(my_dict) + except: + raise OmniLogicException("Error converting Hayward data to JSON.") return json.loads(json_data)["Response"]["MSPConfig"] diff --git a/setup.py b/setup.py index e31b4c1..26f264a 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setup( name = 'omnilogic', packages = ['omnilogic'], - version = '0.4.5', + version = '0.4.6', license='apache-2.0', description = 'Integration for the Hayward OmniLogic pool control system', long_description = long_description, @@ -14,7 +14,7 @@ author = 'Tim Empringham', author_email = 'tim.empringham@live.ca', url = 'https://github.com/djtimca/omnilogic-api', - download_url = 'https://github.com/djtimca/omnilogic-api/archive/v_045.tar.gz', + download_url = 'https://github.com/djtimca/omnilogic-api/archive/v_046.tar.gz', keywords = ['OmniLogic', 'Hayward', 'Pool', 'Spa'], install_requires=[ 'xmltodict', diff --git a/test_data/MspConfiguration.txt b/test_data/MspConfiguration.txt new file mode 100644 index 0000000..3f1c6c1 --- /dev/null +++ b/test_data/MspConfiguration.txt @@ -0,0 +1,1280 @@ + + + + + Percent + 12 Hour Format + Standard + Salt + English + standard + Yes + Yes + Yes + Yes + + + MSP Configuration + 0 + Backyard + 0 + + 11 + AirSensor + SENSOR_AIR_TEMP + UNITS_FAHRENHEIT + + PEO_GET_VALUE + + ACT_FNC_GET_AIR_TEMP + 19 + 4 + 0 + + + + + 25 + Small Falls + COLOR_LOGIC_UCL + 0 + no + yes + + PEO_TURN_ON + + ACT_FNC_HW_FILTER_TURN_ON + 10 + 16 + 1 + + + + PEO_TURN_OFF + + ACT_FNC_HW_FILTER_TURN_ON + 10 + 16 + 0 + + + + PEO_GET_VALUE + + ACT_FNC_GET_HV_RELAY + 10 + 16 + 0 + + + + PEO_V2_TOGGLE + + ACT_FNC_V2_TOGGLE_RELAY + 10 + 16 + 1 + + + + PEO_INIT + + ACT_FNC_CLL_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_CLL_TEARDOWN + 0 + 0 + 0 + + + + PEO_GET_TIME_LIGHT_HAS_BEEN_ON + + ACT_FNC_HW_SEC_LIGHTS_HAVE_BEEN_ON + 0 + 0 + 0 + + + + + 26 + Large Falls + COLOR_LOGIC_UCL + 0 + no + + PEO_TURN_ON + + ACT_FNC_HW_FILTER_TURN_ON + 11 + 32 + 1 + + + + PEO_TURN_OFF + + ACT_FNC_HW_FILTER_TURN_ON + 11 + 32 + 0 + + + + PEO_GET_VALUE + + ACT_FNC_GET_HV_RELAY + 11 + 32 + 0 + + + + PEO_INIT + + ACT_FNC_CLL_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_CLL_TEARDOWN + 0 + 0 + 0 + + + + PEO_GET_TIME_LIGHT_HAS_BEEN_ON + + ACT_FNC_HW_SEC_LIGHTS_HAVE_BEEN_ON + 0 + 0 + 0 + + + + + 01 + 1 + Pool + BOW_POOL + BOW_NO_EQUIPMENT_SHARED + SHARED_EQUIPMENT_LOW_PRIORITY + 0 + no + no + 0 + + 2 + Filter Pump + BOW_NO_EQUIPMENT_SHARED + FMT_DUAL_SPEED + 100 + 50 + 3450 + 600 + 30 + no + 180 + 300 + 300 + no + 900 + no + 35 + yes + 38 + 100 + 0 + FLT_DONT_CHANGE_VALVES + 18 + 50 + 100 + 100 + 7200 + + PEO_LOW_SPEED_ON + + ACT_FNC_HW_FILTER_TURN_ON + 9 + 8 + 1 + + + + PEO_LOW_SPEED_OFF + + ACT_FNC_HW_FILTER_TURN_ON + 9 + 8 + 0 + + + + PEO_LOW_SPEED_GET_STATE + + ACT_FNC_GET_HV_RELAY + 9 + 8 + 0 + + + + PEO_HIGH_SPEED_ON + + ACT_FNC_HW_FILTER_TURN_ON + 6 + 1 + 1 + + + + PEO_HIGH_SPEED_OFF + + ACT_FNC_HW_FILTER_TURN_ON + 6 + 1 + 0 + + + + PEO_HIGH_SPEED_GET_STATE + + ACT_FNC_GET_HV_RELAY + 6 + 1 + 0 + + + + PEO_INIT + + ACT_FNC_FLT_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_FLT_TEARDOWN + 0 + 0 + 0 + + + + PEO_GET_TIME_VALVE_LAST_TURNED + + ACT_FNC_HW_SEC_SINCE_VALVES_LAST_TURNED + 0 + 0 + 0 + + + + + 3 + BOW_NO_EQUIPMENT_SHARED + no + 81 + 104 + 65 + 90 + no + no + 300 + 900 + + PEO_INIT + + ACT_FNC_HEATER_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_HEATER_TEARDOWN + 0 + 0 + 0 + + + + PEO_HEATER_EQUIPMENT + + 4 + Gas + PET_HEATER + HTR_GAS + yes + HTR_PRIORITY_2 + HTR_MAINTAINS_PRIORITY_FOR_AS_LONG_AS_VALID + no + 100 + no + 180 + 8 + 2 + -1 + -1 + + PEO_TURN_ON + + ACT_FNC_TURN_ON_LV_RELAY + 2 + 1 + 1 + + + + PEO_TURN_OFF + + ACT_FNC_TURN_ON_LV_RELAY + 2 + 1 + 0 + + + + + + + 5 + pH + CSAD_AUTO + ACID + yes + 7.5 + -0.5 + 7200 + no + 6.9 + 8.1 + 300 + 650 + 650 + 350 + 950 + 0 + no + + PEO_STATUS_GET + + ACT_FNC_CSAD_STATUS_GET + 29 + 0 + 0 + + + + PEO_REVISION_GET + + ACT_FNC_CSAD_REVISION_GET + 29 + 0 + 0 + + + + PEO_INIT + + ACT_FNC_CSAD_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_CSAD_TEARDOWN + 0 + 0 + 0 + + + + PEO_CSAD_EQUIPMENT + + 8 + ChemSense1 + PET_CSAD + AQL-CHEM + yes + + PEO_TURN_ON + + ACT_FNC_HW_FILTER_TURN_ON + 8 + 4 + 1 + + + + PEO_TURN_OFF + + ACT_FNC_HW_FILTER_TURN_ON + 8 + 4 + 0 + + + + PEO_GET_VALUE + + ACT_FNC_GET_HV_RELAY + 8 + 4 + 0 + + + + + + + 6 + Chlorinator + BOW_NO_EQUIPMENT_SHARED + yes + CHLOR_OP_MODE_ORP_AUTO + 50 + 5 + CELL_TYPE_T15 + SALT_DISPENSING + 86400 + -1 + + PEO_INIT + + ACT_FNC_CHL_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_CHL_TEARDOWN + 0 + 0 + 0 + + + + PEO_CHLORINATOR_EQUIPMENT + + 7 + Chlorinator1 + PET_CHLORINATOR + CHLOR_TYPE_MAIN_PANEL + yes + + PEO_STATUS_GET + + ACT_FNC_CHL_STATUS_GET + 23 + 0 + 0 + + + + PEO_PARAMS_SET + + ACT_FNC_CHL_PARAMS_SET + 23 + 0 + 0 + + + + PEO_PAUSE + + ACT_FNC_CHL_PAUSE_CONTINUE + 23 + 1 + 0 + + + + PEO_CONTINUE + + ACT_FNC_CHL_PAUSE_CONTINUE + 23 + 2 + 0 + + + + PEO_ERRORS_GET + + ACT_FNC_CHL_ERRORS_GET + 23 + 0 + 0 + + + + PEO_ALERTS_GET + + ACT_FNC_CHL_ALERTS_GET + 23 + 0 + 0 + + + + PEO_SUPER_CHLOR_ON + + ACT_FNC_CHL_SUPER_CHLOR_SET + 23 + 1 + 0 + + + + PEO_SUPER_CHLOR_OFF + + ACT_FNC_CHL_SUPER_CHLOR_SET + 23 + 0 + 0 + + + + PEO_SALT_CALC_RESTART + + ACT_FNC_SALT_CALC_RESTART + 23 + 0 + 0 + + + + PEO_POLARITY_REVERSE + + ACT_FNC_CHL_RELAY_POLARITY_REVERSE + 23 + 0 + 0 + + + + PEO_CELL_RUNTIME_RESTART + + ACT_FNC_CHL_CELL_RUNTIME_RESTART + 23 + 0 + 0 + + + + + + + 9 + Bubblers + RLY_VALVE_ACTUATOR + RLY_WATERFALL + yes + no + 1800 + + PEO_INIT + + ACT_FNC_LV_RELAY_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_LV_RELAY_TEARDOWN + 0 + 0 + 0 + + + + PEO_GET_TIME_VALVE_LAST_TURNED + + ACT_FNC_HW_SEC_SINCE_VALVES_LAST_TURNED + 0 + 0 + 0 + + + + PEO_OPEN_VALVE + + ACT_FNC_HW_ACTIVATE_VALVE + 12 + 1 + 1 + + + + PEO_CLOSE_VALVE + + ACT_FNC_HW_ACTIVATE_VALVE + 12 + 1 + 0 + + + + PEO_GET_VALUE + + ACT_FNC_GET_VA_RELAY + 12 + 1 + 0 + + + + + 10 + Tanning + COLOR_LOGIC_UCL + 0 + no + + PEO_TURN_ON + + ACT_FNC_HW_FILTER_TURN_ON + 26 + 2 + 1 + + + + PEO_TURN_OFF + + ACT_FNC_HW_FILTER_TURN_ON + 26 + 2 + 0 + + + + PEO_GET_VALUE + + ACT_FNC_GET_HV_RELAY + 26 + 2 + 0 + + + + PEO_INIT + + ACT_FNC_CLL_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_CLL_TEARDOWN + 0 + 0 + 0 + + + + PEO_GET_TIME_LIGHT_HAS_BEEN_ON + + ACT_FNC_HW_SEC_LIGHTS_HAVE_BEEN_ON + 0 + 0 + 0 + + + + + 12 + WaterSensor + SENSOR_WATER_TEMP + UNITS_FAHRENHEIT + + PEO_GET_VALUE + + ACT_FNC_GET_WATER_TEMP + 18 + 2 + 0 + + + + + 13 + FlowSensor + SENSOR_FLOW + UNITS_ACTIVE_INACTIVE + + PEO_GET_VALUE + + ACT_FNC_GET_WATER_FLOW + 16 + 0 + 0 + + + + + 23 + Main + COLOR_LOGIC_UCL + 0 + no + + PEO_TURN_ON + + ACT_FNC_HW_FILTER_TURN_ON + 25 + 1 + 1 + + + + PEO_TURN_OFF + + ACT_FNC_HW_FILTER_TURN_ON + 25 + 1 + 0 + + + + PEO_GET_VALUE + + ACT_FNC_GET_HV_RELAY + 25 + 1 + 0 + + + + PEO_INIT + + ACT_FNC_CLL_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_CLL_TEARDOWN + 0 + 0 + 0 + + + + PEO_GET_TIME_LIGHT_HAS_BEEN_ON + + ACT_FNC_HW_SEC_LIGHTS_HAVE_BEEN_ON + 0 + 0 + 0 + + + + + 24 + SM-WATERFALL + COLOR_LOGIC_UCL + 0 + no + + PEO_TURN_ON + + ACT_FNC_HW_FILTER_TURN_ON + 27 + 4 + 1 + + + + PEO_TURN_OFF + + ACT_FNC_HW_FILTER_TURN_ON + 27 + 4 + 0 + + + + PEO_GET_VALUE + + ACT_FNC_GET_HV_RELAY + 27 + 4 + 0 + + + + PEO_INIT + + ACT_FNC_CLL_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_CLL_TEARDOWN + 0 + 0 + 0 + + + + PEO_GET_TIME_LIGHT_HAS_BEEN_ON + + ACT_FNC_HW_SEC_LIGHTS_HAVE_BEEN_ON + 0 + 0 + 0 + + + + + 27 + LG-WATERFALL + COLOR_LOGIC_UCL + 0 + no + + PEO_TURN_ON + + ACT_FNC_HW_FILTER_TURN_ON + 28 + 8 + 1 + + + + PEO_TURN_OFF + + ACT_FNC_HW_FILTER_TURN_ON + 28 + 8 + 0 + + + + PEO_GET_VALUE + + ACT_FNC_GET_HV_RELAY + 28 + 8 + 0 + + + + PEO_INIT + + ACT_FNC_CLL_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_CLL_TEARDOWN + 0 + 0 + 0 + + + + PEO_GET_TIME_LIGHT_HAS_BEEN_ON + + ACT_FNC_HW_SEC_LIGHTS_HAVE_BEEN_ON + 0 + 0 + 0 + + + + + 28 + Waterfall + PMP_VARIABLE_SPEED_PUMP + PMP_WATERFALL + yes + 50 + no + 1800 + no + 180 + 3450 + 600 + 18 + 100 + 50 + 0 + 100 + 18 + + PEO_VSP_SET_SPEED + + ACT_FNC_VSP_SET_SPEED + 59 + 0 + 0 + + + + PEO_INIT + + ACT_FNC_PUMP_STARTUP + 0 + 0 + 0 + + + + PEO_TEAR_DOWN + + ACT_FNC_PUMP_TEARDOWN + 0 + 0 + 0 + + + + + + + + 1 + 2 + 21 + 164 + 100 + 1 + 0 + 9 + 0 + 21 + 127 + 1 + + + 1 + 2 + 22 + 164 + 50 + 1 + 0 + 21 + 0 + 9 + 127 + 1 + + + + + 15 + 1 + 14 + 0 + 268435455 + 1 + + + 16 + 2 + 2 + 1 + 268435440 + 1 + + + + + 14 + Default + 0 + + TurnOnOffForGroup + + 1 + 2 + 100 + 0 + + + + SetHeaterScheduleCmd + + 1 + 3 + 65 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + SetUITemporaryHeaterPriorityCmd + + 1 + 4 + -1 + -1 + -1 + -1 + + + + SetUITemporaryHeaterMaintainPriorityCmd + + 1 + 3 + 24 + 255 + 255 + 255 + 255 + + + + SetUITemporaryHeaterEnable + + 1 + 3 + 0 + + + + SetUITemporaryHeaterEnable + + 1 + 4 + 1 + + + + SetUISuperCHLORCmd + + 1 + 6 + 0 + + + + TurnOnOffForGroup + + 1 + 9 + 0 + 0 + + + + TurnOnOffForGroup + + 1 + 10 + 263168 + 0 + + + + + + + MP + MP + 1 + + + LVR1 + RELAY + 2 + + + LVR2 + RELAY + 3 + + + LVR3 + RELAY + 4 + + + LVR4 + RELAY + 5 + + + HVR1 + RELAY + 6 + + + HVR2 + RELAY + 7 + + + HVR3 + RELAY + 8 + + + HVR4 + RELAY + 9 + + + HVR5 + RELAY + 10 + + + HVR6 + RELAY + 11 + + + ACR1 + RELAY + 12 + + + ACR2 + RELAY + 13 + + + ACR3 + RELAY + 14 + + + ACR4 + RELAY + 15 + + + SNS1 + SENSOR + 16 + + + SNS2 + SENSOR + 17 + + + SNS3 + SENSOR + 18 + + + SNS4 + SENSOR + 19 + + + SNS5 + SENSOR + 20 + + + SNS6 + SENSOR + 21 + + + SNS7 + SENSOR + 22 + + + CHLR1 + CHLORINATOR + 23 + + + + + RB + RB + 24 + + + HVR1 + RELAY + 25 + + + HVR2 + RELAY + 26 + + + HVR3 + RELAY + 27 + + + HVR4 + RELAY + 28 + + + + + VSP + EPNS + 59 + + + + L.Chem SM + LCSM + 29 + + + + 3498611 +