Compare commits
	
		
			12 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 715d8a96fc | |||
| ec358034e1 | |||
| 6cdac99ce8 | |||
| 0c1670733f | |||
| 744094dc07 | |||
| bf2015fcb9 | |||
| bc7e8994c9 | |||
| 8ca40d7ad0 | |||
| 9a6a07fd46 | |||
| f1818bbc5d | |||
| 3d5c8405ea | |||
| e234ef3bbb | 
| @ -11,6 +11,7 @@ from pyhon.attributes import HonAttribute | |||||||
| from pyhon.command_loader import HonCommandLoader | from pyhon.command_loader import HonCommandLoader | ||||||
| from pyhon.commands import HonCommand | from pyhon.commands import HonCommand | ||||||
| from pyhon.parameter.base import HonParameter | from pyhon.parameter.base import HonParameter | ||||||
|  | from pyhon.parameter.enum import HonParameterEnum | ||||||
| from pyhon.parameter.range import HonParameterRange | from pyhon.parameter.range import HonParameterRange | ||||||
| from pyhon.typedefs import Parameter | from pyhon.typedefs import Parameter | ||||||
|  |  | ||||||
| @ -109,7 +110,7 @@ class HonAppliance: | |||||||
|     @property |     @property | ||||||
|     def nick_name(self) -> str: |     def nick_name(self) -> str: | ||||||
|         result = self._check_name_zone("nickName") |         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 self.model_name | ||||||
|         return result |         return result | ||||||
|  |  | ||||||
| @ -252,7 +253,9 @@ class HonAppliance: | |||||||
|         if not (command := self.commands.get(command_name)): |         if not (command := self.commands.get(command_name)): | ||||||
|             return |             return | ||||||
|         for key in command.setting_keys: |         for key in command.setting_keys: | ||||||
|             if (new := self.attributes.get("parameters", {}).get(key)) is None: |             if ( | ||||||
|  |                 new := self.attributes.get("parameters", {}).get(key) | ||||||
|  |             ) is None or new.value == "": | ||||||
|                 continue |                 continue | ||||||
|             setting = command.settings[key] |             setting = command.settings[key] | ||||||
|             try: |             try: | ||||||
| @ -283,4 +286,6 @@ class HonAppliance: | |||||||
|                         parameter.max = int(base_value.value) |                         parameter.max = int(base_value.value) | ||||||
|                         parameter.min = int(base_value.value) |                         parameter.min = int(base_value.value) | ||||||
|                         parameter.step = 1 |                         parameter.step = 1 | ||||||
|  |                     elif isinstance(parameter, HonParameterEnum): | ||||||
|  |                         parameter.values = base_value.values | ||||||
|                     parameter.value = base_value.value |                     parameter.value = base_value.value | ||||||
|  | |||||||
| @ -14,11 +14,4 @@ class Appliance(ApplianceBase): | |||||||
|             data["parameters"]["remainingTimeMM"].value = "0" |             data["parameters"]["remainingTimeMM"].value = "0" | ||||||
|  |  | ||||||
|         data["active"] = data["parameters"]["onOffStatus"] == "1" |         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 |         return data | ||||||
|  | |||||||
| @ -187,18 +187,19 @@ class HonCommandLoader: | |||||||
|             command = favourite.get("command", {}) |             command = favourite.get("command", {}) | ||||||
|             command_name = command.get("commandName", "") |             command_name = command.get("commandName", "") | ||||||
|             program_name = self._clean_name(command.get("programName", "")) |             program_name = self._clean_name(command.get("programName", "")) | ||||||
|             base: HonCommand = copy( |             if not (base := self.commands[command_name].categories.get(program_name)): | ||||||
|                 self.commands[command_name].categories[program_name] |                 continue | ||||||
|             ) |             base_command: HonCommand = copy(base) | ||||||
|             for data in command.values(): |             for data in command.values(): | ||||||
|                 if isinstance(data, str): |                 if isinstance(data, str): | ||||||
|                     continue |                     continue | ||||||
|                 for key, value in data.items(): |                 for key, value in data.items(): | ||||||
|                     if parameter := base.parameters.get(key): |                     if parameter := base_command.parameters.get(key): | ||||||
|                         with suppress(ValueError): |                         with suppress(ValueError): | ||||||
|                             parameter.value = value |                             parameter.value = value | ||||||
|             extra_param = HonParameterFixed("favourite", {"fixedValue": "1"}, "custom") |             extra_param = HonParameterFixed("favourite", {"fixedValue": "1"}, "custom") | ||||||
|             base.parameters.update(favourite=extra_param) |             base_command.parameters.update(favourite=extra_param) | ||||||
|             if isinstance(program := base.parameters["program"], HonParameterProgram): |             program = base_command.parameters["program"] | ||||||
|  |             if isinstance(program, HonParameterProgram): | ||||||
|                 program.set_value(name) |                 program.set_value(name) | ||||||
|             self.commands[command_name].categories[name] = base |             self.commands[command_name].categories[name] = base_command | ||||||
|  | |||||||
| @ -267,8 +267,13 @@ class TestAPI(HonAPI): | |||||||
|             _LOGGER.warning("Can't open %s", str(path)) |             _LOGGER.warning("Can't open %s", str(path)) | ||||||
|             return {} |             return {} | ||||||
|         with open(path, "r", encoding="utf-8") as json_file: |         with open(path, "r", encoding="utf-8") as json_file: | ||||||
|             data: Dict[str, Any] = json.loads(json_file.read()) |             text = json_file.read() | ||||||
|         return data |         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]]: |     async def load_appliances(self) -> List[Dict[str, Any]]: | ||||||
|         result = [] |         result = [] | ||||||
|  | |||||||
| @ -1,2 +1,3 @@ | |||||||
| aiohttp==3.8.4 | aiohttp~=3.8.5 | ||||||
| yarl==1.8.2 | yarl~=1.9.2 | ||||||
|  | typing-extensions~=4.7.1 | ||||||
|  | |||||||
							
								
								
									
										4
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								setup.py
									
									
									
									
									
								
							| @ -7,7 +7,7 @@ with open("README.md", "r") as f: | |||||||
|  |  | ||||||
| setup( | setup( | ||||||
|     name="pyhOn", |     name="pyhOn", | ||||||
|     version="0.14.7", |     version="0.14.12", | ||||||
|     author="Andre Basche", |     author="Andre Basche", | ||||||
|     description="Control hOn devices with python", |     description="Control hOn devices with python", | ||||||
|     long_description=long_description, |     long_description=long_description, | ||||||
| @ -21,7 +21,7 @@ setup( | |||||||
|     packages=find_packages(), |     packages=find_packages(), | ||||||
|     include_package_data=True, |     include_package_data=True, | ||||||
|     python_requires=">=3.10", |     python_requires=">=3.10", | ||||||
|     install_requires=["aiohttp"], |     install_requires=["aiohttp~=3.8.5", "typing-extensions~=4.7.1", "yarl~=1.9.2"], | ||||||
|     classifiers=[ |     classifiers=[ | ||||||
|         "Development Status :: 4 - Beta", |         "Development Status :: 4 - Beta", | ||||||
|         "Environment :: Console", |         "Environment :: Console", | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	