-
Notifications
You must be signed in to change notification settings - Fork 0
/
read-temps.py
53 lines (42 loc) · 1.48 KB
/
read-temps.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
import os
import RPi.GPIO as GPIO
import time
import json
import datetime
dsid = {}
dsid["solarlead"] = "011621375bee"
dsid["solarreturn"] = "80000026331f"
dsid["poolreturn"] = "02161de351ee"
# drok probe #1 - "00000b88396e"
# drok probe #2 - "00000b885c23"
# drok probe #3 - "00000b88b7d2"
# drok probe #4 - "00000b88e5c7"
while(1):
data = {}
data['sensor'] = []
for tmpds in dsid:
tmpdir = ('/sys/bus/w1/devices/28-' + dsid[tmpds])
tsnow = datetime.datetime.now()
if (os.path.isdir(tmpdir) == False):
print("\n\n************\nW1 dir for %s not found. Attempting to reset GPIO 17 power\n******************\n\n" % tmpdir)
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.output(17, GPIO.LOW)
time.sleep(3)
GPIO.output(17, GPIO.HIGH)
time.sleep(5)
try:
from w1thermsensor import W1ThermSensor
sensor = W1ThermSensor(W1ThermSensor.THERM_SENSOR_DS18B20, dsid[tmpds])
temp_f = sensor.get_temperature(W1ThermSensor.DEGREES_F)
print(dsid[tmpds] + "\t" + str(temp_f) + "\n")
except:
print("\n\nFailed to read temperature from %s" % dsid[tmpds], exc_info=True)
data['sensor'].append({
'dsid': dsid[tmpds],
'temp': temp_f,
'ts': str(tsnow.year) + '-' + str(tsnow.month) + '-' + str(tsnow.day) + ' ' + str(tsnow.hour) + ':' + str(tsnow.minute) + ':' + str(tsnow.second)
})
with open('/home/pi/PiPool/temps.json', 'w') as outfile:
json.dump(data, outfile)
time.sleep(13)