WebsitedataT.json

Revision as of 15:27, 21 October 2021 by Sfws (talk | contribs) (Further readability improvements)


This Cumulus template file is found in the web sub-folder of the MX distribution from release 3.10.1 onwards.

It supplies the variable information that can be included in a web page by using Cumulus web tags to create a JavaScript Object Notation (.json) data file.

Explanatory Introduction

JSON files are written in JavaScript, and that script language supports defining objects. Thus this template file defines a number of objects, each has a variable name that is assigned to a Cumulus web tag, when MX processes the template file the values replace the tags and you end up with a data file. In the supplied file, some of these web tags employ input and/or output modification Parameters. Let me take one line, and explain it in detail:

"recordsbegandateISO":"<#recordsbegandate format=yyyy-MM-dd>",
  1. The first string "recordsbegandateISO" defines the name for this variable in the object.
  2. The colon separates that object variable name from the value, think of it like an equals sign in ordinary arithmetic.
  3. The <# prefix defines the start of a Cumulus web tag.
  4. The recordsbegandate is the Cumulus tag name, the definition of this particular one can be found near the end of the table in 'Date & Time' section on webtags page.
  5. The format= is an output format modifier attribute defined in 'Multiple_Output_Format_Modifier_parameters_for_times_and_dates' section on the parameters sub-page.
  6. The yyyy-MM-dd defines the output format required, as explained in the tables on the Wiki page in the last cross-reference, this represents a four digit year, then a hyphen, then a two digit month code, then another hyphen, and finally a two digit day of month.
  7. The > symbol ends the Cumulus web tag definition.
  8. The double quotation marks round the Cumulus web tag ensure the output is treated as a string
  9. The comma at the end of the line I have used as an example is there because another parameter is defined on the next line.
  10. The whole object definition, of all the variables in the file, (not seen in single line extract above) is enclosed in brackets "{" to "}"

Example of using arithmetic with two Cumulus web tags in value

Later on this Wiki page in #Tailoring the file, it is explained that you can edit a copy of this template file. I say a copy, as if you edit the original file you risk your edit being lost whenever you upgrade to a new MX release as the release distribution includes a file with this name. In #How the file is used, it is explained how a JavaScript file "setpagedata.js" loads this data file, and transfers values from the data file into HTML pages.

If you do edit this template file, then remember it is JavaScript, there are rules for using arithmetic in this script language, but we won't go technical and list such rules here, instead we will use an example to explain. Let us suppose you wanted to include the temperature difference between now and 24 hours ago in your HTML page. How you edit HTML is covered elsewhere in this Wiki and in many tutorials available online. To get the value to our web server, we must ask MX tocalculate it, therefore that value has to be calculated in this template, and you would add a new line like this:

 "temperatureChange24hours":"<#temp rc=y> - <#RecentOutsideTemp d=1 rc=y>",

Here, we still define a single variable name before the colon, but after the colon we subtract one web tag value from another remembering that we need to specify that decimal points not decimal commas are needed for JavaScript to understand the values as being numerical in order for the subtraction to work.

(By the way, if we were doing an adding operation, we have to be very cautious as "+" is normally understood in this script language as indicating concatenation of strings. Please see here for an example of how addition is used, essentially '+' can be used for adding by always using a numerical constant before the plus sign and always having any variable after the plus sign).

How the file is used

This wiki page is about a Cumulus template file. Settings for Optional_Web_Server describes how choosing the default web pages enables the processing of this file into a data file with values, and how that can be uploaded onto your web server. If we decide to tailor this template file, as described later, then we might use Extra web files settings within the settings interface to process and upload our tailored file(s).

MX has to be told to convert that to a data file. There is a full explanation of what is meant by 'Cumulus processing any template' here. In this case, MX will generate a file that is stored as "CumulusMX/web/websitedata.json". This data file is still coded as JavaScript file, but now the tags have gone as they have been replaced by values.

The data file is used with the Web Pages supplied in the webfiles sub-folder of the MX distribution from release 3.10.1 onwards. On your web server, each HTML page will call another JavaScript file "/CumulusMX/webfiles/js/setpagedata.js" (after uploading this file once to web site), it is that script that will both read the uploaded data file, and insert the relevant value into HTML pages in a span which has the "cmxdata" attribute, with a value for that attribute set to the appropriate variable name for the relevant JSON object.

For example <span data-cmxdata="recordsbegandateISO"></span> would be processed in the "setpagedata.js" script and result in an insert of the date in the JSON line that we examined in detail at the start of this Wiki page.

Similarly, <span data-cmxdata="temperatureChange24hours"></span> would make that script insert the temperature difference we defined earlier, to show how arithmetic can be used in what can be added as a modification to the JSON template.

In the tables below, that explain the data represented by various lines in the template file, there are multiple columns:

  • Cumulus tag name (including whether any input/output modification parameters)
  • JSON object variable name
  • The span sequence used in HTML file to relate to the

The reason for showing all three columns is that sometimes the tag name and the variable name do not match in the JSON file, and that if you look in the HTML file you need to find what data will be inserted there, including whether any input/output modification parameter appears, or the default output from that tag name will appear. Please note for simplicity, not every line in the file is explained, sometimes just one example is given representing multiple lines, this is enough to show you the format (with or without parameters), and whether the tag name and JSON object variable name do match.

File details

This file is designed to work with the MX default web pages (that you upload just once from the webfiles sub-folder of your MX installation) and lists all the JSON variables that those pages require to be uploaded to your web server. Note that the variables included in this file represent the degree symbol o in two different ways:

  1. As an HTML encoded entity &deg; that always translates to ° if you are using in HTML web page
  2. As a binary character (equates to decimal 176), that only translates to ° if you are using UTF-8 encoding (select this on Internet SettingsWeb/FTP SettingsGeneral Settings → tick UTF-8 encoding) to create this file with that encoding (to match the encoding used by the web pages included in webfiles folder)

The file has to cater for the majority of people using the default web site, and assumes use of a Davis weather station, therefore its content might not be optimised for your use. The default web pages, even if you customise them, can only display JSON variables that are defined in this file (as per tables below) and formats for content are fixed.

Tailoring the file

