I am running weewx 3.6.1, exfoliation .40 and forecast 3.2.9.

The forecast page displays: "forecast_table: forecast search list extension 
is not installed".

I have searched this group and tried everything. Nothing is getting the 
forecast to appear. This morning I installed and re-installed 
weewx-forecast-3.2.9.tgz. 

Here is my log:

Jan 16 10:07:36 raspberrypi weewx[13362]: forecast: MainThread: XTide: 
forecast will not be run

Jan 16 10:07:36 raspberrypi weewx[13362]: restx: StationRegistry: 
Registration not requested.

Jan 16 10:07:36 raspberrypi weewx[13362]: restx: Wunderground-RF: Data for 
station KCOLITTL149 will be posted

Jan 16 10:07:36 raspberrypi weewx[13362]: restx: PWSweather: Posting not 
enabled.

Jan 16 10:07:36 raspberrypi weewx[13362]: restx: CWOP: Posting not enabled.

Jan 16 10:07:36 raspberrypi weewx[13362]: restx: WOW: Posting not enabled.

Jan 16 10:07:36 raspberrypi weewx[13362]: restx: AWEKAS: Posting not 
enabled.

Jan 16 10:07:36 raspberrypi weewx[13362]: engine: Starting up weewx version 
3.6.1

Jan 16 10:07:36 raspberrypi weewx[13362]: engine: Clock error is 1.12 
seconds (positive is fast)

Jan 16 10:07:36 raspberrypi weewx[13362]: engine: Starting main packet loop.

Jan 16 10:10:15 raspberrypi weewx[13362]: manager: added record 2017-01-16 
10:10:00 MST (1484586600) to database 'weewx.sdb'

Jan 16 10:10:15 raspberrypi weewx[13362]: manager: added record 2017-01-16 
10:10:00 MST (1484586600) to daily summary in 'weewx.sdb'

Jan 16 10:10:16 raspberrypi weewx[13362]: forecast: ZambrettiThread: 
Zambretti: generated 1 forecast record

Jan 16 10:10:16 raspberrypi weewx[13362]: forecast: ZambrettiThread: 
Zambretti: saved 1 forecast records

Jan 16 10:10:16 raspberrypi weewx[13362]: forecast: ZambrettiThread: 
Zambretti: deleted forecasts prior to 1483981816

Jan 16 10:10:18 raspberrypi weewx[13362]: cheetahgenerator: Generate failed 
with exception '<class 'Cheetah.Parser.ParseError'>'

Jan 16 10:10:18 raspberrypi weewx[13362]: cheetahgenerator: **** Ignoring 
template /etc/weewx/skins/exfoliation/forecast.html.tmpl

Jan 16 10:10:18 raspberrypi weewx[13362]: cheetahgenerator: **** Reason: 
#012#012#end found, but nothing to end#012Line 29, column 1 in file 
/etc/weewx/skins/exfoliation/forecast.html.tmpl#012#012Line|Cheetah 
Code#012----|-------------------------------------------------------------#01226
  
| for $k in $Extras.forecast_page_forecast_settings#01227  | set global 
$forecast_table_settings[$k] = 
$Extras.forecast_page_forecast_settings[$k]#01228  |#end for#01229  |#end 
if#012     ^#01230  |#01231  | include "forecast_table.inc"#01232  |

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  Traceback (most recent call 
last):

Jan 16 10:10:18 raspberrypi weewx[13362]: ****    File 
"/usr/share/weewx/weewx/cheetahgenerator.py", line 313, in generate

Jan 16 10:10:18 raspberrypi weewx[13362]: ****      
filtersLib=weewx.cheetahgenerator)

Jan 16 10:10:18 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 1259, in 
__init__

Jan 16 10:10:18 raspberrypi weewx[13362]: ****      self._compile(source, 
file, compilerSettings=compilerSettings)

Jan 16 10:10:18 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 1553, in 
_compile

Jan 16 10:10:18 raspberrypi weewx[13362]: ****      
keepRefToGeneratedCode=True)

Jan 16 10:10:18 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 743, in compile

Jan 16 10:10:18 raspberrypi weewx[13362]: ****      compiler.compile()

Jan 16 10:10:18 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Compiler.py", line 1664, in 
compile

Jan 16 10:10:18 raspberrypi weewx[13362]: ****      self._parser.parse()

Jan 16 10:10:18 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Parser.py", line 1489, in parse

Jan 16 10:10:18 raspberrypi weewx[13362]: ****      self.eatDirective()

Jan 16 10:10:18 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Parser.py", line 1613, in 
eatDirective

Jan 16 10:10:18 raspberrypi weewx[13362]: ****      directiveParser()

Jan 16 10:10:18 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Parser.py", line 1764, in 
eatEndDirective

Jan 16 10:10:18 raspberrypi weewx[13362]: **** 
     self.popFromOpenDirectivesStack(directiveName)

Jan 16 10:10:18 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Parser.py", line 2644, in 
popFromOpenDirectivesStack

Jan 16 10:10:18 raspberrypi weewx[13362]: ****      raise ParseError(self, 
msg="#end found, but nothing to end")

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  ParseError: 

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  #end found, but nothing to 
end

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  Line 29, column 1 in file 
/etc/weewx/skins/exfoliation/forecast.html.tmpl

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  Line|Cheetah Code

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  
----|-------------------------------------------------------------

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  26  | for $k in 
$Extras.forecast_page_forecast_settings

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  27  | set global 
$forecast_table_settings[$k] = $Extras.forecast_page_forecast_settings[$k]

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  28  |#end for

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  29  |#end if

Jan 16 10:10:18 raspberrypi weewx[13362]: ****       ^

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  30  |

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  31  | include 
"forecast_table.inc"

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  32  |

Jan 16 10:10:18 raspberrypi weewx[13362]: ****  

Jan 16 10:10:24 raspberrypi weewx[13362]: cheetahgenerator: Generated 8 
files for report StandardReport in 7.99 seconds

Jan 16 10:10:26 raspberrypi weewx[13362]: genimages: Generated 18 images 
for StandardReport in 2.49 seconds

Jan 16 10:10:26 raspberrypi weewx[13362]: reportengine: copied 65 files to 
/var/www/weewx

Jan 16 10:10:28 raspberrypi weewx[13362]: cheetahgenerator: Generate failed 
with exception '<class 'Cheetah.Parser.ParseError'>'

Jan 16 10:10:28 raspberrypi weewx[13362]: cheetahgenerator: **** Ignoring 
template /etc/weewx/skins/exfoliation/forecast.html.tmpl

Jan 16 10:10:28 raspberrypi weewx[13362]: cheetahgenerator: **** Reason: 
#012#012#end found, but nothing to end#012Line 29, column 1 in file 
/etc/weewx/skins/exfoliation/forecast.html.tmpl#012#012Line|Cheetah 
Code#012----|-------------------------------------------------------------#01226
  
| for $k in $Extras.forecast_page_forecast_settings#01227  | set global 
$forecast_table_settings[$k] = 
$Extras.forecast_page_forecast_settings[$k]#01228  |#end for#01229  |#end 
if#012     ^#01230  |#01231  | include "forecast_table.inc"#01232  |

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  Traceback (most recent call 
last):

