expose ancillary parameter in settings

This commit is contained in:
Andre Basche 2023-04-16 03:29:28 +02:00
parent 5b91747ec1
commit 8372c75e30
3 changed files with 10 additions and 8 deletions

View file

@ -175,7 +175,9 @@ class HonAppliance:
def parameters(self): def parameters(self):
result = {} result = {}
for name, command in self._commands.items(): for name, command in self._commands.items():
for key, parameter in command.parameters.items(): for key, parameter in (
command.parameters | command.ancillary_parameters
).items():
result.setdefault(name, {})[key] = parameter.value result.setdefault(name, {})[key] = parameter.value
return result return result

View file

@ -58,11 +58,8 @@ class HonCommand:
return self._parameters return self._parameters
@property @property
def ancillary_parameters(self) -> Dict[str, str | float]: def ancillary_parameters(self) -> Dict[str, HonParameter]:
return { return self._ancillary_parameters
key: parameter.value
for key, parameter in self._ancillary_parameters.items()
}
async def send(self) -> bool: async def send(self) -> bool:
parameters = { parameters = {
@ -90,7 +87,9 @@ class HonCommand:
if command is None: if command is None:
command = self command = self
keys = [] keys = []
for key, parameter in command._parameters.items(): for key, parameter in (
command._parameters | command._ancillary_parameters
).items():
if isinstance(parameter, HonParameterFixed): if isinstance(parameter, HonParameterFixed):
continue continue
if key not in keys: if key not in keys:
@ -115,4 +114,5 @@ class HonCommand:
s: param s: param
for s in self.setting_keys for s in self.setting_keys
if (param := self._parameters.get(s)) is not None if (param := self._parameters.get(s)) is not None
or (param := self._ancillary_parameters.get(s)) is not None
} }

View file

@ -49,7 +49,7 @@ def create_command(commands, concat=False):
for name, command in commands.items(): for name, command in commands.items():
if not concat: if not concat:
result[name] = {} result[name] = {}
for parameter, data in command.parameters.items(): for parameter, data in command.settings.items():
if data.typology == "enum": if data.typology == "enum":
value = data.values value = data.values
elif data.typology == "range": elif data.typology == "range":