If you want to use this file as the basis of your own JSON based file uploads (either because you want to change the fixed formats in provided file, or because you are not using the default web site):

  • Should you wish to tailor it, the best practice is to take a copy into a new folder, edit that copy, possibly into 3 separate files, and use the Extra Web Files settings to get your tailored template processed and uploaded at your preferred interval. The suggestion for multiple separate files, is purely because the content of the file does not all change at same interval:
    1. First file, upload using the EOD selection
      • Include in this file, all the Static information (marked as such in lists below), as this information rarely changes
      • Equally include in this first file the Yesterday group as those values only change at rollover
    2. Most of the rest of the information can change during a day, and is best uploaded in a second file at your real-time interval (if that is enabled)
    3. You might chose to upload some information in a third file that is uploaded at the defined standard interval

You will need to modify your JavaScript file "/CumulusMX/webfiles/js/setpagedata.js" (and don't forget to upload this file after editing once to web site), because it includes the loading of the data file: $.getJSON('websitedata.json?_=' + Date.now(),, the query-string (bit prefixed by question mark) just ensures a fresh copy is loaded each time, preventing your browser thinking because you have loaded the file before it can reuse the copy it cached. In the tailored copy of this script, it will need to load each of the tailored data files.

Options

There are 3 fixed pieces of information conveyed by this file refering to Cumulus web tags for defining options:

  1. "useApparent" = whether Apparent Temperature or Feels Like temperature is required
  2. "showSolar" = whether a solar sensor is providing solar information or not
  3. "showUV" = whether a UV sensor is providing Ultra Violet information or not

The content values for these JSON object names as included in this file depend upon selections at Station Settings → Display Options.

List of variables

Listed in the order they appear in the file, and grouped as delimited by blank lines in the file. Blame the developer who created the file, not the contributors here, for any difficulty in finding a particular definition.

Static information

Web tag_name JSON Variable Web page span id Function
<#locationenc> "location" <span data-cmxdata="location"> The station location (as you entered in Settings) encoded for HTML
<#update> "update" <span data-cmxdate="update"> The date and time of the last web site update. The default format depends on the locale you use to run Cumulus
<#version> "version" <span data-cmxdata="version"> The version number associated with the MX release installed e.g. 3.10.1
<#build> "build" <span data-cmxdata="build"> The build number associated with the MX release installed e.g. 3122
<#latitude> "latitude" <span data-cmxdata="latitude"> The station latitude (as you entered in Settings) encoded for HTML e.g. N 59& deg;&nbsp;14&#39;&nbsp;33&quot; prints as N 59o 14" 33'
<#longitude> "longitude" <span data-cmxdata="longitude"> The station longitude (as you entered in Settings) encoded for HTML.
<#altitude> "altitude" <span data-cmxdata="altitude"> The station altitude value encoded for HTML (i.e. figure, '&nbsp;' and units) in either feet or metres, above sea level, just as you entered in Settings (so it is more complex to extract number for script arithmetic); e.g. 123&nbsp;m
<#recordsbegandate> "recordsbegandate" and "recordsbegandateISO" e.g. <span data-cmxdata="recordsbegandate"> Date when usage of MX began. The default format for first JSON parameter depends on the locale you use to run Cumulus, the second JSON parameter always returns a four digit year, then a hyphen, then a 2 digit month number, then a hyphen, then a 2 digit day of month number; this is using the date formatting element of ISO 8601 Data elements and interchange formats and was explained as an example in detail at the start of this Wiki page
<#forum> "forum" <span data-cmxdata="forum"> Defined within MX to include Universal Resource Location (URL) for the Cumulus Support Forum as hosted by Freddie, encoded for HTML menu using anchor tagging as ::<a href="https://cumulus.hosiene.co.uk/index.php">forum</a>:
<#forumurl> "forumurl" <span data-cmxdata="forumurl"> The raw URL, but without encoding for menu. Not available before version 3.10.1 release build 3116
<#webcam> and <#webcamurl> "webcam" and "webcamurl" e.g. <span data-cmxdata="webcam"> You can supply a URL within the Settings that will be output by these web tags. It can be used for a web cam page, or any other web page. The formatting is as for the forum, with or without the HTML anchor.

There are more pieces of Static Information in the group that follows the blank line, and called here "Current Conditions", each is identified as such.


Current Conditions

Web tag_name JSON Variable Web page span id Function
<#currcondenc> "currcond" <span data-cmxdata="currentcond"> MX will look for a currentconditions.txt file in the same folder as CumulusMX.exe. The contents of this file will be encoded as HTML (i.e. all characters above {decimal base} code 159 will be encoded as HTML entities; for example this would encode any use of symbol for degree), and output through this web tag. The file will be deleted once Cumulus has processed it, so you need a process to create the file again and again.
<#dawn> "dawn" <span data-cmxdata="dawn"> Start of most recent Civil Twilight (in time format specified for your locale, without date) as calculated for the latitude and longitude in the settings
<#sunrise> "sunrise" <span data-cmxdata="sunrise"> Most recent time (in time format specified for your locale, without date) that sunrise was due as calculated for the latitude and longitude in the settings; if the sun does not rise at that latitude returns "--:--"
<#moonrise> "moonrise" <span data-cmxdata="moonrise"> Current moonrise time at the latitude and longitude in the settings; ("--:--" if moon does not rise on current calendar day)
<#dusk> "dusk" <span data-cmxdata="dusk"> End of next Civil Twilight at the latitude and longitude in the settings
<#sunset> "sunset" <span data-cmxdata="sunset"> Most recent time (in time format specified for your locale, without date) that sunset was due as calculated for the latitude and longitude in the settings; if the sun does not set at that latitude returns "--:--"
<#moonset> "moonset" <span data-cmxdata="moonset"> Current moonset time at the latitude and longitude in the settings; ("--:--" if moon does not set on current calendar day)
<#daylightlength> "daylightlength" <span data-cmxdata="daylightlength"> Time interval between reported dawn and dusk times, those may not both relate to current calendar day
<#daylength> "daylength" <span data-cmxdata="daylength"> Time interval between reported sunrise and sunset times, those may not both relate to current calendar day
<#moonphase> "moonphase" <span data-cmxdata=moonphase"> Current phase of the moon in words, eg "New Moon" etc. The names used can be altered in strings.ini.
<#longlocation> "longlocation" <span data-cmxdata=longlocation"> (Static information) Longer description of your location as entered in Settings
<#stationtype> "stationtype" <span data-cmxdata="stationtype"> (Static information) The weather station [Cumulus.ini#Section:_Station model] description (you choose what text appears for this in Settings)
<#interval> "interval" <span data-cmxdata="interval"> (Static information) The web site update interval in minutes (integer)
<#rollovertime> "rollovertime" <span data-cmxdata="rollovertime"> (Static information if you use midnight rollover; changes when DST starts/stops if you have selected Use 10 am in Summer) The time that the logs rollover to the next day: will always return one of these: 'Midnight', '9 am' or '10 am'
<#forecastenc> "forecast" <span data-cmxdata="forecast"> Depending on Settings, outputs either the forecast supplied by your weather station or the Cumulus (Zambretti) forecast. With all reserved HTML characters like space, and all those above {decimal base} character code 159, encoded as HTML entities
<#year> "year" <span data-cmxdata="year"> (Static information except on New Year's Eve/New Year's Day transition) The current year as a 4-digit number. Example format: 2009
<#yesterday> "yesterday" <span data-cmxdata="yesterday"> (Fairly static information as only changes when calendar day changes) The date of the calendar day that has most recently finished. The default format depends on the locale you use to run Cumulus
<#metdateyesterday format=yyyy-MM-dd> "metdateyesterdayISO" <span data-cmxdata="metdateyeaterdayISO"> (Fairly static information as only changes at start of rollover) The date of the meteorological day that has most recently finished. Using the date formatting element of ISO 8601 Data elements and interchange formats

Note: The JSON name chosen indicates this is in ISO 8601 format, not your locale format.

<#date> "date" <span data-cmxdata="date"> (Only changes when calendar day changes) The current date - format depends on locale you use to run Cumulus
<#time> "time" <span data-cmxdata="time"> The current time and date as per full date-time format in your locale. Example result (actual format depends on locale settings): 18:30 on 30 December 2009.
<#monthname> "monthname" <span data-cmxdata="monthname"> (Only changes when calendar month changes) The current calendar month using words defined for your locale. Example format: July

Note: If you use 9 am or 10 am rollover, on the first day of a month this will (before rollover) display wrong meteorological month

<#temp> "temp" <span data-cmxdata="temp"> The most recently measured outside (air) temperature
<#tempunit> "tempunit" <span data-cmxdata="tempunit"> (Static information) The unit associated with all measured, and derived, temperature values
<#rainunit> "rainunit" <span data-cmxdata="rainunit"> (Static information) The unit associated with all reported rainfall values
<#windunit> "windunit" <span data-cmxdata="rainunit"> (Static information) The unit associated with all reported wind speed and gust values
<#windrununit> "windrununit" <span data-cmxdata="windrununit"> (Static information) The unit derived from previous entry after multiplying by time
<#pressunit> "pressunit" <span data-cmxdata="pressunit"> (Static information) The unit associated with all reported atmospheric pressure values
<#dew> "dew" <span data-cmxdata="dew"> The current dew point either as reported by weather station, or calculated by MX, depending on Settings
<#wchill> "wchill" <span data-cmxdata="wchill"> The current wind chill either as reported by weather station, or calculated by MX from current air temperature and current average wind speed, depending on Settings

Note: There is more information on Feels Like temperature page.

<#hum> "hum" <span data-cmxdata="hum"> The current outside relative humidity as reported by weather station
<#heatindex> "heatindex" <span data-cmxdata="heatindex"> The current USA Heat index as calculated by MX. Note: There is more information on Feels Like temperature page.
<#apptemp> "apptemp" <span data-cmxdata="apptemp"> The current Australian apparent temperature. Note: There is more information on Feels Like temperature page.
<#feelslike> "feelslike" <span data-cmxdata="feelslike"> The current Feels Like temperature.
<#SolarRad> "SolarRad" <span data-cmxdata="SolarRad"> Current solar radiation. Output should be ignored if your station does not have a solar sensor.
<#ET> "ET" <span data-cmxdata="ET"> Current evapotranspiration. Applies only to particular Davis stations, equipped with a solar sensor. The value provided by the Davis station is unreliable.
<#UV> "UV" <span data-cmxdata="UV"> Current UV index. Requires your station to have a UV sensor.
<#THWindex> "THWindex" n/a Included in release 3.10.1 file in error, this requires a Davis DLL that is not available to MX
<#TempChangeLastHour> "TempChangeLastHour" <span data-cmxdata="TempChangeLastHour"> Calculated by MX by subtracting the outside air temperature one hour ago <#RecentOutsideTemp h=1> from the current outside air temperature <#temp>
<#rfall> "rfall" <span data-cmxdata="rfall"> The total rainfall (derived from count now minus count at rollover) since last rollover (can be adjusted using Rain Today option in settings, but that does not affect the other outputs below)
<#rrate> "rrate" <span data-cmxdata="rrate"> Cumulus calculates the rainfall rate by subtracting the count X minutes ago from the current count and dividing by X. When Cumulus is left running, the value of X is dependent on weather station type.
<#rmonth> "rmonth" <span data-cmxdata="rmonth"> The total rainfall (derived from count now minus count at start of meteorological month) for the month so far
<#ryear> "ryear" <span data-cmxdata="ryear"> The total rainfall (derived from count now minus count at start of meteorological season, plus any adjustment defined in Settings for this calendar year) for the rain year (starting month defined in Settings)
<#rhour> "rhour" <span data-cmxdata="rhour"> The total rainfall in last hour (derived from count now minus count one hour ago). Equivalent to <#rfall> - <#RecentRainToday h=1> (unless rollover happened within last hour)
<#LastRainTip format="d MMM"> "LastRainTip" <span data-cmxdata="LastRainTip"> Date of last rain gauge tip (e.g 6 Sep)
<#rmidnight> "rmidnight" <span data-cmxdata="rmidnight"> The total rainfall (derived from count now minus count at midnight) so far this calendar day
<#r24hour> "r24hour" <span data-cmxdata="r24hour"> The total rainfall (derived from count now minus count 24 hours ago) in last 24 hours
<#wgust> "wgust" <span data-cmxdata="wgust"> The highest wind reading (by default) in the last 10 minutes. (Can be affected by Settings)
<#wspeed> "wspeed" <span data-cmxdata="wspeed"> The 10-minute average, if you have Cumulus set to calculate a 10-minute average. Otherwise, it's the latest 'wind' value from the console (i.e. the current speed as determined by the station).
<#avgbearing> "avgbearing" <span data-cmxdata="avgbearing"> Average wind bearing in degrees over last X minutes. (X is ten by default or as configured using AvgBearingMinutes in Cumulus.ini) Range of output is 1-360, 0=Calm
<#wdir> "wdir" <span data-cmxdata="wdir"> Average wind bearing over last 10 minutes as a compass point - e.g. ESE. The output can be configured using Strings.ini in a [Compass] section based on that in Samplestring.ini.
<#beaufort> and <#beaudesc> "beaufort" and "beaudesc" e.g. <span data-cmxdata="beaudesc"> The first JSON parameter reports the same as "wspeed", but expressed as a force number on the Beaufort scale, e.g. "6". The second parameter reports a description associated with that scale, that can be configured using Strings.ini in a [Beaufort] section based on that in Samplestring.ini.
<#BearingRangeFrom> "BearingRangeFrom" <span data-cmxdata="BearingRangeFrom"> The 'lowest' clockwise bearing in the last X minutes (X is ten by default or as configured using AvgBearingMinutes in Cumulus.ini)
<#BearingRangeTo> "BearingRangeTo" <span data-cmxdata="BearingRangeTo"> The 'highest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in Cumulus.ini)
<#press> "press" <span data-cmxdata="press"> The sea level pressure as supplied by your station (or if station only supplies actual pressure, corrected to SLP by a factor supplied by your weather station)
<#presstrend> "presstrend" <span data-cmxdata="presstrend"> The pressure trend in words - values can be set in the Strings.ini file in a [Trends] section based on that in Samplestring.ini.
<#presstrendval> "presstrendval" <span data-cmxdata="presstrendval"> The average rate of pressure change over the last three hours, calculated from (<#press> - <#RecentPressure h=3>) / 3

Daily extremes for today

Web tag_name JSON Variable Web page span id Function
<#tempTH> and <#TtempTH> "tempTH" and "TtempTH" e.g.<span data-cmxdata="tempTH"> Highest temperature this meteorological day, and time, taken from Today.ini
<#tempTL> and <#TtempTL> "tempTL" and "TtempTL" e.g.<span data-cmxdata="tempTL"> Lowest temperature this meteorological day, and time, taken from today.ini
<#temprange> "temprange" e.g.<span data-cmxdata="temprange"> Calculated by MX using <#tempTH> - <#tempTL>
<#apptempTH> and <#TapptempTH> "apptempTH" and "TapptempTH" e.g.<span data-cmxdata="apptempTH"> Highest Australian Apparent Temperature derived by MX for this meteorological day, and time, taken from today.ini
<#apptempTL> and <#TapptempTL> "apptempTL" and "TapptempTL" e.g.<span data-cmxdata="apptempTL"> Lowest Australian Apparent Temperature derived by MX for this meteorological day, and time, taken from today.ini
<#feelslikeTH> and <#TfeelslikeTH> "feelslikeTH" and "TfeelslikeTH" e.g.<span data-cmxdata="feelslikeTH"> Highest Feels Like temperature derived by MX for this meteorological day, and time, taken from today.ini
<#feelslikeTL> and <#TfeelslikeTL> "feelslikeTL" and "TfeelslikeTL" e.g.<span data-cmxdata="feelslikeTL"> Lowest Feels Like temperature derived by MX for this meteorological day, and time, taken from today.ini
<#wchillTL> and <#TwchillTL> "wchillTL" and "TwchillTL" e.g.<span data-cmxdata="wchillTL"> Greatest Wind Chill, based on combining Highest Wind Speed and Lowest Outside Air Temperature, derived by MX for this meteorological day, and time, taken from today.ini
<#heatindexTH> and <#TheatindexTH> "heatindexTH" and "TheatindexTH" e.g.<span data-cmxdata="heatindexTH"> Highest USA Heat Index, derived by MX for this meteorological day, and time, taken from today.ini

Note: The Canadian Humidity Index (Humidex) could be used instead by replacing <#heatindexTH> and <#TheatindexTH> with <#humidexTH> and <#ThumidexTH>

<#humTH> and <#ThumTH> "humTH" and "ThumTH" e.g.<span data-cmxdata="humTH"> Highest Relative Humidity, derived by MX for this meteorological day, and time, taken from today.ini
<#humTL> and <#ThumTL> "humTL" and "ThumTL" e.g.<span data-cmxdata="humTL"> Lowest Relative Humidity, derived by MX for this meteorological day, and time, taken from today.ini
<#solarTH> and <#TsolarTH> "solarTH" and "TsolarTH" e.g.<span data-cmxdata="solarTH"> Highest Solar Radiation, output should be ignored if your station does not have a solar sensor, derived by MX for this meteorological day, and time, taken from today.ini
<#SunshineHours> "SunshineHours" <span data-cmxdata="SunshineHours"> Today's hours of sunshine so far, output should be ignored if your station does not have a solar sensor, derived by MX for this meteorological day, taken from today.ini
<#UVTH> and <#TUVTH> "UVTH" and "TUVTH" e.g.<span data-cmxdata="UVTH"> Highest Ultra Violet Radiation, output should be ignored if your station does not have a UV sensor, derived by MX for this meteorological day, and time, taken from today.ini
<#rrateTM and <#TrrateTM> "rrateTM" and "TrrateTM" e.g.<span data-cmxdata="rrateTM"> Highest Rainfall Rate, derived by MX for this meteorological day, and time, taken from today.ini
<#hourlyrainTH> and <#ThourlyrainTH> "hourlyrainTH" and "ThourlyrainTH" e.g.<span data-cmxdata="hourlyrainH"> Highest Rainfall in any 60 minutes, derived by MX for this meteorological day, and time, taken from today.ini
<#ConsecutiveRainDays> and <#ConsecutiveDryDays> "ConsecutiveRainDays" and "ConsecutiveDryDays" e.g.<span data-cmxdata="ConsecutiveDryDays"> Counts by MX of consecutive days when daily rainfall is above, and below, respectively the threshold set in Settings
<#wgustTM> and <#wgustTM> "wgustTM" and "TwgustTM" e.g.<span data-cmxdata="wgustTM"> Highest Gust (maximum of all "highest wind reading in the last X minutes"), derived by MX for this meteorological day, and time, taken from today.ini
<#windTM> and <#TwindTM> "windTM" and "TwindTM" e.g.<span data-cmxdata="windTM"> Today's maximum (average) wind speed, derived by MX for this meteorological day, and time, taken from today.ini
<#Tbeaufort> "Tbeaufort" <span data-cmxdata="Tbeaufort"> Here the "T" prefix, does not mean time, but "today"; reports the Beaufort force represented by Today's maximum (average) wind speed
<#windrun> "windrun" <span data-cmxdata="windrun"> Today's overall average wind speed, multiplied by hours so far for this meteorological day, taken from today.ini
<#domwindbearing> and <#domwinddir> "domwindbearing" and "domwinddir" e.g.<span data-cmxdata="domwdirdir"> Taking the individual wind speeds and associated direction, so far for this meteorological day, MX calculates by vector arithmetric the dominant direction. The first JSON variable has the direction as a bearing in degrees (0=calm), and the second as a compass direction (see previous sub-section for how to customise this output)
<#pressTH> and <#TpressTH> "pressTH" and "TpressTH" e.g.<span data-cmxdata="pressTH"> Highest Sea Level Pressure, derived by MX for this meteorological day, and time, taken from today.ini
<#pressTL> and <#TpressTL> "pressTL" and "TpressTL" e.g.<span data-cmxdata="pressTL"> Lowest SL Pressure, derived by MX for this meteorological day, and time, taken from today.ini

Daily extremes for yesterday

Web tag_name JSON Variable Web page span id Function
<#tempYH> and <#TtempYH> "tempYH" and "TtempYH" e.g.<span data-cmxdata="tempYH"> Highest temperature on previous meteorological day, and time, taken from last line stored in Dayfile.txt
<#tempYL> and <#tempYL> "tempYL" and "TtempYL" e.g.<span data-cmxdata="tempYL"> Lowest temperature on previous meteorological day, and time, taken from last line stored in dayfile.txt
<#temprangeY> "temprangeY" <span data-cmxdata="temprangeYL"> Reports <#tempYH> - <#tempYL>
<#apptempYH> and <#TapptempYH> "apptempYH" and "TapptempYH" e.g.<span data-cmxdata="apptempYH"> Highest apparent temperature on previous meteorological day, and time, taken from last line stored in dayfile.txt
<#apptempYL> and <#apptempYL> "apptempYL" and "TapptempYL" e.g.<span data-cmxdata="apptempYL"> Lowest apparent temperature on previous meteorological day, and time, taken from last line stored in dayfile.txt
<#feelslikeYH> and <#TfeelslikeYH> "feelslikeYH" and "TfeelslikeYH" e.g.<span data-cmxdata="feelslikeYH"> Highest feels like temperature on previous meteorological day, and time, taken from last line stored in dayfile.txt
<#feelslikeYL> and <#TfeelslikeYL> "feelslikeYL" and "TfeelslikeYL" e.g.<span data-cmxdata="feelslikeYL"> Lowest feels like temperature on previous meteorological day, and time, taken from last line stored in dayfile.txt
<#wchillYL> and <#TwchillYL> "wchillYL" and "TwchillYL" e.g.<span data-cmxdata="wchillYL"> Greatest Wind Chill, based on combining Highest Wind Speed and Lowest Outside Air Temperature, taken from last line stored in dayfile.txt
<#heatindexYH> and <#TheatindexYH> "heatindexYH" and "TheatindexYH" e.g.<span data-cmxdata="heatindexYH"> Highest USA Heat Index, derived by MX for this meteorological day, and time, taken from last line stored in dayfile.txt

Note: The Canadian Humidity Index (Humidex) could be used instead by replacing <#heatindexYH> and <#TheatindexYH> with <#humidexYH> and <#ThumidexYH>

<#humYH> and <#ThumYH> "humYH" and "ThumYH" e.g.<span data-cmxdata="humYH"> Highest relative humidity on previous meteorological day, and time, taken from last line stored in dayfile.txt
<#humYL> and <#ThumYL> "humYL" and "ThumYL" e.g.<span data-cmxdata="humYL"> Lowest relative humidity on previous meteorological day, and time, taken from last line stored in dayfile.txt
<#solarYH> and <#solarYH> "solarYH" and "TsolarYH" e.g.<span data-cmxdata="solarYH"> Highest Solar Radiation, output should be ignored if your station does not have a solar sensor, and time, taken from last line stored in dayfile.txt
<#YSunshineHours> "YSunshineHours" e.g.<span data-cmxdata="YSunshineHours"> Yesterday's sunshine hours, taken from last line stored in dayfile.txt
<#UVYH> and <#TUVYH> "UVYH" and "TUVYH" e.g.<span data-cmxdata="UVYH"> Highest Ultra Violet Radiation, output should be ignored if your station does not have a UV sensor, taken from last line stored in dayfile.txt
<#rfallY>, <#rrateYM>, <#TrrateYM>, <#hourlyrainYH>, <#ThourlyrainYH> "rfallY", "rrateYM", "TrrateYM", "hourlyrainYH", "ThourlyrainYH" e.g.<span data-cmxdata="hourlyrainYH"> Respectively total rainfall, highest rainfall rate and time, highest rainfall in any 60 minutes and time, taken from last line stored in dayfile.txt
<#wgustYM> and <#TwgustYM> "wgustYM" and "TwgustYM" e.g.<span data-cmxdata="wgustYM"> Highest gust, and time, taken from last line stored in dayfile.txt
<#windYM> and <#TwindYM> and <#Ybeaufort> "windYM" and "TwindYM" and "Ybeaufort" e.g.<span data-cmxdata="windYM"> Highest average wind speed, time, and equivalent Beaufort Force number, taken from last line stored in dayfile.txt
<#windrunY> "windrunY" <span data-cmxdata="windrunY"> Yesterday's overall average wind speed, multiplied by 24 hours representing whole of that meteorological day, taken from last line stored in dayfile.txt
<#domwindbearingY> and <#domwinddirY> "domwindbearingY" and "domwinddirY" e.g.<span data-cmxdata="domwinddirY"> Taking the individual wind speeds and associated direction, for previous meteorological day, MX calculated (for last line stored in dayfile.txt) by vector arithmetric the dominant direction. The first JSON variable has the direction as a bearing in degrees (0=calm), and the second as a compass direction (see previous sub-section for how to customise this output)
<#pressYH> and <#TpressYH> "pressYH" and "TpressYH" e.g.<span data-cmxdata="pressYH"> Highest sea level pressure on previous meteorological day, and time, taken from last line stored in dayfile.txt
<#pressYL> and <#TpressYL> "pressYL" and "TpressYL" e.g.<span data-cmxdata="pressY"> Lowest SL pressure on previous meteorological day, and time, taken from last line stored in dayfile.txt

Monthly extremes for month-to-date

Web tag_name JSON Variable Web page span id Function
<#MonthTempH>, <#MonthTempHT> and <#MonthTempHD> "MonthTempH", "MonthTempHT" and "MonthTempHD" e.g.<span data-cmxdata="MonthTempH"> Highest temperature this meteorological month, time, and date, taken from Month.ini
<#MonthTempL>, <#MonthTempLT> and <#MonthTempLD> "MonthTempL", "MonthTempLT" and "MonthTempLD" e.g.<span data-cmxdata="MonthTempL"> Lowest temperature this meteorological month, time, and date, taken from month.ini
<#MonthDewPointH>, <#MonthDewPointHT> and <#MonthDewPointHD> "MonthDewPointH", "MonthDewPointHT" and "MonthDewPointHD" e.g.<span data-cmxdata="MonthDewPointH"> (Did you notice this was not included for today nor yesterday) Highest dew point this meteorological month, time, and date, either as reported by weather station, or calculated by MX, depending on Settings, taken from month.ini
<#MonthDewPointL>, <#MonthDewPointLT> and <#MonthDewPointLD> "MonthDewPointL", "MonthDewPointLT" and "MonthDewPointLD" e.g.<span data-cmxdata="MonthDewPointL"> (Did you notice this was not included for today nor yesterday) Lowest dew point this meteorological month, time, and date, either as reported by weather station, or calculated by MX, depending on Settings, taken from month.ini
<#MonthAppTempH>, <#MonthAppTempHT> and <#MonthAppTempHD> "MonthAppTempH", "MonthAppTempHT" and "MonthAppTempHD" e.g.<span data-cmxdata="MonthAppTempH"> Highest apparent temperature this meteorological month, time, and date, taken from month.ini
<#MonthAppTempL>, <#MonthAppTempLT> and <#MonthAppTempLD> "MonthAppTempL", "MonthAppTempLT" and "MonthAppTempLD" e.g.<span data-cmxdata="MonthAppTempLT"> Lowest apparent temperature this meteorological month, time, and date, taken from month.ini
<#MonthFeelsLikeH>, <#MonthFeelsLikeHT> and <#MonthFeelsLikeHD> "MonthFeelsLikeH", "MonthFeelsLikeHT" and "MonthFeelsLikeHD" e.g.<span data-cmxdata="MonthFeelsLikeH"> Highest feels like temperature this meteorological month, time, and date, taken from month.ini
<#MonthFeelsLikeL>, <#MonthFeelsLikeLT> and <#MonthFeelsLikeLD> "MonthFeelsLikeL", "MonthFeelsLikeLT" and "MonthFeelsLikeLD" e.g.<span data-cmxdata="MonthFeelsLikeLD"> Lowest feels like temperature this meteorological month, time, and date, taken from month.ini
<#MonthWChillL>, <#MonthWChillLT> and <#MonthWChillLD> "MonthWChillL", "MonthWChillLT" and "MonthWChillLD" e.g.<span data-cmxdata="MonthWChillLT"> Greatest Wind Chill, based on combining Highest Wind Speed and Lowest Outside Air Temperature, taken from month.ini
<#MonthHeatIndexH>, <#MonthHeatIndexHT> and <#MonthHeatIndexHT> "MonthHeatIndexH", "MonthHeatIndexHT" and "MonthHeatIndexHD" e.g.<span data-cmxdata="MonthheatIndexH"> Highest USA Heat Index, derived by MX for this meteorological month, time, and date, taken from month.ini

Note: The Canadian Humidity Index (Humidex) could be used instead by replacing <#MonthHeatIndexH>, <#MonthHeatIndexHT> and <#MonthHeatIndexHT> with <#MonthHumidexH>, <#MonthHumidexHT> and <#MonthHumidexHD>

<#MonthMinTempH> and <#MonthMinTempHD> "MonthMinTempH" and "MonthMinTempHD" e.g.<span data-cmxdata="MonthMinTempH"> From looking at all daily Highest temperature for this meteorological month, these JSON parameters report the lowest found, and the date.

NOTE: The time that temperature was seen is not reported in this file, so cannot be shown on the default web pages

<#MonthMaxTempL> and <#MonthMaxTempLD> "MonthMaxTempL" and "MonthMaxTempLD" e.g.<span data-cmxdata="MonthMaxTempLD"> From looking at all daily Lowest temperature for this meteorological month, these JSON parameters report the highest found, and the date.

NOTE: The time that temperature was seen is not reported in this file, so cannot be shown on the default web pages

<#MonthHumH>, "<#MonthHumHT> and <#MonthHumHD> "MonthHumH", "MonthHumHT" and "MonthHumHD" e.g.<span data-cmxdata="MonthHumH"> Highest relative humidity this meteorological month, time, and date, taken from month.ini
<#MonthHumL>, "<#MonthHumLT> and <#MonthHumLD> "MonthHumL", "MonthHumLT" and "MonthHumLD" e.g.<span data-cmxdata="MonthHumLD"> Lowest relative humidity this meteorological month, time, and date, taken from month.ini
<#MonthHighDailyTempRange> and <#MonthHighDailyTempRangeD> "MonthHighDailyTempRange" and "MonthHighDailyTempRangeD" e.g.<span data-cmxdata="MonthHighDailyTempRangeD"> Highest daily temperature range this meteorological month, time, and date, taken from month.ini
<#MonthLowDailyTempRange> and <#MonthLowDailyTempRangeD> "MonthLowDailyTempRange" and "MonthLowDailyTempRangeD" e.g.<span data-cmxdata="MonthLowDailyTempRange"> Lowest daily temperature range this meteorological month, time, and date, taken from month.ini
<#MonthRainRateH>, <#MonthRainRateHT> and <#MonthRainRateHD> "MonthRainRateH", "MonthRainRateHT" and "MonthRainRateHD" e.g.<span data-cmxdata="MonthRainRateH"> Highest rainfall rate this meteorological month, time, and date, taken from month.ini
<#MonthHourlyRainH>, <#MonthHourlyRainHT> and <#MonthHourlyRainHD> "MonthHourlyRainH", "MonthHourlyRainHT" and "MonthHourlyRainHD" e.g.<span data-cmxdata="MonthHourlyRainH"> Highest rainfall in any 60 minutes of this meteorological month, time, and date, taken from month.ini
<#MonthDailyRainH> and <#MonthDailyRainHD> "MonthDailyRainH" and "MonthDailyRainHD" e.g.<span data-cmxdata="MonthDailyRainH"> Amount and date for wettest day, of this meteorological month, taken from month.ini
<#MonthLongestDryPeriod>, <#MonthLongestDryPeriodD>, <#MonthLongestWetPeriod> and <#MonthLongestWetPeriodD> "MonthLongestDryPeriod", "MonthLongestDryPeriodD", "MonthLongestWetPeriod" and "MonthLongestWetPeriodD" e.g.<span data-cmxdata="MonthLongestWetPeriodD"> Largest Counts by MX of consecutive days when daily rainfall is above, and below, respectively the threshold set in Settings, of this meteorological month, taken from month.ini
<#MonthGustH>, <#MonthGustHT> and <#MonthGustHD> "MonthGustH", "MonthGustHT" and "MonthGustHD" e.g.<span data-cmxdata="MonthGustH"> Highest Gust (maximum of all "highest wind reading in the last X minutes"), derived by MX for this meteorological month, time, and date, taken from month.ini
<#MonthWindH>, <#MonthWindHT> and <#MonthWindHD> "MonthWindH", "MonthWindHT" and ""MonthWindHD" e.g.<span data-cmxdata="MonthWindH"> The maximum (average) wind speed, derived by MX for this meteorological month, time, and date, taken from month.ini
<#MonthWindRunH> and <#MonthWindRunHD> "MonthWindRunH" and "MonthWindRunHD" e.g.<span data-cmxdata="MonthWindRunH"> Highest daily wind run this meteorological month, and date, taken from month.ini
<#MonthPressL>, <#MonthPressLT> and <#MonthPressLD> "MonthPressL", "MonthPressLT" and "MonthPressLD" e.g.<span data-cmxdata="MonthPressLT"> Lowest Sea Level Pressure this meteorological month, time, and date, taken from month.ini
<#MonthPressH>, <#MonthPressHT> and <#MonthPressHD> "MonthPressH", "MonthPressHT" and "MonthPressHD" e.g.<span data-cmxdata="MonthPressH"> Highest Sea Level Pressure this meteorological month, time, and date, taken from month.ini

Month-by-Month All-time Extremes

Taken from Monthlyalltime.ini.

A JASON array called "monthlyrecs" contains several sub-arrays as follows:


JSON Array Variable Web page span id Function
"hightemp", "hightempT", "lowmaxtemp" and "lowmaxtempT" e.g.<span data-cmxdata="TempH"> Highest temperature extremes: First (value) and second (date/time) array contain highest of daily highs, third (value) and fourth (date/time) array contain lowest, for each month (elements numbered 1 to 12)
"lowtemp", "lowtempT", "highmintemp" and "highmintempT" e.g.<span data-cmxdata="TempL"> Lowest temperature extremes: First (value) and second (date/time) array contain lowest of daily lows, third (value) and fourth (date/time) array contain highest, for each month (elements numbered 1 to 12)
"highDP", "highDPT", "lowDP" and "lowDPT" e.g.<span data-cmxdata="DewPointH"> Dew Point: First (value) and second (date/time) array contain highest, third (value) and fourth (date/time) array contain lowest, for each month (elements numbered 1 to 12)
"highapptemp", "highapptempT", "lowapptemp" and "lowapptempT" e.g.<span data-cmxdata="AppTempH"> Apparent Temperature: First (value) and second (date/time) array contain highest, third (value) and fourth (date/time) array contain lowest, for each month (elements numbered 1 to 12)
"highfeelslike", "highfeelslikeT", "lowfeelslike" and "lowfeelslikeT" e.g.<span data-cmxdata="FeelsLikeH"> Feels Like Temperature: First (value) and second (date/time) array contain highest, third (value) and fourth (date/time) array contain lowest, for each month (elements numbered 1 to 12)
"lowchill" and "lowchillT" e.g.<span data-cmxdata="WChillLT"> Greatest Wind Chill: First (value) and second (date/time) array contain combination of high wind speed and low temperature, for each month (elements numbered 1 to 12)
"highheatindex" and "highheatindexT" e.g.<span data-cmxdata="HeatIndexH"> Highest USA Heat Index: First (value) and second (date/time) array contain highest, for each month (elements numbered 1 to 12)
"highhum", "highhumT", "lowhum" and "lowhumT" e.g.<span data-cmxdata="HumH"> Relative Humidity: First (value) and second (date/time) array contain highest, third (value) and fourth (date/time) array contain lowest, for each month (elements numbered 1 to 12)
"hightemprange", "hightemprangeT", "lowtemprange" and "lowtemprangeT" e.g.<span data-cmxdata="HighDailyTempRange"> Daily Temperature range: First (value) and second (date) array contain highest, third (value) and fourth (date) array contain lowest, for each month (elements numbered 1 to 12)
"rainrate", "rainrate", "hourlyrain", "hourlyrainT" e.g.<span data-cmxdata="RainRateH"> First (value) and second (date/time) array contain highest rain rate, third (value) and fourth (date/time) array contain highest rainfall in any 60 minutes, for each month (elements numbered 1 to 12)
"dailyrain", "dailyrainT", "monthlyrain" and "monthlyrainT" e.g.<span data-cmxdata="DailyRainH"> First (rainfall) and second (date) array contain wettest day, third (rainfall total) and fourth (year) array contain highest monthly rainfall, for each month (elements numbered 1 to 12)
"dryperiod", "dryperiodT", "wetperiod" and "wetperiodT" e.g.<span data-cmxdata="LongestWetPeriod"> Largest Counts by MX of consecutive days when daily rainfall is above, and below, respectively the threshold set in Settings: First (count) and second (end-date) array contain driest, third (count) and fourth (end-date) array contain wettest, for each month (elements numbered 1 to 12)
"highgust", "highgustT", "highwind" and "highwindT" e.g.<span data-cmxdata="GustH"> Wind Speeds:First (value) and second (date/time) array contain highest gust, third (value) and fourth (date/time) array contain highest average wind speed, for each month (elements numbered 1 to 12)
"highwindrun" and "highwindrun" e.g.<span data-cmxdata="WindRunH"> Daily Wind Run: First (value) and second (date/time) array contain highest, for each month (elements numbered 1 to 12)
"highpress", "highpressT", "lowpress" and "lowpressT" e.g.<span data-cmxdata="PressH"> Sea Level Pressure: First (value) and second (date/time) array contain highest, third (value) and fourth (date/time) array contain lowest, for each month (elements numbered 1 to 12)


Yearly extremes for year-to-date

See the monthly extremes table (above) and replace "Month" with "Year". Taken from Year.ini.


All-time extremes (since Cumulus started)

Taken from Alltime.ini.

Web tag_name JSON Variable Web page span id Function
<#tempH>, <#TtempH>, <#tempL> and <#TtempL> "tempH", "TtempH", "tempL" and "TtempL" e.g.<span data-cmxdata="tempH"> Outdoor Air temperature: First JASON variable contains highest value, second variable contains associated date/time, third variable contains lowest value, last variable contains associated date/time
<#dewpointH>, <#TdewpointH>, <#dewpointL> and <#TdewpointL> "dewpointH", "TdewpointH", "dewpointL" and "TdewpointL" e.g.<span data-cmxdata="dewpointH"> Dew point: First JASON variable contains highest value, second variable contains associated date/time, third variable contains lowest value, last variable contains associated date/time
<#apptempH>, <#TapptempH>, <#apptempL> and <#TapptempL> "apptempH", "TapptempH", "apptempL" and "TapptempL" e.g.<span data-cmxdata="apptempH"> Apparent Temperature: First JASON variable contains highest value, second variable contains associated date/time, third variable contains lowest value, last variable contains associated date/time
<#feelslikeH>, <#TfeelslikeH>, <#feelslikeL> and <#TfeelslikeL> "feelslikeH", "TfeelslikeH", "feelslikeL" and "TfeelslikeL" e.g.<span data-cmxdata="feelslikeH"> Feels Like temperature: First JASON variable contains highest value, second variable contains associated date/time, third variable contains lowest value, last variable contains associated date/time
<#wchillH> and <#TwchillH> "wchillH" and "TwchillH" e.g.<span data-cmxdata="wchillH"> Greatest Wind Chill: First (value) and second (date/time) array contain combination of high wind speed and low temperature
<#heatindexH> and <#TheatindexH> "heatindexH" and "TheatindexH" e.g.<span data-cmxdata="heatindexH"> Highest USA Heat Index: First (value) and second (date/time) array contain highest

(You need to manually edit this file,and the web page, to use Canadian Humidity Index instead)

<#mintempH> and <#TmintempH> "mintempH" and "TmintempH" e.g.<span data-cmxdata="mintempH"> All time high minimum temperature and date
<#maxtempL> and <#TmaxtempL> "maxtempL" and "TmaxtempL" e.g.<span data-cmxdata="TmaxtempL"> All time low maximum temperature and date
<#humH>, <#ThumH>, <#humL> and <#ThumL> "humH", "ThumH", "humL" and "ThumL" e.g.<span data-cmxdata="humH"> Relative Humidity: First JASON variable contains highest value, second variable contains associated date/time, third variable contains lowest value, last variable contains associated date/time
<#HighDailyTempRange>, <#THighDailyTempRange>, <#LowDailyTempRange> and <#TLowDailyTempRange> "HighDailyTempRange", "THighDailyTempRange", "LowDailyTempRange" and "TLowDailyTempRange" e.g.<span data-cmxdata="THighDailyTempRange"> All time high and low daily temperature range
<#rrateM>, <#TrrateM>, <#rfallhH>, <#TrfallhH>, <#rfallH>, <#TrfallH>, <#rfallmH> and <#TrfallmH> "rrateM", "TrrateM", "rfallhH", "TrfallhH", "rfallH", "TrfallH", "rfallmH" and "TrfallmH" e.g.<span data-cmxdata="rfallH"> Highest ever rainfall rate and time/date, highest 60 minute rainfall and end-time/date, highest monthly rainfall and month/year
<#LongestDryPeriod>, <#TLongestDryPeriod>, <#LongestWetPeriod> and <#TLongestWetPeriod> "LongestDryPeriod", "TLongestDryPeriod", "LongestWetPeriod" and "TLongestWetPeriod" e.g.<span data-cmxdata="TLongestDryPeriod"> Largest Counts by MX of consecutive days when daily rainfall is above, and below, respectively the threshold set in Settings: First (count) and second (end-date) variable contain driest, third (count) and fourth (end-date) variable contain wettest
<#gustM>, <#TgustM>, <#wspeedH> and <#TwspeedH> "gustM", "TgustM", "wspeedH" and "TwspeedH" e.g.<span data-cmxdata="wspeedH"> Wind Speeds:First (value) and second (date/time) variable contain highest gust, third (value) and fourth (date/time) variable contain highest average wind speed
<#windrunH> and <#TwindrunH> "windrunH" and "TwindrunH" e.g.<span data-cmxdata="TwindrunH"> Daily Wind Run: First (value) and second (date/time) variables contain highest
<#pressL>, <#TpressL>, <#pressH> and <#TpressH> "pressL", "TpressL", "pressH" and "TpressH" e.g.<span data-cmxdata="TpressH"> Sea Level Pressure: First JASON variable contains highest value, second variable contains associated date/time, third variable contains lowest value, last variable contains associated date/time