Jan 16 10:10:28 raspberrypi weewx[13362]: ****    File 
"/usr/share/weewx/weewx/cheetahgenerator.py", line 313, in generate

Jan 16 10:10:28 raspberrypi weewx[13362]: ****      
filtersLib=weewx.cheetahgenerator)

Jan 16 10:10:28 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 1259, in 
__init__

Jan 16 10:10:28 raspberrypi weewx[13362]: ****      self._compile(source, 
file, compilerSettings=compilerSettings)

Jan 16 10:10:28 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 1553, in 
_compile

Jan 16 10:10:28 raspberrypi weewx[13362]: ****      
keepRefToGeneratedCode=True)

Jan 16 10:10:28 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Template.py", line 743, in compile

Jan 16 10:10:28 raspberrypi weewx[13362]: ****      compiler.compile()

Jan 16 10:10:28 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Compiler.py", line 1664, in 
compile

Jan 16 10:10:28 raspberrypi weewx[13362]: ****      self._parser.parse()

Jan 16 10:10:28 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Parser.py", line 1489, in parse

Jan 16 10:10:28 raspberrypi weewx[13362]: ****      self.eatDirective()

Jan 16 10:10:28 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Parser.py", line 1613, in 
eatDirective

Jan 16 10:10:28 raspberrypi weewx[13362]: ****      directiveParser()

Jan 16 10:10:28 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Parser.py", line 1764, in 
eatEndDirective

Jan 16 10:10:28 raspberrypi weewx[13362]: ****      
self.popFromOpenDirectivesStack(directiveName)

Jan 16 10:10:28 raspberrypi weewx[13362]: ****    File 
"/usr/lib/python2.7/dist-packages/Cheetah/Parser.py", line 2644, in 
popFromOpenDirectivesStack

Jan 16 10:10:28 raspberrypi weewx[13362]: ****      raise ParseError(self, 
msg="#end found, but nothing to end")

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  ParseError: 

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  #end found, but nothing to 
end

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  Line 29, column 1 in file 
/etc/weewx/skins/exfoliation/forecast.html.tmpl

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  Line|Cheetah Code

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  
----|-------------------------------------------------------------

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  26  | for $k in 
$Extras.forecast_page_forecast_settings

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  27  | set global 
$forecast_table_settings[$k] = $Extras.forecast_page_forecast_settings[$k]

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  28  |#end for

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  29  |#end if

Jan 16 10:10:28 raspberrypi weewx[13362]: ****       ^

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  30  |

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  31  | include 
"forecast_table.inc"

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  32  |

Jan 16 10:10:28 raspberrypi weewx[13362]: ****  

Jan 16 10:10:31 raspberrypi weewx[13362]: cheetahgenerator: Generated 8 
files for report exfoliation in 4.94 seconds

Jan 16 10:10:34 raspberrypi weewx[13362]: genimages: Generated 18 images 
for exfoliation in 2.48 seconds

Jan 16 10:10:34 raspberrypi weewx[13362]: reportengine: copied 65 files to 
/var/www/weewx/exfoliation

Jan 16 10:10:53 raspberrypi weewx[13362]: cheetahgenerator: Generated 10 
files for report forecast in 19.06 seconds

Jan 16 10:10:53 raspberrypi weewx[13362]: reportengine: copied 87 files to 
/var/www/weewx/forecast

 

 Would anyone be able to give a starting place to trouble shoot this?


This is the most information I have seen that relates to the forecast. I 
did edit out several of the # in the forecast.html.tmpl. It appeared  that 
all the lines in the forecast.html.tmpl were commented out.


  GNU nano 2.2.6                                                      File: 
forecast.html.tmpl                                                         
                                                         


## exfoliation for weewx - Copyright 2012-2013 Matthew Wall

## $Id: forecast.html.tmpl 1639 2016-12-27 02:33:45Z mwall $

#errorCatcher Echo

#encoding UTF-8

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";>

<html xmlns='http://www.w3.org/1999/xhtml'>

  <head profile='http://www.w3.org/2005/10/profile'>

    <!-- exfoliation for weewx - Copyright Matthew Wall -->

    #if $encoding == 'utf8'

    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' />

    #end if

    <meta name='viewport' content='width=device-width' />

    <title>$station.location Forecast</title>

    <link rel='stylesheet' type='text/css' href='exfoliation.css'/>

    <link rel='stylesheet' type='text/css' href='forecast_table.css'/>

    <link rel='icon' type='image/png' href='favicon.ico' />

  </head>


  <body>

 include "header.inc"


<div id='content'>


 if $varExists('Extras') and 
$Extras.has_key('forecast_page_forecast_settings')

 set global $forecast_table_settings = dict()

 for $k in $Extras.forecast_page_forecast_settings

 set global $forecast_table_settings[$k] = 
$Extras.forecast_page_forecast_settings[$k]

#end for

#end if


 include "forecast_table.inc"


</div>


 include "footer.inc"

  </body>

</html>


Help!

-- 
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.
# configuration file for the exfoliation skin
# $Id: skin.conf 1639 2016-12-27 02:33:45Z mwall $
# The exfoliation-for-weewx skin was created by Matthew Wall.
#
# This skin can be copied, modified, and distributed as long as this notice
# is included in any derivative work.
#
# This skin uses the dejavu sans mono font:
#   apt-get install ttf-dejavu-core
#   apt-get install ttf-dejavu-extra

[Extras]
    version = 0.40

    # If you have a Google Analytics ID, specify it here:
    #googleAnalyticsId = UA-12345678-1

    # which blocks should be displayed on the 'current' page?
    current_show_inside = true
    current_show_celestial = true
    # current_show_tides = false
    current_show_forecast_summary = true
    current_show_forecast_table = true
    # which forecast data should be displayed inline on the 'current' page?
    current_forecast_source = WU

    # should the forecast page be displayed?
    show_forecast_page = true

    # should the history page be displayed?
    show_history_page = true

    # should the almanac page be displayed?
    show_almanac_page = true

    # should the station health page be displayed?
    show_station_page = true
    # which time periods should be options on the station page?
    station_periods = day, week, month
    # which station health indicators should be displayed on the station page?
    station_metrics = rx, battery
    # the cmon extension provides additional indicators
    #station_metrics = rx, battery, cpu, load, disk, mem, net, ups

    # should the links page be displayed?
    show_links_page = true
    # should the RSS link be displayed on the 'links' page?
    # links_show_rss = true

    # the following are optional - they control what is displayed in the
    # 'links' page.  replace with a URL for your location, or comment to
    # remove any one from display.

    # radar
    links_radar_local_img = http://radar.weather.gov/ridge/lite/N0R/FTG_loop.gif
    links_radar_regional_img = 
http://radar.weather.gov/ridge/Conus/Loop/northrockies_loop.gif
    links_radar_national_img = 
http://radar.weather.gov/Conus/RadarImg/latest.gif

    # forecasts
    links_local_forecast_url = 
http://forecast.weather.gov/MapClick.php?lon=-105.08326097869865&lat=39.626724130927215#.WHKDf7YrKV4
    # links_marine_forecast_url = 
