diff --git a/luxtronik/calculations.py b/luxtronik/calculations.py index 17adf7e..3be5612 100755 --- a/luxtronik/calculations.py +++ b/luxtronik/calculations.py @@ -297,16 +297,22 @@ def parse(self, raw_data): """Parse raw calculations data.""" for index, data in enumerate(raw_data): calculation = self.calculations.get(index, False) + # index is not version info (index 81 up to 91), proceed normally if calculation is not False and index not in range(81, 91): calculation.value = calculation.from_heatpump(data) continue + # index is version info, parse entire range from 81 up to 91 as version string if calculation is not False and index in range(81, 91): calculation.value = calculation.from_heatpump( raw_data[index : index + 9] ) continue + # index is outside the known range, create it as unknown if calculation is False and index not in range(81, 91): - LOGGER.warning("Calculation '%d' not in list of calculationss", index) + #LOGGER.warning("Calculation '%d' not in list of calculationss", index) + calculation = Unknown(f"Unknown_Calculation_{index}") + calculation.value = calculation.from_heatpump(data) + self.calculations[index] = calculation def _lookup(self, target): """Lookup calculation by either id or name.""" diff --git a/luxtronik/parameters.py b/luxtronik/parameters.py index a29e265..1b120e2 100755 --- a/luxtronik/parameters.py +++ b/luxtronik/parameters.py @@ -1162,7 +1162,10 @@ def parse(self, raw_data): if parameter is not False: parameter.value = parameter.from_heatpump(data) else: - LOGGER.warning("Parameter '%d' not in list of parameters", index) + #LOGGER.warning("Parameter '%d' not in list of parameters", index) + parameter = Unknown(f"Unknown_Parameter_{index}") + parameter.value = parameter.from_heatpump(data) + self.parameters[index] = parameter def _lookup(self, target, with_index=False): """Lookup parameter by either id or name.""" diff --git a/luxtronik/visibilities.py b/luxtronik/visibilities.py index 03369a2..cc85b6e 100755 --- a/luxtronik/visibilities.py +++ b/luxtronik/visibilities.py @@ -374,7 +374,10 @@ def parse(self, raw_data): if visibility is not False: visibility.value = visibility.from_heatpump(data) else: - LOGGER.warning("Visibility '%d' not in list of visibilities", index) + #LOGGER.warning("Visibility '%d' not in list of visibilities", index) + visibility = Unknown(f"Unknown_Parameter_{index}") + visibility.value = visibility.from_heatpump(data) + self.visibilities[index] = visibility def _lookup(self, target): """Lookup visibility by either id or name.""" diff --git a/setup.py b/setup.py index 1dbf307..255996e 100755 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="luxtronik", - version="0.3.13", + version="0.3.14", author="Bouni", author_email="bouni@owee.de", description="A luxtronik heatpump controller interface",