rendered paste bodyimport timeowServer = '10.0.0.40'owPort = 4020def convert(n): try: return int(n) except ValueError: return float(n)def heatOn(): s = ownet.Sensor(sw_workshop, owServer, owPort) s.PIO_A = '1'def heatOff(): s = ownet.Sensor(sw_workshop, owServer, owPort) s.PIO_A = '0' def checkTemp(t): if t >= (setpoint + deadband): heatOff() elif t < (setpoint - deadband): heatOn()while True: readtime = strftime("%Y-%m-%d %H:%M:%S") for row in db().select(db.settings.ALL): deadband = convert(row.deadband) status = row.status setpoint = convert(row.setpoint) for row in db().select(db.devices.ALL): if row.alias == 'sw_workshop': sw_workshop = row.address elif row.alias == 'temp_workshop': zt_workshop = row.address elif row.alias == 'temp_outside': zt_oat = row.address s = ownet.Sensor(zt_workshop, owServer, owPort) ws_temp = s.temperature s = ownet.Sensor(zt_oat, owServer, owPort) oat_temp = s.temperature db.templog.insert(time=readtime, temp=ws_temp, setpoint=setpoint, oa_templog=oat_temp) print setpoint print readtime print ws_temp print oat_temp checkinTime = time.time() db(db.settings).update(checkin=checkinTime) checkTemp(ws_temp) db.commit() commandArg = "rrdtool update /home/steve/owfs/ws_templog.rrd N:%s" % ws_temp os.system(commandArg) commandArg = "rrdtool update /home/steve/owfs/ws_setpoint.rrd N:%s" % setpoint os.system(commandArg) commandArg = "rrdtool update /home/steve/owfs/oa_templog.rrd N:%s" % oat_temp os.system(commandArg) commandArg = 'rrdtool graph /home/steve/owfs/web/temperature.png DEF\:temperature=/home/steve/owfs/ws_templog.rrd\:temperature\:AVERAGE LINE1\:temperature#FF0000\:"Shop Temp" DEF\:setpoint=/home/steve/owfs/ws_setpoint.rrd\:setpoint\:LAST LINE1\:setpoint#009900\:"Setpoint" DEF\:outside=/home/steve/owfs/oa_templog.rrd\:outside\:LAST LINE1\:outside#0000CC\:"Outside Temp" --width="800" --height="300" --vertical-label="Degrees Celsius" VDEF\:current-temp=temperature,LAST COMMENT\:"\\n" GPRINT\:current-temp\:"Shop\: %8.2lf C" COMMENT\:"\\n" VDEF\:current-setpoint=setpoint,LAST GPRINT\:current-setpoint\:"Setpoint\: %8.2lf C" COMMENT\:"\\n" VDEF\:current-outside=outside,LAST GPRINT\:current-outside\:"Outside\: %8.2lf C"' os.system(commandArg) time.sleep(60)