This Wiki page covers more than just web tags, it lists the way that you can specify the naming format for the NOAA style reports that Cumulus produces.
However, the main purpose of this page is to explain web tags (tokens that Cumulus uses to indicate where when processing a file it should insert values) that apply to all flavours of Cumulus (Cumulus 1, 2, and 3 aka MX), any differences are highlighted as necessary. Remember as Cumulus is developed more and more web tags are made available, if you are not using the latest release, then some of those listed in this article may not be available. In general, Cumulus 1 will silently ignore any web tags it does not recognise, but MX will raise an error for any web tag it does not understand how to process.
Please note some items on this page apply to specifying the report name format (NOAA style), but all items refer to what are called template files, those are files that Cumulus (1 or MX) is asked to process (do look up that cross-reference if you are not sure what process means, as it will explain how files may gain a "tmp" extension during the processing) and that processing involves Cumulus recognising special markers (also known in MX as tokens) placed in the template file.
The web tags available in the version/build you are using, can be listed (in Cumulus 1 or Cumulus MX) by adding the following line to Cumulus.ini in the [station] section...
Then start Cumulus and it will create a file called WebTags.txt in the same folder as where the executable is found. That file will list all the tags your build of Cumulus can currently generate. This list only contains the tag_names, it does not indicate what parameters they can take, nor does it include the brackets the tag name is surrounded by when you quote it in a template file for Cumulus to process. An example of the output for MX is at the end of this page (the actual output does not include commas, and has just one item per line, it has been compressed for inclusion in this article).
To stop Cumulus continuing to produce new versions of that file change the line to say ...
NOAA style Report Naming
A brief history of these reports
Cumulus 1, 2, and MX, generate climatological reports for both Monthly and Yearly periods. The reports were first added to Cumulus 2 after someone asked for this feature in enhancement request 44. They were based on Weatherlink reports, that in turn were based on climatological reports issued by The US National Oceanic and Atmospheric Administration's National Weather Service (the reason for using NOAA in the naming of the reports). Ken True implemented the Weatherlink reports in his Saragota suite, and Steve Loft took that as his starting point. Although they were tested in Cumulus 2, they were added to Cumulus 1 in version 1.9.2 (build 1004) released in July 2011.
With that introduction, you can now choose whether to read the rest of this section which uses more technical terminology.
Let me explain that technical term, essentially encoding refers to the character set used by any file.
A computer uses binary, binary can only be in state 0 or state 1, so a combination of 0 and 1 states needs to be defined for every character you want to represent. What you can include in that character set depends to some extent on how many binary bits are used to be mapped to individual characters; and if more than one byte worth of bits is used the order in which the bits within the multiple bytes are used must be defined for each particular encoding.
With any fixed number of bits available, there will be a limit to how many characters can be defined, and different organisations might select different characters to include. This is what leads to multiple encoding standards. One might use a particular arrangement of bits to represent the degree symbol, while another encoding uses that particular arrangement of bits for a different purpose. The general problem is that unless you match the encoding used initially, any retrieval cannot know what character to display for certain combinations of bits.
This means that when you read a file you probably find the letters A to Z where you expect them, but whether you see correct case cannot be guaranteed. Some encodings put capital letters at lower binary values than lower case letters, and some put capitals at higher binary values.
If you use 7 bits, you have 127 combinations, enough for standard 26 letters in both capitals, and lower case, plus 10 digits (0 to 9), some punctuation, and some control characters (like new line, end of file, and so on). If you use 8 bits, a whole byte, you have 254 combinations, and you can start coping with accented letters, with alphabets that don't have 26 letters, and even add some symbols. Obviously, once you start using more than one byte, you can have 16, 32, 64, or even more bits to use and can include lots more characters and the bigger character sets start including lots of symbols and the biggest add smilies or emotion icons.
In April 2014, Steve introduced the choice in Cumulus 1 of either ISO-8859-1 encoding (as he used originally) or UTF-8 encoding (what he migrated his web page templates to) for these reports. This choice remains unchanged in MX. The default selected by Steve Loft is his original ISO-8859-1 encoding, but be aware the encoding you use should match the encoding of any web page used for viewing these reports, and most modern web pages (including the standard web templates provided with both flavours of Cumulus) use UTF-8 encoding. The encoding can be selected on the NOAA Settings screen of either Cumulus 1 or MX.
The format used for naming
The monthly reports have a name in this format "NOAAMO"...".txt". The yearly reports have a name in this format "NOAAYR"...".txt". This format with 4 double quotes in all cases is used both in the NOAA settings screen and in the [NOAA] section of Cumulus.ini.
It is between the double quotes where I have placed '...' that Cumulus expects us to use the date output modifiers described. Note that the double quotes must be used at each of the places where they are shown when you define your report naming in the NOAA Settings screen of either Cumulus 1 or MX. The default selected by Steve Loft is MMyyyy and yyyy respectively (expressed in a way that suits both Cumulus 1 and MX) so the inserted part is all numerical. Here is a table showing the main alternative options, for more details about these selectors see the table below as there are obviously a lot more options.
If you migrate from Cumulus 1 (where case does not matter) to Cumulus MX (where case does matter), from version 3.3.0 onwards the NOAA default monthly name if it reads "NOAAMO'mmyy'.txt" (MX believes "mm" means minutes, not month) is changed into "NOAAMO'MMyy'.txt (which works on both Cumulus 1 and MX).
This is the name given by Steve Loft to the files that contain web tags, and when Cumulus processes these files it generates web pages which it then uploads to your web site. There is more about processing of files on the Customised templates page, but think of a template as containing text that Cumulus copies from the template file to the web page it is constructing. The processing process is basically a parse, each time it finds what MX calls a token (a web tag complete with any parameters it needs) it looks up the value that it will use to replace that web tag before moving on through the text.
The example web templates provided by Cumulus insert a "T" at the end of the intended web page name before the extension (.htm or .html), so that the template files and generated web pages cannot be confused.
When writing your own templates, some people will stick to this "T" notation, others will change the extension to "tmpl" or "cum" to indicate they are Cumulus templates. Cumulus does not care what extension is used for any local file specified in the Extra Web Files settings.
Those special markers in the file are called web tags, during processing Cumulus will replace them with the actual values. Typically you would use this to build your own website by having an HTML template file with your layout, static text and graphics. In the position on the page you wish Cumulus to insert the relevant data place a web tag in the form:
<#tag_name [optional input parameters][optional output parameters]>
Note: When you put a tag into your template, be careful that whatever program you are using to develop your web pages doesn't change the angle brackets to slightly different symbols -- this is a common cause of failure! There are a number of editing tools that are designed for those programming code and you should use one of those (e.g. Notepad++), rather than a tool designed for web page design editing (eg. Dreamweaver).
Web tags are case sensitive, so please type the tag name exactly as shown in the web tag columns on this page. These web tag markers can return values for both readings from your weather station and the what can be derived from those readings. A small number of web tags require lower case input parameters to select which value is shown (e.g. value for one hour ago). Although some web tags will not accept output parameters, others allow you to vary the number of decimal places that are output, or to vary the way that times and dates are output. Some output parameters are case sensitive for Cumulus 1 (all are case sensitive for MX), so do check them carefully.
Beta Builds of Cumulus
There is a page that detailed the additional webtags available in any Cumulus 1 Beta version that was under development. You may see some new web tag features as MX is being developed, appearing on that page, now development of Cumulus 1 has finished and MX is where all development happens.
Input modification Parameters
Most web tags do not require any input parameters. However, those for individual minutes in last week and for the highest and lowest values for a particular month of any year do need input parameters specifying how many minutes ago or which month respectively. See the respective sections for full details.
Output modification parameters
These are complex and therefore discussed under the major heading in this later section. The options available include changing time format, changing number of decimal places, and removing decimal commas.
- You can create a template file that has a structure of HTML elements with Cumulus web tags to represent the information you want included.
- If you ask Cumulus to process that template file, it will create a HTML page from the template, and during that file creation replace the tag with the current value of the item the tag represents.
- You also need to tell Cumulus that the resulting HTML file is to be uploaded to the internet (or copied to a local web server).
- Alternatively, in most script languages, apply '*1', i.e. multiply by one, to implicitly convert the tag from string to base 10 number.
- Another alternative is to add zero when a web tag is being assigned to a script variable, this is used in scripts where the web tag being used is not available in all versions of Cumulus. Adding 0 means that if the web tag is not recognised, the script is still able to give a variable in its language some value and won't fail because that variable is undefined. If the web tag is available, the true value of that web tag is still assigned to the variable.
Web Tag Differences Between Cumulus 1 and MX builds
This badge is used when either all the web tags listed in one of the tables are available in the final 1.9.4 release of Cumulus 1, or to identify which tags are available when a table includes some that are only available in MX. See tip at top of this page if you use an earlier release than 1.9.x. When Cumulus 1 is processing web tags, it tends to ignore any it cannot understand, so look for gaps in your web pages to find errors.
Cumulus MX provides all tags available in Cumulus 1 and adds even more. Note they are called tokens in some places. This badge is used when either all the web tags listed in one of the tables are available in the latest MX release,or to identify which tags are available when a table includes some that are only available in MX. See tip at top of page for how to check which web tags/tokens are available in your build.
Please see page introducing Cumulus MX for more information regarding the tags missing from Steve Loft's original beta builds of MX. For Moon web tags, the key difference is adding parameters to control the output from build 3047.
When MX is processing web tokens and finds one it cannot understand, a "*** web tag error - see MXdiags file ***" message will appear in the engine console, and the diagnostic file will include something like this:
Web tag error Exception: i=8998 len=106297 inputText.Length=106297 token=<#daylightlength format=H>
This particular error is that when you use a single output format character it does not have same meaning as when there are multiple characters, correct this particular token to:
Please note that where this article makes reference to other pages in the Wiki, the information shown there might be specific to Cumulus 1, as there are differences between the user interface for Cumulus 1 and MX flavours of this software, and the Wiki was originally written before MX existed, so not all pages have been updated.
Output 'format' Parameter
Output Parameter Differences between Cumulus 1 and Cumulus MX (Cumulus 3)
There are a number of differences between Cumulus 1 (C1) and Cumulus MX (MX). C1 can work with times in 14.24 format using a full stop to separate the figures, MX must have ':' between hour and minute numbers.
The characters used to represent year, month, day, hour, minute, second, microsecond, also differ between C1 and MX.
In Cumulus 1 we are able to use "m" or "M" for two different meanings (minutes or month) depending on context. Similarly, in MX the same character sometimes has two different meanings depending on context, but this applies to lots of characters and the context is whether the character is used on its own or with other characters. Sounds confusing? Well it is complicated.
- Cumulus MX (when running on Windows) uses the .NET software.
- If Cumulus MX is running on Linux or Mac OS X, or any other device that uses UNIX derived operating system, then it uses Mono software for same purposes. (MONO is a operating system independent version of .NET, although they are developed independently, they have common origins).
- The date and time format characters in Mono (and .NET) software framework are not exactly the same as the Delphi software framework ones that Cumulus 1 uses.
- For Cumulus MX see this Microsoft site for format selectors available.
- The differences come about because Delphi is case-insensitive, while .NET and MONO are case sensitive, so .NET (and MONO) can use upper and lower case for different items, where Delphi has to use different letters for each item.
When it causes problems
This can cause problems when somebody moves from using Cumulus 1 to using MX. They need to revisit any templates or scripts where they use output modifiers to specify a date and/or time format. We have already explored a very simple impact of this for NOAA report naming.
For web tags it is much more complicated, not only do we need to select the right case, we also have to cope with MX selectors having different meanings when they are on their own and when they appear with other selectors, finally where you put quotes within these format specifiers varies between Cumulus 1 and MX partly because the reserved characters change and partly because MX introduces the concept of escaping characters.
Confused even more now? I'm not surprised, but maybe some examples will help before we actually list the available modifiers.
- Examples related to case selection
- In Delphi, "nn" means "minutes" for Cumulus 1, but "minutes" is "mm" for .NET or MONO in Cumulus MX.
- The hour in 24-hour format with leading zero, in non case sensitive Delphi (Cumulus 1) 'HH' or 'hh' would be treated as same, but in .NET or MONO it must be "HH" (Cumulus MX).
- The hour in 24-hour format without leading zero, in non case sensitive Delphi (Cumulus 1) 'H' or 'h' would be treated as same, but in .NET or MONO it must be "%H" (Cumulus MX).
- For 12-hour specifiers, please see the table, as this is far more complicated.
- You might be put off by references within .NET and MONO (Cumulus MX) to single/standard characters and custom modifiers, the following 3 examples may add clarity:
- For example, <#MonthTempHD format="d"> is a single character format modifier, therefore the 'd' acts as a standard modifier, and causes for a date of 22 July 2014 for the highest temperature in the month to be returned in the standard short date format e.g. '22/07/2014' (exact contents for any one date vary by locale).
- Similarly, <#MonthTempHD format="M"> is a single character format modifier and therefore the 'M' acts as a standard modifier and causes the date for the highest temperature in the month to be returned in the standard day and month format e.g. '22 July' (exact contents for any one date vary by locale).
- Whilst <#metdate format="d M"> is not a single character format modifier and therefore both the 'd' and the 'M' are interpreted as custom modifiers and cause the current date to be returned as a digit(s) for the day and a digit(s) month (in a without leading zeroes format) e.g. '6 7' would be returned for 6 July.
- Alternatively, <#MonthTempHD format="%d"> is NOT a single character format modifier, therefore the 'd' acts as a custom modifier, and causes a date of 22 July 2014 for the highest temperature in the month to be returned as the day of the month only '22' in all locales.
- Similarly, <#MonthTempHD format="%M"> is NOT a single character format modifier and therefore the 'M' acts as a custom modifier and causes the same date for the highest temperature in the month to be returned as the month number '7'.
In both Cumulus 1 and MX if you want a space character within your output, the output specifiers must be enclosed in double quotes. If that space character is next to a non modifier (e.g. around word "at") then the single quote needing to surround the at should be widened to include the spaces in MX, but Cumulus 1 does not care if single quotes excluded spaces. However, with MX, single quotes enclose multiple characters, but there is an alternative way to deal with some single verbatim characters to cover next.
So let us compare these two alternative ways that MONO and .NET escape any characters that are not being used as format specifiers.
- In Delphi you can put the 'verbatim' characters inside single quotes (Cumulus 1); this is often used to (in English) include words like ' on ' and ' at ' in the formatted output.
- in .NET or MONO you can still use single quotes (as mentioned above extended to include adjacent spaces),
- but alternatively you can escape each verbatim character with a backslash as prefix (Cumulus MX).
- You may need to use both single quotes and back slashes in some format specifiers, depending whether the characters you want to include can be interpreted as control characters (yes, backslash is also used to escape control characters, so backslash will NOT work for some characters such as those in "on" and "at" [\n will produce new line not the letter n, \t will produce a tab not the letter t]), consequently for some characters you must use the literal approach to include them in your format.
Example using a class to change the look of part of the output
<#TapptempH format="dd' 'MMM' 'yyyy'<span class=\'xx\'> at 'HH:mm'</span>'">
the output from this will look like 04 Dec 2018 at 10:12
Note where the quotes are, and where you need to use '\' escape characters.
Example using HTML tags
<#RecentTS d=2 format="h:mm' 'tt'<small>on' d/M/yyyy'</small>'">
This puts the date in a smaller font than the time
Output (format modifier) parameters for decimal places
Cumulus 1 allows use of dp=n modifier (where n represents desired number of decimal places for latitude and longitude e.g. <#latitude dp=5> gives "59.24250". This is also available in MX. MX makes much more usage of these dp parameters. For example in the moon tags <#MoonAge> gives "11" but <#MoonAge dp=3> gives "11.234"
- dp=i is used for both Cumulus 1 and MX. The value i following the attribute dp is an integer, how many decimal places you want for the output you see. Only available for a limited range of web tags (latitude and longitude, plus in MX <#MoonPercent> and <#MoonPercentAbs>).
- tc=y is a new parameter only in MX, the attribute tc takes the value 'y' to remove decimal places by truncation instead of using dp=0 which would round to nearest integer. e.g. <#MoonAge tc=y>. At present not available in any other web tags.
Output (format modifier) indicating remove commas
"rc=y" is a new parameter for MX, the attribute rc takes the value 'y' to replace any commas defined by the locale with full stops to separate integer and decimal parts of the output value. It was initially only implemented on a few new web tags (#MoonPercent, #MoonPercentAbs, #MoonAge) for MX versions up to and including 3.5.3. From version 3.6.6 only can all web tags that can output real numbers can now use alternative syntax of <#tag_name rc=y> to replace all commas in the output by a full stop (don't worry, MX does not use a comma for separating off thousands, so it is the decimal comma that becomes a decimal full stop like character when this remove comma specifier is used.
Output (format modifier) parameters for times and dates
Time/Date format codes are used in two places:
- As part of report names for NOAA style reports (see Cumulus.ini#Section:_NOAA)
- As part of web-tags that report either times or dates or both a date and a time
From version 1.9.1 most web-tags that report any form of time or date will accept an optional 'format' parameter, e.g. (Cumulus 1 only): <#YearTempHT format=hh:nn>.
This allows you to override the default display format for that item, using the format specifiers in the table below.
Although, in theory, you can specify date formatting to times, and vice versa, this will not always yield a sensible result. It is best to look at the default format (in most, but not all, cases this reveals whether date and time information are both available):
- The time-stamps for today, and yesterday, only contain time information, so only time-based format instructions should be applied to them. You can use date format parameters on (for example) <#metdate>, and <#metdateyesterday> and that may give you your desired date information to augment the time-stamps.
- Almanac times such as sun-rise, moon-rise, are also only times, and time-based format instructions can generally be applied to them. However, be aware these are calculated as at midnight GMT and for some of your calendar days, the times may be reported (in default format) as '--' if for example the moon does not rise that day.
You should put anything that is additional, to the defined format modifier specification below, into single quotation marks to prevent it being interpreted as a date or time format modifier:
- For example, the word "on" contains the character "n", which for Cumulus versions 1.9.1 to 1.9.4 will be interpreted as a time format modifier unless you put it into single quotation marks. Example of valid Cumulus 1 syntax: <#TtempH format="'at' hh: mm 'on' dd / mm / yyyy">.
- You can include HTML tags (but they cannot have any attributes because both single and double quote characters have defined meanings) and special characters as quoted text within the 'format' parameter.
Example of valid syntax: <#TapptempH format="'at 'h:nn' 'am/pm '<small>on' d/m/yyyy'</small>'">.
Note for Cumulus 1 - if your format has any spaces in it, you must enclose the whole format parameter value in double quotes, for example (Cumulus 1.9.x): <#YearTempHT format="hh nn">. Consequently, you cannot include double quote characters in any other position (see here for work-around).
Note for MX - you can use single quotation marks round spaces and text (e.g. ' on '), but you can also use '\' as escape character (e.g. for 'on' use \o\n). However for 'at' the only alternative is \a't' because the character t has another meaning and escape followed by a t becomes a tab!
List of allowed modifiers
Note for Cumulus 1 - where lower (or upper, for easier comparison with MX) case shown, because Delphi is case insensitive, upper (or lower) case (in some cases, indicated by use of curved brackets) could be used instead (exceptions: a/p, ampm, am/pm, Am/Pm, AM/PM, A/P, AMPM etc display as input).
For official full details see Cumulus MX forum, the following table is revised for simplicity. (I've given a different selection of combinations and included '%' where necessary to avoid single character versus custom complications).
My Revised Table of Time and Date Output Modifiers
In some rows of this table, square brackets  indicate optional items, they are included just to make it clearer how items can be combined in a single output parameter.
The Web Tags for Cumulus
These are available in both Cumulus 1 and MX unless indicated by a version 1 or MX badge.
Special tags returning information about the Windows device hosting Cumulus 1. If you are running MX, then most tags do not work.
|<#LatestError>||Displays the last error from the Cumulus 1 error log. (The value is cleared when you click the error light in Cumulus 1).|
Note: This tag displays all errors, even if they do not cause the error light to flash in Cumulus 1. Although this tag and the next 3 are in MX, none of them are actually used (as at April 2020).
|<#LatestErrorDate>||The date of the latest error logged to the error log window, using the system short date format. Gives dashes when latest error is reset|
|<#LatestErrorTime>||The time of the latest error logged to the error log window, using the system short time format. Gives dashes when latest error is reset|
|<#ErrorLight>||1 if the 'error' light is flashing, 0 if not|
|<#version>||The version of Cumulus in use e.g. '1.9.4' or '3.4.1'|
|<#build>||The build of Cumulus in use e.g. '10992' for latest Cumulus 1 patch (Cumulus MX is under development so new builds are released frequently)|
|<#realtimeinterval>||The realtime update interval in seconds (integer)|
|<#interval>||The web site update interval in minutes (integer)|
|<#rollovertime>||The time that the logs rollover to the next day: 'Midnight', '9 am' or '10 am'
This is the end of the meteorological day, so if during Daylight Saving Time it is "10 am", then on the day DST ends it will return to "9 am" ensuring every meteorological day is exactly 24 hours long. If the time is "Midnight" or during DST it is "9 am", then days will be 23 or 25 hours long just on day clocks change, 24 hours otherwise.
|<#update>||The date and time of the last web site update|
|<#LastDataReadT>||The date/time data was last read from the station|
|<#stationtype>||The weather station model description (you choose what text appears for this on 'Display' settings screen within Configuration menu - the field is at the bottom left of that screen).|
|<#latitude>||The station latitude (as you entered during setup).
Supports an optional 'dp' parameter, if supplied, instead of the usual web-encoded text format with degrees/minutes/seconds, the result is in decimal degrees to the specified number of decimal places. E.g
If the "dp" parameter is supplied, then supplying "rc=y" in addition will cause any decimal comma to be converted to a decimal point.
|<#longitude>||The station longitude (as you entered during setup). Supports an optional 'dp' and 'rc' parameters as per the latitude tag.|
|<#altitude>||The station altitude value (webtag outputs web encoded format containing figure, ' ' and units) in either feet or metres just as you entered during setup (so it is more complex to extract number for script arithmetric); e.g. '123 m'|
|<#location>||The station location (as you entered during setup)|
|<#longlocation>||Longer description of the station location (as you entered during setup)|
|<#forum>||URL of the forum (as you entered during setup)|
|<#webcam>||URL of the webcam (as you entered during setup)|
|<#graphperiod>||The number of hours displayed by the graphs, as set using Configuration menu, Display settings screen 'Detailed Chart Period'|
|<#dailygraphperiod>||The number of days displayed by the graphs, as set using Configuration menu, Display settings screen 'Daily Chart Period' (available from build 1098)|
|<#currcond>||Represents the value entered on the screen within Cumulus for the Current Weather condition, or the value as held in the currentconditions.txt file. Any reserved HTML characters are encoded as HTML entities|
|<#currcondenc>||The same as <#currcond> but also has all characters above (decimal base)code 159 encoded as HTML entities|
|<#chillhours>||The number of 'chill hours' so far this season (threshold temperature and start date are configurable).|
|<#ConsecutiveRainDays>||The number of days up to (but not including) today where it has rained every day. The threshold amount of rain required to determine a rain day is configurable via the RainDayThreshold setting in cumulus.ini, the units for the threshold are the same as your rain units, meteorologists exclude dew (and other times when single tip of recorder).|
|<#ConsecutiveDryDays>||The number of days up to (but not including) today since it last rained. The threshold amount of rain required to determine a rain day is configurable via the RainDayThreshold setting in cumulus.ini the units for the threshold are the same as your rain units|
|<#WindRoseData>||A comma-separated list of the wind 'totals' used to draw the wind rose (8 or 16 values)|
|<#WindRosePoints>||The number of items in <#WindRoseData> (i.e. 8 or 16)|
|<#WindSampleCount>||The number of wind samples making up the wind rose (etc) data (up to 3600)|
|<#LatestNOAAMonthlyReport>||Gives file name of latest auto-saved NOAA monthly report|
|<#LatestNOAAYearlyReport>||Gives file name of latest auto-saved NOAA yearly report|
Apply to Cumulus 1 and MX, no optional input nor output parameters.
|<#tempunit>||Unit of temperature being used (Set in Cumulus as Celsius or Fahrenheit) values "°C" or "°F"|
|<#tempunitnodeg>||The temperature units being used, without a degree symbol, i.e. "F" or "C"|
|<#pressunit>||Unit of measure for pressure. Possible values: "mb", "hPa", "in"|
|<#rainunit>||Unit of measure for rain fall. Possible values: "mm" or "inches"|
|<#windunit>||Unit of measure for wind speed. Possible values: "m/s", "mph", "km/h", "kts"|
|<#windrununit>||Unit of measure for wind run (distance). Possible values: "km", "miles", "km", "nm" (for wind speeds in m/s, mph, km/h, kts)|
|<#cloudbaseunit>||The units used for cloudbase value. Possible values: "ft" or "m"|
Date & Time
Both Cumulus 1 and MX support all of these, most of these web tags can be used with output parameters.
|<#date>||The current date|
|<#time>||The current time and date. Example result: 18:30 on 30 December 2009. If you simply wish the time, use next tag (below)|
|<#timehhmmss>||The current time. Example format: 18:30:27|
|<#timeUTC>||The current UTC date/time rather than local date/time|
|<#minute>||The current time, just the minutes. Example format: 07|
|<#hour>||The current time, just the hour. Example format: 07|
|<#day>||The current day as a 2-digit number. Example format: 07|
|<#dayname>||The current day as a word. For example, Monday|
|<#shortdayname>||The current day as a shortened word. Example format: Mon|
|<#month>||The current month as a 2-digit number. Example format: 07|
|<#monthname>||The current month as a word. Example format: July|
|<#shortmonthname>||The current month as a shortened word. Example format: Jul|
|<#year>||The current year as a 4-digit number. Example format: 2009|
|<#shortyear>||The current year as a 2-digit number. Example format: 09|
|<#metdate>||The current meteorological date. After rollover time on current calendar date, this date will be the same as the current date. If using a 9am/10am rollover, then between midnight and 9am/10am the <#metdate> will be the previous calendar day.
Can be used with relevant format parameters to indicate current meteorological day on todayT.htm template page, meteorological month on thismonthT.htm template page, or meteorological year on thisyearT.htm template page
|<#metdateyesterday>||The previous meteorological date. If using a 9am/10am rollover, then between midnight and 9am/10am the <#metdateyesterday> will be the calendar day before that returned by <#yesterday>, otherwise both return same.
Can be used with relevant format parameters to indicate correct day on yesterdayT.htm template page, and can be used to return latest day stored on dayfile.txt and NOAA report for latest month.
|<#rollovertime>||The time that the logs rollover to the next day: 'Midnight', '9 am' or '10 am'|
|<#update>||The date and time of the last web site update|
|<#LastDataReadT>||The date/time data was last read from the station|
|<#DaysSince30Dec1899>||Day count (gives whole and fractional part) Example: 41250.6523310301|
|<#recordsbegandate>||Date when records began (appears twice on "recordsT.htm" provided, and used to calculate next tag, but ignored for all other Cumulus processing)|
|<#DaysSinceRecordsBegan>||Day count since Cumulus records started|
These appear on "Now" page (index.htm).
The tags available cover all the derived values (like humidex, apparent temperature, wind chill and heat index), unlike Recent History which misses out some derivatives. Note however, that the values calculated for Cumulus 1 and for MX may not agree, see derived value section within Recent History tags section for examples.
Rainfall this month and this year are included here for consistency with supplied web templates (indexT.htm, thismonthT.htm, and thisyearT.htm) and with the dashboard 'Now' part of the Cumulus MX user interface.
|Temperature & Humidity|
|<#apptemp>||The apparent temperature. The referenced page in weather terminology section of this Wiki explains it.|
|<#temp>||The outside temperature|
|<#intemp>||The inside temperature|
|<#temptrend>||The average rate of change in temperature over the last three hours. Trend = (temp_now - temp_3hrs_ago) / 3|
|<#temptrendtext>||Temperature change over the last three hours - Rising/Falling/Steady (values can be set in strings.ini)|
|<#TempChangeLastHour>||The change in temperature over the last hour|
|<#heatindex>||Current heat index. The referenced page in weather terminology section of this Wiki explains it.|
|<#hum>||The outside humidity|
|<#inhum>||The inside humidity|
|<#dew>||The current dew point|
|<#wchill>||The current wind chill temperature. The referenced page in weather terminology section of this Wiki explains it.|
|<#feelslike>||The current Feels Like temperature. Available only from version 3.5.4. The referenced page in weather terminology section of this Wiki explains it.|
|<#wetbulb>||Estimated wet bulb temperature, can be seen if hover over 'Dewpoint' on Cumulus 1 main screen|
|<#IsFreezing>||If outside temperature is at or below 0°C/32°F. 0=Above freezing, 1=Below freezing|
|<#rfall>||The total rainfall so far today|
|<#rrate>||The current rainfall rate|
|<#rhour>||The rainfall in the last hour|
|<#rmidnight>||The total rainfall since midnight. Useful if you don't use midnight as your start of day|
|<#r24hour>||Amount of rain in the last 24 hours|
|<#LastRainTipISO>||Fixed ISO format output giving date and time of last rain gauge tip (e.g 2010-09-06 06:09) PLEASE NOTE: this web tag does NOT accept any format modifiers|
|<#LastRainTip>||(available from release 3.6.1) Date/time of last rain gauge tip (as previous tag, but default format is as set in locale, i.e. Mono or Windows control panel) PLEASE NOTE: this web tag WILL accept any date and time output format modifiers|
|<#MinutesSinceLastRainTip>||The number of minutes since the last rain gauge tip, in whole numbers, rounded down|
|<#IsRaining>||For Hydreon RG-11 devices, shows the current rain state. 0=No rain, 1=It's raining|
|<#rmonth>||The total rainfall so far this month|
|<#ryear>||Annual rainfall total for rainfall season year (i.e. starting month as set on Configuration menu, station screen, Annual rainfall frame)|
|<#press>||The sea level pressure|
|<#presstrendval>||The average rate of pressure change over the last three hours.|
|<#presstrend>||The pressure trend in words - values can be set in the 'strings.ini' file|
|<#altimeterpressure>||Altimeter pressure. Pressure corrected to sea level using the station's altitude only. Same as sea-level pressure for non-Davis stations.|
|<#wlatest>||Current wind speed reading from console. Corresponds to 'latest' on the Cumulus main screen.|
|<#bearing>||Current wind bearing in degrees|
|<#currentwdir>||Current wind bearing as a compass point - e.g. ESE|
|<#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). Corresponds to 'average' on the Cumulus main screen.|
|<#avgbearing>||Average wind bearing in degrees over last 10 minutes. Range 1-360, 0=Calm|
|<#wdir>||Average wind bearing over last 10 minutes as a compass point - e.g. ESE|
|<#wgust>||The highest wind reading in the last 10 minutes. Corresponds to 'gust' on the Cumulus main screen.|
|<#wdirdata>||Comma separated list of recent wind bearing readings (every x seconds, up to 3600 entries). This is a circular buffer; to find the most recent value use nextwindindex. Reading interval x varies by station type.|
|<#wspddata>||Comma separated list of recent individual (non-averaged) wind speed (correspond to 'latest' on the Cumulus main screen) readings (every x seconds, up to 3600 entries). This is a circular buffer; to find the most recent value use nextwindindex. Reading interval x varies by station type.|
|<#nextwindindex>||The index of the entries in wdirdata and wspddata which Cumulus is going to use next - i.e. the latest entry used is one less than this; but don't forget to allow for the wrap around!|
|<#beaufort>||The current wind speed on the Beaufort scale (e.g. F8)|
|<#beaufortnumber>||The current wind speed on the Beaufort scale, without a leading "F", e.g. "6"|
|<#beaudesc>||The current wind speed Beaufort description (e.g. "Gale")|
|<#BearingRangeFrom>||The 'lowest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini)|
|<#BearingRangeTo>||The 'highest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini)|
|<#BearingRangeFrom10>||The 'lowest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini), rounded down to nearest 10 degrees|
|<#BearingRangeTo10>||The 'highest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini), rounded down to nearest 10 degrees|
|<#cloudbase>||Calculated cloud base|
|<#cloudbasevalue>||Current calculated cloud base without units|
|<#UV>||Current UV index. Requires your station to have a UV sensor.|
|<#SolarRad>||Current solar radiation. Requires your station to have a solar sensor.|
|<#Light>||Current Current light level in Lux. Requires your station to have a solar sensor. Only applies to Fine Offset stations.|
|<#forecast>||The current forecast|
|<#forecastenc>||The same as <#forecast> but with all reserved HTML characters, and those above character code 159, encoded as HTML entities|
|<#forecastnumber>||The number relating to the current forecast entry in the strings.ini file. If your station is not providing it's own forecast and Cumulus is not calculating one then 0 (zero) is returned. Note: two negative numbers can be returned by Cumulus: -1 (neg 1) = Exceptional Fine, -26 (neg 26) = Exceptional Bad|
|<#cumulusforecast>||Always gives Cumulus (Zambretti) forecast, even if the <#forecast> tag provides a station forecast|
|<#cumulusforecastenc>||The same as <#cumulusforecast> but with all reserved HTML characters, and those above character code 159, encoded as HTML entities|
|<#wsforecast>||Always gives station forecast (if available)|
|<#wsforecastenc>||The same as <#wsforecast> but with all reserved HTML characters, and those above character code 159, encoded as HTML entities|
Extra Sensors Davis (and a few others)
These web tags hold current values for additional sensors supported by Cumulus. Most of the tags in this section relate to Davis stations, but not exclusively.
Some tags are only available for certain builds, see general tip at top of page to check for the build you are using. In particular Cumulus 1 has fewer channels available.
There are no web tags for past values from extra sensors, see the Extra_Sensor_Files page for information about log files from where you can extract those values.
|Web tag_name||The related description can be changed in 'strings.ini', but below are default descriptions that will be shown in viewer/editor|
|<#ExtraTemp1>||Extra temperature channel 1|
|<#ExtraTemp2>||Extra temperature channel 2|
|<#ExtraTemp3>||Extra temperature channel 3|
|... and so on up to <#ExtraTemp10> = Extra temperature channel 10|
|<#ExtraDP1>||Extra dew point channel 1|
|<#ExtraDP2>||Extra dew point channel 2|
|<#ExtraDP3>||Extra dew point channel 3|
|... and so on up to <#ExtraDP10>|
|<#ExtraHum1>||Extra humidity channel 1|
|<#ExtraHum2>||Extra humidity channel 2|
|<#ExtraHum3>||Extra humidity channel 3|
|... and so on up to <#ExtraHum10>|
|<#SoilTemp1>||Soil temperature 1|
|<#SoilTemp2>||Soil temperature 2|
|... and so on up to <#SoilTemp16>|
|<#SoilMoisture1>||Soil moisture 1|
|<#SoilMoisture2>||Soil moisture 2|
|... and so on up to <#SoilMoisture16>|
|<#LeafTemp1>||Leaf temperature 1|
|<#LeafTemp2>||Leaf temperature 2|
|<#LeafWetness1>||Leaf wetness 1|
|<#LeafWetness2>||Leaf wetness 2|
Extra Sensors Ecowitt
This section applies only to those using Ecowitt GW1000 (Froggit DS1500) an interface unit that picks up various external sensors and sends the data via an application programming interface to MX which then generates the following web tags:
|<#GW1000FirmwareVersion>||GW1000 firmware version string|
|Web tag_name||The related description can be changed in 'strings.ini', but below are default descriptions that will be shown in the viewer/editor|
|<#AirQuality1>||Air quality 1|
|... and so on up to <#AirQuality4>|
|<#LeakSensor1>||Leak sensor - 0 or 1|
|... and so on up to <#LeakSensor4>|
|<#LightningDistance>||Distance to last strike (same units as wind run - miles/km/nm) (Returns 0.0 if you don't have a sensor, GW1000 api returns max value you can put in a byte - 0xFF which translates to 158.4 miles = 255 km if have sensor but no strike detected yet, so MX translates that to '----')|
|<#LightningTime>||Date and Time of last strike (default without output parameters is locale's short time format e.g. 18:02 or 6:02 pm, without date, but tag accepts both date and time output parameters). Returns '----' if you don't have sensor or there has not been a strike since the sensor was installed. (GW1000 api returns FFFF FFFF seconds after midnight on 01 Jan 1970, which translates to 07/02/2106 06:28:15, so MX translates that to '----')|
|<#LightningStrikesToday>||Number of strikes since midnight, default 0|
|<#UserTemp1>||User Temperature 1
support for the new Ecowitt WH34 soil and water temperature sensors
|... and so on up to <#UserTemp8> = User temperature 8|
Ecowitt stations are sold under other names depending on nation, e.g. Ambient in USA, Froggit in central Europe, so Ecowitt is used as a generic name in same way as Fine Offset is used elsewhere in this article.
There are a set of web tags for 'recent historical data', based on an array stored by Cumulus giving data values from 1 minute ago, up to 1 week ago, in 1 minute intervals. As Cumulus runs it will add the latest values to the array with full resolution, and shift existing values along so those older than 7 days fall off. Following the table giving the tags actually available, there is a section on how to derive a few more tags.
(Note that Cumulus uses current time read from the computer to determine which array element it stores each value in. Hence when clocks go back the value stored for winter time overwrites the value previously stored for same time during summer time for the relevant repeating hour. Hence even if you use 10am for your rollover time in summer, you will not have access to a whole hour worth of data when the clocks change as either the hour has been overwritten or when the clocks go forward it simply does not exist).
#No_Commas versions of the array are available for use in script.
You specify which value you want from the array by using parameters on the web tags for number of days ago, hours ago, and minutes ago. The same d, h, and m, parameters are used by Cumulus 1 and MX.
All values supplied for parameters must be whole numbers.
If you don't supply any parameters, the result is undefined for Cumulus 1, and an illegal web tag for MX.
<#RecentOutsideTemp m=1> will give the temperature one minute ago, <#RecentOutsideTemp h=1> will give the temperature one hour ago (as will <#RecentOutsideTemp m=60>).
<#RecentOutsideTemp d=1> will give the temperature one day ago. Please note: Some Cumulus users say that using <#RecentOutsideTemp d=1 m=1> is more reliable at getting the temperature at a similar time the day before, the extra minute apparently gives better results when you might not be using Cumulus all the time, or your weather station might have some drift on when it supplies readings. See which works best for you.
<#RecentOutsideTemp d=1 h=1 m=1> will give the temperature one day, one hour and one minute ago.
Please note that parameters specify time-stamped array element to retrieve based on counting back from current local time so the result for any period including when clocks change may not be quite what you anticipated.
When Cumulus is re-started the array it sets up will be based on reading the logs, so the contents will initially have a resolution according to the logger interval you have set in Cumulus and/or your station. You'll get the nearest value if you ask for a time for which there is currently no exact match, and the first tag listed tells you that nearest time.
Variations between Builds/Versions
Before build 1098, the recent history array did not initialise correctly from the station logger for the period since Cumulus was last run.
The input parameters are same for Cumulus 1 and Cumulus MX, they always use lower case d, h or m.
The list of tags available has not changed between last Cumulus 1 release and any MX release. Any new derivatives reported elsewhere have not resulted in equivalent new recent history tags.
|Web tag_name||Function||Parameters example|
|<#RecentTS>||Gives the timestamp of the data that will be returned for any other recent history tag that uses same d, h, and m parameters||<#RecentTS h=3 m=1 format="HH:nn"> for cumulus 1; <#RecentTS h=3 m=1 format="HH:mm"> for cumulus MX|
|Temperature & Humidity tags|
|<#RecentOutsideTemp>||Outside Temperature||<#RecentOutsideTemp h=3 m=1> <#tempunit> will display the temperature at the start of the period for which <#temptrend> is calculated|
|<#RecentWindChill>||Wind Chill||<#RecentWindChill d=48 m=1> reports the wind chill temperature 2 days ago|
|<#RecentDewPoint>||Dew Point||<#RecentDewPoint h=25> reports the dew point temperature just over a day ago|
|<#RecentHeatIndex>||Heat Index||<#RecentHeatIndex m=121> reports the heat index about 2 hours ago|
|<#RecentHumidity>||Relative Humidity||d=n (where n runs 0 to 6) days ago; h=n (where n is any number of hours ago); m=n (where n is any number of minutes ago)|
|<#RecentWindSpeed>||Wind Speed||<#RecentWindSpeed m=10> will display the average wind speed 10 minutes ago|
(reports maximum gust from build 1088 of version 1.9.4)
|<#RecentWindGust d=1 m=1> will report the wind gust at approximately the same time yesterday|
|<#RecentWindLatest>||Wind Latest. Note: Wind 'Speed', 'Gust' and 'Latest' have the usual Cumulus meanings||d=n (where n runs 0 to 6) days ago; h=n (where n is any number of hours ago); m=n (where n is any number of minutes ago)|
|<#RecentWindDir>||Wind Direction (instantaneous)||<#RecentWindDir m=10> will tell you which direction the wind was blowing from 10 minutes ago|
|<#RecentWindAvgDir>||Wind Direction (average)||<#RecentWindAvgDir d=6> will say what the calculated average wind direction was at this time at the start of the week|
|<#RecentPressure>||Sea-level Pressure||<#RecentPressure h=3 m=1> gives the sea level pressure when <#presstrendval> started tracking the pressure|
|<#RecentRainToday>||Daily rain total from last roll-over to specified time||d=n (where n runs 0 to 6) days ago; h=n (where n is any number of hours ago); m=n (where n is any number of minutes ago)|
|Solar & UV|
Other weather derivatives
Although Humidex, 'Apparent Temperature', 'Feels Like temperature' and others listed in Current Conditions section, are not included as tags here, they can be calculated in a script from recent 'outside temperature', 'wind speed', and 'relative humidity' values (using the same time selection for all). There are other derivatives that can be calculated similarly from a set of simultaneous values. Note that Cumulus 1 and MX do not always use identical formula, and although MX added Feels Like it has changed the formula a few times.
Canadian Humidity Index
If you are in USA and use Fahrenheit instead of Celsius, you will need to do a conversion for the temperature and dew point tags, and in reverse for the output. This example is for 3 hours ago, change the input parameters to suit your need.
H = <#RecentOutsideTemp h=3> + 5/9 * (6.1094 * Math.exp(5417.753 *(1/273.16 - 1/ (273.16 + <#RecentDewPoint h=3> )))-10);
svp = 6.112 * Math.exp((17.62 * <#RecentOutsideTemp h=3) / (243.12 + parseFloat(<#RecentOutsideTemp h=3))); H = (5/9 * (<#RecentHumidity h=3> /100 * svp - 10)) + <#RecentOutsideTemp h=3;
Note this formula uses Celsius for temperature and metres per second for wind speed. You will need to do the appropriate conversions if you use different units. Formula is same for Cumulus 1 and MX.
var actualVaporPress = <#RecentHumidity h=3>/100) * 6.105 * Math.exp(17.27 * <#RecentOutsideTemp h=3>) / (237.7 + parseFloat(<#RecentOutsideTemp h=3>)))); var appTempDegC = parseFloat(<#RecentOutsideTemp h=3) + (0.33 * actualVaporPress) - (0.7 * <#RecentWindSpeed h=3>) - 4;
Formula deleted, as only used from MX version 3.5.4 (25 Apr 2020) build 3075 until version 3.6.7 (4 June 2020) build 3083
For web tags that report values that refer to a particular time of day, there is a corresponding web tag that can give the time of day, shown in same row of table below.
Please note none of the time web tags can be modified by output parameters to give a date, but they can be changed from the default time format that is 'H:mm' (24 hour clock notation without leading zero for hour) for Cumulus 1 and MX. If you are using output modifiers to change how the time is reported, be careful to use ones that work for the flavour of Cumulus you are using (H and h are same for Cumulus 1, but not for MX; nn and mm are same for Cumulus 1, but not for MX).
|Web tag_name||Function||Time tag_name|
|Temperature & Humidity|
|<#tempTH>||Today's highest temperature||<#TtempTH>|
|<#tempTL>||Today's lowest temperature||<#TtempTL>|
|<#avgtemp>||The average temperature so far today (calculated from all temperature readings processed by Cumulus)||n/a|
|<#temprange>||The temperature range (<#tempTH> - <#tempTL>) so far today (Cumulus calculates all these tags using Celsius values, but outputs them in your chosen units)||n/a|
|<#apptempTH>||Today's high apparent temperature||<#TapptempTH>|
|<#apptempTL>||Today's low apparent temperature||<#TapptempTL>|
|<#feelslikeTH>||Available from version 3.6.0 Today's high feels like temperature||<#TfeelslikeH>|
|<#feelslikeL>||Available from version 3.6.0 Today's low feels like temperature||<#TfeelslikeL>|
|<#heatindexTH>||Today's high heat index||<#TheatindexTH>|
|<#wchillTL>||Today's greatest wind chill (i.e. lowest temperature, highest wind speed)||<#TwchillTL>|
|<#dewpointTH>||Today's highest dew point||<#TdewpointTH>|
|<#dewpointTL>||Today's lowest dew point||<#TdewpointTL>|
|<#humTH>||Today's highest humidity||<#ThumTH>|
|<#humTL>||Today's lowest humidity||<#ThumTL>|
|<#rrateTM>||Today's maximum rain rate||<#TrrateTM>|
|<#hourlyrainTH>||Today's highest hourly rain||<#ThourlyrainTH>|
|<#RG11RainToday>||If you have an RG-11 rain sensor configured in "Tipping Bucket" mode, this gives today's rain total so far according to the sensor||n/a|
|<#snowfalling>||Returns 1 if there is an entry in the Weather Diary for Today and the Snow Falling check box is ticked. Returns 0 otherwise.|
|<#snowdepth>||If there is an entry in the Weather Diary for Today, returns the value set there. Returns 0 otherwise.
Available from very early builds, weather diary input amended from version 1.8.6 14th April 2009 to allow units to be specified. Input and output is as integer, enter in millimetres to represent 1 decimal place in centimetres. Meteorologists report this in cm. Available from version 3.1.1 - build 3054 when weather diary editor was added to MX
|<#snowlying>||Returns 1 if there is an entry in the Weather Diary for Today and the Snow Lying check box is ticked. Returns 0 otherwise.|
|<#pressTH>||Today's highest pressure reading||<#TpressTH>|
|<#pressTL>||Today's lowest pressure reading||<#TpressTL>|
|<#windTM>||Today's maximum (average) wind speed||<#TwindTM>|
|<#wgustTM>||Today's maximum wind gust||<#TwgustTM>|
|<#bearingTM>||The wind bearing at the time of today's high gust (<#wgustTM>) in degrees||<#TwgustTM>|
|<#Tbeaufort>||Today's highest wind speed, expressed in the Beaufort scale||<#TwindTM>|
|<#Tbeaufortnumber>||Today's high wind speed on the Beaufort scale, without a leading "F", e.g. "6"||<#TwindTM>|
|<#windrun>||The total wind run so far today||N/A|
|<#domwindbearing>||Today's dominant wind direction in degrees||n/a|
|<#domwinddir>||Today's dominant wind direction as compass point||n/a|
|<#Tbeaudesc>||Beaufort 'description' for today's high wind speed||n/a|
|<#ET>||Today's evapotranspiration. Applies only to Davis stations, equipped with a solar sensor.
"The ET value provided to Cumulus by the console and/or DLL is buggy and unreliable. It often shows a negative value. See this FAQ."
|<#heatdegdays>||Today's heating degree days||n/a|
|<#cooldegdays>||Today's cooling degree days||n/a|
|<#solarTH>||Today's high solar radiation value (Solar sensor needed)||<#TsolarTH>|
|<#UVTH>||Today's high UV Index (UV sensor needed)||<#TUVTH>|
Note that the Y indicating yesterday is sometimes a prefix, sometimes a suffix (with H for High, L for Low), web tags are not named consistently!
Many of these web tags are used on the supplied yesterdayT.htm template, and the supplied todayyest.html page within the MX user interface.
For web tags that refer to a particular time of day, there is a corresponding web tag that can give the time of day. Please note none of the time web tags can be modified by output parameters to give a date, but they can be changed from the default time format that is 'h:mm'.
|Temperature & Humidity|
|<#tempYH>||Yesterday's highest temperature||<#TtempYH>|
|<#tempYL>||Yesterday's lowest temperature||<#TtempYL>|
|<#avgtempY>||Yesterday's average temperature||n/a|
|<#temprangeY>||The temperature range (max - min) yesterday||n/a|
|<#apptempYH>||Yesterday's high apparent temperature||<#TapptempYH>|
|<#apptempYL>||Yesterday's low apparent temperature||<#TapptempYL>|
|<#feelslikeYH>||Yesterday's high feels like temperature||<#TfeelslikeYH>|
|<#feelslikeYL>||Yesterday's low feels like temperature||<#TfeelslikeYL>|
|<#heatindexYH>||Yesterday's high heat index||<#TheatindexYH>|
|<#wchillYL>||Yesterday's greatest wind chill (i.e. lowest temperature)||<#TwchillYL>|
|<#dewpointYL>||Yesterday's lowest dew point||<#TdewpointYL>|
|<#dewpointYH>||Yesterday's highest dew point||<#TdewpointYH>|
|<#humYH>||High humidity yesterday||<#ThumYH>|
|<#humYL>||Low humidity yesterday||<#ThumYL>|
|<#rfallY>||The total rainfall for yesterday according to the connected weather station||n/a|
|<#RG11RainYest>||The total rainfall for yesterday according to an RG-11 rain sensor configured in "Tipping Bucket" mode||n/a|
|<#rrateYM>||Yesterday's maximum rain rate||<#TrrateYM>|
|<#hourlyrainYH>||Yesterday's highest hourly rain||<#ThourlyrainYH>|
|<#pressYH>||Yesterday's highest pressure reading||<#TpressYH>|
|<#pressYL>||Yesterday's lowest pressure reading||<#TpressYL>|
|<#windYM>||Yesterday's maximum (average) wind speed||<#TwindYM>|
|<#wgustYM>||Yesterday's maximum wind gust||<#TwgustYM>|
|<#bearingYM>||The wind bearing at the time of yesterday's high gust||<#TwgustYM>|
|<#Ybeaufort>||Yesterday's highest wind speed, expressed in the Beaufort scale||<#TwindYM>|
|<#Ybeaufortnumber>||Yesterday's high wind speed on the Beaufort scale, without a leading "F", e.g. "6"||<#TwindYM>|
|<#Ybeaudesc>||Beaufort 'description' for yesterday's high wind speed||n/a|
|<#domwindbearingY>||Yesterday's dominant wind direction in degrees||n/a|
|<#domwinddirY>||Yesterday's dominant wind direction as compass point||n/a|
|<#windrunY>||The total wind run for yesterday||n/a|
|<#heatdegdaysY>||Yesterday's heating degree days||n/a|
|<#cooldegdaysY>||Yesterday's cooling degree days||n/a|
|<#solarYH>||Yesterday's high solar radiation value (Solar sensor needed)||<#TsolarYH>|
|<#UVYH>||Yesterday's high UV Index (UV sensor needed)||<#TUVYH>|
This table shows the web tags used on the "thismonthT.htm" web page, the rainfall this month does not appear on that page, does not appear on that page, it is shown in indexT.htm table earlier on this page.
The web tags in the date column output dates in the format "dd MMMM" (same for Cumulus 1 and Cumulus MX), this can be changed using the format parameters described above. For web tags that represent daily values, there are (obviously) no corresponding time web tags, but for high and low spot values the default 'h:mm' format of the time output can be changed using output parameters.
NB This table shows time of extremes for two daily figures (highest minimum/lowest maximum temperatures as of course these are actually associated with a particular time although a standard web tag was not provided for that), by including Cumulus time modifiers, and how minutes in time modifiers can be specified in two ways in Cumulus 1 but only in one way in Cumulus MX.
This table shows the web tags used on the "thisyearT.htm" web page, the rainfall this season (it need not start on 1 January) does not appear on that page, it is shown on indexT.htm.
The default format for web tags in the date column is (like the monthly web tags) "dd MMMM" (same for Cumulus 1 and Cumulus MX), this can be changed using the format parameters described above. For web tags that represent daily values, there are (obviously) no corresponding time web tags, but for high and low spot values the default 'h:mm' format of the time output can be changed using output parameters.
NB Year runs from roll-over time on 1 January for all web tags listed here
|Temperature & Humidity|
|<#YearTempH>||This years highest temperature||<#YearTempHT>||<#YearTempHD>|
|<#YearTempL>||This years lowest temperature||<#YearTempLT>||<#YearTempLD>|
|<#YearHighDailyTempRange>||High Daily Temp Range||n/a||<#YearHighDailyTempRangeD>|
|<#YearLowDailyTempRange>||Low Daily Temp Range||n/a||<#YearLowDailyTempRangeD>|
|<#YearHeatIndexH>||This years highest heat index||<#YearHeatIndexHT>||<#YearHeatIndexHD>|
|<#YearWChillL>||This years greatest wind chill (i.e. lowest temperature)||<#YearWChillLT>||<#YearWChillLD>|
|<#YearAppTempH>||This years highest apparent temperature||<#YearAppTempHT>||<#YearAppTempHD>|
|<#YearAppTempL>||This years lowest apparent temperature||<#YearAppTempLT>||<#YearAppTempLD>|
|<#YearFeelsLikeH>||This years highest feels like temperature (available from 3.6.0)||<#YearFeelsLikeHT>||<#YearFeelsLikeHD>|
|<#YearFeelsLikeL>||This years lowest feels like temperature (available from 3.6.0)||<#YearFeelsLikeLT>||<#YearFeelsLikeLD>|
|<#YearDewPointH>||This years highest dew point||<#YearDewPointHT>||<#YearDewPointHD>|
|<#YearDewPointL>||This years lowest dew point||<#YearDewPointLT>||<#YearDewPointLD>|
|<#YearMinTempH>||This years highest daily minimum temperature||<#YearMinTempHD format=HH:nn> for Cumulus 1, <#YearMinTempHD format=HH:mm> for Cumulus MX||<#YearMinTempHD>|
|<#YearMaxTempL>||This years lowest daily maximum temperature||<#YearMaxTempHD format=HH:nn> for Cumulus 1, <#YearMaxTempHD format=HH:mm> for Cumulus MX||<#YearMaxTempLD>|
|<#YearHumH>||This years high humidity||<#YearHumHT>||<#YearHumHD>|
|<#YearHumL>||This years low humidity||<#YearHumLT>||<#YearHumLD>|
|<#YearPressH>||This years high pressure||<#YearPressHT>||<#YearPressHD>|
|<#YearPressL>||This years low pressure||<#YearPressLT>||<#YearPressLD>|
|<#YearGustH>||This years high wind gust||<#YearGustHT>||<#YearGustHD>|
|<#YearWindH>||This years high wind speed||<#YearWindHT>||<#YearWindHD>|
|<#YearWindRunH>||High Daily Wind Run||n/a||<#YearWindRunHD>|
|<#YearRainRateH>||This years high rainfall rate||<#YearRainRateHT>||<#YearRainRateHD>|
|<#YearHourlyRainH>||This years high hourly rain||<#YearHourlyRainHT>||<#YearHourlyRainHD>|
|<#YearDailyRainH>||This years high daily rain||n/a||<#YearDailyRainHD>|
|<#YearMonthlyRainH>||This years high monthly rain||n/a||<#YearMonthlyRainHD>|
|<#YearLongestDryPeriod>||Longest period without rain ending this year (days)||n/a||<#YearLongestDryPeriodD>|
|<#YearLongestWetPeriod>||Longest period of rain every day ending this year (days)||n/a||<#YearLongestWetPeriodD>|
The web tags in the date/time column have the default format seen on "records.htm". So for an extreme month it just shows the month name in full i.e. format 'MMMM'. For an extreme day it shows the day of the month and the month name in full i.e. format "dd MMMM" (same for Cumulus 1 and Cumulus MX), prefixed with the word 'on'. For the highest/lowest within a day in the year it shows both time and date adding the word "at" before the time, and the word 'on' before the date.
You can change the default output using the [[#Time.2FDate_.27format.27_Parameter|formats features described above, but this can involve complicated use of single and double quotes and there are differences between Cumulus 1 and Cumulus MX.
Note that unlike the monthly web tags, the time is included in the default format of the standard web tags for the 'highest minimum' and 'lowest maximum'.
|Temperature & Humidity|
|<#tempH>||All time high temperature||<#TtempH>|
|<#tempL>||All time low temperature||<#TtempL>|
|<#mintempH>||All time high minimum temperature||<#TmintempH>|
|<#maxtempL>||All time low maximum temperature||<#TmaxtempL>|
|<#LowDailyTempRange>||All time low daily temperature range||<#TLowDailyTempRange>|
|<#HighDailyTempRange>||All time high daily temperature range||<#THighDailyTempRange>|
|<#apptempH>||All time high apparent temperature||<#TapptempH>|
|<#apptempL>||All time low apparent temperature||<#TapptempL>|
|<#feelslikeH>||All time high feels like temperature (available from 3.6.0)||<#TfeelslikeH>|
|<#feelslikeL>||All time low feels like temperature (available from 3.6.0)||<#TfeelslikeL>|
|<#heatindexH>||All time high heat index||<#TheatindexH>|
|<#dewpointH>||All time high dew point||<#TdewpointH>|
|<#dewpointL>||All time low dew point||<#TdewpointL>|
|<#humH>||All time high humidity||<#ThumH>|
|<#humL>||All time low humidity||<#ThumL>|
|<#wchillH>||All time greatest wind chill (i.e. lowest temperature)||<#TwchillH>|
|<#rrateM>||All time high rain rate||<#TrrateM>|
|<#rfallH>||All time high daily rain||<#TrfallH>|
|<#rfallhH>||All time high hourly rain||<#TrfallhH>|
|<#rfallmH>||All time high monthly rain||<#TrfallmH>|
|<#LongestDryPeriod>||All time longest dry period (days)||<#TLongestDryPeriod>|
|<#LongestWetPeriod>||All time longest wet period (days)||<#TLongestWetPeriod>|
|<#pressH>||All time high pressure||<#TpressH>|
|<#pressL>||All time low pressure||<#TpressL>|
|<#gustM>||All time high wind gust||<#TgustM>|
|<#wspeedH>||All time high average wind speed||<#TwspeedH>|
|<#windrunH>||All time high daily wind run||<#TwindrunH>|
Monthly All Time Records
There are a set of tags for monthly all-time highs and lows, in other words the highest and lowest values for a particular month of the year. For example, the highest ever temperature in July. Each Value tag has an optional input parameter "mon=N" where N is the index of the month of the year that you want the value for (January=1 and so on). For example, <#ByMonthTempH mon=7> will give you the highest ever temperature in July. The corresponding date/time web tags are formatted like the all time records directly above this section.
If you don't supply a parameter (or supply an invalid value) the current month will be used. You can customise the date and time formats using the 'format' parameter on the web tag. To supply both input and output parameters, separate them with spaces, e.g. <#ByMonthTempHT mon=7 format=hh:nn>
|Temperature & Humidity|
|<#ByMonthHeatIndexH>||High Heat Index||<#ByMonthHeatIndexHT>|
|<#ByMonthWChillL>||Greatest wind chill (i.e. lowest temperature)||<#ByMonthWChillLT>|
|<#ByMonthAppTempH>||High Apparent Temperature||<#ByMonthAppTempHT>|
|<#ByMonthAppTempL>||Low Apparent Temperature||<#ByMonthAppTempLT>|
|<#ByMonthFeelsLikeH>||High Feels Like Temperature (available from 3.6.0)||<#ByMonthFeelsLikeTempHT>|
|<#ByMonthFeelsLikeTempL>||Low Feels Like Temperature (available from 3.6.0)||<#ByMonthFeelsLikeTempLT>|
|<#ByMonthDewPointH>||High Dew Point||<#ByMonthDewPointHT>|
|<#ByMonthDewPointL>||Low Dew Point||<#ByMonthDewPointLT>|
|<#ByMonthMinTempH>||Highest Daily Minimum Temperature||<#ByMonthMinTempHT>|
|<#ByMonthMaxTempL>||Lowest Daily Maximum Temperature||<#ByMonthMaxTempLT>|
|<#ByMonthHighDailyTempRange>||High Daily Temp Range||<#ByMonthHighDailyTempRangeT>|
|<#ByMonthLowDailyTempRange>||Low Daily Temp Range||<#ByMonthLowDailyTempRangeT>|
|<#ByMonthGustH>||High Wind Gust||<#ByMonthGustHT>|
|<#ByMonthWindH>||High Wind Speed||<#ByMonthWindHT>|
|<#ByMonthWindRunH>||High Daily Wind Run||<#ByMonthWindRunHT>|
|<#ByMonthRainRateH>||High Rain Rate||<#ByMonthRainRateHT>|
|<#ByMonthMonthlyRainH>||High Monthly Rainfall||<#ByMonthMonthlyRainHT>|
|<#ByMonthHourlyRainH>||High Hourly Rain||<#ByMonthHourlyRainHT>|
|<#ByMonthDailyRainH>||High Daily Rain||<#ByMonthDailyRainHT>|
|<#ByMonthLongestDryPeriod>||Longest Dry Period||<#ByMonthLongestDryPeriodT>|
|<#ByMonthLongestWetPeriod>||Longest Wet Period||<#ByMonthLongestWetPeriodT>|
These are updated each hour to refer to current time-zone
|<#sunrise>||Last sunrise time at the station - This sunrise time is calculated by a third party library each midnight UTC, and each hour Cumulus converts it to local time to ensure shown correctly before and after any clock change.|
|<#sunset>||Next sunset time at the station - The sunset/sunrise times are calculated each midnight UTC, and each hour Cumulus converts them to local time to ensure it shows them correctly before and after any clock change.|
|<#daylength>||Length of day in hours and minutes (sunrise to sunset) - The third party library that Cumulus uses each midnight UTC, may take last sunrise from previous day and next sunset from next day, so the calculation may be off by a minute or so compared to true figure for current day.|
|<#IsSunUp>||A flag to indicate if the Sun is above the horizon or not, based on the sunrise and sunset times.
Possible values are 0 or 1, where 1 is when the Sun is above the horizon for the station location.
|<#dawn>||Start of last Civil Twilight at the station as at last midnight UTC|
|<#dusk>||End of next Civil Twilight at the station as at last midnight UTC|
|<#daylightlength>||Length of daylight in hours and minutes (dawn to dusk)|
|<#isdaylight>||A flag to indicate if the location for the station is in civil daylight or not, based on the dawn and dusk times.
Possible values are 0 or 1, where 1 notes that it is currently within the hours of daylight.
|<#tomorrowdaylength>||A string giving an approximate predicted difference between the length of daylight (dawn to dusk) yesterday and length of daylight tomorrow.
This web tag is unreliable, and its use is not recommended. Its use is therefore not supported (i.e. you use it at your own risk).
|<#moonphase>||Current phase of the moon in words, eg "New Moon" etc. The names used can be altered in strings.ini.|
|<#MoonAge>||Current approximate age of the Moon in days (0-29.53)
MX b3047 adds the 'dp' and 'rc' parameters Supports an optional 'dp' parameter, if supplied the result is returned to the specified number of decimal places. E.g <#MoonAge> gives "11" <#MoonAge dp=3> gives "11.234" If the "dp" parameter is supplied, then also supplying "rc=y" in addition will cause any decimal comma to be converted to a decimal point.
|<#moonrise>||Current moonrise time at the station (if moon rises on current calendar day)|
|<#moonset>||Current moonset time at the station (if moon sets on current calendar day)|
|<#MoonPercent>||Current percentage of moon visible (negative value indicates 'waning')
MX b3047 adds the 'dp' and 'rc' parameters as <#MoonAge> above
|<#MoonPercentAbs>||Current percentage of moon visible (always positive)
MX b3047 adds the 'dp' and 'rc' parameters as <#MoonAge> above
|<#SunshineHours>||Hours of sunshine so far today (Solar sensor needed)|
|<#YSunshineHours>||Total hours of sunshine yesterday (Solar sensor needed)|
|<#CurrentSolarMax>||Current theoretical maximum solar radiation|
|<#IsSunny>||Returns 1 if the sun is shining, otherwise 0 (Solar sensor needed)|
There are a set of tags available in Cumulus 1 for various alarm states. In Cumulus 1, the main page will change the colour of the relevant element when an alarm condition is entered or left. You can add sounds, and enable disable each alarm parameter on the Main Cumulus screen, Edit menu.
Alarms are also available in later MX versions. In MX, the alarm conditions are shown on the bottom of the Dashboard page of the user interface. You can add sounds, and enable/disable each alarm parameter on the Alarms screen within Settings menu.
For both flavours, there are web tags for each alarm condition, they give a value of '1' if the alarm condition is enabled and is still currently met; otherwise '0'.
|<#LowTempAlarm>||Low temperature alarm|
|<#HighTempAlarm>||High temperature alarm|
|<#TempChangeUpAlarm>||Temperature increase alarm|
|<#TempChangeDownAlarm>||Temperature decrease alarm|
|<#LowPressAlarm>||Low pressure alarm|
|<#HighPressAlarm>||High pressure alarm|
|<#PressChangeUpAlarm>||Pressure increase alarm|
|<#PressChangeDownAlarm>||Pressure decrease alarm|
|<#HighRainTodayAlarm>||High rain today alarm|
|<#HighRainRateAlarm>||High rainfall rate alarm|
|<#HighWindGustAlarm>||High wind gust alarm|
|<#HighWindSpeedAlarm>||High wind speed alarm|
|<#DataStopped>||1 if the station has apparently stopped sending data to Cumulus, otherwise 0|
There are a set of tags for the Cumulus record states. They give a value of '1' if the record has been exceeded; otherwise '0'. For daily records (e.g. temperature range), the record cannot be set until the end of the day when rollover starts. The tag is cleared in Cumulus 1 once the record has been viewed (via main screen or web tag).
Differences depending on Cumulus versions
For versions up to 3.5.0 Cumulus MX works in a different way both in terms of how tags are set (see various topics in support forum) and how they are cleared (essentially the end of rollover clears records, so daily records are only shown for the few microseconds while rollover is being processed). From version 3.5.1, Cumulus MX offers all the web tags listed in table below. These will be set from the time of the record until a timeout value (default 24 hours). You can change the default timeout by adding this RecordSetTimeoutHrs=24 entry to [Station] section in Cumulus.ini where the default '24' can be changed to a different number of hours.
|<#recordsbegandate>||The date that Cumulus began tracking all time records (does not prevent earlier record dates being set manually)|
|<#newrecord>||Indicates when any tracked extreme is changed.
|<#TempRecordSet>||1 if the indicator on the temperature tab on the all-time records screen is currently lit, 0 if not|
|<#WindRecordSet>||1 if the indicator on the wind tab on the all-time records screen is currently lit, 0 if not|
|<#RainRecordSet>||1 if the indicator on the rain tab on the all-time records screen is currently lit, 0 if not|
|<#HumidityRecordSet>||1 if the indicator on the humidity tab on the all-time records screen is currently lit, 0 if not|
|<#PressureRecordSet>||1 if the indicator on the pressure tab on the all-time records screen is currently lit, 0 if not|
|<#HighTempRecordSet>||1 if the all-time high temperature light is currently flashing, 0 if not|
|<#LowTempRecordSet>||1 if the all-time low temperature light is currently flashing, 0 if not|
|<#HighTempRangeRecordSet>||1 if the all-time high daily temperature range light is currently flashing, 0 if not|
|<#LowTempRangeRecordSet>||1 if the all-time low daily temperature range light is currently flashing, 0 if not|
|<#HighAppTempRecordSet>||1 if the all-time high apparent temperature light is currently flashing, 0 if not|
|<#LowAppTempRecordSet>||1 if the all-time low apparent temperature light is currently flashing, 0 if not|
|<#HighHeatIndexRecordSet>||1 if the all-time high heat index light is currently flashing, 0 if not|
|<#LowWindChillRecordSet>||1 if the all-time low wind chill light is currently flashing, 0 if not|
|<#HighDewPointRecordSet>||1 if the all-time high dew point light is currently flashing, 0 if not|
|<#LowDewPointRecordSet>||1 if the all-time low dew point light is currently flashing, 0 if not|
|<#HighMinTempRecordSet>||1 if the all-time high minimum temperature light is currently flashing, 0 if not|
|<#LowMaxTempRecordSet>||1 if the all-time low maximum temperature light is currently flashing, 0 if not|
|<#HighWindGustRecordSet>||1 if the all-time high wind gust light is currently flashing, 0 if not|
|<#HighWindSpeedRecordSet>||1 if the all-time high wind speed light is currently flashing, 0 if not|
|<#HighRainRateRecordSet>||1 if the all-time high rain rate light is currently flashing, 0 if not|
|<#HighHourlyRainRecordSet>||1 if the all-time high hourly rain light is currently flashing, 0 if not|
|<#HighDailyRainRecordSet>||1 if the all-time high daily rain light is currently flashing, 0 if not|
|<#HighMonthlyRainRecordSet>||1 if the all-time high monthly rain light is currently flashing, 0 if not|
|<#LongestDryPeriodRecordSet>||1 if the all-time longest dry period light is currently flashing, 0 if not|
|<#LongestWetPeriodRecordSet>||1 if the all-time longest wet period light is currently flashing, 0 if not|
|<#HighHumidityRecordSet>||1 if the all-time high humidity light is currently flashing, 0 if not|
|<#LowHumidityRecordSet>||1 if the all-time low humidity light is currently flashing, 0 if not|
|<#HighPressureRecordSet>||1 if the all-time high pressure light is currently flashing, 0 if not|
|<#LowPressureRecordSet>||1 if the all-time low pressure light is currently flashing, 0 if not|
|<#HighWindrunRecordSet>||1 if the all-time high wind run light is currently flashing, 0 if not|
OS WMR Series
There are a set of tags for the WMR928, WR100/200 extra sensors:
|n/a||Now incorporated into the Extra Sensors section above|
Most of the following web tags are available in Cumulus MX from build 3019, Storm tags from 3021:
Please be aware that the tags available is not the same in all versions and this table has not yet been updated for latest MX version.
All (see note for THSWindex) of the following web tags for the Davis PWS are available in Cumulus 1.x.x; which updates the values of the reception tags every 15 minutes:
|<#DavisTotalPacketsReceived>||1.x.x and MX||Total number of data packets received|
|<#DavisTotalPacketsMissed>||1.x.x and MX||Number of missed data packets|
|<#DavisMaxInARow>||1.x.x and MX||Longest streak of consecutive packets received|
|<#DavisNumCRCerrors>||1.x.x and MX||Number of packets received with CRC errors|
|<#DavisFirmwareVersion>||1.x.x and MX||The console firmware version|
|<#DavisNumberOfResynchs>||1.x.x and MX||Number of times the console resynchronised with the transmitter|
|<#THWindex>||1.9.x||A derived temperature using Temperature/Humidity/Wind values read from Davis DLL in Cumulus 1.9.x.
|<#THSWindex>||(1.9.x and) MX||A heat stress indicator using Temperature/Humidity/Solar/Wind values.
Approx calculation: Decrease heat index by 1 unit for each 1 mph increase in wind speed, and for each, either 3 Langley increase in solar radiation, or 10% increase in cloud cover.
|<#battery>||1.x.x and MX||The console battery condition in volts. eg "4.82v"|
|1.x.x and MX||The transmitter battery condition, by default it returns the status of all transmitters.
Cumulus 1.x.x Only: The optional 'channel' parameter returns the status for a particular transmitter, up to channel=8. The channel result is just the string "ok" or "LOW" for a low battery
|<#StormRain>||1.x.x and MX||The console 'storm rain' current amount (build 1090 onwards for Cumulus 1; 3021 onwards for MX)|
|<#StormRainStart>||1.x.x and MX||The console reported date of the start of the 'storm' (the console does not report start time, but it appears a minimum of 2 tips within 3 hours will trigger a storm start, so using <#LastRainTipISO> in a script might help), but standard Cumulus date/time formatting can be applied to that date.|
The following tags are specific to the Fine Offset series of PWS
|<#Light>||Current Lux value "Fine Offset only"|
|<#SensorContactLost>||1 if the station has lost contact with its remote sensors "Fine Offset only"
0 if contact has been established
There are a set of tags for use in those locales that use the comma to separate the integer and decimal parts. In these tags available since version 1.9.3 build 1045, the decimal comma has been replaced with a full stop, where necessary, for use with scripts (used for plotting gauges etc.) which don't like the commas. They all correspond to the same tag with 'RC' removed.
<#RCtemp>, <#RCdew>, <#RCheatindex>, <#RChum>, <#RCinhum>, <#RCintemp>, <#RCpress>, <#RCrfall>, <#RCrrate>, <#RCwchill>, <#RCwgust>, <#RCwspeed>, <#RCwlatest>
<#RCpressTH>, <#RCpressTL>, <#RCrrateTM>, <#RCtempTH>, <#RCtempTL>, <#RCwgustTM>, <#RCdewpointTH>, <#RCdewpointTL>, <#RCwchillTL>, <#RCheatindexTH>, <#RCapptempTH>, <#RCapptempTL>
<#RCRecentOutsideTemp>, <#RCRecentWindSpeed>, <#RCRecentWindGust>, <#RCRecentWindLatest>, <#RCRecentWindChill>, <#RCRecentDewPoint>, <#RCRecentHeatIndex>, <#RCRecentPressure>, <#RCRecentRainToday>, <#RCRecentUV>
Although 'Apparent Temperature' is not included as a tag, it can be calculated in a script from the RC tags for 'outside temperature', 'wind speed', and 'relative humidity' values. In php language this is $RCapptempCALC = round(<#temp> + (0.33 * (<#hum> / 100 * 6.105 * exp (17.27 * <#temp> / (237.7 + <#temp>) ))) - (0.7 * $wspeed) - 4.0, 2);.
There are other derivatives that can be calculated similarly from a set of simultaneous values.
From version 3.5.4, all web tags that produce decimal number output now support the "rc=y" option. e.g. <#tempYH rc=y> will report yesterday's highest temperature using a full stop to separate decimal part where the locale would normally use a comma.
Example of List Web Tags output for MX
This is from an earlier version than the latest, it appears here simply to show how the web tag option can list tags (although these are separated by comma rather than the new line separator Cumulus uses).
AirQuality1, AirQuality2, AirQuality3, AirQuality4, AirQualityAvg1, AirQualityAvg2, AirQualityAvg3, AirQualityAvg4, AllocatedMemory, altimeterpressure, altitude, apptemp, apptempH, apptempL, apptempTH, apptempTL, apptempYH, apptempYL, avgbearing, avgtemp, avgtempY, battery, bearing, BearingRangeFrom, BearingRangeFrom10, BearingRangeTo, BearingRangeTo10, bearingTM, bearingYM, beaudesc, beaufort, beaufortnumber, build, ByMonthAppTempH, ByMonthAppTempHT, ByMonthAppTempL, ByMonthAppTempLT, ByMonthDailyRainH, ByMonthDailyRainHT, ByMonthDewPointH, ByMonthDewPointHT, ByMonthDewPointL, ByMonthDewPointLT, ByMonthGustH, ByMonthGustHT, ByMonthHeatIndexH, ByMonthHeatIndexHT, ByMonthHighDailyTempRange, ByMonthHighDailyTempRangeT, ByMonthHourlyRainH, ByMonthHourlyRainHT, ByMonthHumH, ByMonthHumHT, ByMonthHumL, ByMonthHumLT, ByMonthLongestDryPeriod, ByMonthLongestDryPeriodT, ByMonthLongestWetPeriod, ByMonthLongestWetPeriodT, ByMonthLowDailyTempRange, ByMonthLowDailyTempRangeT, ByMonthMaxTempL, ByMonthMaxTempLT, ByMonthMinTempH, ByMonthMinTempHT, ByMonthMonthlyRainH, ByMonthMonthlyRainHT, ByMonthPressH, ByMonthPressHT, ByMonthPressL, ByMonthPressLT, ByMonthRainRateH, ByMonthRainRateHT, ByMonthTempH, ByMonthTempHT, ByMonthTempL, ByMonthTempLT, ByMonthWChillL, ByMonthWChillLT, ByMonthWindH, ByMonthWindHT, ByMonthWindRunH, ByMonthWindRunHT, chillhours, cloudbase, cloudbaseunit, cloudbasevalue, ConsecutiveDryDays, ConsecutiveRainDays, cooldegdays, cooldegdaysY, CpuCount, CpuName, cumulusforecast, cumulusforecastenc, currcond, currcondenc, CurrentSolarMax, currentwdir, dailygraphperiod, DataStopped, date, DavisFirmwareVersion, DavisMaxInARow, DavisNumberOfResynchs, DavisNumCRCerrors, DavisTotalPacketsMissed, DavisTotalPacketsReceived, dawn, day, daylength, daylightlength, dayname, DaysSince30Dec1899, DaysSinceRecordsBegan, dew, dewpointH, dewpointL, dewpointTH, dewpointTL, dewpointYH, dewpointYL, DiskFree, DiskSize, DisplayMode, domwindbearing, domwindbearingY, domwinddir, domwinddirY, dusk, ErrorLight, ET, ExtraDP1, ExtraDP10, ExtraDP2, ExtraDP3, ExtraDP4, ExtraDP5, ExtraDP6, ExtraDP7, ExtraDP8, ExtraDP9, ExtraHum1, ExtraHum10, ExtraHum2, ExtraHum3, ExtraHum4, ExtraHum5, ExtraHum6, ExtraHum7, ExtraHum8, ExtraHum9, ExtraTemp1, ExtraTemp10, ExtraTemp2, ExtraTemp3, ExtraTemp4, ExtraTemp5, ExtraTemp6, ExtraTemp7, ExtraTemp8, ExtraTemp9, forecast, forecastenc, forecastnumber, forum, graphperiod, gustM, GW1000FirmwareVersion, heatdegdays, heatdegdaysY, heatindex, heatindexH, heatindexTH, heatindexYH, HighAppTempRecordSet, HighDailyRainRecordSet, HighDailyTempRange, HighDewPointRecordSet, HighHeatIndexRecordSet, HighHourlyRainRecordSet, HighHumidityRecordSet, HighMinTempRecordSet, HighMonthlyRainRecordSet, HighPressAlarm, HighPressureRecordSet, HighRainRateAlarm, HighRainRateRecordSet, HighRainTodayAlarm, HighTempAlarm, HighTempRangeRecordSet, HighTempRecordSet, HighWindGustAlarm, HighWindGustRecordSet, HighWindrunRecordSet, HighWindSpeedAlarm, HighWindSpeedRecordSet, hour, hourlyrainTH, hourlyrainYH, hum, humH, humidex, HumidityRecordSet, humL, humTH, humTL, humYH, humYL, inhum, intemp, interval, isdaylight, IsFreezing, IsRaining, IsSunny, IsSunUp, LastDataReadT, LastRainTipISO, LatestError, LatestErrorDate, LatestErrorTime, LatestNOAAMonthlyReport, LatestNOAAYearlyReport, latitude, LeafTemp1, LeafTemp2, LeafTemp3, LeafTemp4, LeafWetness1, LeafWetness2, LeafWetness3, LeafWetness4, LeakSensor1, LeakSensor2, LeakSensor3, LeakSensor4, Light, LightningDistance, LightningStrikesToday, LightningTime, location, LongestDryPeriod, LongestDryPeriodRecordSet, LongestWetPeriod, LongestWetPeriodRecordSet, longitude, longlocation, LowAppTempRecordSet, LowDailyTempRange, LowDewPointRecordSet, LowHumidityRecordSet, LowMaxTempRecordSet, LowPressAlarm, LowPressureRecordSet, LowTempAlarm, LowTempRangeRecordSet, LowTempRecordSet, LowWindChillRecordSet, maxtempL, MemoryStatus, metdate, metdateyesterday, mintempH, minute, MinutesSinceLastRainTip, month, MonthAppTempH, MonthAppTempHD, MonthAppTempHT, MonthAppTempL, MonthAppTempLD, MonthAppTempLT, MonthDailyRainH, MonthDailyRainHD, MonthDewPointH, MonthDewPointHD, MonthDewPointHT, MonthDewPointL, MonthDewPointLD, MonthDewPointLT, MonthGustH, MonthGustHD, MonthGustHT, MonthHeatIndexH, MonthHeatIndexHD, MonthHeatIndexHT, MonthHighDailyTempRange, MonthHighDailyTempRangeD, MonthHourlyRainH, MonthHourlyRainHD, MonthHourlyRainHT, MonthHumH, MonthHumHD, MonthHumHT, MonthHumL, MonthHumLD, MonthHumLT, MonthLongestDryPeriod, MonthLongestDryPeriodD, MonthLongestWetPeriod, MonthLongestWetPeriodD, MonthLowDailyTempRange, MonthLowDailyTempRangeD, MonthMaxTempL, MonthMaxTempLD, MonthMinTempH, MonthMinTempHD, monthname, MonthPressH, MonthPressHD, MonthPressHT, MonthPressL, MonthPressLD, MonthPressLT, MonthRainRateH, MonthRainRateHD, MonthRainRateHT, MonthTempH, MonthTempHD, MonthTempHT, MonthTempL, MonthTempLD, MonthTempLT, MonthWChillL, MonthWChillLD, MonthWChillLT, MonthWindH, MonthWindHD, MonthWindHT, MonthWindRunH, MonthWindRunHD, MoonAge, MoonPercent, MoonPercentAbs, moonphase, moonrise, moonset, newrecord, nextwindindex, OsLanguage, OsVersion, press, PressChangeDownAlarm, PressChangeUpAlarm, pressH, pressL, pressTH, pressTL, presstrend, presstrendenglish, presstrendval, pressunit, PressureRecordSet, pressYH, pressYL, ProgramUpTime, r24hour, RainRecordSet, rainunit, RcapptempTH, RcapptempTL, Rcdew, RcdewpointTH, RcdewpointTL, Rcheatindex, RcheatindexTH, Rchum, Rcinhum, Rcintemp, Rcpress, RcpressTH, RcpressTL, RCRecentDewPoint, RCRecentHeatIndex, RCRecentOutsideTemp, RCRecentPressure, RCRecentRainToday, RCRecentUV, RCRecentWindChill, RCRecentWindGust, RCRecentWindLatest, RCRecentWindSpeed, Rcrfall, Rcrrate, RcrrateTM, Rctemp, RctempTH, RctempTL, Rcwchill, RcwchillTL, Rcwgust, RcwgustTM, Rcwlatest, Rcwspeed, realtimeinterval, RecentDewPoint, RecentHeatIndex, RecentHumidity, RecentOutsideTemp, RecentPressure, RecentRainToday, RecentSolarRad, RecentTS, RecentUV, RecentWindAvgDir, RecentWindChill, RecentWindDir, RecentWindGust, RecentWindLatest, RecentWindSpeed, recordsbegandate, rfall, rfallH, rfallhH, rfallmH, rfallY, RG11RainToday, RG11RainYest, rhour, rmidnight, rmonth, rollovertime, rrate, rrateM, rrateTM, rrateYM, ryear, SensorContactLost, shortdayname, shortmonthname, shortyear, snowdepth, snowfalling, snowlying, SoilMoisture1, SoilMoisture10, SoilMoisture11, SoilMoisture12, SoilMoisture13, SoilMoisture14, SoilMoisture15, SoilMoisture16, SoilMoisture2, SoilMoisture3, SoilMoisture4, SoilMoisture5, SoilMoisture6, SoilMoisture7, SoilMoisture8, SoilMoisture9, SoilTemp1, SoilTemp10, SoilTemp11, SoilTemp12, SoilTemp13, SoilTemp14, SoilTemp15, SoilTemp16, SoilTemp2, SoilTemp3, SoilTemp4, SoilTemp5, SoilTemp6, SoilTemp7, SoilTemp8, SoilTemp9, SolarRad, solarTH, solarYH, stationtype, StormRain, StormRainStart, sunrise, sunset, SunshineHours, SystemUpTime, TapptempH, TapptempL, TapptempTH, TapptempTL, TapptempYH, TapptempYL, Tbeaudesc, Tbeaufort, Tbeaufortnumber, TdewpointH, TdewpointL, TdewpointTH, TdewpointTL, TdewpointYH, TdewpointYL, temp, TempChangeDownAlarm, TempChangeLastHour, TempChangeUpAlarm, tempH, tempL, temprange, temprangeY, TempRecordSet, tempTH, tempTL, temptrend, temptrendenglish, temptrendtext, tempunit, tempunitnodeg, tempYH, tempYL, TgustM, TheatindexH, TheatindexTH, TheatindexYH, ThighDailyTempRange, ThourlyrainTH, ThourlyrainYH, THSWindex, ThumH, ThumL, ThumTH, ThumTL, ThumYH, ThumYL, THWindex, time, timehhmmss, timeUTC, TlongestDryPeriod, TlongestWetPeriod, TlowDailyTempRange, TmaxtempL, TmintempH, tomorrowdaylength, TpressH, TpressL, TpressTH, TpressTL, TpressYH, TpressYL, TrfallH, TrfallhH, TrfallmH, TrrateM, TrrateTM, TrrateYM, TsolarTH, TsolarYH, TtempH, TtempL, TtempTH, TtempTL, TtempYH, TtempYL, TUVTH, TUVYH, TwchillH, TwchillTL, TwchillYL, TwgustTM, TwgustYM, TwindrunH, TwindTM, TwindYM, TwspeedH, txbattery, update, UV, UVTH, UVYH, version, wchill, wchillH, wchillTL, wchillYL, wdir, wdirdata, webcam, wetbulb, wgust, wgustTM, wgustYM, WindRecordSet, WindRoseData, WindRosePoints, windrun, windrunH, windrununit, windrunY, WindSampleCount, windTM, windunit, windYM, wlatest, wsforecast, wsforecastenc, wspddata, wspeed, wspeedH, Ybeaudesc, Ybeaufort, Ybeaufortnumber, year, YearAppTempH, YearAppTempHD, YearAppTempHT, YearAppTempL, YearAppTempLD, YearAppTempLT, YearDailyRainH, YearDailyRainHD, YearDewPointH, YearDewPointHD, YearDewPointHT, YearDewPointL, YearDewPointLD, YearDewPointLT, YearGustH, YearGustHD, YearGustHT, YearHeatIndexH, YearHeatIndexHD, YearHeatIndexHT, YearHighDailyTempRange, YearHighDailyTempRangeD, YearHourlyRainH, YearHourlyRainHD, YearHourlyRainHT, YearHumH, YearHumHD, YearHumHT, YearHumL, YearHumLD, YearHumLT, YearLongestDryPeriod, YearLongestDryPeriodD, YearLongestWetPeriod, YearLongestWetPeriodD, YearLowDailyTempRange, YearLowDailyTempRangeD, YearMaxTempL, YearMaxTempLD, YearMinTempH, YearMinTempHD, YearMonthlyRainH, YearMonthlyRainHD, YearPressH, YearPressHD, YearPressHT, YearPressL, YearPressLD, YearPressLT, YearRainRateH, YearRainRateHD, YearRainRateHT, YearTempH, YearTempHD, YearTempHT, YearTempL, YearTempLD, YearTempLT, YearWChillL, YearWChillLD, YearWChillLT, YearWindH, YearWindHD, YearWindHT, YearWindRunH, YearWindRunHD, yesterday, YSunshineHours