Selaa lähdekoodia

Major update mainly to graphs

Added last Month data from a year ago to month.html
Added last year data to year.html
Added last year rain total and high rain rate to year.html

Summary.html 
Alltime records table: Change Max to Highest and min to lowest

Page Graphs Update
Chart lines and markers have thicker width.

Current (index.html):
Wind gusts and direction uses markers instead of a line.
Combined Inside and Outside humidity graphs

Week:
Wind gusts and direction uses markers instead of a line.
Combined Inside and Outside humidity graphs

Month:
Wind gusts and direction uses markers instead of a line.
Combined Inside and Outside humidity graphs
Line graph for Max wind speed, Average wind speed, wind gust

Year:
Combined Inside and Outside humidity graphs
Added dewpoint to high and low temperature graphic.
Change wind direction from line to dots.
Josh Smith 8 vuotta sitten
vanhempi
commit
d1768d39b2
5 muutettua tiedostoa jossa 931 lisäystä ja 821 poistoa
  1. 1 2
      index.html.tmpl
  2. 34 35
      month.html.tmpl
  3. 851 778
      skin.conf
  4. 1 2
      week.html.tmpl
  5. 44 4
      year.html.tmpl

+ 1 - 2
index.html.tmpl

@@ -429,10 +429,9 @@
                     <img src="daywinddir.png" alt="Hi Wind" />
 		    <img src="daywindvec.png" alt="Wind Vector" />
                     <img src="daytempchill.png" alt="heatchill" />
-		    <img src="dayouthumid.png" alt="Outside Humidity" />
 		    <img src="daybarometer.png" alt="barometer"/>
                     <img src="dayinside.png" alt="Inside" />
-		    <img src="dayinhumid.png" alt="Inside Humidity" />
+		    <img src="dayinhumid.png" alt="Inside/Outside Humidity" />
                     #if $day.radiation.has_data
                     <img src="dayradiation.png" alt="Radiation" />
                     #end if

+ 34 - 35
month.html.tmpl

@@ -128,43 +128,43 @@
                     </table>
                 </div>
 
-                <div class="card" >
-                    <h1><i class="fa fa-calendar-o m-rot" ></i> Calendar Year</h1>
+		<div class="card" >
+                    <h1><i class="fa fa-calendar m-orange" ></i> Last $month($months_ago=12).dateTime.format("%B %Y")</h1>
                     <table class="tablespacer">
-                        <tr><td>High Temperature</td><td>$year.outTemp.max</td><td>$year.outTemp.maxtime</td></tr>
-                        <tr><td>Low Temperature</td><td>$year.outTemp.min</td><td>$year.outTemp.mintime</td></tr>
-                        <tr><td>High Heat Index</td><td>$year.heatindex.max</td><td>$year.heatindex.maxtime</td></tr>
-                        <tr><td>Low Wind Chill</td><td>$year.windchill.min</td><td>$year.windchill.mintime</td></tr>
-                        <tr><td>High Dewpoint</td><td>$year.dewpoint.max</td><td>$year.dewpoint.maxtime</td></tr>
-                        <tr><td>Low Dewpoint</td><td>$year.dewpoint.min</td><td>$year.dewpoint.mintime</td></tr>
-                        <tr><td>High Humidity</td><td>$year.outHumidity.max</td><td>$year.outHumidity.maxtime</td></tr>
-                        <tr><td>Low Humidity</td><td>$year.outHumidity.min</td><td>$year.outHumidity.mintime</td></tr>
-                        <tr><td>High Barometer</td><td>$year.barometer.max</td><td>$year.barometer.maxtime</td></tr>
-                        <tr><td>Low Barometer</td><td>$year.barometer.min</td><td>$year.barometer.mintime</td></tr>
-                        <tr><td>Rain Total</td><td>$year.rain.sum</td><td></td></tr>
-                        <tr><td>High Rain Rate</td><td>$year.rainRate.max</td><td>$year.rainRate.maxtime</td></tr>
-                        <tr><td>High Wind Speed</td><td>$year.wind.max <br>$year.wind.gustdir</td><td>$year.wind.maxtime</td></tr>
-                        <tr><td>Average Wind</td><td>$year.wind.avg</td><td></td></tr>
-                        <tr><td>RMS Wind</td><td>$year.wind.rms</td><td></td></tr>
-                        <tr><td>Vector Average Speed</td><td>$year.wind.vecavg</td><td></td></tr>
-                        <tr><td>Vector Average Direction</td><td>$year.wind.vecdir</td><td></td></tr>
-                        <tr><td>High Inside Temperature</td><td>$year.inTemp.max</td><td>$year.inTemp.maxtime</td></tr>
-                        <tr><td>Low Inside Temperature</td><td>$year.inTemp.min</td><td>$year.inTemp.mintime</td></tr>
-                        #if $year.extraTemp1.has_data
-                        <tr><td>High Pond Temp</td><td>$year.extraTemp1.max</td><td>$year.extraTemp1.maxtime</td></tr>
-                        <tr><td>Low Pond Temp</td><td>$year.extraTemp1.min</td><td>$year.extraTemp1.mintime</td></tr>
+                        <tr><td>High Temperature</td><td>$month($months_ago=12).outTemp.max</td><td>$month($months_ago=12).outTemp.maxtime</td></tr>
+                        <tr><td>Low Temperature</td><td>$month($months_ago=12).outTemp.min</td><td>$month($months_ago=12).outTemp.mintime</td></tr>
+                        <tr><td>High Heat Index</td><td>$month($months_ago=12).heatindex.max</td><td>$month($months_ago=12).heatindex.maxtime</td></tr>
+                        <tr><td>Low Wind Chill</td><td>$month($months_ago=12).windchill.min</td><td>$month($months_ago=12).windchill.mintime</td></tr>
+                        <tr><td>High Dewpoint</td><td>$month($months_ago=12).dewpoint.max</td><td>$month($months_ago=12).dewpoint.maxtime</td></tr>
+                        <tr><td>Low Dewpoint</td><td>$month($months_ago=12).dewpoint.min</td><td>$month($months_ago=12).dewpoint.mintime</td></tr>
+                        <tr><td>High Humidity</td><td>$month($months_ago=12).outHumidity.max</td><td>$month($months_ago=12).outHumidity.maxtime</td></tr>
+                        <tr><td>Low Humidity</td><td>$month($months_ago=12).outHumidity.min</td><td>$month($months_ago=12).outHumidity.mintime</td></tr>
+                        <tr><td>High Barometer</td><td>$month($months_ago=12).barometer.max</td><td>$month($months_ago=12).barometer.maxtime</td></tr>
+                        <tr><td>Low Barometer</td><td>$month($months_ago=12).barometer.min</td><td>$month($months_ago=12).barometer.mintime</td></tr>
+                        <tr><td>Rain Total</td><td>$month($months_ago=12).rain.sum</td><td></td></tr>
+                        <tr><td>High Rain Rate</td><td>$month($months_ago=12).rainRate.max</td><td>$month($months_ago=12).rainRate.maxtime</td></tr>
+                        <tr><td>High Wind Speed</td><td>$month($months_ago=12).wind.max <br>$month($months_ago=12).wind.gustdir</td><td>$month($months_ago=12).wind.maxtime</td></tr>
+                        <tr><td>Average Wind</td><td>$month($months_ago=12).wind.avg</td><td></td></tr>
+                        <tr><td>RMS Wind</td><td>$month($months_ago=12).wind.rms</td><td></td></tr>
+                        <tr><td>Vector Average Speed</td><td>$month($months_ago=12).wind.vecavg</td><td></td></tr>
+                        <tr><td>Vector Average Direction</td><td>$month($months_ago=12).wind.vecdir</td><td></td></tr>
+                        <tr><td>High Inside Temperature</td><td>$month($months_ago=12).inTemp.max</td><td>$month($months_ago=12).inTemp.maxtime</td></tr>
+                        <tr><td>Low Inside Temperature</td><td>$month($months_ago=12).inTemp.min</td><td>$month($months_ago=12).inTemp.mintime</td></tr>
+                        #if $month($months_ago=12).extraTemp1.has_data
+                        <tr><td>High Pond Temp</td><td>$month($months_ago=12).extraTemp1.max</td><td>$month($months_ago=12).extraTemp1.maxtime</td></tr>
+                        <tr><td>Low Pond Temp</td><td>$month($months_ago=12).extraTemp1.min</td><td>$month($months_ago=12).extraTemp1.mintime</td></tr>
                         #end if
-                        #if $year.UV.has_data
-                        <tr><td>High UV</td><td>$year.UV.max</td><td>$year.UV.maxtime</td></tr>
-                        <tr><td>Low UV</td><td>$year.UV.min</td><td>$year.UV.mintime</td></tr>
+                        #if $month($months_ago=12).UV.has_data
+                        <tr><td>High UV</td><td>$month($months_ago=12).UV.max</td><td>$month($months_ago=12).UV.maxtime</td></tr>
+                        <tr><td>Low UV</td><td>$month($months_ago=12).UV.min</td><td>$month($months_ago=12).UV.mintime</td></tr>
                         #end if
