Beispiel #1
0
    def runTest(self):
        print "Virtual.runTest>"
        db = Database("baclog", 5432)
        db.getObjects()
        av1 = db.instance[(9001, 2, 0)]  ## hard coded AV1
        print av1
        db.enablePoints([av1])
        t = db.now()
        db.scheduleObject(av1, t + 1, 30, 10)

        db.close()
Beispiel #2
0
    def runTest(self):
        print "Virtual.runTest>"
        db=Database("baclog",5432)
        db.getObjects()
        av1=db.instance[(9001,2,0)] ## hard coded AV1
        print av1
        db.enablePoints([av1])
        t=db.now()
        db.scheduleObject(av1, t+1 , 30, 10)

        db.close()
Beispiel #3
0
    def runPughHall(self):
        print "Experiment.runPughHall>"

        ## main objects
        db = Database()
        objects = db.getObjects()
        building = buildings.PughHall()
        building.tag(objects)
        #building.check(objects)

        ## Identify tags and set watch to enabled
        rooms = objects.getTag('room', ['104', '105'])
        print rooms
        db.enablePoints(rooms)

        ## Schedule object.
        #        t=db.now()

        #        db.scheduleObject(o20, t+1 , 2, 1)
        #        db.scheduleObject(o20, t+4 , 1, 1)
        #        db.scheduleObject(o20, t+7 , 1, 1)
        #        db.scheduleObject(o20, t+6 , 3, 1)
        #
        #        db.scheduleObject(o21, t+2 , 5, 1)

        db.close()
Beispiel #4
0
    def runTest(self):
        print "Experiment.runTest>"

        ## main objects
        db = Database()
        objects = db.getObjects()
        building = buildings.Test()
        building.tag(objects)
        #building.check(objects)

        ## Identify tags and set watch to enabled
        o19 = objects.getTag('point', 19).single()
        o20 = objects.getTag('point', 20).single()
        o21 = objects.getTag('point', 21).single()
        test = [o19, o20, o21]
        db.enablePoints(test)

        ## Schedule object.
        t = db.now()
        #        db.scheduleObject(o19, t+1, 3, 51)

        #        db.scheduleObject(o20, t+1 , 2, 1)
        #        db.scheduleObject(o20, t+4 , 1, 1)
        #        db.scheduleObject(o20, t+7 , 1, 1)
        #        db.scheduleObject(o20, t+6 , 3, 1)
        #
        db.scheduleObject(o21, t + 1, 10, 1)
        db.scheduleObject(o21, t + 3, 5, None)

        db.close()
Beispiel #5
0
    def runPughHall(self):
        print "Experiment.runPughHall>"
        
        ## main objects
        db=Database()
        objects=db.getObjects()
        building=buildings.PughHall()
        building.tag(objects)
        #building.check(objects)

        ## Identify tags and set watch to enabled 
        rooms=objects.getTag('room',['104','105'])
        print rooms
        db.enablePoints(rooms)
        
        ## Schedule object.
#        t=db.now()
        
#        db.scheduleObject(o20, t+1 , 2, 1)
#        db.scheduleObject(o20, t+4 , 1, 1)
#        db.scheduleObject(o20, t+7 , 1, 1)
#        db.scheduleObject(o20, t+6 , 3, 1)
#        
#        db.scheduleObject(o21, t+2 , 5, 1)
        

        db.close()
Beispiel #6
0
    def runTest(self):
        print "Experiment.runTest>"
        
        ## main objects
        db=Database()
        objects=db.getObjects()
        building=buildings.Test()
        building.tag(objects)
        #building.check(objects)

        ## Identify tags and set watch to enabled 
        o19=objects.getTag('point',19).single()
        o20=objects.getTag('point',20).single()
        o21=objects.getTag('point',21).single()
        test=[o19,o20,o21]
        db.enablePoints(test)
        
        ## Schedule object.
        t=db.now()
#        db.scheduleObject(o19, t+1, 3, 51)
        
#        db.scheduleObject(o20, t+1 , 2, 1)
#        db.scheduleObject(o20, t+4 , 1, 1)
#        db.scheduleObject(o20, t+7 , 1, 1)
#        db.scheduleObject(o20, t+6 , 3, 1)
#        
        db.scheduleObject(o21, t+1 , 10, 1)
        db.scheduleObject(o21, t+3 , 5, None)

        db.close()
Beispiel #7
0
    def run(self):
        print "Tag.run>"
        
        ## main objects
        db=Database(database='mtim',port=5432)
        
        ## Series 1
        for d in [1,2,3,4]:
            objects=db.getObjects(where="Devices.deviceID=%s" % d)
            building=buildings.PughHall()
            building.tag(objects)
            building.check(objects)
        
            ## Setup Metadata
            db.writeTags(objects)
            building.points(objects)
            db.writePoints(objects)
            
        ## Series 2
        for d in [5,6,7,8]:
            objects=db.getObjects(where="Devices.deviceID=%s" % d)
            building=buildings.PughHall()
            building.tag(objects)
            building.check(objects)
        
            ## Setup Metadata
            db.writeTags(objects)
            
        ## Join on nn
        db.execute("DELETE FROM PointObjectMap")
        db.execute(
"""
INSERT INTO PointObjectMap (pointID,objectID,name)
SELECT Points.pointID,Objects.objectID,Points.value
FROM Objects 
JOIN Tags ON (Objects.objectID=Tags.objectID AND tag='nn')
JOIN Points ON (Tags.value=Points.value AND Points.tag='nn')
"""
        )

        db.close()
