#!/usr/bin/python3

# Display Temperatures
# Willem A Schreuder
# 12/20/2015

# Import modules
import time
import sys

def Temp():
   "Get temperature from 1wire sensor"
   #  Snarf list of slaves
   fd = open("/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves")
   text = fd.read()
   fd.close()
   slaves = text.split("\n")
   slaves.sort()

   #  Snarf text
   temps = {}
   for slave in slaves:
      if slave=="": continue
      fd = open("/sys/bus/w1/devices/"+slave+"/w1_slave")
      text = fd.read()
      fd.close()

      #  Split lines
      lines = text.split("\n")
      words = lines[1].split(" ")

      #  Get temperature
      C = float(words[9][2:])/1000
      F = 9*C/5+32
#     temps.append("%.1fF" % F)
      temps[slave] = "%.1fF" % F
   return temps

def DateTime():
   "Return date and time strings"
   lt = time.localtime()
   d = "%4d-%.2d-%.2d" % lt[0:3]
   t = "%.2d:%.2d:%.2d" % lt[3:6]
   return (d,t);

while True:
   (d,t) = DateTime();
   temps = Temp()
   print(d,t,temps,end='\r')
   sys.stdout.flush()
   #  Pause
   time.sleep(0.1)