-                        #if $year.ET.has_data and $year.ET.sum.raw >0.0
-                        <tr><td>High ET</td><td>$year.ET.max</td><td>$year.ET.maxtime</td></tr>
-                        <tr><td>Low ET</td><td>$year.ET.min</td><td>$year.ET.mintime</td></tr>
+                        #if $month($months_ago=12).ET.has_data and $month.ET.sum.raw >0.0
+                        <tr><td>High ET</td><td>$month($months_ago=12).ET.max</td><td>$month($months_ago=12).ET.maxtime</td></tr>
+                        <tr><td>Low ET</td><td>$month($months_ago=12).ET.min</td><td>$month($months_ago=12).ET.mintime</td></tr>
                         #end if
-                        #if $year.radiation.has_data
-                        <tr><td>High Radiation</td><td>$year.radiation.max</td><td>$year.radiation.maxtime</td></tr>
-                        <tr><td>Low Radiation</td><td>$year.radiation.min</td><td>$year.radiation.mintime</td></tr>
+                        #if $month($months_ago=12).radiation.has_data
+                        <tr><td>High Radiation</td><td>$month($months_ago=12).radiation.max</td><td>$month($months_ago=12).radiation.maxtime</td></tr>
+                        <tr><td>Low Radiation</td><td>$month($months_ago=12).radiation.min</td><td>$month($months_ago=12).radiation.mintime</td></tr>
                         #end if
                     </table>
                 </div>
@@ -182,10 +182,9 @@
                     <img src="monthwinddir.png" alt="Hi Wind" />
                     <img src="monthwindvec.png" alt="Wind Vector" />
 		    <img src="monthtempchill.png" alt="heatchill" />
-		    <img src="monthouthumid.png" alt="Outside Humidity" />
 		    <img src="monthbarometer.png" alt="barometer"/>
 		    <img src="monthinside.png" alt="Inside" />
-		    <img src="monthinhumid.png" alt="Inside Humidity" />
+		    <img src="monthinhumid.png" alt="Inside/Outside Humidity" />
                     #if $month.UV.has_data
                     <img src="monthuv.png" alt="UV Index" />
                     #end if

+ 851 - 778
skin.conf

