Example #1
0
 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)
Example #2
0
# 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
Example #3
0
    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)
Example #4
0
    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")
Example #5
0
    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")
Example #6
0
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
Example #7
0
    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))