Exemple #1
0
def simpleCtrl():
    """
    Very simple controller for testingt
    """
    ctrl1 = ctrl.controllerList()
    ctrl1.addController("genctrl", appliances.genctrl())
    return ctrl1
def ctrlBsmxList():
    retlst = ctrl.controllerList()
    retlst.addController('controllerInfo', appliances.controllerinfo())
    retlst.addController('wortPump', appliances.wortPump())
    retlst.addController('boiler', appliances.boiler())
    #retlst = ['wortPump', 'boiler']
    return(retlst)
Exemple #3
0
def testSensors():
    clist = ctrl.controllerList()
    clist.load()
    for key, c1 in clist.items():
        print "Checking sensor", key
        assert isinstance(c1.sensor.getID(), str)
        assert (isinstance(c1.sensor.getValue(), int) or
                isinstance(c1.sensor.getValue(), float))
Exemple #4
0
def testloadcontroller():
    c = ctrl.controllerList()
    l = appliances.myloader.myQuickLoader()
    l.build()
    for className, instance in l.instances().iteritems():
        print className
        c.addController(className, instance)
    assert len(c) > 0
def testTarget():
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    for key, c in ctrl1.items():
        testVal = 3.1415926
        c.set(testVal)
        chkVal = c.getTarget()
        print testVal, key, chkVal
        assert testVal == chkVal
Exemple #6
0
def mediumCtrl():
    """Instantiate a list of several controllers"""
    ctrl1 = ctrl.controllerList()
    ctrl1.addController('genctrl', appliances.genctrl())
    ctrl1.addController('timer', appliances.hoptimer())
    ctrl1.addController('pump', appliances.hwPump())
    ctrl1.addController('circulationPump', appliances.circulationPump())
    ctrl1.addController('heater', appliances.hotWaterTun.hwt())
    ctrl1.addController('boiler', appliances.boiler())
    return(ctrl1)
def testPowerOn():
    """
    Test that power is off after stop, and it is a boolean
    """
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    for key, c in ctrl1.items():
        print key
        c.stop()
        assert not c.getPowerOn()
def testVal():
    """
    Test that current value and target value is a number
    """
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    for key, c in ctrl1.items():
        a = c.get()
        t = c.getTarget()
        assert isinstance(a, int) or isinstance(a, float)
        assert isinstance(t, int) or isinstance(t, float)
def testHWOK():
    """
    Test that HWOK is a boolean
    More importantly, test that HWOK is implemented and does not crash
    """
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    for key, c in ctrl1.items():
        s = c.HWOK()
        print key, s
        assert isinstance(s, bool)
Exemple #10
0
def mediumCtrl():
    """Instantiate a list of several controllers"""
    ctrl1 = ctrl.controllerList()
    ctrl1.addController("genctrl", appliances.genctrl())
    ctrl1.addController("timer", appliances.hoptimer())
    ctrl1.addController("hotWaterPump", appliances.hwPump())
    ctrl1.addController("circulationPump", appliances.circulationPump())
    ctrl1.addController("wortPump", appliances.wortPump())
    ctrl1.addController("waterHeater", appliances.hotWaterTun.hwt())
    ctrl1.addController("boiler", appliances.boiler())
    return ctrl1
Exemple #11
0
def testUnit():
    """
    Test that unit is a string
    """
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    for key, c in ctrl1.items():
        s = c.getUnit()
        assert isinstance(s, str) or (s is None)
        if s is not None:
            assert len(s) > 0
Exemple #12
0
def createCtrl():
    """Instantiate a list of all controllers"""

    ctrl1 = ctrl.controllerList()
    ctrl1.addController("generic", appliances.genctrl())
    ctrl1.addController("timer", appliances.hoptimer())
    ctrl1.addController("pump", appliances.hwPump())
    ctrl1.addController("circulationPump", appliances.circulationPump())
    ctrl1.addController("heater", appliances.hotWaterTun.hwt())
    ctrl1.addController("boiler", appliances.boiler())
    return ctrl1
Exemple #13
0
def testError():
    """
    Test that power is off after stop, and it is a boolean
    """
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    for key, c in ctrl1.items():
        print key
        assert not c.hasError()
        c.forceError()
        assert c.hasError()
        c.clearError()
        assert not c.hasError()
Exemple #14
0
def createCtrl():
    """Instantiate a list of all controllers"""
    #cirsw = switches.simSwitch()
    #pumpsw = switches.simSwitch()

    ctrl1 = ctrl.controllerList()
    ctrl1.addController('genctrl', appliances.genctrl())
    ctrl1.addController('timer', appliances.hoptimer())
    ctrl1.addController('pump', appliances.hwPump())
    ctrl1.addController('circulationPump', appliances.circulationPump())
    ctrl1.addController('heater', appliances.hwt())
    ctrl1.addController('boiler', appliances.boiler())
    return(ctrl1)
Exemple #15
0
def testStartStop():
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    settings = {}
    for key, c in ctrl1.items():
        assert not c.isActive()
        s = {}
        s['targetValue'] = 1
        s['active'] = True
        settings[key] = s
    print settings
    ctrl1.run(settings)
    for key, c in ctrl1.items():
        assert c.isActive()
Exemple #16
0
def testTargetMet():
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    for key, c in ctrl1.items():
        curVal = c.get()
        curTarget = c.getTarget()
        if curTarget:
            if curVal > curTarget:
                c.set(curVal + 10)
            else:
                c.set(curVal - 10)
        else:
            if curVal < curTarget:
                c.set(curVal - 10)
            else:
                c.set(curVal + 10)
        assert curTarget != c.getTarget()
