Files
old-tfm/controller/drivers/onewire/__init__.py
Amir Smajevic 2f86df4343 - added boundaries while reading w1 thermo sensor (-30 to +60 C)
- added (commented out) log entries - if needed uncomment them!
2016-12-25 11:08:48 +01:00

51 lines
2.2 KiB
Python

import re
import datetime
import time
def read_one_thermo(filename):
try:
NO_OF_DECIMALS = 3
for x in range(0, 3):
textfile = open(filename, 'r')
filetext = textfile.read()
textfile.close()
if 'YES' in filetext:
matches = re.findall("t=(\-?)(\d+)", filetext)
sign = -1 if matches[0][0] == '-' else 1
whole_reading = matches[0][1]
first_part = matches[0][1][0:-NO_OF_DECIMALS]
second_part = matches[0][1][-NO_OF_DECIMALS:]
first_part = '0' if first_part == '' else first_part
# with open("/mnt/zoblakdata/w1_sensor_log_sent","a") as log:
# log.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' | filename: ' + filename + ' | reading: ' + str(x+1) + '\n' )
# log.write(filetext)
# log.write("--------\n")
result = (int(first_part) + (int(second_part) / (10.0 ** NO_OF_DECIMALS) )) * sign
if result >= -30.0 and result <= 60.0:
return result
# if x == 2:
# with open("/mnt/zoblakdata/w1_sensor_log_probable_exception","a") as log2:
# log2.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' | filename: ' + filename + ' | reading: ' + str(x+1) + '\n' )
# log2.write(filetext)
# log2.write("--------\n")
time.sleep(5)
print 'error'
print e
return -101.0
except Exception as e:
# with open("/mnt/zoblakdata/w1_sensor_log_exception","a") as log3:
# log3.write(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') + ' - exception!\n')
# log3.write("--------\n")
print 'errror'
print e
return -100.0
def read_many_thermo(filenames):
result = []
for filename in list(filenames):
if filename is None:
continue
result.append(read_one_thermo(filename))
return result