def get(self):
if self.isAuthenticated():
fromTime = tornado.escape.xhtml_escape(self.get_argument("fromTime", (datetime.datetime.now() - datetime.timedelta(days=2)).strftime('%Y-%m-%d')))
toTime = tornado.escape.xhtml_escape(self.get_argument("toTime", (datetime.datetime.now() + datetime.timedelta(days=1)).strftime('%Y-%m-%d')))
aggregation = tornado.escape.xhtml_escape(self.get_argument("aggregation", "minutes"))
sensors = []
chartData = []
chartSensors = []
showChart = False
for deviceId, conf in self.iotManager.deviceConfig.items():
if "values" in conf:
for id, varConf in conf["values"].items():
parameterName = "{0}.{1}".format(deviceId, id)
selected = self.get_argument(parameterName, default=None)
sensorObj = SensorFilter(deviceId, conf["name"], id, varConf.get("label", id), varConf.get("type", "number"), selected)
sensors.append(sensorObj)
if selected:
showChart = True
chartSensors.append(sensorObj)
fromTimeParsed = datetime.datetime.strptime(fromTime, '%Y-%m-%d')
toTimeParsed = datetime.datetime.strptime(toTime, '%Y-%m-%d')
if showChart:
self.logger.debug("Showing chart for period {0} - {1} aggregated to {2} for sensors {3}".format(fromTimeParsed, toTimeParsed, aggregation, chartSensors))
chartData = self.iotManager.database.getChartData(chartSensors, fromTimeParsed, toTimeParsed, aggregation)
finalChartSensors = []
for sensor in chartSensors:
if not all(sensor.fullId not in record for record in chartData):
finalChartSensors.append(sensor)
chartSensors = finalChartSensors
self.render("views/history.html", sensors=sensors, fromTime=fromTime, toTime=toTime, aggregation=aggregation, showChart=showChart, chartData=chartData, chartSensors=chartSensors)
else:
self.redirect("/login?"+urllib.urlencode({"returnUrl":self.request.uri}))
评论列表
文章目录