http://forecast.weather.gov/shmrn.php?mz=anz230

    # table of tides
    # links_tide_table_url = 
'http://ma.usharbors.com/monthly-tides/Massachusetts-Boston%20Harbor%2CSouth%20Shore/Boston%20Harbor'

    # infrared
    links_satellite_ir_img = http://www.goes.noaa.gov/GIFS/WCIR.JPG
    # visible spectrum
    links_satellite_vs_img = http://www.goes.noaa.gov/GIFS/WCVS.JPG
    # water vapor
    links_satellite_wv_img = http://www.goes.noaa.gov/GIFS/WCWV.JPG
    # thermal
    links_satellite_i8_img = http://www.goes.noaa.gov/GIFS/WCI8.JPG

    # forecast images
    links_forecast_48hour_img = 
http://forecast.weather.gov/meteograms/Plotter.php?lat=39.62672&lon=-105.08326&wfo=BOU&zcode=COZ040&gset=20&gdiff=10&unit=0&tinfo=EY5&ahour=0&pcmd=110111111110000000000000000000000000000000000000000000000
    links_forecast_surface_img = 
http://www.aviationweather.gov/adds/data/winds/ruc00hr_sfc_wind.gif
    links_forecast_fourpanel_img = 
http://weather.unisys.com/gfs/4panel/gfs_pres_4panel1.gif

    # nws marine zones - offshore and coastal are available, see:
    #   http://www.nws.noaa.gov/os/marine/zone/wrdoffmz.htm
    #   http://www.nws.noaa.gov/om/marine/zone/usamz.htm
    # anz081 - gulf of maine
    # anz150 - port clyde to stonington
    # anz151 - penobscot bay
    # anz230 - boston harbor
    # links_nws_marine_forecast_url = 
http://forecast.weather.gov/shmrn.php?mz=anz230
    links_nws_48hour_forecast_url = 
http://forecast.weather.gov/MapClick.php?w0=t&w1=td&w2=hi&w3=sfcwind&w4=sky&w5=pop&w6=rh&w7=thunder&w8=rain&w9=snow&AheadHour=0&Submit=Submit&FcstType=graphical&textField1=39.62672&textField2=-105.08326&site=all
    links_nws_forecast_url = 
http://forecast.weather.gov/MapClick.php?lon=-105.08326097869865&lat=39.626724130927215#.WHKDf7YrKV4
    links_weather_underground_url = 
http://www.wunderground.com/cgi-bin/findweather/getForecast?query=pws:KCOLITTL149
    links_intellicast_forecast_url = 
http://www.intellicast.com/Local/Weather.aspx?location=USCO0239
    links_intellicast_satellite_url = 
http://www.intellicast.com/Global/Satellite/Infrared.aspx?animate=true&location=USCO0239

    # intellicast images
    links_intellicast_satellite_img = 
http://images.intellicast.com/WxImages/SatelliteLoop/hiatlsat_None_anim.gif
    links_intellicast_radar_img = 
http://images.intellicast.com/WxImages/Radar/usa.gif

    # open weathermap
    # links_owm_url = http://openweathermap.org/

    # aurora forecasts
    links_aurora_forecast_n_img = 
http://services.swpc.noaa.gov/images/animations/ovation-north/latest.png
    links_aurora_forecast_s_img = 
http://services.swpc.noaa.gov/images/animations/ovation-south/latest.png

    # set parameters in the forecast table on the current page
    [[current_page_forecast_settings]]
        source = WU
        num_periods = 60

    # set parameters in the forecast table on the forecast page
    [[forecast_page_forecast_settings]]
        source = WU
        num_periods = 240
        show_hourly = 1
        show_sun = 1
        show_moon = 1

[Units]
    [[Groups]]
        group_altitude     = foot
        group_degree_day   = degree_F_day
        group_direction    = degree_compass
        group_moisture     = centibar
        group_percent      = percent
        group_pressure     = mbar
        group_radiation    = watt_per_meter_squared
        group_rain         = inch
        group_rainrate     = inch_per_hour
        group_speed        = mile_per_hour
        group_speed2       = knot2
        group_temperature  = degree_F
        group_uv           = uv_index
        group_volt         = volt

    [[StringFormats]]
        centibar           = %.0f
        cm                 = %.2f
        cm_per_hour        = %.2f
        degree_C           = %.1f
        degree_F           = %.1f
        degree_compass     = %.0f
        foot               = %.0f
        hPa                = %.1f
        inHg               = %.3f
        inch               = %.2f
        inch_per_hour      = %.2f
        km_per_hour        = %.0f
        km_per_hour2       = %.1f
        knot               = %.0f
        knot2              = %.1f
        mbar               = %.1f
        meter              = %.0f
        meter_per_second   = %.1f
        meter_per_second2  = %.1f
        mile_per_hour      = %.0f
        mile_per_hour2     = %.1f
        mm                 = %.1f
        mmHg               = %.1f
        mm_per_hour        = %.1f
        percent            = %.0f
        uv_index           = %.1f
        volt               = %.1f
        watt_per_meter_squared = %.0f
        NONE               = "     -"

    [[Labels]]
        centibar          = " cb"
        cm                = " cm"
        cm_per_hour       = " cm/hr"
        degree_C          =   °C
        degree_F          =   °F
        degree_compass    =   °
        foot              = " feet"
        hPa               = " hPa"
        inHg              = " inHg"
        inch              = " in"
        inch_per_hour     = " in/hr"
        km_per_hour       = " kph"
        km_per_hour2      = " kph"
        knot              = " knots"
        knot2             = " knots"
        mbar              = " mbar"
        meter             = " meters"
        meter_per_second  = " m/s"
        meter_per_second2 = " m/s"
        mile_per_hour     = " mph"
        mile_per_hour2    = " mph"
        mm                = " mm"
        mmHg              = " mmHg"
        mm_per_hour       = " mm/hr"
        percent           =   %
        volt              = " V"
        watt_per_meter_squared = " W/m²"
        NONE              = ""

    [[TimeFormats]]
        day        = %X
        week       = %X %A
        month      = %x
        year       = %x
        rainyear   = %x
        current    = %x %X
        ephem_day  = %X
        ephem_year = %x %X
        alltime    = %x
        seven_day  = %X %A
        thirty_day = %x

    [[Ordinates]]
        directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, 
NW, NNW, -

    [[DegreeDays]]
        heating_base = 65, degree_F
        cooling_base = 65, degree_F

