Below, is the full template file as google does not seem to allow me to 
attach a file to a post.

## template for json data to feed the steel series gauges
## $Id: gauge-data.txt.tmpl 1279 2015-03-01 15:49:03Z mwall $
## by Matthew Wall on flight 868 ;)
## 31dec2014
## Updated 25jan2015 by M Crossley, changed cloudbase: to cloudbasevalue:
## Updated 12jan2016 by M Crossley, fixes applied from here: 
https://groups.google.com/forum/#!topic/weewx-user/rDdSbzQWbFw
## Updated 12mar2016 by M Crossley, force pressure UoM mbar to mb.
##                                  added UoM consitency from unit_type 
rather than labels which can be localised
##                                  force rain in cm to mm as gauges do not 
currently handle cm's.
## Updated 04oct2016 by M Crossley, added changes from PR4
## Updated 3Jun2020  by G Roderick, rain calculations now tolerate a 
station that does not provide rain data
##                                  (as distinct from rain data that is 0)
## definitions for the tags can be found here:
## http://wiki.sandaysoft.com/a/Webtags
##
## the following fields are not directly available from weewx:
##
## ver:10?
## apptemp - calculated in this template
## apptempTL
## apptempTH
## TapptempTL
## TapptempTH
## humidex - calculated in this template
## forecast - calculated by forecasting module
## LastRainTipISO
## Tbeaufort - calculated by this template
## BearingRangeFrom10 - lowest clockwise bearing in last 10 minutes
## BearingRangeTo10 - highest clockwise bearing in last 10 minutes
## CurrentSolarMax - calculated in this template
## WindRoseData
## windrun - calculated in this template
##
## ver:12
## cloudbasevalue - calculated in this template in feet
## cloudbaseunit - defined in this template as ft
##
## ver:13
## changed UoMs
##
#import math
#import time
##
## get the time in formats that we need later
#set $ts=float($current.dateTime.raw)
#set $timeutc=time.strftime("%Y,%m,%d,%H,%M,%S", time.gmtime($ts))
##
## get some formats for calculated obs
#set $temp_format = $unit.format.outTemp
#set $press_format = $unit.format.pressure
#set $rain_format = $unit.format.rain
#set $rainrate_format = $unit.format.rainRate
#set $cloudbase_format = $unit.format.cloudbase
#set $windrun_format = $unit.format.windrun
#set $radiation_format = $unit.format.radiation
##
## see if the station has contact with the sensor
#set $sensorContactLost = 0
#set $rxchk = $getVar('current.rxCheckPercent.raw', 100)
#if $rxchk is not None and $rxchk == 0
#set $sensorContactLost = 1
#end if
##
## calculate humidex
## http://www.physlink.com/reference/weather.cfm
#if $varExists('current.outTemp') and $current.outTemp.raw is not None and 
$varExists('current.dewpoint') and $current.dewpoint.raw is not None
#set $oT_C = $current.outTemp.degree_C.raw
#set $dp_K = $current.dewpoint.degree_C.raw + 273.16
#set $e = 6.11 * math.exp(5417.7530 * ((1/273.16) - 1/$dp_K))
#set $h = 0.5555 * ($e - 10.0)
#if $h > 0
#set $humidex = $oT_C + $h
#else
#set $humidex = $oT_C
#end if
#if $unit.unit_type.outTemp == 'degree_F'
#set $humidex = 32.0 + 1.8 * $humidex
#end if
#set $humidex = $temp_format % $humidex
#else
#set $humidex = 'N/A'
#end if
##
## calculate apparent temperature
##
## http://www.bom.gov.au/info/thermal_stress/#atapproximation
## AT = Ta + 0.33*e - 0.70*ws - 4.00
##   where AT and Ta (air temperature) are deg-C,
##   e is water vapor pressure
##   ws is wind speed (m/s) at elevation of 10 meters
## e = rh / 100 * 6.105 * exp(17.27 * Ta / (237.7 + Ta))
##   rh is relative humidity
##
## http://www.ncdc.noaa.gov/societal-impacts/apparent-temp/
## AT = -2.7 + 1.04*T + 2.0*e -0.65*v
##   where AT and T (air temperature) are deg-C,
##   e is vapor pressure in kPa,
##   and v is 10m wind speed in m/sec
##
#if $varExists('current.outTemp') and $current.outTemp.raw is not None and 
$varExists('current.outHumidity') and $current.outHumidity.raw is not None 
and $varExists('current.windSpeed') and $current.windSpeed.raw is not None
#set $oT_C = $current.outTemp.degree_C.raw
#set $rh = $current.outHumidity.raw
#set $ws = $current.windSpeed.meter_per_second.raw
#set $e = ($rh / 100) * 6.105 * math.exp(17.27 * $oT_C / (237.7 + $oT_C))
#set $apptemp = $oT_C + 0.33 * $e - 0.7 * $ws - 4.0
#if $unit.unit_type.outTemp == 'degree_F'
#set $apptemp = 32.0 + 1.8 * $apptemp
#end if
#set $apptemp = $temp_format % $apptemp
#else
#set $apptemp = 'N/A'
#end if
##
## calculate the cloud base in feet
#if $varExists('current.outTemp') and $current.outTemp.raw is not None and 
$varExists('current.dewpoint') and $current.dewpoint.raw is not None
#set $oT_F = $current.outTemp.degree_F.raw
#set $dp_F = $current.dewpoint.degree_F.raw
#set $a_f = $station.altitude.foot.raw
#set $cloudbase = (($oT_F - $dp_F) / 4.4 * 1000) + $a_f
#set $cloudbase = $cloudbase_format % $cloudbase
#else
#set $cloudbase = 'N/A'
#end if
##
## calculate the wind run for the day
## FIXME: this is an approximation since averages are per-hour
#set $t = time.localtime($ts)
#set $windrun = 0
#for $n in range($t[3])
#set $ago = $hours_ago(hours_ago=$n).windSpeed.avg.raw
#if $ago is not None
#set $windrun = $windrun + $ago
#end if
#end for
#if $unit.unit_type.windSpeed == 'meter_per_second'
#set $windrun = $windrun / 3.6
#end if
#set $windrun = $windrun_format % $windrun
##
## calulate solar max
## Ryan-Stolzenbach, MIT 1972 formula
## http://www.ecy.wa.gov/programs/eap/models.html
##
##       el - solar elevation in decimal degrees
##        R - distance from earth to sun in AU
##      atc - atmospheric transmission coefficient (0.70-0.91)
##        z - elevation in meters
##
#if $almanac.hasExtras
#set $rs_el = $almanac.sun.alt
#set $rs_R = $almanac.sun.earth_distance
#set $rs_atc = 0.8
#set $rs_z = $station.altitude.meter.raw
#set $rs_nrel = 1367.0
#set $rs_sinel = math.sin($rs_el * math.pi / 180.0)
#if $rs_z is not None and $rs_R is not None
#if $rs_sinel < 0
#set $solarMax = 0
#else
#set $rs_rm = 
math.pow((288.0-0.0065*$rs_z)/288.0,5.256)/($rs_sinel+0.15*math.pow($rs_el+3.885,-1.253))
#set $rs_toa = $rs_nrel * $rs_sinel / ($rs_R * $rs_R)
#set $solarMax = $rs_toa * math.pow($rs_atc, $rs_rm)
#end if
#set $solarMax = $radiation_format % $solarMax
#else
#set $solarMax = 'N/A'
#end if
#else
#set $solarMax = 'N/A'
#end if
##
## calculate today's highest beaufort based on wind speed in knots
#if $varExists('day.windSpeed') and $day.windSpeed.max.raw is not None
#if $unit.unit_type.windSpeed == 'mile_per_hour'
#set $kts = $day.windSpeed.max.raw * 0.8689762
#elif $unit.unit_type.windSpeed == 'km_per_hour'
#set $kts = $day.windSpeed.max.raw * 0.539956
#elif $unit.unit_type.windSpeed == 'meter_per_second'
#set $kts = $day.windSpeed.max.raw * 1.943844
#elif $unit.unit_type.windSpeed == 'knot'
#set $kts = $day.windSpeed.max.raw
#else
#set $kts = 0
#end if
#if $kts < 1
#set $beaufort = 0
#elif $kts < 4
#set $beaufort = 1
#elif $kts < 7
#set $beaufort = 2
#elif $kts < 11
#set $beaufort = 3
#elif $kts < 17
#set $beaufort = 4
#elif $kts < 22
#set $beaufort = 5
#elif $kts < 28
#set $beaufort = 6
#elif $kts < 34
#set $beaufort = 7
#elif $kts < 41
#set $beaufort = 8
#elif $kts < 48
#set $beaufort = 9
#elif $kts < 56
#set $beaufort = 10
#elif $kts < 64
#set $beaufort = 11
#else
#set $beaufort = 12
#end if
#else
#set $beaufort = 'N/A'
#end if
##
## if forecasting is installed, report the Zambretti forecast
#if $varExists('forecast.zambretti')
#set $fc = $forecast.label('Zambretti', $forecast.zambretti.code)
#else
#set $fc = 'forecast is not available'
#end if
##
#set $periods = $forecast.weather_periods('WU')
#set $WU_ICON_LABELS = ["Tornado","Tropical Storm","Hurricane","Strong 
Storms","Thunderstorms","Rain / Snow","Rain / Sleet","Wintry Mix","Freezing 
Drizzle","Drizzle","Freezing Rain","Showers","Rain","Flurries","Snow 
Showers","Blowing / Drifting Snow","Snow","Hail","Sleet","Blowing Dust / 
Sandstorm","Foggy","Haze","Smoke","Breezy","Windy","Frigid / Ice 
Crystals","Cloudy","Mostly Cloudy","Mostly Cloudy","Partly Cloudy","Partly 
Cloudy","Clear","Sunny","Fair / Mostly Clear","Fair / Mostly Sunny","Mixed 
Rain and Hail","Hot","Isolated Thunderstorms","Scattered 
Thunderstorms","Scattered Showers","Heavy Rain","Scattered Snow 
Showers","Heavy Snow","Blizzard","Not Available (N/A)","Scattered 
Showers","Scattered Snow Showers","Scattered Thunderstorms"]

