batch commands
All checks were successful
Deploy powerbar.ti Frontend Portal / Deploy-Tinance2-Frontend-Portal-Production (push) Successful in 10s
All checks were successful
Deploy powerbar.ti Frontend Portal / Deploy-Tinance2-Frontend-Portal-Production (push) Successful in 10s
This commit is contained in:
parent
901444fce7
commit
c8cee10cfc
1 changed files with 53 additions and 19 deletions
72
app/jobs.py
72
app/jobs.py
|
@ -1,10 +1,11 @@
|
||||||
from flask_apscheduler import APScheduler
|
from flask_apscheduler import APScheduler
|
||||||
from app.settings import powerbars
|
from app.settings import powerbars
|
||||||
from app.utils import run_telnet_command
|
from app.utils import run_telnet_command
|
||||||
|
import time
|
||||||
|
|
||||||
scheduler = APScheduler()
|
scheduler = APScheduler()
|
||||||
|
|
||||||
@scheduler.task('interval', id='do_periodic_serial_job', seconds=3, max_instances=3)
|
@scheduler.task('interval', id='do_periodic_serial_job', seconds=3, max_instances=1)
|
||||||
def periodic_serial_job():
|
def periodic_serial_job():
|
||||||
print("Running Sync Job")
|
print("Running Sync Job")
|
||||||
for powerbar in powerbars:
|
for powerbar in powerbars:
|
||||||
|
@ -13,23 +14,56 @@ def periodic_serial_job():
|
||||||
off_command = "Off "
|
off_command = "Off "
|
||||||
|
|
||||||
print(f"Checking powerbar state {powerbar}")
|
print(f"Checking powerbar state {powerbar}")
|
||||||
for outlet in powerbars[powerbar]['outlets']:
|
outlets = powerbars[powerbar]['outlets']
|
||||||
|
|
||||||
|
on_list = []
|
||||||
|
off_list = []
|
||||||
|
|
||||||
|
counter_on = 0
|
||||||
|
counter_off = 0
|
||||||
|
max = 6
|
||||||
|
for outlet in outlets:
|
||||||
|
|
||||||
|
outlet_id = outlet
|
||||||
outlet_status = powerbars[powerbar]['outlets'][outlet].get('state', 'unknown')
|
outlet_status = powerbars[powerbar]['outlets'][outlet].get('state', 'unknown')
|
||||||
|
|
||||||
if outlet_status != "unknown":
|
|
||||||
if outlet_status == "on":
|
|
||||||
on_command += f"{outlet},"
|
|
||||||
|
|
||||||
if outlet_status == "off":
|
|
||||||
off_command += f"{outlet},"
|
|
||||||
|
|
||||||
print(f"Turning on outlets: {on_command.rstrip(',')}")
|
|
||||||
|
|
||||||
if on_command != "On ":
|
|
||||||
print("Running On command")
|
|
||||||
run_telnet_command(powerbar, on_command.rstrip(','))
|
|
||||||
|
|
||||||
print(f"Turning off outlets: {off_command.rstrip(',')}")
|
if outlet_status == 'on':
|
||||||
if off_command != "Off ":
|
on_list.append(outlet)
|
||||||
print("Running Off command")
|
|
||||||
run_telnet_command(powerbar, off_command.rstrip(','))
|
if outlet_status == 'off':
|
||||||
|
off_list.append(outlet)
|
||||||
|
|
||||||
|
print(f"on_list: {on_list}")
|
||||||
|
print(f"off_list: {off_list}")
|
||||||
|
|
||||||
|
n = 5 # Size of each sublist
|
||||||
|
|
||||||
|
# Using list comprehension and slicing
|
||||||
|
sublist_on = [on_list[i:i + n] for i in range(0, len(on_list), n)]
|
||||||
|
sublist_off = [off_list[i:i + n] for i in range(0, len(off_list), n)]
|
||||||
|
print(f"sublist_on: {sublist_on}")
|
||||||
|
print(f"sublist_off: {sublist_off}")
|
||||||
|
|
||||||
|
commands = []
|
||||||
|
|
||||||
|
for list in sublist_on:
|
||||||
|
on_command = "On "
|
||||||
|
for outlet in list:
|
||||||
|
on_command += f"{outlet},"
|
||||||
|
commands.append(on_command.rstrip(','))
|
||||||
|
|
||||||
|
for list in sublist_off:
|
||||||
|
off_command = "Off "
|
||||||
|
for outlet in list:
|
||||||
|
off_command += f"{outlet},"
|
||||||
|
commands.append(off_command.rstrip(','))
|
||||||
|
|
||||||
|
print(f"commands: {commands}")
|
||||||
|
|
||||||
|
|
||||||
|
for command in commands:
|
||||||
|
print(f"Running command: {command}")
|
||||||
|
run_telnet_command(powerbar, command)
|
||||||
|
time.sleep(0.1)
|
||||||
|
|
||||||
|
print("Sync Job Done")
|
Loading…
Reference in a new issue