-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexample_schedule.py
executable file
·65 lines (57 loc) · 1.93 KB
/
example_schedule.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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python3
"""
Serial relay example with schedule
Assuming:
* exterior lights are on channel 1
* vent fan is on channel 2
* sprinkler_one is on channel 3
* router is on channel 4
These are very simple and silly. More logic or process could be used.
"""
import sys
import time
from relay import RelayController
try:
sys.path.insert(3, 'schedule-1.2.2-py3-none-any.whl')
import schedule # pylint: disable=import-error,wrong-import-position
except ImportError:
import schedule
sys.dont_write_bytecode = True
def exterior_lights(operation):
"""Manage exterior lights"""
myrelay = RelayController()
print("Manage exterior lights. Operation: " + operation)
myrelay.channel_operation(1, operation)
def vent_fan(delay):
"""Manage vent fan"""
myrelay = RelayController()
print("Manage vent fan")
myrelay.channel_operation(2, 'on')
time.sleep(int(delay))
myrelay.channel_operation(2, 'off')
def sprinkler_one(operation):
"""Control the sprinkler"""
myrelay = RelayController()
print("Manage sprinkler_one")
myrelay.channel_operation(3, operation)
def reboot_router(delay=10):
"""reboot the router"""
myrelay = RelayController()
print("Reboot the router with a delay")
myrelay.channel_operation(4, 'off')
time.sleep(delay)
myrelay.channel_operation(4, 'on')
if __name__ == '__main__':
schedule.every().hour.do(vent_fan, 300)
schedule.every().day.at("23:40").do(reboot_router, delay=11)
schedule.every().day.at("20:30").do(exterior_lights, 'on')
schedule.every().day.at("06:30").do(exterior_lights, 'off')
schedule.every().day.at("05:15").do(sprinkler_one, 'on')
schedule.every().day.at("05:20").do(sprinkler_one, 'off')
try:
print("Use control + c to exit\n\n")
while True:
schedule.run_pending()
time.sleep(1)
except KeyboardInterrupt:
print("\n\nThanks for playing with relays and schedule")