#if len($periods) > 0
  #set $wts = ''
  #set $wloc = ''
  #set $fc = ''
  #set $Loops = 0
  #for $period in $periods
    #set $wts = $period.issued_ts
    #set $wloc = $period.location
#if $period.event_ts is not None
#set $fc +=$period.event_ts.string('') + ' '
#end if
#if $period.temp is not None
#set $fc += $period.temp.string('') + ' '
#end if
#if $period.clouds is None
#set $fc += 'N/A'
#else
#set $fc += $WU_ICON_LABELS[int($period.clouds)]
##set $fc += $period.clouds
#end if
#set $fc += '     '
#if $Loops > 10
#break
#else
#set $Loops += 1
#end if
  #end for
#else
  #set $fc='No forecast available'
#end if
##
#set $_trend = $trend(time_delta=3600).outTemp.raw
#if $_trend is None
#set $_trend = 0
#end if
#set $t_trend = $temp_format % $_trend
##
#set $_trend = $trend(time_delta=10800).barometer.raw
#if $_trend is None
#set $_trend = 0
#end if
#set $p_trend = $press_format % $_trend
##
## Set consistent units of measure
## Pressure UoM
#set $UOM_bar = $unit.unit_type.barometer
#if $UOM_bar == 'mbar'
#set $UOM_bar = 'mb'
#end if
##
## Temperature UoM
#if $unit.unit_type.outTemp == 'degree_F'
#set $UOM_temp = 'F'
#else
#set $UOM_temp = 'C'
#end if
##
## Windspeed UoM
#if $unit.unit_type.windSpeed == 'mile_per_hour'
#set $UOM_wind = 'mph'
#elif $unit.unit_type.windSpeed == 'km_per_hour'
#set $UOM_wind = 'km/h'
#elif $unit.unit_type.windSpeed == 'knot'
#set $UOM_wind = 'kts'
#elif $unit.unit_type.windSpeed == 'meter_per_second'
#set $UOM_wind = 'm/s'
#end if
##
## Rain UoM
#set $rain_mult = 1
#set $UOM_rain = $unit.unit_type.rain
#if $unit.unit_type.rain == 'inch'
#set $UOM_rain = 'in'
#elif $unit.unit_type.rain == 'cm'
## Gauges do not handle cm, convert to mm
#set $UOM_rain = 'mm'
#set $rain_mult = 10
#end if
#if $day.rain.sum.has_data
#set $day_rain = $rain_format % ($day.rain.sum.raw * $rain_mult)
#else
#set $day_rain = 0.0
#end if
#if $current.rainRate.raw is not None
#set $current_rainrate = $rainrate_format % ($current.rainRate.raw * 
$rain_mult)
#else
#set $current_rainrate = 0.0
#end if
#if $day.rainRate.max.has_data
#set $day_rainrate_max = $rainrate_format % ($day.rainRate.max.raw * 
$rain_mult)
#else
#set $day_rainrate_max = 0.0
#end if
##
## Today's High Hourly Rain
#set $hourlyrainTH = 0
#set $ThourlyrainTH = ''
#for $hour in $day.hours
#if $hour.rain.sum.has_data and $hour.rain.sum.raw > $hourlyrainTH
#set $hourlyrainTH = $hour.rain.sum.raw
#set $ThourlyrainTH = $hour.dateTime.format("%H:%M")
#end if
#end for
#set $hourlyrainTH = $hourlyrainTH * $rain_mult
#set $hourlyrainTH = $rain_format % $hourlyrainTH
##
#set $Avg1hPM25 = $hour.pm2_5.max
#set $Avg1hPM10 = $hour.pm10_0.max
{
           "timeUTC":"$timeutc",
              "date":"$current.dateTime.format('%Y.%m.%d %H:%M')",
        "dateFormat":"y.m.d h:m",
 "SensorContactLost":"$sensorContactLost",
          "tempunit":"$UOM_temp",
          "windunit":"$UOM_wind",
         "pressunit":"$UOM_bar",
          "rainunit":"$UOM_rain",
     "cloudbaseunit":"ft",
              "temp":"$current.outTemp.formatted",
            "tempTL":"$day.outTemp.min.formatted",
            "tempTH":"$day.outTemp.max.formatted",
           "TtempTL":"$day.outTemp.mintime",
           "TtempTH":"$day.outTemp.maxtime",
         "temptrend":"$t_trend",
            "intemp":"$current.inTemp.formatted",
          "intempTL":"$day.inTemp.min.formatted",
          "intempTH":"$day.inTemp.max.formatted",
         "TintempTL":"$day.inTemp.mintime",
         "TintempTH":"$day.inTemp.maxtime",
               "hum":"$current.outHumidity.formatted",
             "humTL":"$day.outHumidity.min.formatted",
             "humTH":"$day.outHumidity.max.formatted",
            "ThumTL":"$day.outHumidity.mintime",
            "ThumTH":"$day.outHumidity.maxtime",
             "inhum":"$current.inHumidity.formatted",
               "dew":"$current.dewpoint.formatted",
        "dewpointTL":"$day.dewpoint.min.formatted",
        "dewpointTH":"$day.dewpoint.max.formatted",
       "TdewpointTL":"$day.dewpoint.mintime",
       "TdewpointTH":"$day.dewpoint.maxtime",
            "wchill":"$current.windchill.formatted",
          "wchillTL":"$day.windchill.min.formatted",
         "TwchillTL":"$day.windchill.mintime",
         "heatindex":"$current.heatindex.formatted",
       "heatindexTH":"$day.heatindex.max.formatted",
      "TheatindexTH":"$day.heatindex.maxtime",
           "apptemp":"$apptemp",
         "apptempTL":"0",
         "apptempTH":"0",
        "TapptempTL":"",
        "TapptempTH":"",
           "humidex":"$humidex",
             "press":"$current.barometer.formatted",
            "pressL":"$year.barometer.min.formatted",
            "pressH":"$year.barometer.max.formatted",
           "pressTL":"$day.barometer.min.formatted",
           "pressTH":"$day.barometer.max.formatted",
          "TpressTL":"$day.barometer.mintime",
          "TpressTH":"$day.barometer.maxtime",
     "presstrendval":"$p_trend",
             "rfall":"$day_rain",
             "rrate":"$current_rainrate",
           "rrateTM":"$day_rainrate_max",
          "TrrateTM":"$day.rainRate.maxtime",
      "hourlyrainTH":"$hourlyrainTH",
     "ThourlyrainTH":"$ThourlyrainTH",
    "LastRainTipISO":"2000-01-01 00:00",
           "wlatest":"$current.windGust.formatted",
            "wspeed":"$current.windSpeed.formatted",
            "windTM":"$day.windSpeed.max.formatted",
             "wgust":"$current.windGust.formatted",
           "wgustTM":"$day.windGust.max.formatted",
          "TwgustTM":"$day.windGust.maxtime",
           "bearing":"$current.windDir.formatted",
        "avgbearing":"$day.wind.vecdir.formatted",
         "bearingTM":"$day.wind.gustdir.formatted",
"BearingRangeFrom10":"000",
  "BearingRangeTo10":"000",
        "domwinddir":"$day.wind.vecdir.ordinal_compass",
      "WindRoseData":[],
           "windrun":"$windrun",
         "Tbeaufort":"F$beaufort",
                "UV":"$current.UV",
              "UVTH":"$day.UV.max.formatted",
          "SolarRad":"$current.radiation.formatted",
           "SolarTM":"$day.radiation.max.formatted",
   "CurrentSolarMax":"$solarMax",
    "cloudbasevalue":"$cloudbase",
          "forecast":"$fc",
           "version":"$station.version",
             "build":"",
             "pm2_5":"$current.pm2_5.formatted",
              "pm10":"$current.pm10_0.formatted",
         "Avg1hPM25":"$Avg1hPM25",
"Avg1hPM10":"$Avg1hPM10",
   "ver":"15"
}