[Labels]
    hemispheres = N, S, E, W
    [[Generic]]
        barometer      = Barometer
        dewpoint       = Dew Point
        heatindex      = Heat Index
        inHumidity     = Inside Humidity
        inTemp         = Inside Temperature
        outHumidity    = Outside Humidity
        outTemp        = Outside Temperature
        radiation      = Radiation
        rain           = Rain
        rainRate       = Rain Rate
        windDir        = Wind Direction
        windGust       = Gust Speed
        windGustDir    = Gust Direction
        windSpeed      = Wind Speed
        windchill      = Wind Chill
        windgustvec    = Gust Vector
        windvec        = Wind Vector
        maxSolarRad    = Theoretical Maximum
        # the mappings for these vary depending on station hardware
        rxCheckPercent       = Signal Quality
        windBatteryStatus    = Wind Battery
        rainBatteryStatus    = Rain Battery
        outTempBatteryStatus = Remote Battery
        inTempBatteryStatus  = Console Battery
        txBatteryStatus      = UV Battery
        # mappings for the station health indicators
        cpu_user = User
        cpu_idle = Idle
        cpu_nice = Nice
        cpu_system = System
        cpu_iowait = IO
        cpu_irq = IRQ
        cpu_softirq = sIRQ
        load1 = 1 Minute
        load5 = 5 Minute
        load15 = 15 Minute
        disk_root_total = Root_Total
        disk_root_used = Root_Used
        mem_total = Memory Total
        mem_used = Used
        net_eth0_rbytes = eth0_r
        net_eth0_tbytes = eth0_t
        net_tun0_rbytes = tun0_r
        net_tun0_tbytes = tun0_t
        net_wlan0_rbytes = wlan0_r
        net_wlan0_tbytes = wlan0_t
        ups_load = UPS Load
        ups_charge = UPS Charge
        ups_voltage = UPS Voltage
        ups_time = UPS Time Remaining

[Almanac]
    moon_phases = New, Waxing Crescent, First Quarter, Waxing Gibbous, Full, 
Waning Gibbous, Last Quarter, Waning Crescent

[CheetahGenerator]
    encoding = html_entities
    [[SummaryByMonth]]
        [[[NOAA_month]]]
            encoding = strict_ascii
            template = NOAA/NOAA-YYYY-MM.txt.tmpl
    [[SummaryByYear]]
        [[[NOAA_year]]]
            encoding = strict_ascii
            template = NOAA/NOAA-YYYY.txt.tmpl
    [[ToDate]]
        [[[current]]]
            template = index.html.tmpl
        [[[history]]]
            template = history.html.tmpl
        [[[almanac]]]
            template = almanac.html.tmpl
        [[[links]]]
            template = links.html.tmpl
        [[[forecast]]]
            template = forecast.html.tmpl
            stale_age = 3570 # generate the forecast page only once per hour
        [[[RSS]]]
            template = weewx_rss.xml.tmpl
        [[[station]]]
            template = station.html.tmpl

[CopyGenerator]
    copy_once = favicon.ico, exfoliation.css, exfoliation.js, 