@@ -1,778 +1,851 @@
-###############################################################################
-# $Id: skin.conf 2749 2014-11-29 18:15:24Z tkeffer $                          #
-# Copyright (c) 2010 Tom Keffer <tkeffer@gmail.com>                           #
-# SOFA SKIN (c) 2015 Sven Reifschneider <hello@blauesledersofa.de>            #
-# SOFA SKIN CONFIGURATION FILE                                                #
-###############################################################################
-
-[Extras]
-    # Template Extras
- 
-    # Website URL
-    web_url = http://cw9009.x10host.com
-
-    # Current radar image
-    radar_img = http://www.findu.com/cgi-bin/radar-find.cgi?call=CW9009
-    # Current radar animation (starts on radar_img hover)
-    radar_gif = http://radar.weather.gov/lite/N0R/CBX_loop.gif
-    # Hyperlink for radar
-    radar_url = http://radar.weather.gov/radar.php?rid=cbx&product=N0R&overlay=11101111&loop=no
-
-    # Lightning map and hyperlink
-    #lightning_map = http://images.lightningmaps.org/blitzortung/america/index.php?map=usa&period=0.25
-    #lightning_url = http://www.lightningmaps.org/realtime 
-
-    # URL for another radar (for example full Europe, Frankfurt center)
-    radar_url_alt = http://radar.weather.gov/Conus/Loop/pacnorthwest_loop.gif
-    radar_url_alt_text = "Pacific Northwest Radar"
-
-    # You. Only shows up in footer
-    you = "JDS"
-    emailname = "Josh@cw9009.x10host.com"
-    email = "Josh@cw9009.x10host.com"
-    
-    # Camera link
-    #cameratitle = "(Chinden/Linder)"
-    #camera = http://www.achdidaho.org/ATIS/CCTV/CCTV_583.jpg?157
-    cameratitle = "(Ten Mile/Linder)"
-    camera = http://www.achdidaho.org/ATIS/CCTV/CCTV_664.jpg?25
-    cameratitle2 = "(Chinden/Long Lake)"
-    camera2 = http://www.achdidaho.org/ATIS/CCTV/CCTV_662.jpg?674
-    
-    # Google Analytics ID
-    googleAnalyticsId = UA-88526004-1
-
-    #CWOP
-    cwop = CW9009
-    cwop_url = http://www.findu.com/cgi-bin/wxpage.cgi?call=CW9009&last=24
-
-    #mesowest
-    mwest = C9009
-    mwest_url = http://mesowest.utah.edu/cgi-bin/droman/meso_base_dyn.cgi?stn=C9009&unit=0&timetype=LOCAL
-
-    #weather underground
-    wunderground = KIDMERID44
-    wu_url = https://www.wunderground.com/personal-weather-station/dashboard?ID=KIDMERID44#history
-
-    #CoCoRaHS
-    crahs = ID-AD-36
-    crahs_url = http://www.cocorahs.org/ViewData/CountyDailyPrecipReports.aspx?state=ID&county=AD
-    
-###############################################################################################
-
-[Units]
-    # This section is for managing the selection and formatting of units.
-    
-    [[Groups]]
-        # For each group of measurements, this section sets what units to
-        # use for it.
-        # NB: The unit is always in the singular. i.e., 'mile_per_hour',
-        # NOT 'miles_per_hour'
-        group_altitude     = foot                # Options are 'foot' or 'meter'
-        group_degree_day   = degree_F_day         # Options are 'degree_F_day' or 'degree_C_day'
-        group_direction    = degree_compass
-        group_moisture     = centibar
-        group_percent      = percent
-        group_pressure     = mbar                  # Options are 'inHg', 'mmHg', 'mbar', or 'hPa'
-        group_radiation    = watt_per_meter_squared
-        group_rain         = inch                   # Options are 'inch', 'cm', or 'mm'
-        group_rainrate     = inch_per_hour          # Options are 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour'
-        group_speed        = mile_per_hour          # Options are 'mile_per_hour', 'km_per_hour', 'knot', or 'meter_per_second'
-        group_speed2       = mile_per_hour2         # Options are 'mile_per_hour2', 'km_per_hour2', 'knot2', or 'meter_per_second2'
-        group_temperature  = degree_F             # Options are 'degree_F' or 'degree_C'
-        group_uv           = uv_index
-        group_volt         = volt
-
-        # The following are used internally and should not be changed:
-        group_count        = count
-        group_interval     = minute
-        group_time         = unix_epoch
-        group_elapsed      = second
-
-    [[StringFormats]]
-        # This section sets the string formatting for each type of unit.
-        centibar           = %.0f
-        cm                 = %.2f
-        cm_per_hour        = %.2f
-        degree_C           = %.1f
-        degree_F           = %.1f
-        degree_compass     = %.0f
-        foot               = %.0f
-        hPa                = %.0f
-        hour               = %.1f
-        inHg               = %.3f
-        inch               = %.2f
-        inch_per_hour      = %.2f
-        km_per_hour        = %.0f
-        km_per_hour2       = %.1f
-        knot               = %.0f
-        knot2              = %.1f
-        mbar               = %.0f
-        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
-        second             = %.0f
-        uv_index           = %.0f
-        volt               = %.1f
-        watt_per_meter_squared = %.0f
-        NONE               = "   N/A"
-
-    [[Labels]]
-        # This section sets a label to be used for each type of unit.
-        centibar          = " cb"
-        cm                = " cm"
-        cm_per_hour       = " cm/h"
-        degree_C          = " °C"
-        degree_F          = " °F"
-        degree_compass    = " °"
-        foot              = " feet"
-        hPa               = " hPa"
-        inHg              = " inHg"
-        inch              = " in"
-        inch_per_hour     = " in/h"
-        km_per_hour       = " km/h"
-        km_per_hour2      = " km/h"
-        knot              = " knots"
-        knot2             = " knots"
-        mbar              = " mbar"
-        meter             = " meter"
-        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/h"
-        percent           =   %
-        volt              = " V"
-        watt_per_meter_squared = " W/m²"
-        day               = " Day",    " Days"
-        hour              = " Hour",   " Hours"
-        minute            = " Minute", " Minutes"
-        second            = " Second", " Seconds"
-        NONE              = ""
-        
-    [[TimeFormats]]
-        # This section sets the string format to be used for each time scale.
-        # The values below will work in every locale, but may not look
-        # particularly attractive. See the Customizing Guide for alternatives.
-
-        day        = %X
-        week       = %X (%A)
-        month      = %x %X
-        year       = %x %X
-        rainyear   = %x %X
-        current    = %x %X
-        ephem_day  = %X
-        ephem_year = %x %X
-        
-    [[Ordinates]]    
-        # The ordinal directions. The last one should be for no wind direction
-        directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW, N/A 
-
-    [[DegreeDays]]
-        # This section sets the base temperatures used for the calculation
-        # of heating and cooling degree-days.
-                
-        # Base temperature for heating days, with unit:
-        heating_base = 65, degree_F
-        # Base temperature for cooling days, with unit:
-        cooling_base = 65, degree_F
-
-    [[Trend]]
-        time_delta = 10800  # 3 hours
-        time_grace = 300    # 5 minutes 
-        
-###############################################################################
-
-[Labels]
-    # Labels used in this skin
-    # Set to hemisphere abbreviations suitable for your location: 
-    hemispheres = N, S, E, W
-    # Formats to be used for latitude whole degrees, longitude whole degrees,
-    # and minutes:
-    latlon_formats = "%02d", "%03d", "%05.2f"
-
-    [[Generic]]
-        # Generic labels, keyed by an observation type.
-        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
-        rxCheckPercent = ISS Signal Quality
-        UV             = UV Index
-        windDir        = Wind Direction
-        windGust       = Gust Speed
-        windGustDir    = Gust Direction
-        windSpeed      = Wind Speed
-        windchill      = Wind Chill
-        windgustvec    = Gust Vector
-        windvec        = Wind Vector
-    
-        # This one is probably specific to my station!
-        extraTemp1     = Pond Temperature
-
-###############################################################################
-
-[Almanac]
-    # The labels to be used for the phases of the moon:
-    moon_phases = New, Waxing crescent, First quarter, Waxing gibbous, Full, Waning gibbous, Last quarter, Waning crescent
-
-###############################################################################
-
-[CheetahGenerator]
-    # This section is used by the generator CheetahGenerator, and specifies
-    # which files are to be generated from which template.
-    # Possible encodings are 'html_entities', 'utf8', or 'strict_ascii'
-    encoding = html_entities
-
-    search_list_extensions = user.historygenerator.MyXSearch
-
-    [[SummaryByMonth]]
-        # Reports that summarize "by month"
-        [[[NOAA_month]]]
-            encoding = utf8
-            template = NOAA/NOAA-YYYY-MM.txt.tmpl
-
-    [[SummaryByYear]]
-        # Reports that summarize "by year"
-        [[[NOAA_year]]]
-            encoding = utf8
-            template = NOAA/NOAA-YYYY.txt.tmpl
-        
-    [[ToDate]]
-        # Reports that show statistics "to date", such as day-to-date,
-        # week-to-date, month-to-date, etc.
-        [[[day]]]
-            template = index.html.tmpl
-        
-        [[[week]]]
-            template = week.html.tmpl
-        
-        [[[month]]]
-            template = month.html.tmpl
-        
-        [[[year]]]
-            template = year.html.tmpl
-            
-        [[[RSS]]]
-            template = RSS/weewx_rss.xml.tmpl
-
-    [[HTMLFiles]]
-        #
-        # Pages that do not require time interval specific tags
-        #
-
-	[[[station]]]
-	    # Station information
-            template = station.html.tmpl
-
-	[[[summary]]]
-	    # Station Summaries and all time station records
-            template = summary.html.tmpl
-
-	[[[textphp]]]
-	    # NOAA Climate Reports
-            template = text.php.tmpl
-           
-###############################################################################
-
-[CopyGenerator]
-    # This section is used by the generator CopyGenerator
-
-    # List of files to be copied only the first time the generator runs
-    copy_once = css/main.css, js/*, .htaccess, error/*, robots.txt, touch-icon.png, favicon.ico
-
-###############################################################################
-
-[HistoryReport]
-
-    #
-    # Settings for the HTML month/year colour coded summary table generator
-    #
-
-    # minvalues, maxvalues and colours should contain the same number of elements.
-    #
-    # For example,  the [min_temp] example below, if the minimum temperature measured in
-    # a month is between -50 and -10 (degC) then the cell will be shaded in html colour code #0029E5.
-    #
-
-    # Default is temperature scale
-    #minvalues = -50, -10, -5, 0, 5, 10, 15, 20, 25, 30, 35
-    minvalues = -10, -5, 0, 5, 10, 15, 25, 35, 45, 50, 60
-    #maxvalues =  -10, -5, 0, 5, 10, 15, 20, 25, 30, 35, 60
-    maxvalues =  -5, 0, 10, 20, 35, 45, 60, 75, 90, 100, 120
-    colours =   "#0066FF", "#0186E7", "#02E3EA", "#04EC97", "#05EF3D2", "#2BF207", "#8AF408", "#E9F70A", "#F9A90B", "#FC4D0D", "#FF0F2D"
-    monthnames = Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
-
-    # The Raspberry Pi typically takes 15+ seconds to calculate all the summaries with a few years of weather date.
-    # refresh_interval is how often in minutes the tables are calculated.
-    refresh_interval = 1440
-
-    [[min_temp]]
-        obs_type = outTemp                 # obs_type can be any weewx reading
-        aggregate_type = min               # Any of these: 'sum', 'count', 'avg', 'max', 'min'
-
-    # Can also use these aggregate_types:  'max_ge', 'max_le', 'min_le', 'sum_ge' to count days where observation
-    # is ge: greater of equalto, or le: lessthan or equal to a threshold value
-    # To specify this threshold, use: aggregate_threshold = [value], [units]
-    # e.g Specify temperature threshold of 20C:
-    #
-    # aggregate_threshold = 20, degree_C
-
-    [[max_temp]]
-        obs_type = outTemp
-        aggregate_type = max
-
-    [[avg_temp]]
-        obs_type = outTemp
-        aggregate_type = avg
-	minvalues = 15, 25, 35, 45, 50, 55, 60, 65, 70, 75, 80
-    	maxvalues =  25, 35, 45, 50, 55, 60, 65, 70, 75, 80, 85
-
-    [[avg_htemp]]
-        obs_type = inTemp
-        aggregate_type = avg
-	minvalues =  50, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80
-    	maxvalues =  62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 85
-
-    [[temp_count]]
-        obs_type = outTemp
-        aggregate_type = sum_ge
-	aggregate_threshold = -150.0, degree_F
-	minvalues =  0, 2, 4, 6, 8, 12, 15, 18, 21, 24, 27
-	maxvalues =  2, 4, 6, 8, 12, 15, 18, 21, 24, 27, 32
-	colours =   "#0029E5", "#0186E7", "#02E3EA", "#04EC97", "#05EF3D2", "#2BF207", "#8AF408", "#E9F70A", "#F9A90B", "#FC4D0D", "#FFFFFF"
-
-    #number of days of rainfall
-    [[rain_count]]
-        obs_type = rain
-        aggregate_type = sum_ge
-        aggregate_threshold = 0.02, inch
-	minvalues = 0, 2, 4, 8, 12, 20   # Override default temperature colour scheme with rain specific scale
-        maxvalues = 2, 4, 8, 12, 20, 32
-	colours = "#E0F8E0", "#A9F5A9", "#58FA58", "#2EFE2E", "#41E741", "#01DF01"
-    
-    #total monthly rainfall
-    [[rain]]
-	obs_type = rain
-        aggregate_type = sum     
-        minvalues = 0, 1, 2, 3, 4, 5   # Override default temperature colour scheme with rain specific scale
-        maxvalues = 1, 2, 3, 4, 5, 10
-	colours = "#E0F8E0", "#A9F5A9", "#58FA58", "#2EFE2E", "#41E741", "#01DF01"
-
-    [[NOAA]]
-        #
-        # Creates a table of links to NOAA reports with the tag $NOAA_table
-        # Comment out [[NOAATable]] if you do not need this.
-        #
-
-        # Where to find the NOAA files and how they are named
-        # Uses Python datetime convention (docs.python.org/2/library/datetime.html):
-        # %Y = YYYY, %y = YY, %m = MM, etc.
-        #
-        year_filename = NOAA/NOAA-%Y.txt
-        month_filename = NOAA/NOAA-%Y-%m.txt
-
-###############################################################################
-
-[ImageGenerator]
-    
-    # This section lists all the images to be generated, what SQL types are to
-    # be included in them, along with many plotting options, such as color or
-    # font. There's a default for almost everything, if not specified below.
-    # Nevertheless, I have explicitly put in values, to make it easy to see
-    # and understand the options.
-    #
-    # Fonts can be anything accepted by the Python Imaging Library (PIL), which
-    # is currently truetype (.ttf), or PIL's own font format (.pil). See
-    # http://www.pythonware.com/library/pil/handbook/imagefont.htm for more
-    # details.  Note that "font size" is only used with truetype (.ttf)
-    # fonts. For others, font size is determined by the bit-mapped size,
-    # usually encoded in the file name (e.g., courB010.pil). If a font cannot
-    # be found, then a default font will be used.
-    #
-    # Colors can be specified any of three ways:
-    #   1. Notation 0xBBGGRR;
-    #   2. Notation #RRGGBB; or
-    #   3. Using an English name, such as 'yellow', or 'blue'.
-    # So, 0xff0000, #0000ff, or 'blue' would all specify a pure blue color.
-    
-    image_width = 800
-    image_height = 300
-    image_background_color = 0xffffff
-    
-    chart_background_color = 0xffffff
-    chart_gridline_color = 0xdbdbdb
-    
-    top_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
-    top_label_font_size = 16
-    
-    unit_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
-    unit_label_font_size = 12
-    unit_label_font_color = 0x000000
-    
-    bottom_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
-    bottom_label_font_size = 12
-    bottom_label_font_color = 0x000000
-    
-    axis_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
-    axis_label_font_size = 12
-    axis_label_font_color = 0x000000
-    
-    # Options for the compass rose, used for progressive vector plots
-    rose_label = N
-    rose_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
-    rose_label_font_size  = 12
-    rose_label_font_color = 0x000000
-
-    # Default colors for the plot lines. These can be overridden for
-    # individual lines using option 'color'
-    chart_line_colors = 0xb48242, 0x4242b4, 0x42b442
-    
-	# Type of line. Only 'solid' or 'none' is offered now    
-    line_type = 'solid'
-
-    # Size of marker in pixels
-    marker_size = 8
-	# Type of marker. Pick one of 'cross', 'x', 'circle', 'box', or 'none'
-    marker_type = 'none'
-    
-    # Default fill colors for bar charts. These can be overridden for
-    # individual bar plots using option 'fill_color'
-    chart_fill_colors = 0xc4b272, 0x7272c4, 0x72c472
-        
-    # The following option merits an explanation. The y-axis scale used for
-    # plotting can be controlled using option 'yscale'. It is a 3-way tuple,
-    # with values (ylow, yhigh, min_interval). If set to "None", a parameter is
-    # set automatically, otherwise the value is used. However, in the case of
-    # min_interval, what is set is the *minimum* y-axis tick interval. 
-    yscale = None, None, None
-
-    # For progressive vector plots, you can choose to rotate the vectors.
-    # Positive is clockwise.
-    # For my area, westerlies overwhelmingly predominate, so by rotating
-    # positive 90 degrees, the average vector will point straight up.
-    vector_rotate = 90
-
-    # This defines what fraction of the difference between maximum and minimum
-    # horizontal chart bounds is considered a gap in the samples and should not
-    # be plotted.
-    line_gap_fraction = 0.01
-    bar_gap_fraction  = 0.20
-
-    # This controls whether day/night bands will be shown. They only look good
-    # on the day and week plots.
-    show_daynight = true
-    # These control the appearance of the bands if they are shown. 0xBBGGRR
-    # Sofa Skin blue orange:
-    # Night: #f0fdff  Day: #fefff0  Edge: #f0fffb
-    daynight_day_color   = 0xf0fffe
-    daynight_night_color = 0xfffdf0
-    daynight_edge_color  = 0xfbfff0
-
-    ## What follows is a list of subsections, each specifying a time span, such
-    ## as a day, week, month, or year. There's nothing special about them or
-    ## their names: it's just a convenient way to group plots with a time span
-    ## in common. You could add a time span [[biweek_images]] and add the
-    ## appropriate time length, aggregation strategy, etc., without changing
-    ## any code.
-    ##
-    ## Within each time span, each sub-subsection is the name of a plot to be
-    ## generated for that time span. The generated plot will be stored using
-    ## that name, in whatever directory was specified by option 'HTML_ROOT'
-    ## in weewx.conf.
-    ##
-    ## With one final nesting (four brackets!) is the sql type of each line to
-    ## be included within that plot.
-    ##
-    ## Unless overridden, leaf nodes inherit options from their parent
-    
-    # Default plot and aggregation. Can get overridden at any level.
-    plot_type = line
-    aggregate_type = none
-    width = 1
-    time_length = 86400    # == 24 hours
-
-    [[day_images]]
-        x_label_format = %H:%M
-        bottom_label_format = %x %X
-        time_length = 97200    # == 27 hours
-        
-        [[[daybarometer]]]
-            [[[[barometer]]]]
-        
-        [[[daytempdew]]]
-            [[[[outTemp]]]]
-            [[[[dewpoint]]]]
-        
-        [[[dayrain]]]
-            # Make sure the y-axis increment is at least 0.02 for the rain plot
-            yscale = None, None, 0.02
-            plot_type = bar
-            [[[[rain]]]]
-                aggregate_type = sum
-                aggregate_interval = 3600
-                label = Rain (Hourly Total)
-        
-        [[[dayouthumid]]]
-            [[[[outHumidity]]]]
-
-        [[[dayrx]]]
-            [[[[rxCheckPercent]]]]
-        
-        [[[daypond]]]
-            yscale = None, None, 0.5
-            [[[[extraTemp1]]]]
-        
-        [[[daywind]]]
-            [[[[windSpeed]]]]
-            [[[[windGust]]]]
-        
-        [[[daywinddir]]]
-            # Hardwire in the y-axis scale for wind direction
-            yscale = 0.0, 360.0, 45.0
-            [[[[windDir]]]]
-    
-        [[[daywindvec]]]
-            [[[[windvec]]]]
-                plot_type = vector
-
-	[[[daytempchill]]]
-            [[[[windchill]]]]
-            [[[[heatindex]]]]
-	
-	[[[dayinside]]]
-            [[[[inTemp]]]]
-
-	[[[dayinhumid]]]
-            [[[[inHumidity]]]]
-
-        [[[dayradiation]]]
-            [[[[radiation]]]]
-
-        [[[dayuv]]]
-            yscale = 0, 16, 1
-            [[[[UV]]]]
-            
-    [[week_images]]
-        x_label_format = %d
-        bottom_label_format = %x %X
-        time_length = 604800    # == 7 days
-        aggregate_type = avg
-        aggregate_interval = 3600
-        
-        [[[weekbarometer]]]
-            [[[[barometer]]]]
-        
-        [[[weektempdew]]]
-            [[[[outTemp]]]]
-            [[[[dewpoint]]]]
-        
-        [[[weekrain]]]
-            yscale = None, None, 0.02
-            plot_type = bar
-            [[[[rain]]]]
-                aggregate_type = sum
-                aggregate_interval = 86400
-                label = Rain (Daily Total)
-
-	[[[weekouthumid]]]
-            [[[[outHumidity]]]]
-        
-        [[[weekpond]]]
-            yscale = None, None, 0.5
-            [[[[extraTemp1]]]]
-        
-        [[[weekrx]]]
-            [[[[rxCheckPercent]]]]
-        
-        [[[weekwind]]]
-            [[[[windSpeed]]]]
-            [[[[windGust]]]]
-                aggregate_type = max
-        
-        [[[weekwinddir]]]
-            yscale = 0.0, 360.0, 45.0
-            [[[[windDir]]]]
-    
-        [[[weekwindvec]]]
-            [[[[windvec]]]]
-                plot_type = vector
-
-	[[[weektempchill]]]
-            [[[[windchill]]]]
-            [[[[heatindex]]]]
-
-        [[[weekinside]]]
-            [[[[inTemp]]]]
-
-	[[[weekinhumid]]]
-            [[[[inHumidity]]]]
-
-        [[[weekradiation]]]
-            [[[[radiation]]]]
-
-        [[[weekuv]]]
-            yscale = 0, 16, 1
-            [[[[UV]]]]
-
-    [[month_images]]
-        x_label_format = %d
-        bottom_label_format = %x %X
-        time_length = 2592000    # == 30 days
-        aggregate_type = avg
-        aggregate_interval = 10800    # == 3 hours
-        show_daynight = false
-        
-        [[[monthbarometer]]]
-            [[[[barometer]]]]
-        
-        [[[monthtempdew]]]
-            [[[[outTemp]]]]
-            [[[[dewpoint]]]]
-        
-        [[[monthrain]]]
-            yscale = None, None, 0.02
-            plot_type = bar
-            [[[[rain]]]]
-                aggregate_type = sum
-                aggregate_interval = 86400
-                label = Rain (Daily Total)
-
-	[[[monthouthumid]]]
-            [[[[outHumidity]]]]
-        
-        [[[monthpond]]]
-            yscale = None, None, 0.5
-            [[[[extraTemp1]]]]
-        
-        [[[monthrx]]]
-            [[[[rxCheckPercent]]]]
-        
-        [[[monthwind]]]
-            [[[[windSpeed]]]]
-            [[[[windGust]]]]
-                aggregate_type = max
-        
-        [[[monthwinddir]]]
-            yscale = 0.0, 360.0, 45.0
-            [[[[windDir]]]]
-    
-        [[[monthwindvec]]]
-            [[[[windvec]]]]
-                plot_type = vector
-
-	[[[monthtempchill]]]
-            [[[[windchill]]]]
-            [[[[heatindex]]]]
-
-	[[[monthinside]]]
-            [[[[inTemp]]]]
-
-	[[[monthinhumid]]]
-            [[[[inHumidity]]]]
-
-        [[[monthradiation]]]
-            [[[[radiation]]]]
-            
-        [[[monthuv]]]
-            yscale = 0, 16, 1
-            [[[[UV]]]]
-
-    [[year_images]]
-        x_label_format = %m/%d
-        bottom_label_format = %x %X
-        time_length = 31536000    # == 365 days
-        aggregate_type = avg
-        aggregate_interval = 86400
-        show_daynight = false
-        
-        [[[yearbarometer]]]
-            [[[[barometer]]]]
-        
-        [[[yeartempdew]]]
-            [[[[outTemp]]]]
-		label = Average Daily Temperature
-            [[[[dewpoint]]]]
-		label = and Dewpoint
-        
-        # Daily high/lows:
-        [[[yearhilow]]]
-            [[[[hi]]]]
-                data_type = outTemp
-                aggregate_type = max
-                label = High
-            [[[[low]]]]
-                data_type = outTemp
-                aggregate_type = min
-                label = and Low Temperature
-                
-        [[[yearwind]]]
-            [[[[windSpeed]]]]
-            [[[[windGust]]]]
-                aggregate_type = max
-        
-        [[[yearrain]]]
-            yscale = None, None, 0.02
-            plot_type = bar
-            [[[[rain]]]]
-                aggregate_type = sum
-                # aggregate_interval = 2629800 # Magic number: the length of a nominal month
-                aggregate_interval = 604800    # == 1 week
-                label = Rain (Weekly Total)
-
-	[[[yearouthumid]]]
-            [[[[outHumidity]]]]
-
-        [[[yearpond]]]
-            yscale = None, None, 0.5
-            [[[[extraTemp1]]]]
-        
-        [[[yearrx]]]
-            [[[[rxCheckPercent]]]]
-        
-        [[[yearwinddir]]]
-            yscale = 0.0, 360.0, 45.0
-            [[[[windDir]]]]
-
-        [[[yearwindvec]]]
-            [[[[windvec]]]]
-                plot_type = vector
-
-	[[[yeartempchill]]]
-            [[[[windchill]]]]
-            [[[[heatindex]]]]
-
-	[[[yearinside]]]
-            [[[[inTemp]]]]
-
-	[[[yearinhumid]]]
-            [[[[inHumidity]]]]
-
-        [[[yearradiation]]]
-            [[[[radiation]]]]
-            
-        [[[yearuv]]]
-            yscale = 0, 16, 1
-            [[[[UV]]]]
-
-###############################################################################
-
-#
-# The list of generators that are to be run:
-#
-[Generators]
-        generator_list = weewx.cheetahgenerator.CheetahGenerator, weewx.imagegenerator.ImageGenerator, weewx.reportengine.CopyGenerator
+###############################################################################
+# $Id: skin.conf 2749 2014-11-29 18:15:24Z tkeffer $                          #
+# Copyright (c) 2010 Tom Keffer <tkeffer@gmail.com>                           #
+# SOFA SKIN (c) 2015 Sven Reifschneider <hello@blauesledersofa.de>            #
+# SOFA SKIN CONFIGURATION FILE                                                #
+###############################################################################
+
+[Extras]
+    # Template Extras
+ 
+    # Website URL
+    web_url = http://cw9009.x10host.com
+
+    # Current radar image
+    radar_img = http://www.findu.com/cgi-bin/radar-find.cgi?call=CW9009
+    # Current radar animation (starts on radar_img hover)
+    radar_gif = http://radar.weather.gov/lite/N0R/CBX_loop.gif
+    # Hyperlink for radar
+    radar_url = http://radar.weather.gov/radar.php?rid=cbx&product=N0R&overlay=11101111&loop=no
+
+    # Lightning map and hyperlink
+    #lightning_map = http://images.lightningmaps.org/blitzortung/america/index.php?map=usa&period=0.25
+    #lightning_url = http://www.lightningmaps.org/realtime 
+
+    # URL for another radar (for example full Europe, Frankfurt center)
+    radar_url_alt = http://radar.weather.gov/Conus/Loop/pacnorthwest_loop.gif
+    radar_url_alt_text = "Pacific Northwest Radar"
+
+    # You. Only shows up in footer
+    you = "JDS"
+    emailname = "Josh@cw9009.x10host.com"
+    email = "Josh@cw9009.x10host.com"
+    
+    # Camera link
+    #cameratitle = "(Chinden/Linder)"
+    #camera = http://www.achdidaho.org/ATIS/CCTV/CCTV_583.jpg?157
+    cameratitle = "(Ten Mile/Linder)"
+    camera = http://www.achdidaho.org/ATIS/CCTV/CCTV_664.jpg?25
+    cameratitle2 = "(Chinden/Long Lake)"
+    camera2 = http://www.achdidaho.org/ATIS/CCTV/CCTV_662.jpg?674
+    
+    # Google Analytics ID
+    googleAnalyticsId = UA-88526004-1
+
+    #CWOP
+    cwop = CW9009
+    cwop_url = http://www.findu.com/cgi-bin/wxpage.cgi?call=CW9009&last=24
+
+    #mesowest
+    mwest = C9009
+    mwest_url = http://mesowest.utah.edu/cgi-bin/droman/meso_base_dyn.cgi?stn=C9009&unit=0&timetype=LOCAL
+
+    #weather underground
+    wunderground = KIDMERID44
+    wu_url = https://www.wunderground.com/personal-weather-station/dashboard?ID=KIDMERID44#history
+
+    #CoCoRaHS
+    crahs = ID-AD-36
+    crahs_url = http://www.cocorahs.org/ViewData/CountyDailyPrecipReports.aspx?state=ID&county=AD
+    
+###############################################################################################
+
+[Units]
+    # This section is for managing the selection and formatting of units.
+    
+    [[Groups]]
+        # For each group of measurements, this section sets what units to
+        # use for it.
+        # NB: The unit is always in the singular. i.e., 'mile_per_hour',
+        # NOT 'miles_per_hour'
+        group_altitude     = foot                # Options are 'foot' or 'meter'
+        group_degree_day   = degree_F_day         # Options are 'degree_F_day' or 'degree_C_day'
+        group_direction    = degree_compass
+        group_moisture     = centibar
+        group_percent      = percent
+        group_pressure     = mbar                  # Options are 'inHg', 'mmHg', 'mbar', or 'hPa'
+        group_radiation    = watt_per_meter_squared
+        group_rain         = inch                   # Options are 'inch', 'cm', or 'mm'
+        group_rainrate     = inch_per_hour          # Options are 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour'
+        group_speed        = mile_per_hour          # Options are 'mile_per_hour', 'km_per_hour', 'knot', or 'meter_per_second'
+        group_speed2       = mile_per_hour2         # Options are 'mile_per_hour2', 'km_per_hour2', 'knot2', or 'meter_per_second2'
+        group_temperature  = degree_F             # Options are 'degree_F' or 'degree_C'
+        group_uv           = uv_index
+        group_volt         = volt
+
+        # The following are used internally and should not be changed:
+        group_count        = count
+        group_interval     = minute
+        group_time         = unix_epoch
+        group_elapsed      = second
+
+    [[StringFormats]]
+        # This section sets the string formatting for each type of unit.
+        centibar           = %.0f
+        cm                 = %.2f
+        cm_per_hour        = %.2f
+        degree_C           = %.1f
+        degree_F           = %.1f
+        degree_compass     = %.0f
+        foot               = %.0f
+        hPa                = %.0f
+        hour               = %.1f
+        inHg               = %.3f
+        inch               = %.2f
+        inch_per_hour      = %.2f
+        km_per_hour        = %.0f
+        km_per_hour2       = %.1f
+        knot               = %.0f
+        knot2              = %.1f
+        mbar               = %.0f
+        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
+        second             = %.0f
+        uv_index           = %.0f
+        volt               = %.1f
+        watt_per_meter_squared = %.0f
+        NONE               = "   N/A"
+
+    [[Labels]]
+        # This section sets a label to be used for each type of unit.
+        centibar          = " cb"
+        cm                = " cm"
+        cm_per_hour       = " cm/h"
+        degree_C          = " °C"
+        degree_F          = " °F"
+        degree_compass    = " °"
+        foot              = " feet"
+        hPa               = " hPa"
+        inHg              = " inHg"
+        inch              = " in"
+        inch_per_hour     = " in/h"
+        km_per_hour       = " km/h"
+        km_per_hour2      = " km/h"
+        knot              = " knots"
+        knot2             = " knots"
+        mbar              = " mbar"
+        meter             = " meter"
+        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/h"
+        percent           =   %
+        volt              = " V"
+        watt_per_meter_squared = " W/m²"
+        day               = " Day",    " Days"
+        hour              = " Hour",   " Hours"
+        minute            = " Minute", " Minutes"
+        second            = " Second", " Seconds"
+        NONE              = ""
+        
+    [[TimeFormats]]
+        # This section sets the string format to be used for each time scale.
+        # The values below will work in every locale, but may not look
+        # particularly attractive. See the Customizing Guide for alternatives.
+
+        day        = %X
+        week       = %X (%A)
+        month      = %x %X
+        year       = %x %X
+        rainyear   = %x %X
+        current    = %x %X
+        ephem_day  = %X
+        ephem_year = %x %X
+        
+    [[Ordinates]]    
+        # The ordinal directions. The last one should be for no wind direction
+        directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW, N/A 
+
+    [[DegreeDays]]
+        # This section sets the base temperatures used for the calculation
+        # of heating and cooling degree-days.
+                
+        # Base temperature for heating days, with unit:
+        heating_base = 65, degree_F
+        # Base temperature for cooling days, with unit:
+        cooling_base = 65, degree_F
+
+    [[Trend]]
+        time_delta = 10800  # 3 hours
+        time_grace = 300    # 5 minutes 
+        
+###############################################################################
+
+[Labels]
+    # Labels used in this skin
+    # Set to hemisphere abbreviations suitable for your location: 
+    hemispheres = N, S, E, W
+    # Formats to be used for latitude whole degrees, longitude whole degrees,
+    # and minutes:
+    latlon_formats = "%02d", "%03d", "%05.2f"
+
+    [[Generic]]
+        # Generic labels, keyed by an observation type.
+        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
+        rxCheckPercent = ISS Signal Quality
+        UV             = UV Index
+        windDir        = Wind Direction
+        windGust       = Gust Speed
+        windGustDir    = Gust Direction
+        windSpeed      = Wind Speed
+        windchill      = Wind Chill
+        windgustvec    = Gust Vector
+        windvec        = Wind Vector
+    
+        # This one is probably specific to my station!
+        extraTemp1     = Pond Temperature
+
+###############################################################################
+
+[Almanac]
+    # The labels to be used for the phases of the moon:
+    moon_phases = New, Waxing crescent, First quarter, Waxing gibbous, Full, Waning gibbous, Last quarter, Waning crescent
+
+###############################################################################
+
+[CheetahGenerator]
+    # This section is used by the generator CheetahGenerator, and specifies
+    # which files are to be generated from which template.
+    # Possible encodings are 'html_entities', 'utf8', or 'strict_ascii'
+    encoding = html_entities
+
+    search_list_extensions = user.historygenerator.MyXSearch
+
+    [[SummaryByMonth]]
+        # Reports that summarize "by month"
+        [[[NOAA_month]]]
+            encoding = utf8
+            template = NOAA/NOAA-YYYY-MM.txt.tmpl
+
+    [[SummaryByYear]]
+        # Reports that summarize "by year"
+        [[[NOAA_year]]]
+            encoding = utf8
+            template = NOAA/NOAA-YYYY.txt.tmpl
+        
+    [[ToDate]]
+        # Reports that show statistics "to date", such as day-to-date,
+        # week-to-date, month-to-date, etc.
+        [[[day]]]
+            template = index.html.tmpl
+        
+        [[[week]]]
+            template = week.html.tmpl
+        
+        [[[month]]]
+            template = month.html.tmpl
+        
+        [[[year]]]
+            template = year.html.tmpl
+            
+        [[[RSS]]]
+            template = RSS/weewx_rss.xml.tmpl
+
+    [[HTMLFiles]]
+        #
+        # Pages that do not require time interval specific tags
+        #
+
+	[[[station]]]
+	    # Station information
+            template = station.html.tmpl
+
+	[[[summary]]]
+	    # Station Summaries and all time station records
+            template = summary.html.tmpl
+
+	[[[textphp]]]
+	    # NOAA Climate Reports
+            template = text.php.tmpl
+           
+###############################################################################
+
+[CopyGenerator]
+    # This section is used by the generator CopyGenerator
+
+    # List of files to be copied only the first time the generator runs
+    copy_once = css/main.css, js/*, .htaccess, error/*, robots.txt, touch-icon.png, favicon.ico
+
+###############################################################################
+
+[HistoryReport]
+
+    #
+    # Settings for the HTML month/year colour coded summary table generator
+    #
+
+    # minvalues, maxvalues and colours should contain the same number of elements.
+    #
+    # For example,  the [min_temp] example below, if the minimum temperature measured in
+    # a month is between -50 and -10 (degC) then the cell will be shaded in html colour code #0029E5.
+    #
+
+    # Default is temperature scale
+    #minvalues = -50, -10, -5, 0, 5, 10, 15, 20, 25, 30, 35
+    minvalues = -10, -5, 0, 5, 10, 15, 25, 35, 45, 50, 60
+    #maxvalues =  -10, -5, 0, 5, 10, 15, 20, 25, 30, 35, 60
+    maxvalues =  -5, 0, 10, 20, 35, 45, 60, 75, 90, 100, 120
+    colours =   "#0066FF", "#0186E7", "#02E3EA", "#04EC97", "#05EF3D2", "#2BF207", "#8AF408", "#E9F70A", "#F9A90B", "#FC4D0D", "#FF0F2D"
+    monthnames = Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
+
+    # The Raspberry Pi typically takes 15+ seconds to calculate all the summaries with a few years of weather date.
+    # refresh_interval is how often in minutes the tables are calculated.
+    refresh_interval = 1440
+
+    [[min_temp]]
+        obs_type = outTemp                 # obs_type can be any weewx reading
+        aggregate_type = min               # Any of these: 'sum', 'count', 'avg', 'max', 'min'
+
+    # Can also use these aggregate_types:  'max_ge', 'max_le', 'min_le', 'sum_ge' to count days where observation
+    # is ge: greater of equalto, or le: lessthan or equal to a threshold value
+    # To specify this threshold, use: aggregate_threshold = [value], [units]
+    # e.g Specify temperature threshold of 20C:
+    #
+    # aggregate_threshold = 20, degree_C
+
+    [[max_temp]]
+        obs_type = outTemp
+        aggregate_type = max
+
+    [[avg_temp]]
+        obs_type = outTemp
+        aggregate_type = avg
+	minvalues = 15, 25, 35, 45, 50, 55, 60, 65, 70, 75, 80
+    	maxvalues =  25, 35, 45, 50, 55, 60, 65, 70, 75, 80, 85
+
+    [[avg_htemp]]
+        obs_type = inTemp
+        aggregate_type = avg
+	minvalues =  50, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80
+    	maxvalues =  62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 85
+
+    [[temp_count]]
+        obs_type = outTemp
+        aggregate_type = sum_ge
+	aggregate_threshold = -150.0, degree_F
+	minvalues =  0, 2, 4, 6, 8, 12, 15, 18, 21, 24, 27
+	maxvalues =  2, 4, 6, 8, 12, 15, 18, 21, 24, 27, 32
+	colours =   "#0029E5", "#0186E7", "#02E3EA", "#04EC97", "#05EF3D2", "#2BF207", "#8AF408", "#E9F70A", "#F9A90B", "#FC4D0D", "#FFFFFF"
+
+    #number of days of rainfall
+    [[rain_count]]
+        obs_type = rain
+        aggregate_type = sum_ge
+        aggregate_threshold = 0.02, inch
+	minvalues = 0, 2, 4, 8, 12, 20   # Override default temperature colour scheme with rain specific scale
+        maxvalues = 2, 4, 8, 12, 20, 32
+	colours = "#E0F8E0", "#A9F5A9", "#58FA58", "#2EFE2E", "#41E741", "#01DF01"
+    
+    #total monthly rainfall
+    [[rain]]
+	obs_type = rain
+        aggregate_type = sum     
+        minvalues = 0, 1, 2, 3, 4, 5   # Override default temperature colour scheme with rain specific scale
+        maxvalues = 1, 2, 3, 4, 5, 10
+	colours = "#E0F8E0", "#A9F5A9", "#58FA58", "#2EFE2E", "#41E741", "#01DF01"
+
+    [[NOAA]]
+        #
+        # Creates a table of links to NOAA reports with the tag $NOAA_table
+        # Comment out [[NOAATable]] if you do not need this.
+        #
+
+        # Where to find the NOAA files and how they are named
+        # Uses Python datetime convention (docs.python.org/2/library/datetime.html):
+        # %Y = YYYY, %y = YY, %m = MM, etc.
+        #
+        year_filename = NOAA/NOAA-%Y.txt
+        month_filename = NOAA/NOAA-%Y-%m.txt
+
+###############################################################################
+
+[ImageGenerator]
+    
+    # This section lists all the images to be generated, what SQL types are to
+    # be included in them, along with many plotting options, such as color or
+    # font. There's a default for almost everything, if not specified below.
+    # Nevertheless, I have explicitly put in values, to make it easy to see
+    # and understand the options.
+    #
+    # Fonts can be anything accepted by the Python Imaging Library (PIL), which
+    # is currently truetype (.ttf), or PIL's own font format (.pil). See
+    # http://www.pythonware.com/library/pil/handbook/imagefont.htm for more
+    # details.  Note that "font size" is only used with truetype (.ttf)
+    # fonts. For others, font size is determined by the bit-mapped size,
+    # usually encoded in the file name (e.g., courB010.pil). If a font cannot
+    # be found, then a default font will be used.
+    #
+    # Colors can be specified any of three ways:
+    #   1. Notation 0xBBGGRR;
+    #   2. Notation #RRGGBB; or
+    #   3. Using an English name, such as 'yellow', or 'blue'.
+    # So, 0xff0000, #0000ff, or 'blue' would all specify a pure blue color.
+    
+    image_width = 800
+    image_height = 300
+    image_background_color = 0xffffff
+    
+    chart_background_color = 0xffffff
+    chart_gridline_color = 0xdbdbdb
+    
+    top_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
+    top_label_font_size = 16
+    
+    unit_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
+    unit_label_font_size = 12
+    unit_label_font_color = 0x000000
+    
+    bottom_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
+    bottom_label_font_size = 12
+    bottom_label_font_color = 0x000000
+    
+    axis_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
+    axis_label_font_size = 12
+    axis_label_font_color = 0x000000
+    
+    # Options for the compass rose, used for progressive vector plots
+    rose_label = N
+    rose_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
+    rose_label_font_size  = 12
+    rose_label_font_color = 0x000000
+
+    # Default colors for the plot lines. These can be overridden for
+    # individual lines using option 'color'
+    chart_line_colors = 0xb48242, 0x4242b4, 0x42b442
+    
+	# Type of line. Only 'solid' or 'none' is offered now    
+    line_type = 'solid'
+
+    # Size of marker in pixels
+    marker_size = 8
+	# Type of marker. Pick one of 'cross', 'x', 'circle', 'box', or 'none'
+    marker_type = 'none'
+    
+    # Default fill colors for bar charts. These can be overridden for
+    # individual bar plots using option 'fill_color'
+    chart_fill_colors = 0xc4b272, 0x7272c4, 0x72c472
+        
+    # The following option merits an explanation. The y-axis scale used for
+    # plotting can be controlled using option 'yscale'. It is a 3-way tuple,
+    # with values (ylow, yhigh, min_interval). If set to "None", a parameter is
+    # set automatically, otherwise the value is used. However, in the case of
+    # min_interval, what is set is the *minimum* y-axis tick interval. 
+    yscale = None, None, None
+
+    # For progressive vector plots, you can choose to rotate the vectors.
+    # Positive is clockwise.
+    # For my area, westerlies overwhelmingly predominate, so by rotating
+    # positive 90 degrees, the average vector will point straight up.
+    vector_rotate = 90
+
+    # This defines what fraction of the difference between maximum and minimum
+    # horizontal chart bounds is considered a gap in the samples and should not
+    # be plotted.
+    line_gap_fraction = 0.01
+    bar_gap_fraction  = 0.20
+
+    # This controls whether day/night bands will be shown. They only look good
+    # on the day and week plots.
+    show_daynight = true
+    # These control the appearance of the bands if they are shown. 0xBBGGRR
+    # Sofa Skin blue orange:
+    # Night: #f0fdff  Day: #fefff0  Edge: #f0fffb
+    daynight_day_color   = 0xf0fffe
+    daynight_night_color = 0xfffdf0
+    daynight_edge_color  = 0xfbfff0
+
+    ## What follows is a list of subsections, each specifying a time span, such
+    ## as a day, week, month, or year. There's nothing special about them or
+    ## their names: it's just a convenient way to group plots with a time span
+    ## in common. You could add a time span [[biweek_images]] and add the
+    ## appropriate time length, aggregation strategy, etc., without changing
+    ## any code.
+    ##
+    ## Within each time span, each sub-subsection is the name of a plot to be
+    ## generated for that time span. The generated plot will be stored using
+    ## that name, in whatever directory was specified by option 'HTML_ROOT'
+    ## in weewx.conf.
+    ##
+    ## With one final nesting (four brackets!) is the sql type of each line to
+    ## be included within that plot.
+    ##
+    ## Unless overridden, leaf nodes inherit options from their parent
+    
+    # Default plot and aggregation. Can get overridden at any level.
+    plot_type = line
+    aggregate_type = none
+    width = 2
+    time_length = 86400    # == 24 hours
+
+    [[day_images]]
+        x_label_format = %H:%M
+        bottom_label_format = %x %X
+        time_length = 97200    # == 27 hours
+        
+        [[[daybarometer]]]
+            [[[[barometer]]]]
+        
+        [[[daytempdew]]]
+            [[[[outTemp]]]]
+            [[[[dewpoint]]]]
+        
+        [[[dayrain]]]
+            # Make sure the y-axis increment is at least 0.02 for the rain plot
+            yscale = None, None, 0.02
+            plot_type = bar
+            [[[[rain]]]]
+                aggregate_type = sum
+                aggregate_interval = 3600
+                label = Rain (Hourly Total)
+	    #[[[[linerain]]]]
+		#data_type = rain
+		#plot_type = line
+	    	#aggregate_type = sum
+                #aggregate_interval = 86400
+                #label = Rain (24 hour Total)
+        
+        #[[[dayouthumid]]]
+        #    [[[[outHumidity]]]]
+
+        #[[[dayrx]]]
+        #    [[[[rxCheckPercent]]]]
+        
+        #[[[daypond]]]
+        #    yscale = None, None, 0.5
+        #    [[[[extraTemp1]]]]
+        
+        [[[daywind]]]
+            [[[[windSpeed]]]]
+            [[[[windGust]]]]
+		line_type = none
+		marker_size = 2
+		marker_type = 'cross'
+        
+        [[[daywinddir]]]
+            # Hardwire in the y-axis scale for wind direction
+            yscale = 0.0, 360.0, 45.0
+            [[[[windDir]]]]
+		line_type = none
+		marker_size = 2
+		marker_type = 'cross'
+    
+        [[[daywindvec]]]
+            [[[[windvec]]]]
+                plot_type = vector
+
+	[[[daytempchill]]]
+            [[[[windchill]]]]
+            [[[[heatindex]]]]
+	
+	[[[dayinside]]]
+            [[[[inTemp]]]]
+
+	[[[dayinhumid]]]
+            [[[[inHumidity]]]]
+	    [[[[outHumidity]]]]
+
+        #[[[dayradiation]]]
+        #    [[[[radiation]]]]
+
+        #[[[dayuv]]]
+        #    yscale = 0, 16, 1
+        #    [[[[UV]]]]
+            
+    [[week_images]]
+        x_label_format = %d
+        bottom_label_format = %x %X
+        time_length = 604800    # == 7 days
+        aggregate_type = avg
+        aggregate_interval = 3600
+        
+        [[[weekbarometer]]]
+            [[[[barometer]]]]
+        
+        [[[weektempdew]]]
+            [[[[outTemp]]]]
+            [[[[dewpoint]]]]
+        
+        [[[weekrain]]]
+            yscale = None, None, 0.02
+            plot_type = bar
+            [[[[rain]]]]
+                aggregate_type = sum
+                aggregate_interval = 86400
+                label = Rain (Daily Total)
+	    #[[[[linerain]]]]
+		#data_type = rain
+		#plot_type = line
+	    	#aggregate_type = sum
+                #aggregate_interval = 604800
+                #label = Rain (Weekly Total)
+
+	#[[[weekouthumid]]]
+        #    [[[[outHumidity]]]]
+        
+        #[[[weekpond]]]
+        #    yscale = None, None, 0.5
+        #    [[[[extraTemp1]]]]
+        
+        #[[[weekrx]]]
+        #    [[[[rxCheckPercent]]]]
+        
+        [[[weekwind]]]
+            [[[[windSpeed]]]]
+            [[[[windGust]]]]
+                aggregate_type = max
+		line_type = none
+		marker_size = 2
+		marker_type = 'cross'
+        
+        [[[weekwinddir]]]
+            yscale = 0.0, 360.0, 45.0
+            [[[[windDir]]]]
+		line_type = none
+		marker_size = 2
+		marker_type = 'cross'
+    
+        [[[weekwindvec]]]
+            [[[[windvec]]]]
+                plot_type = vector
+
+	[[[weektempchill]]]
+            [[[[windchill]]]]
+            [[[[heatindex]]]]
+
+        [[[weekinside]]]
+            [[[[inTemp]]]]
+
+	[[[weekinhumid]]]
+            [[[[inHumidity]]]]
+	    [[[[outHumidity]]]]
+
+        #[[[weekradiation]]]
+        #    [[[[radiation]]]]
+
+        #[[[weekuv]]]
+        #    yscale = 0, 16, 1
+        #    [[[[UV]]]]
+
+    [[month_images]]
+        x_label_format = %d
+        bottom_label_format = %x %X
+        time_length = 2592000    # == 30 days
+        aggregate_type = avg
+        aggregate_interval = 10800    # == 3 hours
+        show_daynight = false
+        
+        [[[monthbarometer]]]
+            [[[[barometer]]]]
+        
+        [[[monthtempdew]]]
+            [[[[outTemp]]]]
+            [[[[dewpoint]]]]
+        
+        [[[monthrain]]]
+            yscale = None, None, 0.02
+            plot_type = bar
+            [[[[rain]]]]
+                aggregate_type = sum
+                aggregate_interval = 86400
+                label = Rain (Daily Total)
+	   #[[[[linerain]]]]
+		#plot_type = line
+		#data_type = rain
+	    	#aggregate_type = sum
+                #aggregate_interval = 2592000
+                #label = Rain (Total)
+
+
+	#[[[monthouthumid]]]
+        #    [[[[outHumidity]]]]
+        
+        #[[[monthpond]]]
+        #    yscale = None, None, 0.5
+        #    [[[[extraTemp1]]]]
+        
+        #[[[monthrx]]]
+        #    [[[[rxCheckPercent]]]]
+        
+	# Old wind graphic
+        #[[[monthwind]]]
+        #    [[[[windSpeed]]]]
+        #    [[[[windGust]]]]
+        #        aggregate_type = max
+
+	# New wind graphic
+	[[[monthwind]]]
+            [[[[windSpeed]]]]
+		aggregate_type = max
+	    [[[[avgwindSpeed]]]]
+		data_type = windSpeed
+		aggregate_type = avg
+                label = Average Wind Speed
+            [[[[windGust]]]]
+                aggregate_type = max
+        
+        [[[monthwinddir]]]
+            yscale = 0.0, 360.0, 45.0
+            [[[[windDir]]]]
+		line_type = none
+		marker_size = 2
+		marker_type = 'cross'
+    
+        [[[monthwindvec]]]
+            [[[[windvec]]]]
+                plot_type = vector
+
+	[[[monthtempchill]]]
+            [[[[windchill]]]]
+            [[[[heatindex]]]]
+
+	[[[monthinside]]]
+            [[[[inTemp]]]]
+
+	[[[monthinhumid]]]
+            [[[[inHumidity]]]]
+	    [[[[outHumidity]]]]
+
+        #[[[monthradiation]]]
+        #    [[[[radiation]]]]
+            
+        #[[[monthuv]]]
+        #    yscale = 0, 16, 1
+        #    [[[[UV]]]]
+
+    [[year_images]]
+        x_label_format = %m/%d
+        bottom_label_format = %x %X
+        time_length = 31536000    # == 365 days
+        aggregate_type = avg
+        aggregate_interval = 86400
+        show_daynight = false
+        
+        [[[yearbarometer]]]
+            [[[[barometer]]]]
+        
+        [[[yeartempdew]]]
+            [[[[outTemp]]]]
+		label = Average Daily Temperature
+            [[[[dewpoint]]]]
+		label = and Dewpoint
+        
+        # Daily high/lows:
+        [[[yearhilow]]]
+            [[[[hi]]]]
+                data_type = outTemp
+                aggregate_type = max
+                label = High
+            [[[[low]]]]
+                data_type = outTemp
+                aggregate_type = min
+                label = Low Temperature
+	    [[[[dewpoint]]]]
+		label = and Dewpoint
+                
+        #[[[yearwind]]]
+        #    [[[[windSpeed]]]]
+        #    [[[[windGust]]]]
+        #        aggregate_type = max
+
+	[[[yearwind]]]
+            [[[[windSpeed]]]]
+		aggregate_type = max
+            [[[[windGust]]]]
+                aggregate_type = max
+        
+        [[[yearrain]]]
+            yscale = None, None, 0.02
+            plot_type = bar
+            [[[[rain]]]]
+                aggregate_type = sum
+                # aggregate_interval = 2629800 # Magic number: the length of a nominal month
+                aggregate_interval = 604800    # == 1 week
+                label = Rain (Weekly Total)
+
+	##year totals
+	#[[[yearrainyear1]]]
+        #    yscale = None, None, 0.02
+        #    plot_type = bar
+        #    [[[[rain]]]]
+        #        aggregate_type = sum
+	#	time_length = 315360000    # == 10 years
+       #         # aggregate_interval = 2629800 # Magic number: the length of a nominal month
+       #         aggregate_interval = 31536000    # == 1 year
+        #        label = Rain (Yearly Total)
+
+	#[[[yearouthumid]]]
+        #    [[[[outHumidity]]]]
+
+        #[[[yearpond]]]
+        #    yscale = None, None, 0.5
+        #    [[[[extraTemp1]]]]
+        
+        #[[[yearrx]]]
+        #    [[[[rxCheckPercent]]]]
+        
+        [[[yearwinddir]]]
+            yscale = 0.0, 360.0, 45.0
+            [[[[windDir]]]]
+		line_type = none
+		#aggregate_type = sum
+		marker_size = 2
+		marker_type = 'cross'
+
+        [[[yearwindvec]]]
+            [[[[windvec]]]]
+                plot_type = vector
+
+	[[[yeartempchill]]]
+            [[[[windchill]]]]
+            [[[[heatindex]]]]
+
+	[[[yearinside]]]
+            [[[[inTemp]]]]
+
+	[[[yearinhumid]]]
+            [[[[inHumidity]]]]
+	    [[[[outHumidity]]]]
+
+        #[[[yearradiation]]]
+        #    [[[[radiation]]]]
+            
+        #[[[yearuv]]]
+        #    yscale = 0, 16, 1
+        #    [[[[UV]]]]
+
+###############################################################################
+
+#
+# The list of generators that are to be run:
+#
+[Generators]
+        generator_list = weewx.cheetahgenerator.CheetahGenerator, weewx.imagegenerator.ImageGenerator, weewx.reportengine.CopyGenerator

+ 1 - 2
week.html.tmpl

@@ -224,10 +224,9 @@
                     <img src="weekwinddir.png" alt="Hi Wind" />
                     <img src="weekwindvec.png" alt="Wind Vector" />
 		    <img src="weektempchill.png" alt="heatchill" />
-		    <img src="weekouthumid.png" alt="Outside Humidity" />
                     <img src="weekbarometer.png" alt="barometer"/>
                     <img src="weekinside.png" alt="Inside" />
-		    <img src="weekinhumid.png" alt="Inside Humidity" />
+		    <img src="weekinhumid.png" alt="Inside/Outside Humidity" />
                     #if $week.UV.has_data
                     <img src="weekuv.png" alt="UV index" />
                     #end if

+ 44 - 4
year.html.tmpl

@@ -126,10 +126,51 @@
                 </div>
 
                 <div class="card" >
-                    <h1><i class="fa fa-cloud m-blau" ></i> Rain Year (1-$station.rain_year_str start)</h1>
+                    <h1><i class="fa fa-tint m-blau" ></i> Rain Year (1-$station.rain_year_str start)</h1>
                     <table class="tablespacer">
                         <tr><td>Rain Year Total</td><td>$rainyear.rain.sum</td><td></td></tr>
-                        <tr><td>High Rain Rate</td><td>$rainyear.rainRate.max</td><td>$rainyear.rainRate.maxtime</td></tr>
+                        <tr><td>High Rain Rate</td><td>$rainyear.rainRate.max</td><td>   $rainyear.rainRate.maxtime</td></tr>
+			<tr><td>$year($years_ago=1).dateTime.format("%Y") Rain Total</td><td>$year($years_ago=1).rain.sum</td><td></td></tr>
+                        <tr><td>$year($years_ago=1).dateTime.format("%Y") High Rain Rate</td><td>$year($years_ago=1).rainRate.max</td><td>   $year($years_ago=1).rainRate.maxtime</td></tr>
+                    </table>
+                </div>
+
+		<div class="card" >
+                    <h1><i class="fa fa-calendar-o m-rot" ></i> Last Calendar Year ($year($years_ago=1).dateTime.format("%Y"))</h1>
+                    <table class="tablespacer">
+                        <tr><td>High Temperature</td><td>$year($years_ago=1).outTemp.max</td><td>$year($years_ago=1).outTemp.maxtime</td></tr>
+                        <tr><td>Low Temperature</td><td>$year($years_ago=1).outTemp.min</td><td>$year($years_ago=1).outTemp.mintime</td></tr>
+                        <tr><td>High Heat Index</td><td>$year($years_ago=1).heatindex.max</td><td>$year($years_ago=1).heatindex.maxtime</td></tr>
+                        <tr><td>Low Wind Chill</td><td>$year($years_ago=1).windchill.min</td><td>$year($years_ago=1).windchill.mintime</td></tr>
+                        <tr><td>High Dewpoint</td><td>$year($years_ago=1).dewpoint.max</td><td>$year($years_ago=1).dewpoint.maxtime</td></tr>
+                        <tr><td>Low Dewpoint</td><td>$year($years_ago=1).dewpoint.min</td><td>$year($years_ago=1).dewpoint.mintime</td></tr>
+                        <tr><td>High Humidity</td><td>$year($years_ago=1).outHumidity.max</td><td>$year($years_ago=1).outHumidity.maxtime</td></tr>
+                        <tr><td>Low Humidity</td><td>$year($years_ago=1).outHumidity.min</td><td>$year($years_ago=1).outHumidity.mintime</td></tr>
+                        <tr><td>High Barometer</td><td>$year($years_ago=1).barometer.max</td><td>$year($years_ago=1).barometer.maxtime</td></tr>
+                        <tr><td>Low Barometer</td><td>$year($years_ago=1).barometer.min</td><td>$year($years_ago=1).barometer.mintime</td></tr>
+                        <tr><td>High Wind Speed</td><td>$year($years_ago=1).wind.max <br>$year($years_ago=1).wind.gustdir</td><td>$year($years_ago=1).wind.maxtime</td></tr>
+                        <tr><td>Average Wind</td><td>$year($years_ago=1).wind.avg</td><td></td></tr>
+                        <tr><td>RMS Wind</td><td>$year($years_ago=1).wind.rms</td><td></td></tr>
+                        <tr><td>Vector Average Speed</td><td>$year($years_ago=1).wind.vecavg</td><td></td></tr>
+                        <tr><td>Vector Average Direction</td><td>$year($years_ago=1).wind.vecdir</td><td></td></tr>
+                        <tr><td>High Inside Temperature</td><td>$year($years_ago=1).inTemp.max</td><td>$year($years_ago=1).inTemp.maxtime</td></tr>
+                        <tr><td>Low Inside Temperature</td><td>$year($years_ago=1).inTemp.min</td><td>$year($years_ago=1).inTemp.mintime</td></tr>
+                        #if $year($years_ago=1).extraTemp1.has_data
+                        <tr><td>High Pond Temp</td><td>$year($years_ago=1).extraTemp1.max</td><td>$year($years_ago=1).extraTemp1.maxtime</td></tr>
+                        <tr><td>Low Pond Temp</td><td>$year($years_ago=1).extraTemp1.min</td><td>$year($years_ago=1).extraTemp1.mintime</td></tr>
+                        #end if
+                        #if $year($years_ago=1).UV.has_data
+                        <tr><td>High UV</td><td>$year($years_ago=1).UV.max</td><td>$year($years_ago=1).UV.maxtime</td></tr>
+                        <tr><td>Low UV</td><td>$year($years_ago=1).UV.min</td><td>$year($years_ago=1).UV.mintime</td></tr>
+                        #end if
+                        #if $year($years_ago=1).ET.has_data and $year($years_ago=1).ET.sum.raw >0.0
+                        <tr><td>High ET</td><td>$year($years_ago=1).ET.max</td><td>$year($years_ago=1).ET.maxtime</td></tr>
+                        <tr><td>Low ET</td><td>$year($years_ago=1).ET.min</td><td>$year($years_ago=1).ET.mintime</td></tr>
+                        #end if
+                        #if $year($years_ago=1).radiation.has_data
+                        <tr><td>High Radiation</td><td>$year($years_ago=1).radiation.max</td><td>$year($years_ago=1).radiation.maxtime</td></tr>
+                        <tr><td>Low Radiation</td><td>$year($years_ago=1).radiation.min</td><td>$year($years_ago=1).radiation.mintime</td></tr>
+                        #end if
                     </table>
                 </div>
 
@@ -147,10 +188,9 @@
                     <img src="yearwinddir.png" alt="Hi Wind" /> 
                     <img src="yearwindvec.png" alt="Wind Vector" />
 		    <img src="yeartempchill.png" alt="heatchill" />
-		    <img src="yearouthumid.png" alt="Outside Humidity" />
 		    <img src="yearbarometer.png" alt="barometer"/>
 		    <img src="yearinside.png" alt="Inside" />
-		    <img src="yearinhumid.png" alt="Inside Humidity" />
+		    <img src="yearinhumid.png" alt="Inside/Outside Humidity" />
                     #if $year.UV.has_data
                     <img src="yearuv.png" alt="UV Index" />
                     #end if