import serial
import csv
import sys
import time
import datetime
from time import sleep

ser = serial.Serial('com14', 115200)
       
def writeToLog():

    try:
        out_file = open('c:/Temp/Test1.csv', 'a')
        out_file.writelines(line_out)
        out_file.writelines(",")
        out_file.writelines(str(timeOfDay))        
        out_file.writelines ("\n\r")
        out_file.close()

    except:
        print "Unable to Update Log File"

wasOn = 'No'

while True:

    tod = datetime.datetime.now()
    timeOfDay = datetime.time(tod.hour, tod.minute, tod.second)

    ## read serial port and strip unwanted characters
    line_out = ser.readline()
    line_out = line_out.rstrip('\r\n')
    line_out = line_out.lstrip('[2] ')
           
    ## uncomment to write to log every 2 seconds
    ## writeToLog()
    
    ## write to log file only if furnace status has changed
    if line_out == '1':
        if wasOn == 'Yes':
            ## Loop1 - furnace is still On
            pass
        else:
            ## Loop2 - furnace just turned On
            writeToLog()
            wasOn = 'Yes'
    else:
        if wasOn == 'Yes':
            ## Loop3 - furnace just turned Off
            writeToLog()
            wasOn = 'No'
            
        else:
            ## Loop4 - furnace is still Off
            pass
        
    print line_out + " " + str(timeOfDay)

writeToLog() ## make sure log file is closed
ser.close() ## close serial port
