-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathschedule_timers.py
37 lines (28 loc) · 1.1 KB
/
schedule_timers.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import json
import os
from typing import Dict, Any
from datetime import timedelta, datetime
from ui_terminal import *
import datetime
from devices import *
from enum import Enum
class Task:
def __init__(self, change_time, change_action, device):
self.change_time = change_time
self.change_action = Enum("Change action", [("turn on", 0), ("turn off", 1)])
self.device = device
class Scheduler(Task):
def __init__(self, change_time, change_action, device, tasks_list):
super().__init__(change_time, change_action, device)
self.tasks_list = tasks_list
def add_task(self, change_time, change_action, device):
self.tasks_list.append(Task(change_time, change_action, device))
def remove_task(self, index):
del self.tasks_list[index]
def show_tasks(self):
for task in self.tasks_list:
print(task.change_time, task.change_action, task.device)
def check_tasks(self, change_time, change_action, device):
for task in self.tasks_list:
if task.change_time < datetime.now():
change_action(device)