diff --git a/pyhon/appliance.py b/pyhon/appliance.py index a61a362..05b4b8d 100644 --- a/pyhon/appliance.py +++ b/pyhon/appliance.py @@ -11,6 +11,7 @@ from pyhon.attributes import HonAttribute from pyhon.command_loader import HonCommandLoader from pyhon.commands import HonCommand from pyhon.parameter.base import HonParameter +from pyhon.parameter.enum import HonParameterEnum from pyhon.parameter.range import HonParameterRange from pyhon.typedefs import Parameter @@ -109,7 +110,7 @@ class HonAppliance: @property def nick_name(self) -> str: result = self._check_name_zone("nickName") - if not result or re.findall("^[xX1\\s]+$", result): + if not result or re.findall("^[xX1\\s-]+$", result): return self.model_name return result @@ -283,4 +284,6 @@ class HonAppliance: parameter.max = int(base_value.value) parameter.min = int(base_value.value) parameter.step = 1 + elif isinstance(parameter, HonParameterEnum): + parameter.values = base_value.values parameter.value = base_value.value diff --git a/pyhon/appliances/ov.py b/pyhon/appliances/ov.py index f406ad4..77478cf 100644 --- a/pyhon/appliances/ov.py +++ b/pyhon/appliances/ov.py @@ -14,11 +14,4 @@ class Appliance(ApplianceBase): data["parameters"]["remainingTimeMM"].value = "0" data["active"] = data["parameters"]["onOffStatus"] == "1" - - if program := int(data["parameters"]["prCode"].value): - if (setting := self.parent.settings["startProgram.program"]) and isinstance( - setting, HonParameterProgram - ): - data["programName"] = setting.ids.get(program, "") - return data diff --git a/pyhon/connection/api.py b/pyhon/connection/api.py index a4a45f1..364bbb6 100644 --- a/pyhon/connection/api.py +++ b/pyhon/connection/api.py @@ -267,8 +267,13 @@ class TestAPI(HonAPI): _LOGGER.warning("Can't open %s", str(path)) return {} with open(path, "r", encoding="utf-8") as json_file: - data: Dict[str, Any] = json.loads(json_file.read()) - return data + text = json_file.read() + try: + data: Dict[str, Any] = json.loads(text) + return data + except json.decoder.JSONDecodeError as error: + _LOGGER.error("%s - %s", str(path), error) + return {} async def load_appliances(self) -> List[Dict[str, Any]]: result = [] diff --git a/requirements.txt b/requirements.txt index 9ba048c..5c21de6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ aiohttp==3.8.4 yarl==1.8.2 +typing-extensions==4.7.1 diff --git a/setup.py b/setup.py index aff5f75..0b5a130 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ with open("README.md", "r") as f: setup( name="pyhOn", - version="0.14.7", + version="0.14.9", author="Andre Basche", description="Control hOn devices with python", long_description=long_description, @@ -21,7 +21,7 @@ setup( packages=find_packages(), include_package_data=True, python_requires=">=3.10", - install_requires=["aiohttp"], + install_requires=["aiohttp==3.8.4", "typing-extensions==4.7.1"], classifiers=[ "Development Status :: 4 - Beta", "Environment :: Console",