Beispiel #8
0
    def run(self):
        print "Tag.run>"

        ## main objects
        db = Database(database='mtim', port=5432)

        ## Series 1
        for d in [1, 2, 3, 4]:
            objects = db.getObjects(where="Devices.deviceID=%s" % d)
            building = buildings.PughHall()
            building.tag(objects)
            building.check(objects)

            ## Setup Metadata
            db.writeTags(objects)
            building.points(objects)
            db.writePoints(objects)

        ## Series 2
        for d in [5, 6, 7, 8]:
            objects = db.getObjects(where="Devices.deviceID=%s" % d)
            building = buildings.PughHall()
            building.tag(objects)
            building.check(objects)

            ## Setup Metadata
            db.writeTags(objects)

        ## Join on nn
        db.execute("DELETE FROM PointObjectMap")
        db.execute("""
INSERT INTO PointObjectMap (pointID,objectID,name)
SELECT Points.pointID,Objects.objectID,Points.value
FROM Objects 
JOIN Tags ON (Objects.objectID=Tags.objectID AND tag='nn')
JOIN Points ON (Tags.value=Points.value AND Points.tag='nn')
""")

        db.close()
Beispiel #9
0
    def enablePughHall(self):
        print "Experiment.enablePughHall>"

        ## main objects
        db = Database()
        objects = db.getObjects()
        building = buildings.PughHall()
        building.tag(objects)
        #building.check(objects)

        ## Identify tags and set watch to enabled
        rooms = objects.getTag('room', ['104', '105'])
        print rooms
        db.enablePoints(rooms)

        db.close()
Beispiel #10
0
    def enablePughHall(self):
        print "Experiment.enablePughHall>"
        
        ## main objects
        db=Database()
        objects=db.getObjects()
        building=buildings.PughHall()
        building.tag(objects)
        #building.check(objects)

        ## Identify tags and set watch to enabled 
        rooms=objects.getTag('room',['104','105'])
        print rooms
        db.enablePoints(rooms)
        
        db.close()
Beispiel #11
0
    def run(self):
        print "Analysis.run>"
        
        ## main objects
        db=Database()
        graph=Graph()
        
        ## populate meta information
        #devices=data.getDevices()
        objects=db.getObjects()
        building=buildings.PughHall()
        building.tag(objects)
        #building.check(objects)
        
        ## Compute streams
        data=Data('data')
        vav={}
        ahu={}
        total={}
        plot=Plot("plot")
        
        ## Connections 
        source=Connection('source') # data connection
        dest={} ## VAV connections
        output=Connection("output")
        
        ## Connect
        source.addIn(data)

        ## Build network
        ahus=[1,3]
        for ah in ahus:
            zone=objects.getTag('zone',ah) ## All zone objects (VAV and AHU)
            data.addOut(zone)
            
            vavs=zone.getValues('vav')
            total[ah]=Total("total%d" % ah,vavs)
            dest[ah]=Connection("dest%d" % ah)
            dest[ah].addOut(total[ah]) ## zone totalizer

            a=AHU("ahu%d" % ah, ah,objects.getTag('ahu',ah))
            ahu[ah]=a
            source.addOut(a)

            for v in vavs:
                zv=VAV(('zone%d-VAV%s') % (ah,v), zone.getTag('vav',v), objects.getTag('ahu',ah)) ## Zone stream
                vav[v]=zv
                source.addOut(zv)
                dest[ah].addIn(zv)

            ## Per ahu plots
            output.addIn(total[ah])

        ## add trace points
        output.addIn(ahu[1])
        output.addIn(vav[114])

        ## connect plot (last)
        output.addOut(plot)

        if trace:
            print "Analysis.run>", repr(source)
            print "Analysis.run>", repr(dest)
            print "Analysis.run>", repr(total)
            print "Analysis.run>", repr(plot)

        ## Process DataStream
        #limit="WHERE time >= '2011-09-27 20:00' AND time <= '2011-09-27 23:00'"
        #limit="WHERE time >= '2011-09-27 20:00' AND time <= '2011-09-28 07:00'"
        #limit="WHERE time >= '2011-09-27' AND time <= '2011-09-29'"
        limit=None
        
        ## Debug
        monitor=InstanceList()
        
        #monitor.add(objects.getTags({'descriptor':'SAIR-TE'}))
        #monitor.add(objects.getTags({'descriptor':'RAIR-H'}))
        #monitor=monitor.getTag('ahu',1)

        #monitor.add(objects.getTags({'vav':114,'descriptor':'CTL TEMP'}))
        #monitor.add(objects.getTags({'vav':114,'descriptor':'FLOW'}))
        monitor.add(objects.getTags({'vav':114,'descriptor':'HTG LOOPOUT'}))
        #monitor.add(objects.getTags({'vav':114}))

        ## Stream compute
        i=0;
        for time,device,otype,oinstance,value in db.getData(limit):
            v=Value(db.getInstance(device,otype,oinstance),value,time,0) ## Build value
            data.send(v) ## input data
            
            ## Debug
            if v.var in monitor:
                print "DATA:", time, v
            if i%100000==0:
                print "TICK:", i,time
            i+=1
        
        ## Plot
        #limit=None
        #limit=['total1-qsum','total3-qsum']
        limit=['sat','sa']

        graph.add(plot,limit)
        graph.run()