forecast_table.css, icons/*.png

[ImageGenerator]
    
    image_width = 720
    image_height = 196
    image_background_color = 0xffffff
    
    chart_background_color = 0xffffff
    chart_gridline_color = 0xeaeaea
    
    top_label_font_path = 
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed-Bold.ttf
    top_label_font_size = 10
    
    unit_label_font_path = 
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed.ttf
    unit_label_font_size = 10
    unit_label_font_color = 0xaaaaaa
    
    bottom_label_font_path = 
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed.ttf
    bottom_label_font_size = 10
    bottom_label_font_color = 0xaaaaaa
 
    axis_label_font_path = 
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed.ttf   
    axis_label_font_size = 10
    axis_label_font_color = 0xaaaaaa
    
    rose_label = N
    rose_label_font_path = 
/usr/share/fonts/truetype/ttf-dejavu/DejaVuSansCondensed.ttf
    rose_label_font_size  = 8
    rose_label_font_color = 0x888888
    rose_color = 0xaaaaaa

    chart_line_colors = 0x30a030, 0x90d080, 0x111a11, 0x3030a0, 0x8090d0, 
0x11111a, 0xa03030
    chart_fill_colors = 0x90d090, 0xe0dfd0, 0x515a51

    line_type = 'solid'
    marker_size = 2
    marker_type ='none'
    plot_type = line
    aggregate_type = none
    width = 1
    time_length = 86400    # 24 hours
    yscale = None, None, None
    vector_rotate = 90
    line_gap_fraction = 0.01
    daynight_day_color = 0xffffff
    daynight_night_color = 0xf6f6f8
    daynight_edge_color = 0xafefef
    bottom_label_format = %x %X

    [[day_images]]
        x_label_format = %H:%M
        time_length = 97200 # 27 hours
        show_daynight = true
        [[[daybarometer]]]
            [[[[barometer]]]]
        [[[dayrain]]]
            yscale = None, None, 0.02
            plot_type = bar
            [[[[rain]]]]
                aggregate_type = sum
                aggregate_interval = 3600
                label = Rain (hourly total)
        [[[daywind]]]
            [[[[windSpeed]]]]
            [[[[windGust]]]]
        [[[daywinddir]]]
            line_type = None
            marker_type = 'box'
            marker_size = 2
            yscale = 0.0, 360.0, 45.0
            [[[[windDir]]]]
        [[[daywindvec]]]
            [[[[windvec]]]]
                plot_type = vector
            [[[[windgustvec]]]]
                plot_type = vector
                aggregate_type = max
                aggregate_interval = 3600
        [[[daytempchill]]]
            [[[[windchill]]]]
            [[[[heatindex]]]]
        [[[dayinouttemp]]]
            [[[[outTemp]]]]
            [[[[inTemp]]]]
        [[[dayinouthum]]]
            yscale = 0, 100, 10
            [[[[outHumidity]]]]
            [[[[inHumidity]]]]
        [[[dayinouttempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
            [[[[inTemp]]]]
        [[[dayouttempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
        [[[dayouttemp]]]
            [[[[outTemp]]]]
        [[[dayouthum]]]
            yscale = 0, 100, 10
            [[[[outHumidity]]]]
        [[[dayintemp]]]
            [[[[inTemp]]]]
        [[[dayinhum]]]
            yscale = 0, 100, 10
            [[[[inHumidity]]]]
        [[[dayradiation]]]
            [[[[radiation]]]]
#            [[[[maxSolarRad]]]]
        [[[dayuv]]]
            [[[[UV]]]]
        [[[dayrx]]]
            yscale = 0, 100, 10
            [[[[rxCheckPercent]]]]
        [[[daybattery]]]
            [[[[windBatteryStatus]]]]
            [[[[rainBatteryStatus]]]]
            [[[[outTempBatteryStatus]]]]
            [[[[inTempBatteryStatus]]]]
            [[[[txBatteryStatus]]]]
        [[[dayouttemphilo]]]
            line_gap_fraction = 0.06 # 0.04 over 24 hours is 1 hour
            aggregate_interval = 1800
            [[[[outTemp]]]]
                color = 0x90d080
                aggregate_type = avg
            [[[[outTempLo]]]]
                label = ' '
                color = 0x30a030
                data_type = outTemp
                aggregate_type = min
            [[[[outTempHi]]]]
                label = ' '
                color = 0x30a030
                data_type = outTemp
                aggregate_type = max
        [[[dayintemphilo]]]
            line_gap_fraction = 0.08 # 0.04 over 24 hours is 1 hour
            aggregate_interval = 1800
            [[[[inTemp]]]]
                color = 0x90d080
                aggregate_type = avg
            [[[[inTempLo]]]]
                label = ' '
                color = 0x30a030
                data_type = inTemp
                aggregate_type = min
            [[[[inTempHi]]]]
                label = ' '
                color = 0x30a030
                data_type = inTemp
                aggregate_type = max
#        [[[daylightning]]]
#            yscale = None, None, 0.02
#            plot_type = bar
#            [[[[lightning]]]]
#                aggregate_type = sum
#                aggregate_interval = 3600
#                label = Lightning (hourly total)
#        [[[daycloudbase]]]
#            [[[[cloudbase]]]]

    [[week_images]]
        image_width = 700
        x_label_format = %d
        time_length = 604800    # == 7 days
        aggregate_type = avg
        aggregate_interval = 3600
        show_daynight = true
        [[[weekbarometer]]]
            [[[[barometer]]]]
        [[[weekrain]]]
            yscale = None, None, 0.02
            plot_type = bar
            [[[[rain]]]]
                aggregate_type = sum
                aggregate_interval = 14400
                label = Rain (4-hour total)
        [[[weekwind]]]
            [[[[windSpeed]]]]
            [[[[windGust]]]]
                aggregate_type = max
        [[[weekwinddir]]]
            line_type = None
            marker_type = 'box'
            marker_size = 2
            yscale = 0.0, 360.0, 45.0
            [[[[windDir]]]]
        [[[weekwindvec]]]
            [[[[windvec]]]]
                plot_type = vector
            [[[[windgustvec]]]]
                plot_type = vector
                aggregate_type = max
        [[[weektempchill]]]
            [[[[windchill]]]]
            [[[[heatindex]]]]
        [[[weekinouttemp]]]
            [[[[outTemp]]]]
            [[[[inTemp]]]]
        [[[weekinouthum]]]
            yscale = 0, 100, 10
            [[[[outHumidity]]]]
            [[[[inHumidity]]]]
        [[[weekinouttempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
            [[[[inTemp]]]]
        [[[weekouttempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
        [[[weekouttemp]]]
            [[[[outTemp]]]]
        [[[weekouthum]]]
            yscale = 0, 100, 10
            [[[[outHumidity]]]]
        [[[weekradiation]]]
            [[[[radiation]]]]
#            [[[[maxSolarRad]]]]
        [[[weekuv]]]
            [[[[UV]]]]
        [[[weekrx]]]
            yscale = 0, 100, 10
            [[[[rxCheckPercent]]]]
        [[[weekbattery]]]
            [[[[windBatteryStatus]]]]
            [[[[rainBatteryStatus]]]]
            [[[[outTempBatteryStatus]]]]
            [[[[inTempBatteryStatus]]]]
            [[[[txBatteryStatus]]]]
#        [[[weeklightning]]]
#            yscale = None, None, 0.02
#            plot_type = bar
#            [[[[lightning]]]]
#                aggregate_type = sum
#                aggregate_interval = 3600
#                label = Lightning (hourly total)
#        [[[weekcloudbase]]]
#            [[[[cloudbase]]]]

    [[month_images]]
        image_width = 700
        x_label_format = %d
        time_length = 2592000    # == 30 days
        aggregate_type = avg
        aggregate_interval = 10800    # == 3 hours
        [[[monthbarometer]]]
            [[[[barometer]]]]
        [[[monthrain]]]
            yscale = None, None, 0.02
            plot_type = bar
            [[[[rain]]]]
                aggregate_type = sum
                aggregate_interval = 86400
                label = Rain (daily total)
        [[[monthwind]]]
            [[[[windSpeed]]]]
            [[[[windGust]]]]
                aggregate_type = max
        [[[monthwinddir]]]
            line_type = None
            marker_type = 'box'
            marker_size = 2
            yscale = 0.0, 360.0, 45.0
            [[[[windDir]]]]
        [[[monthwindvec]]]
            [[[[windvec]]]]
                plot_type = vector
            [[[[windgustvec]]]]
                plot_type = vector
                aggregate_type = max
        [[[monthtempchill]]]
            [[[[windchill]]]]
            [[[[heatindex]]]]
        [[[monthinouttemp]]]
            [[[[outTemp]]]]
            [[[[inTemp]]]]
        [[[monthinouthum]]]
            yscale = 0, 100, 10
            [[[[outHumidity]]]]
            [[[[inHumidity]]]]
        [[[monthinouttempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
            [[[[inTemp]]]]
        [[[monthouttempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
        [[[monthouttemp]]]
            [[[[outTemp]]]]
        [[[monthouthum]]]
            yscale = 0, 100, 10
            [[[[outHumidity]]]]
        [[[monthradiation]]]
            [[[[radiation]]]]
#            [[[[maxSolarRad]]]]
        [[[monthuv]]]
            [[[[UV]]]]
        [[[monthrx]]]
            yscale = 0, 100, 10
            [[[[rxCheckPercent]]]]
        [[[monthbattery]]]
            [[[[windBatteryStatus]]]]
            [[[[rainBatteryStatus]]]]
            [[[[outTempBatteryStatus]]]]
            [[[[inTempBatteryStatus]]]]
            [[[[txBatteryStatus]]]]
#        [[[monthlightning]]]
#            plot_type = bar
#            [[[[lightning]]]]
#                aggregate_type = sum
#                aggregate_interval = 86400
#                label = Lightning (daily total)
#        [[[monthcloudbase]]]
#            [[[[cloudbase]]]]

    [[year_images]]
        image_width = 700
        x_label_format = %b
        time_length = 31536000    # == 365 days
        aggregate_type = avg
        aggregate_interval = 86400
        [[[yearbarometer]]]
            [[[[barometer]]]]
        [[[yearrain]]]
            yscale = None, None, 0.02
            plot_type = bar
            [[[[rain]]]]
                aggregate_type = sum
                aggregate_interval = 604800    # == 1 week
                label = Rain (weekly total)
        [[[yearwind]]]
            [[[[windSpeed]]]]
            [[[[windGust]]]]
                aggregate_type = max
        [[[yearwinddir]]]
            line_type = None
            marker_type = 'box'
            marker_size = 2
            yscale = 0.0, 360.0, 45.0
            [[[[windDir]]]]
        [[[yearwindvec]]]
            [[[[windvec]]]]
                plot_type = vector
            [[[[windgustvec]]]]
                plot_type = vector
                aggregate_type = max
        [[[yeartempchill]]]
            [[[[windchill]]]]
            [[[[heatindex]]]]
        [[[yearinouttemp]]]
            [[[[outTemp]]]]
            [[[[inTemp]]]]
        [[[yearinouthum]]]
            yscale = 0, 100, 10
            [[[[outHumidity]]]]
            [[[[inHumidity]]]]
        [[[yearinouttempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
            [[[[inTemp]]]]
        [[[yearouttempdew]]]
            [[[[outTemp]]]]
            [[[[dewpoint]]]]
        [[[yearouttemp]]]
            [[[[outTemp]]]]
        [[[yearouthum]]]
            yscale = 0, 100, 10
            [[[[outHumidity]]]]
        [[[yearradiation]]]
            [[[[radiation]]]]
#            [[[[maxSolarRad]]]]
        [[[yearuv]]]
            [[[[UV]]]]
        [[[yearrx]]]
            yscale = 0, 100, 10
            [[[[rxCheckPercent]]]]
        [[[yearbattery]]]
            [[[[windBatteryStatus]]]]
            [[[[rainBatteryStatus]]]]
            [[[[outTempBatteryStatus]]]]
            [[[[inTempBatteryStatus]]]]
            [[[[txBatteryStatus]]]]
#        [[[yearlightning]]]
#            plot_type = bar
#            [[[[lightning]]]]
#                aggregate_type = sum
#                aggregate_interval = 604800    # == 1 week
#                label = Lightning (weekly total)
#        [[[yearcloudbase]]]
#            [[[[cloudbase]]]]

# these are used by the station health page.  they generate plots using data
# from the computer monitor extension (cmon).
#
#    [[cmon_day_images]]
#        data_binding = cmon_binding
#        x_label_format = %H:%M
#        time_length = 97200 # 27 hours
#        show_daynight = true
#        [[[daycpu]]]
#            [[[[cpu_user]]]]
#            [[[[cpu_idle]]]]
#            [[[[cpu_nice]]]]
#            [[[[cpu_system]]]]
#            [[[[cpu_iowait]]]]
#            [[[[cpu_irq]]]]
#            [[[[cpu_softirq]]]]
#        [[[dayload]]]
#            yscale = 0, 1, 0.25
#            [[[[load1]]]]
#            [[[[load5]]]]
#            [[[[load15]]]]
#        [[[daydisk]]]
#            yscale = 0, None, None
#            [[[[disk_root_total]]]]
#            [[[[disk_root_used]]]]
#        [[[daymem]]]
#            [[[[mem_total]]]]
#            [[[[mem_used]]]]
#        [[[daynet]]]
#            [[[[net_eth0_rbytes]]]]
#            [[[[net_eth0_tbytes]]]]
#        [[[dayups]]]
#            yscale = 0, 100, 25
#            [[[[ups_load]]]]
#            [[[[ups_charge]]]]
#        [[[dayupsvoltage]]]
#            yscale = 0, 30, 5
#            [[[[ups_voltage]]]]
#        [[[dayupstime]]]
#            yscale = 0, 180, 30
#            [[[[ups_time]]]]

#    [[cmon_week_images]]
#        data_binding = cmon_binding
#        image_width = 700
#        x_label_format = %d
#        time_length = 604800    # == 7 days
#        aggregate_type = avg
#        aggregate_interval = 3600
#        show_daynight = true
#        [[[weekcpu]]]
#            [[[[cpu_user]]]]
#            [[[[cpu_idle]]]]
#            [[[[cpu_nice]]]]
#            [[[[cpu_system]]]]
#            [[[[cpu_iowait]]]]
#            [[[[cpu_irq]]]]
#            [[[[cpu_softirq]]]]
#        [[[weekload]]]
#            yscale = 0, 1, 0.25
#            [[[[load1]]]]
#            [[[[load5]]]]
#            [[[[load15]]]]
#        [[[weekdisk]]]
#            yscale = 0, None, None
#            [[[[disk_root_total]]]]
#            [[[[disk_root_used]]]]
#        [[[weekmem]]]
#            [[[[mem_total]]]]
#            [[[[mem_used]]]]
#        [[[weeknet]]]
#            [[[[net_eth0_rbytes]]]]
#            [[[[net_eth0_tbytes]]]]
#        [[[weekups]]]
#            yscale = 0, 100, 25
#            [[[[ups_load]]]]
#            [[[[ups_charge]]]]
#        [[[weekupsvoltage]]]
#            yscale = 0, 30, 5
#            [[[[ups_voltage]]]]
#        [[[weekupstime]]]
#            yscale = 0, 180, 30
#            [[[[ups_time]]]]

#    [[cmon_month_images]]
#        data_binding = cmon_binding
#        image_width = 700
#        x_label_format = %d
#        time_length = 2592000    # == 30 days
#        aggregate_type = avg
#        aggregate_interval = 10800    # == 3 hours
#        [[[monthcpu]]]
#            [[[[cpu_user]]]]
#            [[[[cpu_idle]]]]
#            [[[[cpu_nice]]]]
#            [[[[cpu_system]]]]
#            [[[[cpu_iowait]]]]
#            [[[[cpu_irq]]]]
#            [[[[cpu_softirq]]]]
#        [[[monthload]]]
#            yscale = 0, 1, 0.25
#            [[[[load1]]]]
#            [[[[load5]]]]
#            [[[[load15]]]]
#        [[[monthdisk]]]
#            yscale = 0, None, None
#            [[[[disk_root_total]]]]
#            [[[[disk_root_used]]]]
#        [[[monthmem]]]
#            [[[[mem_total]]]]
#            [[[[mem_used]]]]
#        [[[monthnet]]]
#            [[[[net_eth0_rbytes]]]]
#            [[[[net_eth0_tbytes]]]]
#        [[[monthups]]]
#            yscale = 0, 100, 25
#            [[[[ups_load]]]]
#            [[[[ups_charge]]]]
#        [[[monthupsvoltage]]]
#            yscale = 0, 30, 5
#            [[[[ups_voltage]]]]
#        [[[monthupstime]]]
#            yscale = 0, 180, 30
#            [[[[ups_time]]]]

#    [[cmon_year_images]]
#        data_binding = cmon_binding
#        image_width = 700
#        x_label_format = %b
#        time_length = 31536000    # == 365 days
#        aggregate_type = avg
#        aggregate_interval = 86400
#        [[[yearcpu]]]
#            [[[[cpu_user]]]]
#            [[[[cpu_idle]]]]
#            [[[[cpu_nice]]]]
#            [[[[cpu_system]]]]
#            [[[[cpu_iowait]]]]
#            [[[[cpu_irq]]]]
#            [[[[cpu_softirq]]]]
#        [[[yearload]]]
#            yscale = 0, 1, 0.25
#            [[[[load1]]]]
#            [[[[load5]]]]
#            [[[[load15]]]]
#        [[[yeardisk]]]
#            yscale = 0, None, None
#            [[[[disk_root_total]]]]
#            [[[[disk_root_used]]]]
#        [[[yearmem]]]
#            [[[[mem_total]]]]
#            [[[[mem_used]]]]
#        [[[yearnet]]]
#            [[[[net_eth0_rbytes]]]]
#            [[[[net_eth0_tbytes]]]]
#        [[[yearups]]]
#            yscale = 0, 100, 25
#            [[[[ups_load]]]]
#            [[[[ups_charge]]]]
#        [[[yearupsvoltage]]]
#            yscale = 0, 30, 5
#            [[[[ups_voltage]]]]
#        [[[yearupstime]]]
#            yscale = 0, 180, 30
#            [[[[ups_time]]]]

[Generators]
        generator_list = weewx.cheetahgenerator.CheetahGenerator, 
weewx.imagegenerator.ImageGenerator, weewx.reportengine.CopyGenerator
# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2015 Tom Keffer <[email protected]>
# See the file LICENSE.txt for your rights.

##############################################################################

# This section is for general configuration information.

# Set to 1 for extra debug info, otherwise comment it out or set to zero
debug = 0

# Root directory of the weewx data file hierarchy for this station
WEEWX_ROOT = /

# How long to wait before timing out a socket (FTP, HTTP) connection
socket_timeout = 20

# Do not modify this. It is used when installing and updating weewx.
version = 3.6.1

##############################################################################

#   This section is for information about the station.

[Station]
    
    # Description of the station location
    location = "Littleton, CO"
    
    # Latitude and longitude in decimal degrees
    latitude = 39.62689
    longitude = -105.08258
    
    # Altitude of the station, with unit it is in. This is downloaded from
    # from the station if the hardware supports it.
    altitude = 5562, foot
    
    # Set to type of station hardware. There must be a corresponding stanza
    # in this file with a 'driver' parameter indicating the driver to be used.
    station_type = Vantage
    
    # If you have a website, you may specify an URL
    #station_url = http://www.example.com
    
    # The start of the rain year (1=January; 10=October, etc.). This is
    # downloaded from the station if the hardware supports it.
    rain_year_start = 1
    
    # Start of week (0=Monday, 6=Sunday)
    week_start = 6

##############################################################################

[AcuRite]
    # This section is for AcuRite weather stations.
    
    # The station model, e.g., 'AcuRite 01025' or 'AcuRite 02032C'
    model = AcuRite 02032C
    
    use_constants = False
    
    # The driver to use:
    driver = weewx.drivers.acurite

##############################################################################

[CC3000]
    # This section is for RainWise MarkIII weather stations and CC3000 logger.
    
    # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0
    port = /dev/ttyUSB0
    
    # The station model, e.g., CC3000 or CC3000R
    model = RainWise
    
    # The driver to use:
    driver = weewx.drivers.cc3000

##############################################################################

[Vantage]
    # This section is for the Davis Vantage series of weather stations.
    
    # Connection type: serial or ethernet 
    #  serial (the classic VantagePro)
    #  ethernet (the WeatherLinkIP)
    type = serial
    
    # If the connection type is serial, a port must be specified:
    #   Debian, Ubuntu, Redhat, Fedora, and SuSE:
    #     /dev/ttyUSB0 is a common USB port name
    #     /dev/ttyS0   is a common serial port name
    #   BSD:
    #     /dev/cuaU0   is a common serial port name
    port = /dev/ttyUSB0
    
    # If the connection type is ethernet, an IP Address/hostname is required:
    host = 1.2.3.4
    
    ######################################################
    # The rest of this section rarely needs any attention. 
    # You can safely leave it "as is."
    ######################################################
    
    # Serial baud rate (usually 19200)
    baudrate = 19200
    
    # TCP port (when using the WeatherLinkIP)
    tcp_port = 22222
    
    # TCP send delay (when using the WeatherLinkIP):
    tcp_send_delay = 0.5
    
    # The id of your ISS station (usually 1). If you use a wind meter connected
    # to a anemometer transmitter kit, use its id
    iss_id = 1
    
    # How long to wait for a response from the station before giving up (in
    # seconds; must be greater than 2)
    timeout = 4
    
    # How long to wait before trying again (in seconds)
    wait_before_retry = 1.2
    
    # How many times to try before giving up:
    max_tries = 4
    
    # The driver to use:
    driver = weewx.drivers.vantage

##############################################################################

#   This section is for uploading data to Internet sites

[StdRESTful]
    
    [[StationRegistry]]
        # To register this weather station with weewx, set this to true
        register_this_station = false
    
    [[AWEKAS]]
        # This section is for configuring posts to AWEKAS.
        
        # If you wish to do this, set the option 'enable' to true,
        # and specify a username and password.
        enable = false
        username = replace_me
        password = replace_me
    
    [[CWOP]]
        # This section is for configuring posts to CWOP.
        
        # If you wish to do this, set the option 'enable' to true,
        # and specify the station ID (e.g., CW1234).
        enable = false
        station = replace_me
    
    # If this is an APRS (radio amateur) station, uncomment
    # the following and replace with a passcode (e.g., 12345).
    #passcode = replace_me (APRS stations only)
    
    [[PWSweather]]
        # This section is for configuring posts to PWSweather.com.
        
        # If you wish to do this, set the option 'enable' to true,
        # and specify a station and password.
        enable = false
        station = replace_me
        password = replace_me
    
    [[WOW]]
        # This section is for configuring posts to WOW.
        
        # If you wish to do this, set the option 'enable' to true,
        # and specify a station and password.
        enable = false
        station = replace_me
        password = replace_me
    
    [[Wunderground]]
        # This section is for configuring posts to the Weather Underground.
        
        # If you wish to do this, set the option 'enable' to true,
        # and specify a station (e.g., 'KORHOODR3') and password.
        enable = true
        station = KCOLITTL149
        password = cr339mYcund
        
        # Set the following to True to have weewx use the WU "Rapidfire"
        # protocol. Not all hardware can support it. See the User's Guide.
        rapidfire = True

##############################################################################

#   This section specifies what reports, using which skins, to generate.

[StdReport]
    
    # Where the skins reside, relative to WEEWX_ROOT
    SKIN_ROOT = /etc/weewx/skins
    
    # Where the generated reports should go, relative to WEEWX_ROOT
    HTML_ROOT = /var/www/weewx
    
    # The database binding indicates which data should be used in reports.
    data_binding = wx_binding
    
    # Each of the following subsections defines a report that will be run.
    
    [[StandardReport]]
        # See the customizing guide to change the units, plot types and line
        # colors, modify the fonts, display additional sensor data, and other
        # customizations. Many of those changes can be made here by overriding
        # parameters, or by modifying templates within the skin itself.
        
        # The StandardReport uses the 'Standard' skin, which contains the
        # images, templates and plots for the report.
        skin = exfoliation
        [[[Units]]]
            [[[[Groups]]]]
                group_altitude = foot
                group_speed2 = mile_per_hour2
                group_pressure = inHg
                group_rain = inch
                group_rainrate = inch_per_hour
                group_temperature = degree_F
                group_degree_day = degree_F_day
                group_speed = mile_per_hour
    [[exfoliation]]
        HTML_ROOT = /var/www/weewx/exfoliation
        skin = exfoliation
        [[[CheetahGenerator]]]
            search_list_extensions = user.forecast.ForecastVariables
    
    [[forecast]]
        HTML_ROOT = /var/www/weewx/forecast
        skin = forecast
        [[[Extras]]]
            forecast_table = /var/www/weewx/forecast/forecast_table.inc
    
    [[FTP]]
        # FTP'ing the results to a webserver is treated as just another report,
        # albeit one with an unusual report generator!
        skin = Ftp
        
        # If you wish to use FTP, uncomment and fill out the next four lines.
        #user = replace with the ftp username
        #password = replace with the ftp password
        #server = replace with the ftp server name, e.g, www.threefools.org
        #path = replace with the ftp destination directory (e.g., /weather)
        
        # Set to True for a secure FTP (SFTP) connection. Not all servers
        # support this.
        secure_ftp = False
        
        # To upload files from something other than what HTML_ROOT is set
        # to above, specify a different HTML_ROOT here.
        #HTML_ROOT = /var/www/weewx
        
        # Most FTP servers use port 21
        port = 21
        
        # Set to 1 to use passive mode, zero for active mode
        passive = 1
    
    [[RSYNC]]
        # rsync'ing to a webserver is treated as just another report
        skin = Rsync
        
        # If you wish to use rsync, you must configure passwordless ssh using
        # public/private key authentication from the user account that weewx
        # runs as to the user account on the remote machine where the files
        # will be copied.
        #
        # The following three lines determine where files will be sent.
        #server = replace with the rsync server name, e.g, www.threefools.org
        #path = replace with the rsync destination directory (e.g., /weather)
        #user = replace with the rsync username
        
        # Rsync can be configured to remove files from the remote server if
        # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you
        # make a mistake in the remote path, you could could unintentionally
        # cause unrelated files to be deleted. Set to 1 to enable remote file
        # deletion, zero to allow files to accumulate remotely.
        delete = 0

##############################################################################

#   This service acts as a filter, converting the unit system coming from
#   the hardware to a unit system in the database.

[StdConvert]
    
    # The target_unit affects only the unit system in the database. Once
    # chosen it cannot be changed without converting the entire database.
    # Modification of target_unit after starting weewx will result in
    # corrupt data - the database will contain a mix of US and METRIC data.
    #
    # The value of target_unit does not affect the unit system for
    # reporting - reports can display US, Metric, or any combination of units.
    #
    # In most cases, target_unit should be left as the default: US
    #
    # In particular, those migrating from a standard wview installation
    # should use US since that is what the wview database contains.
    
    # DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING!
    target_unit = US    # Options are 'US', 'METRICWX', or 'METRIC'

##############################################################################

#   This section can adjust data using calibration expressions.

[StdCalibrate]
    
    [[Corrections]]
        # For each type, an arbitrary calibration expression can be given. 
        # It should be in the units defined in the StdConvert section.
        # Example:
        foo = foo + 0.2

##############################################################################

#   This section is for quality control checks. If units are not specified,
#   values must be in the units defined in the StdConvert section.

[StdQC]
    
    [[MinMax]]
        barometer = 23, 32.5, inHg
        outTemp = -40, 120, degree_F
        inTemp = 10, 120, degree_F
        outHumidity = 0, 100
        inHumidity = 0, 100
        windSpeed = 0, 120, mile_per_hour
        pressure = 23, 34.5, inHg

##############################################################################

#   This section controls the origin of derived values.

[StdWXCalculate]
    [[Calculations]]
        # Derived quantities are calculated by this service. Possible values 
are:
        #  hardware        - use the value provided by hardware
        #  software        - use the value calculated by weewx
        #  prefer_hardware - use value provide by hardware if available,
        #                      otherwise use value calculated by weewx
        
        pressure = prefer_hardware
        barometer = prefer_hardware
        altimeter = prefer_hardware
        windchill = prefer_hardware
        heatindex = prefer_hardware
        dewpoint = prefer_hardware
        inDewpoint = prefer_hardware
        rainRate = prefer_hardware

##############################################################################

#   For hardware that supports it, this section controls how often the
#   onboard clock gets updated.

[StdTimeSynch]
    
    # How often to check the weather station clock for drift (in seconds)
    clock_check = 14400
    
    # How much it can drift before we will correct it (in seconds)
    max_drift = 5

##############################################################################

#   This section is for configuring the archive service.

[StdArchive]
    
    # If the station hardware supports data logging then the archive interval
    # will be downloaded from the station. Otherwise, specify it (in seconds).
    archive_interval = 300
    
    # How long to wait (in seconds) before processing new archive data. Must
    # be greater than zero.
    archive_delay = 15
    
    # If possible, new archive records are downloaded from the station
    # hardware. If the hardware does not support this, then new archive
    # records will be generated in software.
    # Set the following to "software" to force software record generation.
    record_generation = hardware
    
    # Whether to include LOOP data in hi/low statistics
    loop_hilo = True
    
    # The data binding used to save archive records
    data_binding = wx_binding

##############################################################################

#   This section binds a data store to a database.

[DataBindings]
    
    [[wx_binding]]
        # The database must match one of the sections in [Databases].
        # This is likely to be the only option you would want to change.
        database = archive_sqlite
        # The name of the table within the database
        table_name = archive
        # The manager handles aggregation of data for historical summaries
        manager = weewx.wxmanager.WXDaySummaryManager
        # The schema defines the structure of the database.
        # It is *only* used when the database is created.
        schema = schemas.wview.schema
    [[forecast_binding]]
        database = forecast_sqlite

##############################################################################

#   This section defines various databases.

[Databases]
    
    # A SQLite database is simply a single file
    [[archive_sqlite]]
        database_type = SQLite
        database_name = weewx.sdb
    
    # MySQL
    [[archive_mysql]]
        database_type = MySQL
        database_name = weewx
    [[forecast_sqlite]]
        database_name = forecast.sdb
        database_type = SQLite

##############################################################################

#   This section defines defaults for the different types of databases.

[DatabaseTypes]
    
    # Defaults for SQLite databases
    [[SQLite]]
        driver = weedb.sqlite
        # Directory in which the database files are located
        SQLITE_ROOT = /var/lib/weewx
    
    # Defaults for MySQL databases
    [[MySQL]]
        driver = weedb.mysql
        # The host where the database is located
        host = localhost
        # The user name for logging in to the host
        user = weewx
        # The password for the user name
        password = weewx

##############################################################################

#   This section configures the internal weewx engine.

[Engine]
    
    [[Services]]
        # This section specifies the services that should be run. They are
        # grouped by type, and the order of services within each group
        # determines the order in which the services will be run.
        prep_services = weewx.engine.StdTimeSynch
        data_services = ,
        process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, 
weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
        archive_services = weewx.engine.StdArchive, 
user.forecast.ZambrettiForecast, user.forecast.NWSForecast, 
user.forecast.WUForecast, user.forecast.OWMForecast, 
user.forecast.UKMOForecast, user.forecast.AerisForecast, 
user.forecast.WWOForecast, user.forecast.XTideForecast
        restful_services = weewx.restx.StdStationRegistry, 
weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, 
weewx.restx.StdWOW, weewx.restx.StdAWEKAS
        report_services = weewx.engine.StdPrint, weewx.engine.StdReport

##############################################################################

# Options for extension 'forecast'
[Forecast]
    data_binding = forecast_binding
    [[OWM]]
        api_key = INSERT_OWM_API_KEY_HERE
    [[WWO]]
        api_key = INSERT_WWO_API_KEY_HERE
    [[WU]]
        api_key = INSERT_WU_API_KEY_HERE
    [[NWS]]
        lid = "INSERT_LOCATION_ID_HERE (e.g., MAZ014)"
        foid = "INSERT_FORECAST_OFFICE_ID_HERE (e.g., BOX)"
    [[UKMO]]
        api_key = INSERT_UKMO_API_KEY_HERE
        location = INSERT_UK_LOCATION_HERE
    [[XTide]]
        location = "INSERT_LOCATION_HERE (e.g., Boston)"
    [[Zambretti]]
        hemisphere = NORTH
    [[Aeris]]
        client_secret = INSERT_AERIS_CLIENT_SECRET_HERE
        client_id = INSERT_AERIS_CLIENT_ID_HERE

Reply via email to