On Wednesday, April 14, 2021 at 8:34:59 AM UTC+2 [email protected] wrote:

> Hello,
>
> I admit I fell from my chair when trying your above sample, and seeing the 
> results. :).
> The sample interestingly shows has_data = false, but pm2_5.avg gets 
> calculated. (you can check output, plus the ones I actually need there : 
> http://meteobron.ddns.net).
>
> However, when I add : 
> <snip>
> ##
> #set $Avg1hPM25 = $hour.pm2_5.max
> #set $Avg1hPM10 = $hour.pm10_0.max
> {
> </snip>
> to the gauge-data.txt.tmpl of my steal series template, the resulting data 
> is : 
> { "timeUTC":"2021,04,14,05,24,00", "date":"2021.04.14 07:24", 
> "dateFormat":"y.m.d h:m", "SensorContactLost":"0", "tempunit":"C", 
> "windunit":"km/h", "pressunit":"mb", "rainunit":"mm", "cloudbaseunit":"ft", 
> "temp":"2.0", "tempTL":"1.9", "tempTH":"6.2", "TtempTL":"07:11:34 AM", 
> "TtempTH":"12:00:44 AM", "temptrend":"-0.5", "intemp":"20.2", 
> "intempTL":"18.4", "intempTH":"20.7", "TintempTL":"06:37:35 AM", 
> "TintempTH":"12:03:07 AM", "hum":"58", "humTL":"43", "humTH":"59", 
> "ThumTL":"12:00:44 AM", "ThumTH":"07:23:22 AM", "inhum":"40", "dew":"-5.3", 
> "dewpointTL":"-5.9", "dewpointTH":"-5.1", "TdewpointTL":"04:54:51 AM", 
> "TdewpointTH":"01:38:07 AM", "wchill":"2.0", "wchillTL":"1.9", 
> "TwchillTL":"07:12:00 AM", "heatindex":"2.0", "heatindexTH":"4.4", 
> "TheatindexTH":"02:27:18 AM", "apptemp":"-0.6", "apptempTL":"0", 
> "apptempTH":"0", "TapptempTL":"", "TapptempTH":"", "humidex":"2.0", 
> "press":"1026.3", "pressL":"863.5", "pressH":"1181.0", "pressTL":"1025.8", 
> "pressTH":"1026.7", "TpressTL":"03:45:59 AM", "TpressTH":"12:55:49 AM", 
> "presstrendval":"0.4", "rfall":"0.0", "rrate":"0.0", "rrateTM":"0.0", 
> "TrrateTM":"12:00:12 AM", "hourlyrainTH":"0.0", "ThourlyrainTH":"", 
> "LastRainTipISO":"2000-01-01 00:00", "wlatest":"0", "wspeed":"0", 
> "windTM":"4", "wgust":"0", "wgustTM":"9", "TwgustTM":"03:34:00 AM", 
> "bearing":" N/A", "avgbearing":"345", "bearingTM":" N/A", 
> "BearingRangeFrom10":"000", "BearingRangeTo10":"000", "domwinddir":"NNW", 
> "WindRoseData":[], "windrun":"1.4", "Tbeaufort":"F1", "UV":"0.0", 
> "UVTH":"0.0", "SolarRad":"9", "SolarTM":"10", "CurrentSolarMax":"7", 
> "cloudbasevalue":"3603", "forecast":"14-Apr-2021 19:00 0.6&#176;C Fair / 
> Mostly Clear 15-Apr-2021 07:00 13.3&#176;C Fair / Mostly Sunny 15-Apr-2021 
> 19:00 1.1&#176;C Partly Cloudy 16-Apr-2021 07:00 13.9&#176;C Partly Cloudy 
> 16-Apr-2021 19:00 1.7&#176;C Partly Cloudy 17-Apr-2021 07:00 14.4&#176;C 
> Partly Cloudy 17-Apr-2021 19:00 3.9&#176;C Partly Cloudy 18-Apr-2021 07:00 
> 15.6&#176;C Partly Cloudy 18-Apr-2021 19:00 3.9&#176;C Partly Cloudy 
> 19-Apr-2021 07:00 17.8&#176;C Partly Cloudy 19-Apr-2021 19:00 5.0&#176;C 
> Partly Cloudy ", "version":"4.3.0", "build":"", "pm2_5":"1.233", 
> "pm10":"2.200", "Avg1hPM25":" N/A", "Avg1hPM10":" N/A", "ver":"15" }
>
> with my 2 PM measures showing as N/A.
>
>
>
> Many thanks again.
>
>

-- 
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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/weewx-user/0da2917e-573d-4937-9848-5e52fb262306n%40googlegroups.com.

Reply via email to