Exemple #17
0
def simpleCtrl():
    ctrl1 = ctrl.controllerList()
    ctrl1.addController('genctrl', appliances.genctrl())
    return(ctrl1)
def setupControllers(verbose, simulation, permissive, equipment):
    controllers = ctrl.controllerList()
    # The controllerinfo is a special snowflake that stores some extra global controller info
    # It does not do anything intelligent itherwise and will always meet target
    controllers.addController('controllerInfo', appliances.controllerinfo())
    
    if equipment is None:
        logging.error('Equipment is None')
        return(None)
    controllers['controllerInfo'].setEquipment(equipment)

    # Timer is always required in all equipment
    controllers.addController('delayTimer', appliances.hoptimer())

    print "Try to find hw switches"
    if not simulation:
        logging.info("Initializing hardware")
        x10 = None
        try:
            usbPumps = switches.pumpUSB()
        except:
            if permissive:
                logging.info("**********USB pumps not found, simulating HW")
                usbPumps = switches.simSwitchList()
            else:
                raise Exception("USB pumps not available")
    else:
        x10 = switches.simSwitchList()
        usbPumps = switches.simSwitchList()

    print("Setting up appliances")

    hwTunSwitch = switches.powerSwitch(1)
    boilerSwitch = switches.powerSwitch(2)
    print 0
    aeratorSwitch = switches.air8800Switch()
    print 0.2
    coolerSwitch = switches.coolerSwitch()
    mashStirSwitch = switches.mashStirSwitch()
    #mashStirSwitch = switches.mashStir8800Switch()
    print 0.5
    boilerValveSwitch = switches.boilerValveSwitch()
    hotWaterPumpSwitch = usbPumps.getSwitch(1)
    hwCirculationSwitch = usbPumps.getSwitch(0)
    wortSwitch = usbPumps.getSwitch(2)
    mashCirculationSwitch = usbPumps.getSwitch(3)
    print 1
    controllers.addController('waterHeater', appliances.hwt())
    controllers['waterHeater'].connectSwitch(hwTunSwitch)
    controllers['waterHeater'].setx(x10)

    controllers.addController('boiler', appliances.boiler())
    controllers['boiler'].connectSwitch(boilerSwitch)
    controllers['boiler'].setx(x10)

    controllers.addController('aerator', appliances.aerator())
    controllers['aerator'].connectSwitch(aeratorSwitch)
    print 2
    controllers.addController('cooler', appliances.cooler())
    controllers['cooler'].connectSwitch(coolerSwitch)
    boilerSensor = controllers['boiler'].getSensor()
    controllers['cooler'].connectSensor(boilerSensor)

    # Reuse of same switch for plate cooler as immersion cooler
    controllers.addController('plateValve', appliances.plateValve())
    controllers['plateValve'].connectSwitch(coolerSwitch)

    controllers.addController('mashStirrer', appliances.mashStirrer())
    controllers['mashStirrer'].connectSwitch(mashStirSwitch)
    controllers.addController('mashHeater', appliances.mashHeater())
    controllers['mashHeater'].connectSwitch(mashCirculationSwitch)
    print 5
    controllers.addController('boilerValve', appliances.boilerValve())
    controllers['boilerValve'].connectSwitch(boilerValveSwitch)
    controllers.addController('hotWaterPump', appliances.hwPump())
    controllers['hotWaterPump'].connectSwitch(hotWaterPumpSwitch)
    controllers.addController('waterCirculationPump',
                              appliances.circulationPump())
    controllers['waterCirculationPump'].connectSwitch(hwCirculationSwitch)
    controllers.addController('wortPump', appliances.wortPump())
    controllers['wortPump'].connectSwitch(wortSwitch)
    controllers.addController('boilerVolume', appliances.boilerVolume())
    controllers['boilerVolume'].attachHost(controllers['wortPump'])
    # controllers.addController('mashCirculationPump', \
    #                          appliances.circulationPump())
    # controllers['mashCirculationPump'].connectSwitch(mashCirculationSwitch)
    controllers.addController('dispenser1', appliances.dispenser(1))
    controllers.addController('dispenser2', appliances.dispenser(2))
    controllers.addController('dispenser3', appliances.dispenser(3))
    controllers.addController('dispenser4', appliances.dispenser(4))
    
    controllers.addController('envTemp', appliances.envTemp())

    print("appliance setup done")
    # Testing of sensor object Remove me later
    for key, c1 in controllers.items():
        c1.findOrAddSensor(controllers)
        # print key
    "returning..."
    return(controllers)
Exemple #19
0
def testcheck2():
    c = ctrl.controllerList()
    c.load()
    assert len(c) > 0
Exemple #20
0
def testloadlist():
    c = ctrl.controllerList()
    l = appliances.myloader.myQuickLoader()
    l.build()
    c.addControllerList(l.instances())
    assert len(c) > 0
Exemple #21
0
def testloadself():
    c = ctrl.controllerList()
    c.load()
    assert len(c) > 0
Exemple #22
0
def testStatus():
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    assert len(ctrl1) > 0
    status = ctrl1.status()
    assert len(status) > 0
Exemple #23
0
def timerCtrl():
    """Instantiate a list of several controllers"""
    ctrl1 = ctrl.controllerList()
    ctrl1.addController('timer', appliances.hoptimer())
    return(ctrl1)
Exemple #24
0
def testss2():
    ctrl1 = ctrl.controllerList()
    ctrl1.load()
    assert len(ctrl1) > 0
    ctrl1.shutdown()
    assert len(ctrl1) == 0