Compare commits
	
		
			10 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0ddbdd0b4e | |||
| 241ee95d5c | |||
| c9d4461f8f | |||
| 318e60e91e | |||
| fde41ac456 | |||
| aeabbe64e2 | |||
| 7c99ffeaf7 | |||
| 2941b57d09 | |||
| f00ee03c0d | |||
| ec7355e341 | 
| @ -55,6 +55,8 @@ class HonConnection: | ||||
|                     appliances = (await resp.json())["payload"]["appliances"] | ||||
|                     for appliance in appliances: | ||||
|                         device = HonDevice(self, appliance) | ||||
|                         if device.mac_address is None: | ||||
|                             continue | ||||
|                         await asyncio.gather(*[ | ||||
|                             device.load_attributes(), | ||||
|                             device.load_commands(), | ||||
| @ -70,7 +72,7 @@ class HonConnection: | ||||
|             "applianceType": device.appliance_type, | ||||
|             "code": device.appliance["code"], | ||||
|             "applianceModelId": device.appliance_model_id, | ||||
|             "firmwareId": "41", | ||||
|             "firmwareId": device.appliance["eepromId"], | ||||
|             "macAddress": device.mac_address, | ||||
|             "fwVersion": device.appliance["fwVersion"], | ||||
|             "os": const.OS, | ||||
|  | ||||
| @ -67,5 +67,5 @@ class HonCommand: | ||||
|     @property | ||||
|     def settings(self): | ||||
|         """Parameters with typology enum and range""" | ||||
|         return {s: self._parameters[s] for s in self.setting_keys} | ||||
|         return {s: self._parameters.get(s) for s in self.setting_keys if self._parameters.get(s) is not None} | ||||
|  | ||||
|  | ||||
| @ -1,6 +1,7 @@ | ||||
| import importlib | ||||
|  | ||||
| from pyhon.commands import HonCommand | ||||
| from pyhon.parameter import HonParameterFixed | ||||
|  | ||||
|  | ||||
| class HonDevice: | ||||
| @ -93,7 +94,7 @@ class HonDevice: | ||||
|                 command.set_program(parameters.pop("program").split(".")[-1].lower()) | ||||
|                 command = self.commands[name] | ||||
|             for key, data in command.settings.items(): | ||||
|                 if parameters.get(key) is not None: | ||||
|                 if not isinstance(data, HonParameterFixed) and parameters.get(key) is not None: | ||||
|                     data.value = parameters.get(key) | ||||
|  | ||||
|     async def load_commands(self): | ||||
|  | ||||
| @ -30,7 +30,7 @@ class HonParameter: | ||||
| class HonParameterFixed(HonParameter): | ||||
|     def __init__(self, key, attributes): | ||||
|         super().__init__(key, attributes) | ||||
|         self._value = attributes["fixedValue"] | ||||
|         self._value = attributes.get("fixedValue", None) | ||||
|  | ||||
|     def __repr__(self): | ||||
|         return f"{self.__class__} (<{self.key}> fixed)" | ||||
| @ -75,6 +75,7 @@ class HonParameterRange(HonParameter): | ||||
|  | ||||
|     @value.setter | ||||
|     def value(self, value): | ||||
|         value = int(value) | ||||
|         if self._min <= value <= self._max and not value % self._step: | ||||
|             self._value = value | ||||
|         else: | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	