forked from ct-Open-Source/ct-Raspi-Radiowecker
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathalarm.py
More file actions
34 lines (27 loc) · 1012 Bytes
/
alarm.py
File metadata and controls
34 lines (27 loc) · 1012 Bytes
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
from datetime import datetime, timedelta
import time
import threading
class Alarm(object):
enabled = False
alarm_active = False
old_time = 0
def __init__(self, alarmtime):
self.alarmtime = datetime.strptime(alarmtime, "%H:%M")
self.time = self.alarmtime
self.check_alarm_thread = threading.Thread(target=self.check_alarm)
self.check_alarm_thread.daemon = True
self.check_alarm_thread.start()
def check_alarm(self):
while True:
new_time = int(datetime.now().minute)
if new_time != self.old_time:
self.old_time = new_time
if self.alarmtime.hour == datetime.now().hour and self.alarmtime.minute == datetime.now().minute:
self.alarm_active = True
time.sleep(1)
def setAlarm(self):
self.alarmtime = self.time
def resetAlarm(self):
self.time = self.alarmtime
def changeAlarm(self, m):
self.time += timedelta(minutes=m)