# BASED ON BELCHERTOWN PYTHON FILE START
from __future__ import with_statement
import datetime
import time
import calendar
import json
import os
import os.path
import syslog
import sys
import locale
import weewx
import weecfg
import configobj
import weedb
import weeutil.weeutil
import weewx.reportengine
import weewx.station
import weewx.units
import weewx.tags
import weewx.uwxutils
from collections import OrderedDict
from weewx.cheetahgenerator import SearchList
from weewx.tags import TimespanBinder
from weeutil.weeutil import to_bool, TimeSpan, to_int, archiveDaySpan, archiveWeekSpan, archiveMonthSpan, archiveYearSpan, startOfDay, timestamp_to_string, option_as_list
try:
from weeutil.config import search_up
except:
# Pass here because chances are we have an old version of weewx which will get caught below.
pass
# Check weewx version. Many things like search_up, weeutil.weeutil.KeyDict (label_dict) are from 3.9
if weewx.__version__ < "3.9":
raise weewx.UnsupportedFeature("weewx 3.9 and newer is required, found %s" % weewx.__version__)
reload(sys)
sys.setdefaultencoding("utf-8")
def logmsg(level, msg):
syslog.syslog(level, 'Hydrometeo Extension: %s' % msg)
def logdbg(msg):
logmsg(syslog.LOG_DEBUG, msg)
def loginf(msg):
logmsg(syslog.LOG_INFO, msg)
def logerr(msg):
logmsg(syslog.LOG_ERR, msg)
# Print version in syslog for easier troubleshooting
VERSION = "0.1"
loginf("version %s" % VERSION)
class HydroMeteoStats(SearchList):
def __init__(self, generator):
SearchList.__init__(self, generator)
def get_extension_list(self, timespan, db_lookup):
today = datetime.datetime.now()
twodaysago = datetime.datetime.now() - datetime.timedelta(days=2)
twodaysago = twodaysago.replace(hour=00, minute=00, second=00,microsecond=00) #.strftime("%Y-%m-%d %H:%M:%S")
tsb = TimespanBinder(TimeSpan(time.mktime(twodaysago.timetuple()), time.mktime(today.timetuple())), db_lookup,formatter=self.generator.formatter, converter=self.generator.converter)
spans = tsb.spans(interval=900)
last2days = spans
search_list_extension = {'last2days' : last2days}
return [search_list_extension]