Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Getting temperatures from thermometers
- debug("Getting temperatures")
- try:
- terms = ["28-001414cf69ff","28-001414baa9ff","28-0014154b59ff","28-0014153bb1ff"]
- data = temps[:]
- for termid in range(4):
- term = terms[termid]
- for index in range(10):
- debug("Trying to get temperature from "+term+" ("+str(index-1)+" attempt)");
- #Be sure that thermometer exists
- if os.path.exists("/sys/bus/w1/devices/"+term+"/w1_slave"):
- #Read data from thermometer
- debug("Reading temperature from "+term);
- f = open("/sys/bus/w1/devices/"+term+"/w1_slave")
- lines = f.readlines()
- f.close()
- #Parse it to readable format
- debug("Parsing temperature from "+term);
- index = lines[0].index("crc=")
- if lines[0][index:].split(" ")[1].split("\n")[0] == "YES":
- #CRC is correct, read temp
- tmp = int(lines[1][lines[1].index("t=")+2:lines[1].index("\n")])/1000.0
- if tmp > 35.0 or tmp < 0:
- error("Failed to read temp, value out of range ("+str(tmp)+"C).")
- time.sleep(3)
- else:
- debug("Got temperature from "+term+"! ("+str(tmp)+"C)");
- data[termid] = tmp
- break
- else:
- error("Failed to read temp, checksum is not valid")
- time.sleep(3)
- else:
- error("Thermometer "+term+" doesn't exist!")
- time.sleep(3)
- if(len(data) < 4):
- error("Failed to read temp from all thermometers")
- temps = data[:]
- except Exception, e:
- error("Exception while updating temps - "+str(e))
Advertisement
Add Comment
Please, Sign In to add comment