Remove switch toggle option

Toggling works for turning the switch off, but doesn't seem to work for
turning it back on.
This commit is contained in:
Correl Roush 2024-11-12 15:35:42 -05:00
parent e224438cf3
commit f72740d89a

View file

@ -10,8 +10,8 @@ import yarl
class SwitchStatus(str, enum.Enum): class SwitchStatus(str, enum.Enum):
ON = "ON" on = "on"
OFF = "OFF" off = "off"
@dataclasses.dataclass @dataclasses.dataclass
@ -38,7 +38,7 @@ class Switch:
f"SW{outlet}.y": 1, f"SW{outlet}.y": 1,
} }
if from_state: if from_state:
params[f"STATUS{outlet}"] = f"{from_state.value:3s}" params[f"STATUS{outlet}"] = f"{from_state.value.upper():3s}"
logging.info("Switching outlet: %s", params) logging.info("Switching outlet: %s", params)
response = requests.post( response = requests.post(
@ -50,10 +50,10 @@ class Switch:
print(response) print(response)
def switch_on(self, switch_id: int, outlet: int) -> None: def switch_on(self, switch_id: int, outlet: int) -> None:
return self.switch(switch_id, outlet, from_state=SwitchStatus.OFF) return self.switch(switch_id, outlet, from_state=SwitchStatus.off)
def switch_off(self, switch_id: int, outlet: int) -> None: def switch_off(self, switch_id: int, outlet: int) -> None:
return self.switch(switch_id, outlet, from_state=SwitchStatus.ON) return self.switch(switch_id, outlet, from_state=SwitchStatus.on)
app = typer.Typer() app = typer.Typer()
@ -62,29 +62,19 @@ SwitchIdArgument = typing.Annotated[int, typer.Argument(min=1, max=16)]
OutletArgument = typing.Annotated[int, typer.Argument(min=1, max=8)] OutletArgument = typing.Annotated[int, typer.Argument(min=1, max=8)]
class SwitchAction(str, enum.Enum):
on = "on"
off = "off"
toggle = "toggle"
@app.command() @app.command()
def switch( def switch(
context: typer.Context, context: typer.Context,
switch_id: SwitchIdArgument, switch_id: SwitchIdArgument,
outlet: OutletArgument, outlet: OutletArgument,
action: typing.Annotated[ action: typing.Annotated[SwitchStatus, typer.Argument(case_sensitive=False)],
SwitchAction, typer.Argument(case_sensitive=False)
] = SwitchAction.toggle,
) -> None: ) -> None:
switch: Switch = context.obj switch: Switch = context.obj
match action: match action:
case SwitchAction.on: case SwitchStatus.on:
switch.switch_on(switch_id, outlet) switch.switch_on(switch_id, outlet)
case SwitchAction.off: case SwitchStatus.off:
switch.switch_off(switch_id, outlet) switch.switch_off(switch_id, outlet)
case SwitchAction.toggle:
switch.switch(switch_id, outlet)
@app.callback() @app.callback()