Hi!
Trying to modify the xstats to add the last 24hrs to stats.
here is the modification that I have made, but obviously not being a coder
there is one or more mistake, can anyone help me sort it out?
"*#*
*# Copyright (c) 2009-2015 Tom Keffer *
*#*
*# See the file LICENSE.txt for your full rights.*
*#*
*"""Extended stats based on the xsearch example*
*This search list extension offers extra tags:*
* 'alltime': All time statistics.*
* '24_hrs': Statistics for the last 24 hours.*
* 'seven_day': Statistics for the last seven days.*
* 'thirty_day': Statistics for the last thirty days.*
*You can then use tags such as $alltime.outTemp.max for the all-time max*
*temperature, or $seven_day.rain.sum for the total rainfall in the last
seven*
*days, or $thirty_day.wind.max for maximum wind speed in the past thirty
days.*
*"""*
*import* datetime
*import* time
*from* weewx.cheetahgenerator *import* SearchList
*from* weewx.tags *import* TimespanBinder
*from* weeutil.weeutil *import* TimeSpan
*class* ExtendedStatistics(SearchList):
*def** __init__*(self, generator):
SearchList.__init__(self, generator)
*def** get_extension_list*(self, timespan, db_lookup):
*"""Returns a search list extension with additions.*
* timespan: An instance of weeutil.weeutil.TimeSpan. This holds*
* the start and stop times of the domain of valid times.*
* db_lookup: Function that returns a database manager given a*
* data binding.*
* """*
* # First, create a TimespanBinder object for all time. This one is
easy*
* # because the object timespan already holds all valid times to be*
* # used in the report.*
all_stats = TimespanBinder(timespan,
db_lookup,
context=*'alltime'*,
formatter=self.generator.formatter,
converter=self.generator.converter)
* # Now use a similar process to get statistics for the last 24
hours.*
hour_dt = datetime.date.fromtimestamp(timespan.stop) -
datetime.timedelta(hour=24)
hour_ts = time.mktime(hour_dt.timetuple())
24_hours_stats = TimespanBinder(TimeSpan(hour_ts, timespan.stop),
db_lookup,
context=*'24_hrs'*,
formatter=self.generator.formatter,
converter=self.generator.converter)
* # Now create a TimespanBinder for the last seven days. This one we*
* # will have to calculate. First, calculate the time at midnight,
seven*
* # days ago. The variable week_dt will be an instance of
datetime.date.*
week_dt = datetime.date.fromtimestamp(timespan.stop) -
datetime.timedelta(weeks=1)
week_ts = time.mktime(week_dt.timetuple())
seven_day_stats = TimespanBinder(TimeSpan(week_ts, timespan.stop),
db_lookup,
context=*'seven_day'*,
formatter=self.generator.formatter,
converter=self.generator.converter)
* # Now use a similar process to get statistics for the last 30
days.*
days_dt = datetime.date.fromtimestamp(timespan.stop) -
datetime.timedelta(days=30)
days_ts = time.mktime(days_dt.timetuple())
thirty_day_stats = TimespanBinder(TimeSpan(days_ts, timespan.stop),
db_lookup,
context=*'thirty_day'*,
formatter=self.generator.formatter,
converter=self.generator.converter)
*return* [{*'alltime'*: all_stats,
*'24_hrs'*: 24_hours_stats,
*'seven_day'*: seven_day_stats,
*'thirty_day'*: thirty_day_stats}]
*# For backwards compatibility:*
ExtStats = ExtendedStatistics
"
--
You received this message because you are subscribed to the Google Groups
"weewx-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.