diff --git a/pyhon/appliance.py b/pyhon/appliance.py index 148d7d1..29e95f2 100644 --- a/pyhon/appliance.py +++ b/pyhon/appliance.py @@ -200,7 +200,7 @@ class HonAppliance: async def load_commands(self): raw = await self.api.load_commands(self) self._appliance_model = raw.pop("applianceModel") - raw.pop("dictionaryId") + raw.pop("dictionaryId", None) self._commands = self._get_commands(raw) await self._recover_last_command_states() @@ -256,18 +256,21 @@ class HonAppliance: return self._extra.data(result) return result - def diagnose(self, whitespace="\u200B \u200B "): + def diagnose(self, whitespace="\u200B \u200B ", command_only=False): data = { "attributes": self.attributes.copy(), "appliance": self.info, "additional_data": self._additional_data, } + if command_only: + data.pop("attributes") + data.pop("appliance") data |= {n: c.parameter_groups for n, c in self._commands.items()} extra = {n: c.data for n, c in self._commands.items() if c.data} if extra: data |= {"extra_command_data": extra} for sensible in ["PK", "SK", "serialNumber", "code", "coords"]: - data["appliance"].pop(sensible, None) + data.get("appliance", {}).pop(sensible, None) result = helper.pretty_print({"data": data}, whitespace=whitespace) result += helper.pretty_print( {"commands": helper.create_command(self.commands)}, diff --git a/pyhon/commands.py b/pyhon/commands.py index 62a0007..89158c1 100644 --- a/pyhon/commands.py +++ b/pyhon/commands.py @@ -103,7 +103,8 @@ class HonCommand: @category.setter def category(self, category: str) -> None: - self._appliance.commands[self._name] = self.categories[category] + if category in self.categories: + self._appliance.commands[self._name] = self.categories[category] @property def setting_keys(self) -> List[str]: diff --git a/pyhon/parameter/range.py b/pyhon/parameter/range.py index ca6fb1b..9c0eea2 100644 --- a/pyhon/parameter/range.py +++ b/pyhon/parameter/range.py @@ -32,6 +32,8 @@ class HonParameterRange(HonParameter): @property def step(self) -> float: + if not self._step: + return 1 return self._step @property diff --git a/setup.py b/setup.py index 068ef65..b72ffe3 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ with open("README.md", "r") as f: setup( name="pyhOn", - version="0.10.4", + version="0.10.5", author="Andre Basche", description="Control hOn devices with python", long_description=long_description,