def setLogLevel(self, level): if level == logging.DEBUG: logger.setLevel(logging.DEBUG) elif level == logging.WARNING: logger.setLevel(logging.WARNING) elif level == logging.ERROR: logger.setLevel(logging.ERROR) elif level == logging.INFO: logger.setLevel(logging.INFO) else: logger.setLevel(logging.INFO)
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. import sys import datetime import time import os import logging from setup_logger import logger from distutils.util import strtobool import chamber logger = logging.getLogger('TEST_CHAMBER') logger.setLevel(logging.INFO) fridge = chamber.Chamber(None) ################################################################ def main(): fridge.start() time.sleep(240) fridge.stop() if __name__ == "__main__": #dont run this as a module
def _readConf(self): bDefaultInterval = True bDefaultBtDeviceId = True if os.path.isfile(CONFIGFILE) == False: logger.error("Tilt configuration file is not valid: " + CONFIGFILE) else: ini = configparser.ConfigParser() try: logger.debug("Reading Tilt config: " + CONFIGFILE) ini.read(CONFIGFILE) if self.color in ini: config = ini[self.color] try: if config["UpdateIntervalSeconds"] != "" and int( config["UpdateIntervalSeconds"] ) >= MINIMUM_INTERVAL: self.interval = int( config.get("UpdateIntervalSeconds")) bDefaultInterval = False else: self.interval = MINIMUM_INTERVAL except KeyError: pass try: if config["BluetoothDeviceId"] != "" and int( config["BluetoothDeviceId"]) >= 0: self.bluetoothDeviceId = int( config.get("BluetoothDeviceId")) bDefaultBtDeviceId = False else: self.bluetoothDeviceId = 0 except KeyError: pass try: if config["MessageLevel"] == "DEBUG": logger.setLevel(logging.DEBUG) elif config["MessageLevel"] == "WARNING": logger.setLevel(logging.WARNING) elif config["MessageLevel"] == "ERROR": logger.setLevel(logging.ERROR) elif config["MessageLevel"] == "INFO": logger.setLevel(logging.INFO) else: logger.setLevel(logging.INFO) except KeyError: logger.setLevel(logging.INFO) else: logger.error("[" + self.color + "] section not found in ini file: " + CONFIGFILE) except: pass if bDefaultInterval or bDefaultBtDeviceId: logger.warning("Problem read from configuration file: \""+CONFIGFILE+ \ "\". Using some default values[**] for Tilt configuration. It could take a minute for updated values in config file to be used.") sConf = "Color = " + self.color sConf = sConf + "\nUpdateIntervalSeconds = " + str(self.interval) if bDefaultInterval: sConf = sConf + "**" sConf = sConf + "\nBluetoothDeviceId = " + str( self.bluetoothDeviceId) if bDefaultBtDeviceId: sConf = sConf + "**" print(sConf)
def _readConf(self): try: if os.path.isfile(CONFIGFILE) == False: logger.error("Chamber configuration file is not valid: " + CONFIGFILE) ini = configparser.ConfigParser() ini.read(CONFIGFILE) if 'Chamber' in ini: logger.debug("Reading Chamber config") config = ini['Chamber'] try: if config["MessageLevel"] == "DEBUG": logger.setLevel(logging.DEBUG) elif config["MessageLevel"] == "WARNING": logger.setLevel(logging.WARNING) elif config["MessageLevel"] == "ERROR": logger.setLevel(logging.ERROR) elif config["MessageLevel"] == "INFO": logger.setLevel(logging.INFO) else: logger.setLevel(logging.INFO) except KeyError: logger.setLevel(logging.INFO) # Read temperatures to target for each date try: if config["Temps"] != "": self.targetTemps = [] t = config["Temps"].split(",") for x in t: self.targetTemps.append(float(x)) else: raise Exception except: self.targetTemps = [DEFAULT_TEMP] logger.warning("Invalid temp values; using default: " + str(self.targetTemps[0])) # Read dates when temperature should change try: if config["Dates"] != "": self.tempDates = [] dts = config["Dates"].split(",") for x in dts: self.tempDates.append( datetime.datetime.strptime( x, '%d/%m/%Y %H:%M:%S')) else: raise Exception except: self.tempDates = [ datetime.datetime.now(), datetime.datetime.now() ] logger.warning( "Invalid date values; using default. Heating/cooling will NOT start" ) if len(self.tempDates) != len(self.targetTemps) + 1: self.tempDates = [ datetime.datetime.now(), datetime.datetime.now() ] self.targetTemps = [DEFAULT_TEMP] logger.warning( "Invalid date or time values; using default. Heating/cooling will NOT start" ) try: if config["BeerTemperatureBuffer"] != "" and float( config["BeerTemperatureBuffer"]) >= 0.0: self.bufferBeerTemp = float( config.get("BeerTemperatureBuffer")) else: raise Exception except: self.bufferBeerTemp = DEFAULT_BUFFER_BEER_TEMP logger.warning( "Invalid beer temperature buffer in configuration; using default: " + str(self.bufferBeerTemp)) try: if config["ChamberScaleBuffer"] != "" and float( config["ChamberScaleBuffer"]) >= 0.0: self.bufferChamberScale = float( config.get("ChamberScaleBuffer")) else: raise Exception except: self.bufferChamberScale = DEFAULT_BUFFER_CHAMBER_SCALE logger.warning( "Invalid chamber scale buffer in configuration; using default: " + str(self.bufferChamberScale)) except: logger.warning("Problem read from configuration file: " + CONFIGFILE) logger.debug("Chamber config updated")
def _readConf(self): try: if os.path.isfile(CONFIGFILE) == False: logger.error("Controller configuration file is not valid: "+CONFIGFILE) ini = configparser.ConfigParser() ini.read(CONFIGFILE) if 'Controller' in ini: logger.debug("Reading Controller config") config = ini['Controller'] try: if config["MessageLevel"] == "DEBUG": logger.setLevel(logging.DEBUG) elif config["MessageLevel"] == "WARNING": logger.setLevel(logging.WARNING) elif config["MessageLevel"] == "ERROR": logger.setLevel(logging.ERROR) elif config["MessageLevel"] == "INFO": logger.setLevel(logging.INFO) else: logger.setLevel(logging.INFO) except KeyError: logger.setLevel(logging.INFO) try: if config["BeerTempAdjust"] != "": self.beerTAdjust = float(config.get("BeerTempAdjust")) else: raise Exception except: self.beerTAdjust = 0.0 logger.warning("Invalid BeerTempAdjust in configuration; using default: "+str(self.beerTAdjust)) try: if config["ChamberTempAdjust"] != "": self.chamberTAdjust = float(config.get("ChamberTempAdjust")) else: raise Exception except: self.chamberTAdjust = 0.0 logger.warning("Invalid BeerTempAdjust in configuration; using default: "+str(self.chamberTAdjust)) try: if config["OnDelay"] != "" and int(config["OnDelay"]) >= 0: self.onDelay = int(config.get("OnDelay"))*60 else: raise Exception except: self.onDelay = DEFAULT_ON_DELAY logger.warning("Invalid OnDelay in configuration; using default: "+str(self.onDelay)+" seconds") except: logger.warning("Problem read from configuration file: "+CONFIGFILE) logger.debug("Controller config updated")
def read_settings(): global sTiltColor global chamberControlTemp global bUseTilt global logLevel chamberControlTemp = CONTROL_WIRE bUseTilt = False logLevel = logging.INFO logger.debug("Reading configfile: " + CONFIGFILE) try: if os.path.isfile(CONFIGFILE) == False: raise Exception ini = configparser.ConfigParser() ini.read(CONFIGFILE) except: raise IOError("Fermonitor configuration file is not valid: " + CONFIGFILE) try: config = ini['Fermonitor'] except: raise IOError("[Fermonitor] section not found in fermonitor.ini") try: if config["MessageLevel"] == "DEBUG": logLevel = logging.DEBUG elif config["MessageLevel"] == "WARNING": logLevel = logging.WARNING elif config["MessageLevel"] == "ERROR": logLevel = logging.ERROR elif config["MessageLevel"] == "INFO": logLevel = logging.INFO else: logLevel = logging.INFO except KeyError: logLevel = logging.INFO logger.setLevel(logLevel) try: if config["TiltColor"] != "": sTiltColor = config.get("TiltColor") else: raise Exception except: logger.warning("No color specified for Tilt. Tilt not used.") sTiltColor = "" logger.debug("Tilt color: " + sTiltColor) try: if config["ChamberControl"] != "": if config.get("ChamberControl") == "WIRE": chamberControlTemp = CONTROL_WIRE logger.debug("Chamber control temperature based on WIRE") elif config.get("ChamberControl") == "TILT": chamberControlTemp = CONTROL_TILT logger.debug("Chamber control temperature based on TILT") else: chamberControlTemp = CONTROL_WIRE logger.warning( "Invalid ChamberControl configuration; using default: WIRE" ) else: chamberControlTemp = CONTROL_WIRE logger.warning( "Invalid ChamberControl configuration; using default: WIRE") except: chamberControlTemp = CONTROL_WIRE logger.warning( "Invalid ChamberControl configuration; using default: WIRE") try: if config["MessageLevel"] == "DEBUG": logLevel = logging.DEBUG elif config["MessageLevel"] == "WARNING": logLevel = logging.WARNING elif config["MessageLevel"] == "ERROR": logLevel = logging.ERROR elif config["MessageLevel"] == "INFO": logLevel = logging.INFO else: logLevel = logging.INFO except KeyError: logLevel = logging.INFO logger.setLevel(logLevel) logger.debug("Completed reading settings") return
def _readConf(self): try: if os.path.isfile(CONFIGFILE) == False: logger.error("BrewFather configuration file is not valid: " + CONFIGFILE) ini = configparser.ConfigParser() ini.read(CONFIGFILE) if 'BrewFather' in ini: logger.debug("Reading BrewFather config") config = ini['BrewFather'] try: if config["MessageLevel"] == "DEBUG": logger.setLevel(logging.DEBUG) elif config["MessageLevel"] == "WARNING": logger.setLevel(logging.WARNING) elif config["MessageLevel"] == "ERROR": logger.setLevel(logging.ERROR) elif config["MessageLevel"] == "INFO": logger.setLevel(logging.INFO) else: logger.setLevel(logging.INFO) except KeyError: logger.setLevel(logging.INFO) if config["Update"] != "": self.bUpdate = strtobool(config.get("Update")) else: raise Excpetion if config["UpdateURL"] != "": self.sURL = config.get("UpdateURL") else: raise Exception try: if config["UpdateIntervalSeconds"] != "": if int(config["UpdateIntervalSeconds"] ) >= MINIMUM_INTERVAL: self.interval = int( config.get("UpdateIntervalSeconds")) else: logger.warning( "Brewfather update interval cannot be less than 15min; using 900s" ) self.interval = MINIMUM_INTERVAL else: raise Exception except: logger.warning( "Error reading Brewfather update interval; using 900s") self.interval = MINIMUM_INTERVAL try: if config["Device"] != "": self.postdata["name"] = config["Device"] else: raise Exception except: self.postdata["name"] = "Fermonitor" except: self.bUpdate = False logger.warning( "Problem read from configuration file: " + CONFIGFILE + ". Updating BrewFather.app is disabled until configuration fixed. It could take a minute for updated values in config file to be used." ) print("[BrewFather]\nUpdate = " + str(self.bUpdate) + "\nUpdateURL = " + self.sURL + "\nUpdateIntervalSeconds = " + str(self.interval)) logger.debug("BrewFather config:\n[BrewFather]\nUpdate = " + str(self.bUpdate) + "\nUpdateURL = " + self.sURL + "\nUpdateIntervalSeconds = " + str(self.interval))