|
1 | | -import sqlite3, sys, datetime |
| 1 | +import sqlite3, time, datetime |
2 | 2 | import readSensor |
3 | 3 |
|
4 | 4 | #settings |
| 5 | +loggTime = 5 # nr of minutes between logging to db |
5 | 6 | sensorLookUp = {"10 DE C6 35 1 8 0 86" : "outside", \ |
6 | 7 | "10 C4 EB 35 1 8 0 6" : "test"} |
7 | 8 |
|
8 | 9 | def logging(): |
9 | 10 | date = datetime.datetime.now().strftime("%Y-%m-%d") |
10 | 11 | time = datetime.datetime.now().strftime("%H:%M") |
11 | 12 | sensorReadings = {} |
| 13 | + readings = 0 |
12 | 14 | while 1: |
13 | 15 | try: |
14 | | - temp, rom = getTemp.getTemp() |
| 16 | + value, id, sensor = readSensor.readSensor() |
15 | 17 | except: |
16 | | - print "not able to get temp at", date, time |
17 | | - sys.exit() |
18 | | - if rom != "null": |
19 | | - sensorReadings[sensorLookUp[rom]] = temp |
20 | | - else: |
21 | | - break |
22 | | - |
| 18 | + print "not able to get sensor reading:", date, time |
| 19 | + return False # unsuccesfully logged |
| 20 | + |
| 21 | + try: |
| 22 | + #if sensor allready have been read then we read them all |
| 23 | + if sensorReadings.has_key(sensorLookUp[id]): |
| 24 | + break |
23 | 25 |
|
| 26 | + sensorReadings[sensorLookUp[id]] = (sensor, value) |
| 27 | + except: |
| 28 | + print "ID:", id, "not found in sensorLookUp, please add" |
| 29 | + |
24 | 30 |
|
25 | | - conn = sqlite3.connect("/home/simon/tempLog/temp.db") |
| 31 | + conn = sqlite3.connect("/home/simon/logger/sensors.db") |
26 | 32 | c = conn.cursor() |
27 | | - for sensor in sensorReadings: |
28 | | - c.execute("insert into temp values(?, ?, ?, ?)",\ |
29 | | - [date, time, sensorReadings[sensor], sensor]) |
| 33 | + for name in sensorReadings: |
| 34 | + #date, time, value, sensor, name |
| 35 | + c.execute("insert into sensors values(?, ?, ?, ?, ?)",\ |
| 36 | + [date, time, sensorReadings[name][0], \ |
| 37 | + sensorReadings[name][1], name]) |
30 | 38 |
|
31 | 39 | conn.commit(); |
32 | 40 | c.close() |
| 41 | + print "Successfully written readings to db at:", date, time |
| 42 | + return True # succesfully logged |
| 43 | + |
| 44 | +def main(): |
| 45 | + lastLoged = 0 |
| 46 | + while 1: |
| 47 | + timetuple = datetime.datetime.now().timetuple() |
| 48 | + minutesToday = timetuple[3] * 60 + timetuple[4] |
| 49 | + #if its time to logg and not allready logged |
| 50 | + if minutesToday % loggTime == 0 and lastLoged != minutesToday: |
| 51 | + lastLoged = minutesToday |
| 52 | + logging() |
| 53 | + time.sleep(30) # sleep 30 seconds |
| 54 | + |
| 55 | + |
| 56 | +if __name__ == "__main__": |
| 57 | + main() |
0 commit comments