def start(self): buildingsManager = BuildingsManager() days = [] startDate = datetime.strptime(self.startDate, '%Y-%m-%d') for i in range(0, self.numberOfDays): days.append( (startDate + timedelta(days=i)).strftime("%Y-%m-%d")) for room in buildingsManager.getRooms(self.buildingName)["rooms"]: roomName = room["roomName"] if self.roomFilter: if not roomName in self.roomFilter: continue simulationResult = {} for day in days: roomSimulator = RoomSimulator(buildingName = self.buildingName, roomName = roomName, currentDate = day) simulationResult[day] = roomSimulator.start() if not os.path.exists("tools/simulation/results/"): os.makedirs("tools/simulation/results/") out_file = open("tools/simulation/results/" + roomName + ".json","w") out_file.write(json.dumps(simulationResult, separators=(',', ':'))) out_file.close()
def roomSimulation(username=None, buildingName=None, roomName=None): if request.method == "POST": sessionKey = validateInput(request.form["sessionKey"]) userUuid = validateInput(request.form["userUuid"]) occupancyTimeRangeFrom = validateInput(request.form["occupancyTimeRangeFrom"]) occupancyTimeRangeTo = validateInput(request.form["occupancyTimeRangeTo"]) roomTemperature = validateInput(request.form["roomTemperature"]) externalTemperature = validateInput(request.form["externalTemperature"]) weather = validateInput(request.form["weather"]) try: session = SessionManager() session.checkSessionValidity(sessionKey, userUuid) buildingsManager = BuildingsManager() buildingsManager.checkUserBinding(buildingName, username) roomSimulator = RoomSimulator( buildingName=buildingName, roomName=roomName, occupancyTimeRangeFrom=occupancyTimeRangeFrom, occupancyTimeRangeTo=occupancyTimeRangeTo, roomTemperature=roomTemperature, externalTemperature=externalTemperature, weather=weather, ) return returnResult(roomSimulator.start()) except Exception as e: return returnError(e)
def test4(self): from app.backend.controller.roomSimulator import RoomSimulator roomSimulator = RoomSimulator(occupancyTimeRangeFrom = "4:00AM", occupancyTimeRangeTo = "6:00PM", buildingName = "CSE", roomName = "3208", roomTemperature = "78F", externalTemperature = "75F", weather = "Sunny") roomSimulator.start()