/
watering_system.py
44 lines (34 loc) · 949 Bytes
/
watering_system.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
DEBUG = True
clock = None
datastore = None
device = None
import logging, os
logging.basicConfig(
level=logging.DEBUG,
filename='log.txt',
format='%(asctime)s %(message)s'
)
log = logging.getLogger(os.path.basename(__file__)).debug
log('starting...')
#wraps the system clock
from clock import Clock
clock = Clock(log)
#data storage / retrieval layer
from datastore_sqlite import DatastoreSqlite
datastore = DatastoreSqlite(log)
#for debugging seperately from the raspberry pi
if DEBUG:
from device_stub import DeviceStub
device = DeviceStub(log)
else:
from device_rpi import DeviceRpi
device = DeviceRpi(log)
#put it all together
from orchestrator import Orchestrator
orchestrator = Orchestrator(log, clock, device, datastore)
from interval_worker import IntervalWorker
worker = IntervalWorker(log, orchestrator.update, 15)
worker.start()
#start up the flask api
import api
api.start(log, orchestrator)