From b98f192efc254990dd1d5ed6fe56ed4fd6143120 Mon Sep 17 00:00:00 2001 From: Matthew Frost <m.frost@mattronix.nl> Date: Sun, 19 Nov 2023 01:33:11 +0100 Subject: [PATCH] state --- app/views.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/app/views.py b/app/views.py index 12fd94b..e2f8a6f 100644 --- a/app/views.py +++ b/app/views.py @@ -50,6 +50,7 @@ def powerbar_control(powerbar, outlet, action): tn = telnetlib.Telnet(powerbars[powerbar]['host'], powerbars[powerbar]['port']) tn.write(f"on {outlet}\r\n".encode('ascii')) tn.close() + powerbars[powerbar]['outlets'][outlet]['state'] = 'on' print(f"Turned on powerbar {powerbar} outlet {outlet}") except Exception as e: print(f"Telnet error: {e}") @@ -61,6 +62,7 @@ def powerbar_control(powerbar, outlet, action): tn = telnetlib.Telnet(powerbars[powerbar]['host'], powerbars[powerbar]['port']) tn.write(f"off {outlet}\r\n".encode('ascii')) tn.close() + powerbars[powerbar]['outlets'][outlet]['state'] = 'off' print(f"Turned off powerbar {powerbar} outlet {outlet}") except Exception as e: print(f"Telnet error: {e}") @@ -68,3 +70,19 @@ def powerbar_control(powerbar, outlet, action): return "200" + +@routes.route('/powerbar_state/<string:powerbar>/<int:outlet>') +def powerbar_state(powerbar, outlet): + print(f"powerbar: {powerbar}") + print(f"outlet: {outlet}") + + if not vaild_power_bar(powerbar): + print("Invalid powerbar") + abort(404) + + if not vaild_outlet(powerbar, outlet): + print("Invalid outlet") + abort(404) + + state = powerbars[powerbar]['outlets'][outlet].get('state', 'unknown') + return state