-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmonitor.py
executable file
·86 lines (60 loc) · 1.73 KB
/
monitor.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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#!/usr/bin/env python
import sqlite3
import os
import time
import glob
import readprobe
# global variables
speriod=(15*60)-1
dbname='/var/www/templog.db'
isRunning = False
fanOnThreshold = 9999
fanOffThreshold = 0
timeToDisplay = 1
# store the temperature in the database
def log_temperature(temp):
conn=sqlite3.connect(dbname)
curs=conn.cursor()
curs.execute("INSERT INTO temps values(datetime('now','localtime'), (?))", (temp,))
# commit the changes
conn.commit()
conn.close()
# display the contents of the database
def display_data():
conn=sqlite3.connect(dbname)
curs=conn.cursor()
for row in curs.execute("SELECT * FROM temps"):
print str(row[0])+" "+str(row[1])
conn.close()
def get_settings():
conn=sqlite3.connect(dbname)
curs=conn.cursor()
curs.execute("SELECT * FROM settings")
settings = curs.fetchone()
global isRunning
global fanOnThreshold
global fanOffThreshold
global timeToDisplay
isRunning = bool(settings[0])
fanOnThreshold = float(settings[1])
fanOffThreshold = float(settings[2])
timeToDisplay = int(settings[3])
conn.close()
return
def main():
# get the temperature from the device file
temperature = readprobe.printReading()
print temperature
# Store the temperature in the database
log_temperature(temperature)
display_data()
get_settings()
if(isRunning):
if temperature >= fanOnThreshold and temperature <= fanOffThreshold:
os.system('python /var/www/html/cgi-bin/fan.py on')
else:
os.system('python /var/www/html/cgi-bin/fan.py off')
else:
os.system('python /var/www/html/cgi-bin/fan.py off')
if __name__=="__main__":
main()