def setFiles(): global config global localJsonFileName global localCsvFileName global wwwJsonFileName global wwwCsvFileName global lastDay global day # create directory for the data if it does not exist beerFileName = config['beerName'] dataPath = util.addSlash( util.addSlash(util.scriptPath()) + 'data/' + beerFileName) wwwDataPath = util.addSlash( util.addSlash(config['wwwPath']) + 'data/' + beerFileName) if not os.path.exists(dataPath): os.makedirs(dataPath) os.chmod(dataPath, 0775) # give group all permissions if not os.path.exists(wwwDataPath): os.makedirs(wwwDataPath) os.chmod(wwwDataPath, 0775) # give group all permissions # Keep track of day and make new data file for each day day = time.strftime("%Y-%m-%d") lastDay = day # define a JSON file to store the data jsonFileName = beerFileName + '-' + day #if a file for today already existed, add suffix if os.path.isfile(dataPath + jsonFileName + '.json'): i = 1 while os.path.isfile(dataPath + jsonFileName + '-' + str(i) + '.json'): i += 1 jsonFileName = jsonFileName + '-' + str(i) localJsonFileName = dataPath + jsonFileName + '.json' brewpiJson.newEmptyFile(localJsonFileName) # Define a location on the web server to copy the file to after it is written wwwJsonFileName = wwwDataPath + jsonFileName + '.json' # Define a CSV file to store the data as CSV (might be useful one day) localCsvFileName = (dataPath + beerFileName + '.csv') wwwCsvFileName = (wwwDataPath + beerFileName + '.csv') # create new empty json file brewpiJson.newEmptyFile(localJsonFileName)
def setFiles(): global config global localJsonFileName global localCsvFileName global wwwJsonFileName global wwwCsvFileName global lastDay global day # create directory for the data if it does not exist beerFileName = config['beerName'] dataPath = util.addSlash(util.addSlash(util.scriptPath()) + 'data/' + beerFileName) wwwDataPath = util.addSlash(util.addSlash(config['wwwPath']) + 'data/' + beerFileName) if not os.path.exists(dataPath): os.makedirs(dataPath) os.chmod(dataPath, 0775) # give group all permissions if not os.path.exists(wwwDataPath): os.makedirs(wwwDataPath) os.chmod(wwwDataPath, 0775) # give group all permissions # Keep track of day and make new data file for each day day = time.strftime("%Y-%m-%d") lastDay = day # define a JSON file to store the data jsonFileName = beerFileName + '-' + day #if a file for today already existed, add suffix if os.path.isfile(dataPath + jsonFileName + '.json'): i = 1 while os.path.isfile(dataPath + jsonFileName + '-' + str(i) + '.json'): i += 1 jsonFileName = jsonFileName + '-' + str(i) localJsonFileName = dataPath + jsonFileName + '.json' brewpiJson.newEmptyFile(localJsonFileName) # Define a location on the web server to copy the file to after it is written wwwJsonFileName = wwwDataPath + jsonFileName + '.json' # Define a CSV file to store the data as CSV (might be useful one day) localCsvFileName = (dataPath + beerFileName + '.csv') wwwCsvFileName = (wwwDataPath + beerFileName + '.csv') # create new empty json file brewpiJson.newEmptyFile(localJsonFileName)
def startBeer(beerName): global config global localJsonFileName global localCsvFileName global wwwJsonFileName global wwwCsvFileName global lastDay global day # create directory for the data if it does not exist dataPath = config['scriptPath'] + 'data/' + beerName + '/' wwwDataPath = config['wwwPath'] + 'data/' + beerName + '/' if not os.path.exists(dataPath): os.makedirs(dataPath) os.chmod(dataPath, 0775) # give group all permissions if not os.path.exists(wwwDataPath): os.makedirs(wwwDataPath) os.chmod(wwwDataPath, 0775) # sudgive group all permissions # Keep track of day and make new data tabe for each day # This limits data table size, which can grow very big otherwise day = time.strftime("%Y-%m-%d") lastDay = day # define a JSON file to store the data table jsonFileName = config['beerName'] + '-' + day #if a file for today already existed, add suffix if os.path.isfile(dataPath + jsonFileName + '.json'): i = 1 while(os.path.isfile( dataPath + jsonFileName + '-' + str(i) + '.json')): i = i + 1 jsonFileName = jsonFileName + '-' + str(i) localJsonFileName = dataPath + jsonFileName + '.json' brewpiJson.newEmptyFile(localJsonFileName) # Define a location on the webserver to copy the file to after it is written wwwJsonFileName = wwwDataPath + jsonFileName + '.json' # Define a CSV file to store the data as CSV (might be useful one day) localCsvFileName = (dataPath + config['beerName'] + '.csv') wwwCsvFileName = (wwwDataPath + config['beerName'] + '.csv') changeWwwSetting('beerName', beerName)
def startBeer(beerName): global config global localJsonFileName global localCsvFileName global wwwJsonFileName global wwwCsvFileName global lastDay global day # create directory for the data if it does not exist dataPath = util.addSlash(config["scriptPath"]) + "data/" + beerName + "/" wwwDataPath = util.addSlash(config["wwwPath"]) + "data/" + beerName + "/" if not os.path.exists(dataPath): os.makedirs(dataPath) os.chmod(dataPath, 0775) # give group all permissions if not os.path.exists(wwwDataPath): os.makedirs(wwwDataPath) os.chmod(wwwDataPath, 0775) # sudgive group all permissions # Keep track of day and make new data tabe for each day # This limits data table size, which can grow very big otherwise day = time.strftime("%Y-%m-%d") lastDay = day # define a JSON file to store the data table jsonFileName = config["beerName"] + "-" + day # if a file for today already existed, add suffix if os.path.isfile(dataPath + jsonFileName + ".json"): i = 1 while os.path.isfile(dataPath + jsonFileName + "-" + str(i) + ".json"): i += 1 jsonFileName = jsonFileName + "-" + str(i) localJsonFileName = dataPath + jsonFileName + ".json" brewpiJson.newEmptyFile(localJsonFileName) # Define a location on the web server to copy the file to after it is written wwwJsonFileName = wwwDataPath + jsonFileName + ".json" # Define a CSV file to store the data as CSV (might be useful one day) localCsvFileName = dataPath + config["beerName"] + ".csv" wwwCsvFileName = wwwDataPath + config["beerName"] + ".csv" changeWwwSetting("beerName", beerName)
lcdText = "Script starting up" startBeer(config['beerName']) while(run): # Check wheter it is a new day lastDay = day day = time.strftime("%Y-%m-%d") if lastDay != day: print >> sys.stderr, (time.strftime("%b %d %Y %H:%M:%S ") + "Notification: New day, dropping data table and creating new JSON file.") jsonFileName = config['beerName'] + '/' + config['beerName'] + '-' + day localJsonFileName = config['scriptPath'] + 'data/' + jsonFileName + '.json' wwwJsonFileName = config['wwwPath'] + 'data/' + jsonFileName + '.json' # create new empty json file brewpiJson.newEmptyFile(localJsonFileName) # Wait for incoming socket connections. # When nothing is received, socket.timeout will be raised after # serialCheckInterval seconds. Serial receive will be done then. # When messages are expected on serial, the timeout is raised 'manually' try: conn, addr = s.accept() # blocking receive, times out in serialCheckInterval message = conn.recv(1024) if "=" in message: messageType, value = message.split("=", 1) else: messageType = message if messageType == "stopScript": # exit instruction received. Stop script.