Webtags (preserving history): Difference between revisions

From Cumulus Wiki
Jump to navigationJump to search
 
(268 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Category:Terminology]]
[[Category:Terminology]]
=Some content has been removed from this page=


=What is a web tag? =
Please be aware some content originally on this page has been moved to other pages.  Old posts on the support forum that used to link directly to the specific material, will instead bring you to this start of the page.


Put simply, a web tag is included in a Cumulus template file to indicate where Cumulus should insert values when it produces an output file. The concept of [[Customised_templates#What_is_meant_by_.27Cumulus_processes_templates.27|processing templates]] is explained in another article.  The output file can be a [[Customised_templates#HTML_5_-_a_very_quick_guide_to_structure|web page]], a [[Feels_Like#HTML_code_to_translate_web_tags_to_JavaScript_variables_.28as_modified_for_additional_parameters.29|JavaScript file]], a PHP script, or a [[Xml_webtags|eXtensible Mark-up Language (XML)]] file.
Where the old content was cut, new links have been substituted within three sections on this page: [[#Input Modification Parameters and Output Modification Parameters]], [[#The tag name]], and [[#Recent History]].


== Why does MX talk about tokens? ==
=Essential Background Reading=
 
If you have not used this Wiki page before, or are unsure about using "web tags", there are some concepts that you do need to understand in the sub-sections that follow.
 
===The tag names===
 
<div style="background: LemonChiffon;padding:5px; margin:2px;">All the "tag_names" that are available for legacy 1.9.4, and for MX up to first beta build release '''3.12.0'''</div>  are in [[#Full List of Tag Names]] later on this page.
 
<big>If you edit this page, to add tag names for later builds, please amend the previous sentence.</big>
 
If you are using a Oregon Scientific weather station, then you should read [[#Web tags mentioning (outside) temperature]] in the optional reading section.
 
Do not assume that Cumulus always works according to normal meteorological practice in your nation.  For examples, the hours used by Cumulus to report derivatives involving rainfall, or minimum temperature,  may vary from figures reported by local meteorological stations.
 
===Quick summary of MX and Legacy differences===


MX uses a '''token parser''' to read the web tags, so if diagnostic output refers to tokens, it is saying the attempt to actually work out what was required from the web tag with its tag name and parameters has encountered a problem.
==Cumulus MX versus original Legacy Cumulus 1==


{{TOCright}}
The full information that used to appear on this page for differences between MX and the legacy Cumulus has been moved to a new [[Webtag Applicability|Web tag Applicability page]].  The next subsection just gives a basic summary.


=GENERAL TIP=
[[File:Badge vMx.png]] This page has been updated to include web tags up to version 3.12.0 beta build 3134.  Announcements for new builds of MX generally provide too little information for it to be easy to update this page, that is why it is often out of date.
* Since version 3.10.x, MX has not used web page templates, please see <big>[[WebsitedataT.json]]</big> page, instead of this Wiki page.
*# That page explains the ID names used on the [[New_Default_Web_Site_Information|default web site]] introduced from release 3.10.0
*# That page documents each data pair in the file
*# That page gives the source web tag for each ID name on the web pages
*# That page explains what data is represented by the  ID name, JSON attribute, web tag name
* Past MX releases 3.0.0 to 3.9.7 used [[Cumulus template file|web template files]], similar to (but not same as) the legacy software
** This Wiki page remains organised according to the content of those old template files.


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#Section:_Station|Cumulus.ini]] in the [station] section...
[[File:Badge v1.png]][[Category:Cumulus 1]] This page was created for Cumulus 1. Steve/Beth Loft provided some example [[Cumulus template file|web template files]], but expected Cumulus users to develop their [[Customised templates|own Cumulus template files]] making use of the web tags, listed below, that the software provided.


ListWebTags=1
For tag names available in the release you are using, see the next sub-sections.


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).
===What web tags can I use?===


To stop Cumulus continuing to produce new versions of that file change the line to say ...
Basically, it depends on which web tags are in whatever files are used to transfer weather derivatives to your web server.


ListWebTags=0
As Cumulus has developed, more tag names have been introduced, the tables showing tag names available, attempt to give an indication of which release introduced them. You can, see below, ask Cumulus (both MX and legacy) to list all the tag names it recognises, when it is started at whatever build you are running.


{{Version badge 1}}If you are using Cumulus 1, each build of that contains a build specific version of Cumulus Help, and within that help is a list of web tags with basic information on what each tag_name returns.


=What this article covers =


At the last count MX produces nine and a half million '''web tags'''! But the file mentioned in previous section contains just 717 items. How come this discrepancy?
====Using release after 3.9.7?====


Well each web tag has the general format <tt><#tag_name optional_input_parameter optional_output_parameter></tt> and it is adding these optional parameters that allow 717 tag names to define 9½ million values!
If you are using the [[New_Default_Web_Site_Information|default web site]], its standard web pages show data as follows:
* Pages with tabular presentation, see [[WebsitedataT.json]].
* Pages with graphs, see [[Cumulus.ini#Optional_Web_Server|Graph File Settings]].
* Page with steel series dials, see  [[Cumulus.ini#Display_Options|Display Options]].


Because this article describes the parameters available, it 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 as those names use a sub-set of the same output parameters as web tags use.
If you are using your own web templates, or other [[Customised templates|own Cumulus template files]] such as [[Php_webtags|XML or PHP data files]], then you make the decision on which tag names are used for the data to your web server.


Although web tags apply to all flavours of Cumulus (Cumulus 1, 2, and 3 aka MX), as mentioned above, the range available depends on the exact version/build of Cumulus you are using. Because Cumulus 2 is no longer available, it has been ignored in the tables below. However, in the tables of web tags below, some sections are marked '''Cumulus 1 only''', or '''MX only''', and some individual tags have icon markings indicating aspects that apply only to a particular flavour.  It is important to stress that these "C1" markings are for the final version of Cumulus 1 (and so if you are running an earlier version, some may not be available to you). Similarly the "MX" markings apply to the latest version of MX (and if you are using an earlier build, some may not be available to you). 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 when the "token parser" runs. Both flavours may either ignore, give wrong values, or refuse to accept, incorrect input or incorrect output parameters, this varies by web tag and has not been indicated in the tables below.


= NOAA style Report Naming =
====Getting release 3.12.0 or later to list tag names when it starts====


== A brief history of these reports ==
Please use the admin interface.


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 first only in Cumulus 2, they were added to Cumulus 1 in version 1.9.2 (build 1004) released in July 2011, after the abandonment of Cumulus 2.
Go to '''Program settings → General options'''


== Encoding ==
Tick ''List web tags''.


If you have problems with a web page not displaying the '''&deg;''' symbol correctly, it will be because the character set encoding is either not declared or not consistent. Put simply, most modern web pages use "utf-8" encoding, as do the standard web templates included with Cumulus, but for historical reasons Cumulus defaults to producing report files in ISO-8859-1 encoding. This causes the mismatch.  
The next time that MX is restarted, 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.  


To add just a little more detail here, if you choose to implement a web page to display these Cumulus reports, then the HTML of the web page to display the report, the JavaScript that selects which report to show, and inserts the report into the HTML, and the report itself '''must all use the same encoding''', otherwise you will not get characters like &deg; displaying correctly.
Go to '''Program settings → General options''', untick ''List web tags'' to stop Cumulus continuing to produce new versions of that file next time it is restarted.


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.  For backwards compliance, the default selected by Steve Loft is his original ISO-8859-1 encoding, but his recommendation strongly expressed was that users should switch to UTF-8. This choice  with the former as default, but the latter as recommended, remains unchanged in MX.  The encoding for NOAA reports can be selected on the NOAA Settings screen of either Cumulus 1 or MX, and you are as Steve says strongly advised to reverse the setting.


Before I go into any more technical detail, this same advice of selecting "UTF-8" applies to any choices on the '''Extra web files''' in MX (or Files tab of internet settings in Cumulus 1).
====Getting legacy Cumulus, or MX releases up to 3.11.4, to list tag names when starting====


'''With that introduction, you can now choose whether to read the rest of this section which uses more technical terminology.'''
The tag names available in the release/version/build you are using, can be listed (in Cumulus 1 or Cumulus MX) by adding the following line to [[Cumulus.ini#Section:_Station|Cumulus.ini]] in the [station] section...
<code>ListWebTags=1</code>


''Let me explain that technical term, essentially encoding refers to the character set used by any file''.  
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.  


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.  
To stop Cumulus continuing to produce new versions of that file change the line to say ...
<code> ListWebTags=0</code>


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.
[[File:Badge v1.png]] If you are using Cumulus 1, each build of that contains a build specific version of Cumulus Help, and within that help is a list of web tags with basic information on what each tag_name returns.


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.  
[[File:Badge vMx.png]] MX bug: The inclusion of a web tag in the list produced by this instruction, does not mean that web tag is actually populated with valid information. See https://cumulus.hosiene.co.uk/viewtopic.php?p=153096#p153096 for an example.


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.
==What is a web tag? ==
Remember, most modern web pages (including the standard web templates provided with both flavours of Cumulus) use UTF-8 encoding.


== The format used for naming ==
Weather values are always changing, so Cumulus needs a way for you to tell Cumulus to enter the current value for a particular derivative, when it is [[Customised_templates#What_is_meant_by_.27Cumulus_processes_templates.27|processing templates]].


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 [[Cumulus.ini#Section:_NOAA|[NOAA] section of Cumulus.ini]].
==General Format for Web Tags==


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 [[Webtags#List_of_allowed_modifiers|table below]] as there are obviously a lot more options.
In the position, in any (HTML, JSON, PHP, XML) template file, SQL, or Custom HTTP, where Cumulus is to insert the relevant data, place a web tag in the '''general format''' specified here:  <code><#tag_name [optional input selection parameters] [optional output modification parameters]></code>


{| class="wikitable" border="1"
===The optional parameters===
|-
!style="width:150px" | {{Version badge 1}}Delphi Specifier for Cumulus 1.9.x
!style="width:150px" | [[File:Badge vMx.png]]Mono Specifier for Cumulus MX
!style="width:600px" | Explanation
!style="width:150px" | Setting to use that suits both flavours
!style="width:600px" | Example of produced name
|-
|colspan="5" style="background:lightgray;"|Yearly report
|-
|YYYY or yyyy
|yyyy
|Note that Cumulus 1 accepts lower or upper case, this is the default mentioned above
|"NOAAYR"yyyy".txt"
|NOAAYR2010.txt
|-
|YY or yy
|yy
|Note that Cumulus 1 accepts lower or upper case, this represents a 2 digit year number alternative format
|"NOAAYR"yy".txt"
|NOAAYR10.txt
|-
|colspan="5" style="background:lightgray;"|Monthly report
|-
|mmyyyy (or MMYYYY)
|MMyyyy
|Note that Cumulus 1 accepts lower or upper case, these are equivalent to default mentioned above, so this is most common for users who first encounter with Cumulus is with MX flavour
|"NOAAMO"MMyyyy".txt"
|NOAAMO032010.txt
|-
|mmyy (or MMyy or mmYY or MMYY)
|MMyy
|Note that Cumulus 1 accepts lower or upper case, this represents a 2 digit year number alternative format, this was the format frequently selected by Cumulus 1 users as it keeps file names as short as possible
|"NOAAMO"MMyy".txt"
|NOAAMO0310.txt
|-
|yyyy-mm (or YYYY-MM)
|yyyy-MM
||Note that Cumulus 1 accepts lower or upper case, this naming format is popular as it results in files being in chronological sequence when listed by file name
|"NOAAMO"yyyy-MM".txt"
|NOAAM2010-03.txt
|-
|MMMyyyy
|MMMyyyy
|Note that Cumulus 1 accepts lower or upper case, this represents an informative naming format using 3 letter month name as defined for your locale on your device, in '''.NET''' or in '''MONO''' so it is used by those who want to quickly spot which report they want to look at.
|"NOAAMO"MMMyyyy".txt"
|NOAAMOMar2010.txt (for English locales)
|}


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).
The terminology "optional" is used because some tag names do not accept any parameters, but there are some tag names where a parameter is mandatory. Therefore, check the [[Webtags/Parameters|web tag parameters]] page to learn whether a web tag name you find here requires a mandatory parameter, or to find out which parameters are optionally available.


= Template Files =
The tables of tag names that appear later on this page will seldom give any information about which parameters are mandatory or optional.  There are tables on the other page referenced above that help you to understand what parameters the various tag names accept, explain each of the parameters available, and give examples.


This is the name given by Steve Loft to any files that contain web tags and need to be processed before they actually include values.  
There is a basic guide to what these parameters can do, and another link to the new page at [[#Input Modification Parameters and Output Modification Parameters]] later on this page.


When Cumulus processes these files it generates output files where the tags/tokens have been replaced by values. Consequently, a single template will actually generate a different file each time Cumulus processes that template because the part of the content that was web tags is now populated with text (values, times, dates, etc.) and as these values change that make the file different to the previous generated file.


For standard Cumulus, all the output files are 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. The generated file will often have "tmp" added to the end
===Inconsistency of tag names===


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 MX '''Extra Web Files''' settings or Cumulus 1 '''Files''' tab settings.
For both the legacy Cumulus and for MX, it is vital that you use tag names exactly as they are listed. That would be easy had Steve Loft created a naming standard and stuck to it.  


For Cumulus 1 and MX, there are one template held within the program code, this is what produces the default [[Realtime.txt]]. You can define an alternative template with web tags and Cumulus can process that instead of its default template.
To be fair to Steve, he created the legacy Cumulus for his own use, working in his spare time, alongside a full time job.


For MX only, there are other templates held within the program code (so you cannot edit them), these output in json format. Some are application program interface, and feed information to the admin interface, you can only view these by using the development interface in your browser that lets you see what has been loaded. The rest become the json files that are created in the '''web''' folder from where (like the web pages produced after processing the standard web templates), they can be uploaded to your web site.
Remember, the original design did not anticipate use by others, nor how much extra functionality would be added later.


= Web tags available in Cumulus =
Early versions of Cumulus could only report current values and the summary for the day so far.  Different web tags for today-so-far were added at different times, hence the names are inconsistent. New web tags for today-so-far added before yesterday tags were considered lack the T suffix (or prefix) later today-so-far tags use.


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 (briefly mentioned earlier in this page):
All-time tags were introduced before yesterday, this month and this year; hence all-time tag names assume they are only extreme monitoring.


  <pre><#tag_name [optional input parameters][optional output parameters]></pre>
The legacy tag names for this month and this year were all introduced in a single release and they remain consistent apart from what MX added later! However, they are not consistent with the naming of the all-time extremes introduced much earlier.


''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 editing programming code''' and you should use one of those (e.g. Notepad++, Brackets, NoteTab Light, HTML kit, amongst many others), ''rather than a tool designed for web page design editing'' (e.g. Dreamweaver, word press, amongst others).
This great inconsistency in the naming, gives rise to a problem as it very easy to spell a tag_name incorrectly (and from time to time such mistakes creep into the tables on this Wiki page) as you naturally expect there to be a standard pattern. Some tags are all lower-case, some are camel-case, and some start with a capital letter. Have a look yourself at just how much inconsistency is present in the names in the tables below.  


== Beta Builds of Cumulus ==


The [[BETA webtags|additional webtags]] page was created to hold web tags that were not yet available in any Cumulus 1 formal release, but were available in any Beta version that was under development. When development of Cumulus 1 ceased, that page held all web tokens specific to the MX Beta then under development. So at that time you had 2 articles to read to find which web tokens were available in MX Beta, and it was not clear in this article which web tags were only available in Cumulus 1!
=====Inconsistency in use of "Y"=====


For a while, some web tag alterations, for example [[BETA_webtags#Day.2FNight.2FSun.2FMoon|Moon web tags]] had parameters added to control the output from build 3047, continued to be added to the Beta article. You should keep an eye on that Beta article just in case as MX is being developed any more appear there, although at time of writing new MX web tokens are now being added to this article.
The character "Y" has been selected to denote yesterday in tag names. The inconsistency is where it appears.


When Mark Crossley brought MX out of Beta, all the web tags that were on that page were moved into this article, and it was made clear which flavours each web tag was available in (excluding Cumulus 2).
* Steve used Y as a suffix for most, not all, Cumulus 1 yesterday tags (e.g. <#rfallY>, <#windrunY>,  <#YSunshineHours>,  <#avgtempY>)
* Mark uses Y as a prefix, in most, not all, the extra Cumulus MX tags (e.g. <#Ybeaufort>, <#Ychillhours>, <#windAvgY>)


== Case sensitivity ==
=====Consistency in Cumulus 1, becomes inconsistency in MX, for this month and this year=====


The tag_name in the general format above is case sensitive, so please type the tag name exactly as shown in the web tag columns in the tables below.
The legacy tag names for this year and this month were all introduced together by Steve in one release, with consistency in how they were named then, "Month" or "Year" was used as a prefix (this was after he had started using "Y" as a prefix for his new yesterday tag names) e.g. <#YearLongestDryPeriod>.


The optional input parameters always use lower case, so please type them exactly as shown in the sections dealing with input parameters.
The development of MX however, broke this consistency, as Mark adds "Year" as a suffix, e.g. <#SunshineHoursYear>, instead of following Steve by using a prefix.


The optional output parameters are case insensitive when used in Cumulus 1. But for Cumulus 2 and later, so this includes MX, the output parameters are case sensitive and also dependent on what other output formatters are being used if any, so please read the sections on output parameters and study the examples in the tables carefully.
=====Inconsistency in use of "T"=====


==Inconsistency of web tag names==
I said above, that early versions of Cumulus only had tag names for current spot values and for today-so-far daily means/extremes/totals.  Therefore it could be assumed that <#beaufort>,  <#temp> and <#press> all represented current spot values while <#avgtemp> and <#rfall> represented today-so-far values just by looking at their names.


You will find yourself frequently having to refer to this article, if you decide to make your own Cumulus templates (see section below for more information). This applies whether those templates are for [[Customised templates|web pages]], to implement [[Xml webtags|Extensible Mark-up Language files]], or [[Php webtags|PHP Hypertext Pre-processor scripts]]. This because web tags were introduced at different times, and there was no convention as to how they were named, so there is great inconsistency in the naming, making it very easy to spell a tag_name incorrectly.
The current value tag names formed the basic part of tag names, extended for daily extremes with  "TH" and "TL" added as suffixes (to represent daily highs and daily lows), (e.g. <#tempTH>, <#tempTL> and <#pressTH>, <#pressTL>), which made a lot of sense. Adding a "T" for related times, made some sense, except that use of "T" was not done in a consistent manner (e.g. <#TpressTH>, <#Tbeaufort>, <#TtempTH>, <#YearTempHT>).


For example the character "Y" might be included in a web tag to denote '''yesterday''', or it might denote ''this year''; where the Y is indicating '''yesterday''', it is sometimes a ''prefix'', sometimes a ''suffix''!


Some web tags for '''today''' include a "T" as a suffix, some do not. "T" is also used as a suffix for the time-stamp tags.
===The functionality that can use web tags===


Some tags are all lower-case, some are camel-case, and some start with a capital letter. Have a look yourself at just how much inconsistency is present in the names in the tables below.
In the legacy Cumulus software, the only functionality that could use this was [[#Template files can create many types of file|the Cumulus template file]] used to provide data to a web server. That is why Steve Loft, the author of that software named them web tags.
MX has extended the use of these web tags, they can now be inserted into a [[MX_Administrative_Interface#MySQL_settings|SQL commands]], Custom HTTP, [[#The web tag application programming interface|application programming interface]], as well as [[#Template files can create many types of file|template files]].


In the web tag to PHP variable scripts, I have posted, see [[Php_webtags#Minimised_Upload_size]], I have tried to introduce better consistency in the PHP variable names, so "T" is added as a suffix to all "today" variables for example. Some other script authors try to match the inconsistent web tag names, so their script variable names are also inconsistent.
The output file can be:
* a [[Customised_templates#HTML_5_-_a_very_quick_guide_to_structure|web page]],
* a  [[Php_webtags#Option_3:_JavaScript_Object_Notation|JavaScript Object Notation (.json) file]]
* a [[Feels_Like#HTML_code_to_translate_web_tags_to_JavaScript_variables_.28as_modified_for_additional_parameters.29|JavaScript file]],
* a [[PHP]] script file, or
*a [[Xml_webtags|eXtensible Mark-up Language (XML)]] file.


== Optional Parameters ==
=Optional Background Reading=


=== Input modification Parameters ===
==Web tags mentioning (outside) temperature==


Most web tags do not require any input parameters. There are currently only two types of tags where an input parameter is mandatory:
'''For Oregon Scientific weather stations using, either USB connections''' (e.g. WMR-200), or serial connections (e.g. WMR-928), that can have multiple temperature sensors, it is possible to configure which sensor the outdoor temperature (for which daily and longer period extreme records are maintained) is read from, by following this set of instructions originally supplied by Steve Loft:
# Stop Cumulus in the normal way
# Use a text editor to edit the file called ''Cumulus.ini''
# Scroll down to the line that contains '''[Station]'''
# Create a blank line below it by pressing ''Return''
# In that new line, type the command shown in the relevant code box below, type the attribute and equals sign exactly as shown without spaces (regardless of your exact model),
#* USB connections &rarr; <code>WMR200TempChannel=N</code>
#* Serial connections &rarr; <code>WMR928TempChannel=N</code>
# Now edit the value shown after the equals sign, replace ''N'' with the relevant number from the following list:
#* To use the main sensor, replace N with '''0''' (or don't bother with this procedure, as that is default)
#* To use Extra Temp 1 sensor, replace N with '''1'''
#* To use Extra Temp 2 sensor, replace N with '''2'''
#* and so on, up to a possible maximum (check with your weather station, but Cumulus can accept up to 12)
# Save the file, and exit
# Restart Cumulus in the normal way


*The recent history tags where a separate one exists for [[#Recent_History|individual minutes in last week]] need input parameter specifying how many minutes ago is required. There are 3 separate input parameters that can be used alone or in combination as explained in relevant section.
*The [[#Monthly_All_Time_Records]] where a separate one exists for each particular month (of any year) need input parameter specifying which month. Again see the respective section for full details of input parameter (which is 1 for January to 12 for December, but 0 is also available with a special meaning).


=== Output modification parameters ===
'''For other weather stations''', the main outdoor temperature sensor is used for what is reported for current value, daily extremes, and longer period extreme records.  This temperature is also used for calculation of derived values such as Australian Apparent Temperature, Canadian Humidity Index, and USA Heat Index.


These are complex and therefore discussed under the major heading in [[#Output_.27format.27_Parameter|this later section]]. The options available include changing time format, changing number of decimal places, and removing decimal commas.
'''''Please check release announcements, it is planned that swaping of main Temperature sensor will become available for Ecowitt.'''''


== Cumulus Templates ==
==Input Modification Parameters and Output Modification Parameters==


=== Using web tags in templates for creating HTML pages ===
In [[#Scary_statistics]] section of this page, it is explained how less than a thousand [[#Full List of Tag Names|tag names]] (the first part of the [[#General Format for Web Tags]]) become billions of web tags, simply by adding modifiers.


*You can create a template file that has a structure of HTML elements with Cumulus web tags to represent the information you want included.
The modifiers available used to be listed on this page (so if you select the history tab for this page, you will find references to their introduction and growth), but are now on a new [[Webtags/Parameters|web tag parameters]] page.  Here are some of the advantages achieved by moving them to the new page:
*If you   [[Customised_templates#What_to_select_on_the_.27Files.27_tab_of_the_Internet_Settings_screen_within_the_.27Configuration.27_menu|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.
* This page is very long, so it is not easy to navigate this page, even without the parameters
*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).
* There would be a lot of repetition if you attempted to say beside each tag name which modification parameters were available.
* Having them on separate pages means you can have two tabs (or two separate browsers) open so you can see both the tag name and the modifier parameter by flicking between tabs, instead of lots of scrolling between different parts of same page.
* The introduction of [[WebsitedataT.json]], which controls what data is available to tables in the web pages provided by MX, means that page, rather than this page is the entry point for MX, and it is easier for that page to reference a separate parameters page
* MX has introduced many more input and output modification parameters, it is easier to maintain a separate page (and easier for reference if you just want to refresh your mind on new modification parameters).


=== Using web tags in scripts ===


*You can also use the tags within script, this might be a PHP script, or JavaScript either embedded in HTML, or in external files, to transfer the values represented by the tags to the server for further processing.
For just a taste, there you can discover:
*As JavaScript can not understand a real number that has the integer and decimal parts separated by a comma, but your computer may be set to use that representation in standard tags, there are special versions of many tags to use in script - see [[#No_Commas|tags with commas removed]] section.
* A score of [[Webtags/Parameters#Input_modification_Parameters|input modification parameters]]
*Note that if a PHP or JavaScript file contains any Cumulus web tags then you must [[Customised_templates#What_to_select_on_the_.27Files.27_tab_of_the_Internet_Settings_screen_within_the_.27Configuration.27_menu|ask Cumulus to process]] the script file.
** For  example, find which attribute is used with a value between 1 and 12, so the same tag name can give values for 12 different months)
*JavaScript processing code can be embedded in a template that is already being processed into HTML. (This technique has been used  in the standard 'monthlyrecordT.htm' template).
* If your locale normally (in real numbers) uses an integer part, then a comma, and then the decimal part, you should be aware that some computer scripts, and some external servers where you might want to send data, insist on a decimal point, instead of a decimal comma:
*Alternatively embed a bit of JavaScript assignment code in HTML, that is already been processed, to convert the tags to a collection of string variables and use those variable names in any external script called from the HTML file. (This technique has been used in the standard 'gaugesT.htm' template).
** If you have installed a recent MX release, then [[Webtags/Parameters#Output_Modification_Parameter_for_changing_any_decimal_comma_into_a_decimal_point|change decimal comma to decimal point]] with a simple "y" value to another attribute
*To use the value from a tag as an integer in JavaScript assigning code you need to use a  
** If you have the legacy Cumulus 1 installed, stay on this page and look at [[#No_Commas]], as you have to use the restricted alternative set of tag names.
<pre>integer_variable_name=parseInt(string_variable_name,10)</pre> type conversion
* How to [[Webtags/Parameters#Two_Output_.28format_modifier.29_parameters_for_decimal_places|control number of decimal places]] in any real number output
*To use a value from a tag as a floating point number in JavaScript you need to use <pre>parseFloat(string_variable_name)</pre> otherwise you will find any attempt to add something to it results in a concatenation because JavaScript uses "+" for two purposes and concatenation takes precedence over arithmetic adding!
* All about the complex subject of modifying the way a '''duration''', a ''date'', or a '''clock time''' is output by looking at [[Webtags/Parameters#Multiple_Output_Format_Modifier_parameters_for_times_and_dates|Multiple_Output_Format_Modifier_parameters_for_times_and_dates]]
*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 frequently used in scripts where the web tag being used is not available in all versions of Cumulus, because Cumulus does not implement the concept of null values and often zero is used when a true value is not available because that sensor is not installed for example. 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, adding zero does not prevent the true value of that web tag being assigned to the variable.


== Web Tag Differences Between Cumulus 1 and MX builds ==
== Why does MX talk about tokens? ==
{{Version badge 1}}
This badge is used when the web tags listed in one of the tables are available in the final 1.9.4 release of Cumulus 1, but not in MX.  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.


[[File:Badge vMx.png]]
MX uses a [[Cs_Code_Modules#TokenParser.cs|'''token parser''']] to read the web tags and replace them with the correct value, so if diagnostic output refers to tokens, it is saying the attempt to actually work out what content to return to replace the web tag with its tag name and parameters has encountered a problem.
Cumulus MX provides many, but not all web tags that were available in Cumulus 1. MX adds many more web tags, mostly in support of new weather stations or new sensors. This badge is used against web tags listed in one of the tables that are only available in MX. See [[#GENERAL_TIP|tip]] at top of page for how to check which web tags are available in your build.  


A combination of badges appears where certain aspects apply to Cumulus 1 or to MX. No information is given for Cumulus 2 as it is no longer available.
==Scary statistics==


When MX is processing web tags 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, notice the actual web tag is labelled "token":
# The 3.5.0 release of MX defines 9½ million values that can be represented using '''web tags'''!
<pre>Web tag error
# At 3.5.0, there are only 717 options for the '''tag_name''' in the general format given above.
Exception: i=8998 len=106297
# How come this discrepancy?
inputText.Length=106297
# That discrepancy is purely because some of those 717 tag names can be associated with input parameters, (and for Oregon Scientific stations,you can select which sensor is used for outside temperature), these modifications affect what value is selected to be output by the web tag leading to the large number
token=<#daylightlength format=H></pre>
# These millions of web tags can actually produce billions of different outputs!
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 web tag to:
# How come this second discrepancy?
<pre><#daylightlength format=%H></pre>
# Well adding all possible different output parameters generates the billions of different ways to output the millions of values!
The statistics quoted above keep increasing as MX is developed, the last time I checked, there were another forty or so tag names, and lots more parameters, so the alternatives are probably well over ten billion now.


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.
== Brief history of this page==


=Output 'format' Parameter=
This page was created in August 2009, to list the tags for the (legacy) Cumulus 1 software.  Initially, there were going to be further pages to explain individual web tags, e.g. [[Forecast_webtag]]; but that idea was never completed. 


The majority, but not all, of web tags either can use an output format parameter or, in a few cases, really do need an output format parameter.
When MX came out of beta (3.0.0), it has been developing rapidly, as the statistics above suggest, the number of web tag names and input/output modification parameters, to document became too much for one Wiki page, hence the moving of all documentation about modification parameters to a sub-page.  There are still a lot of web tag names to document on this page, and separation into a number of pages was considered, but it is easier to have just one page to refer in answers to questions raised in the forum.


== Output Parameter Differences between Cumulus 1 and Cumulus MX (Cumulus 3) ==
==Still got questions?==


There are a number of differences between Cumulus 1 (C1) and Cumulus MX (MX). These nearly all involve times and dates, so the next section deals with this.
Full support is available via the support forum at https://cumulus.hosiene.co.uk/viewforum.php?f=40 for the latest MX release. Given that some users may still be running an older MX release, where possible any web tag listed below for MX indicates at which release it first became available.


There is limited support available for Cumulus 1.9.4, but on this page every attempt is made to indicate which version of the legacy software introduced any web tag listed below.


=== Output (format modifier) parameters for times and dates ===
==The web tag application programming interface==


Time/Date format codes are used in two places:
[[File:Badge vMx.png]] Available from version 3.7.0 (build 3089) released 28 July 2020. It was proposed in January 2015, see Steve Loft [https://cumulus.hosiene.co.uk/viewtopic.php?p=101496#p101496 plan to add a call where you supply a list of items (probably web tag names), and you get back the equivalent data].
# 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.
=== Where to use===


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):
This is meant for services either on the same computer as Cumulus or on your local network. It is not secure, and should not be available, nor requested, via any external network or the internet.
*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.


C1 can work with times in 14.24 format using a full stop ('.') to separate the figures, MX must have colon (':') between hour and minute numbers. But with both flavours you can choose whether 12-hour clock is used with am/pm (in lowercase or capitals) or the 24-hour clock is used. You can choose to include/exclude leading zero for hours. You can only report the hour if you don't care about the minutes, or only report the minutes if you don't need the hour. In most cases you can add seconds to the output, and either milliseconds or microseconds. This does not imply that Cumulus calculates everything every microsecond, in fact many are only calculated once a minute, but the flexibility is there for time outputs.
The [[Cumulus_MX_Local_API|MX Administrative Interface]] uses some application programming interface (api) calls to obtain the data each web page in that interface needs, and if you are making an edit, another api to return the results of any edit made.  


Some web tags contain dates, or both dates and times, and for these there is flexibility (apart from those with fixed format, these might have ISO, or another format indicator, in their tag name) as to how the date is output. Thus you can choose to include or exclude the year; you can represent month in letters or numbers, and you can vary the order in which elements of the date are shown.
If you wanted your '''CumulusMX/interface/todayyest.html''' web page to include something else (e.g. snow falling/lying/depth) you could edit that HTML page to have the extra sub-table you want (you cannot edit the existing rainfall table as that is dynamically created by existing api). Then you could edit the associated JavaScript file '''CumulusMX/interface/js/todayyest.js''' to add a new api call seeking snowdepth, snowfalling, snowlying tags for today (unfortunately there are no tags for yesterday's snow) and to place the returned values into your new sub-table (probably using jQuery to make it easy). In a similar way, you could add anything where today and yesterday tags are available such as UV Index.


The characters used to represent year, month, day, hour, minute, second, microsecond, do 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.
In earlier versions of Cumulus if you wanted to make use of values processed by Cumulus, you wrote a script file referencing the web tags you wanted to use, and let Cumulus process that file at an interval set in the settings, then you had to write something to process the results at the relevant interval. Now if you are running other software on your device that runs MX (or a computer or other device linked directly on your personal network), you can request web tags values on demand via an application programming interface ('''api''' hereafter) and don't need to worry about any timing issues.  


==== Explanation ====
Obviously each api request creates a processing overhead on Cumulus so use this feature wisely (minimise the information you request and minimise the frequency of requesting it). You can use it for extra current information, but in that usage you might need to repeat the call. Consequently, maybe it is more likely that the api will be used to request information that does not keep changing, such as what units are being used for temperature, rainfall, and wind speed; or perhaps daily, monthly, or yearly, summary figures.


*Cumulus MX (when running on Windows) uses the '''.NET''' software.
Each admin interface web page uses api techniques for all the information it needs. Some api calls are repeated with AJAX requesting updates for the weather information on a frequent basis, but each page has another api request that is issued just once for the version and build being used.  To my mind, the design of '''CumulusMX/interface/todayyest.html''' is crazy. The HTML appears to have a table structure, but that table structure is overwritten by each repeating api. So every time AJAX repeats that api call it returns in json format the whole table definition as well as table cell contents, despite that much of that json (all that HTML defining table header, table rows, table cells, etc.; and the units for each value) does not change and it is only some values and times buried within the json in the api that actually might change (and of those half of them, the yesterday values and times only change once a day). In some code I wrote (but later abandoned) I made use of the api calls that support the '''CumulusMX/interface/todayyest.html''' web page to get the units I wanted on another interface page, but I only called it once as it returned a lot of other information (as just mentioned) that I did not need. I later found a better way, as in example below, which gives me just what I need and no more.
*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). Please see the [[Cumulus MX]] article for more details of their differences and what will change in November 2020.
*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 [http://msdn.microsoft.com/en-us/library/8kb3ddd4(v=vs.110).aspx this Microsoft site] for format selectors available.
*The differences come about because Delphi is case-insensitive, while .NET and MONO are case sensitive.  Consequently, .NET (and MONO) can use upper and lower case for different items, but Delphi has to use different letters, ignoring case, for each item.


==== When it causes problems ====
=== "GET" approach ===


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 [[Webtags#The_format_used_for_naming|NOAA report naming]].  
You may have used GET as an attribute when defining the action of a HTML form.  Equally you might in a script language access the query-string part of a Universal Resource Locator to get parameters for what the script is to supply to the web page.  Even if you don't understand the meaning of those technical terms, you probably have seen when using a browser (in the box where a URL is entered) that sometimes the URL seen there has a query-string. You will have seen a question mark (?) followed by one or [separated by ampersand (&)] more '''name=value''' parameters.
Full List of Tag Names
The GET approach to using the Cumulus general api works in this way indicating the start of a query-string with a question mark and using ampersands to separate names. The difference is that a tag name (or list of tag names) is used instead of a name=value parameter (or list of name=value parameters).  However, when the Cumulus api returns the values they will be in attribute=value format. Therefore if (like example below) you are coding in JavaScript, what is returned is a JavaScript Object and you extract the values by specifying the Object name and the Attribute name. If that technical terminology confuses you, look at the example.


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.
====Selecting values using GET====


'''Confused even more now?''' I'm not surprised, but maybe some examples will help before we actually list the available modifiers.
Suppose you want to get the values for the following three web tags:
# <#RCtemp>
# <#RChum>
# <#RCdew>
Then the URL with query-string to use is '''http: //localhost:8998/api/tags/process.json?rc&temp&hum&dew'''


==== Examples ====
Obviously, if you have started MX with a port parameter like this:
<pre>sudo mono CumulusMX.exe -port 9999</pre>
then you change the 8998 port shown in the URL for the api to use the port you have selected e.g. '''http: //localhost:9999/api/tags/process.json?rc&temp&hum&dew'''


*Examples related to case selection
*#[[File:badge v1.png]] In Delphi, "nn" means "minutes" for Cumulus 1, [[File:Badge vMx.png]]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.
*[[File:Badge vMx.png]]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.
The first parameter is '''rc''' to indicate that the tags that follow are to use decimal points not decimal commas, which is how many script languages expect to see values.
Remember that in current version (and some earlier versions) of MX, the above three web tags are exactly same as:
# <#temp rc=y>
# <#hum rc=y>
# <#dew rc=y>


So let us compare these two alternative ways that MONO and .NET  escape any characters that are not being used as format specifiers.
Since '''rc=y''' can be applied to several web tags that don't appear in [[Webtags#No_Commas]] table, this shows how the api can access values without commas for all those web tags that report in real numbers and allow that output modifier.
* In [[File:badge v1.png]]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 [[File:Badge vMx.png]].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.


=== List of allowed modifiers for output format parameters ===
If you are using the api in a context where it does not matter if decimal commas or decimal points are in the api or for any tags that don't report in real numbers, simply omit the '''rc''' as first item, and just include tag names separated by ampersands.
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).


[[File:Badge vMx.png]]Remember that most single character format specifiers have a different meaning to when the same letter appears in a multi-character format.
==== JavaScript example ====


Some people might feel the admin interface could be improved on some of its pages by showing additional information. It is possible from MX 3.7.0 to obtain extra information. 


==== Forum reference ====
I wanted to improve the log file editing pages, and that was partly by adding validation, and partly by changing the way the editing is done.  For the standard log file editor I wanted to achieve even more, I added a script to calculate (and recalculate after any edit) the derived fields from the source fields.  To make these calculations work for anyone, I needed to find out what units the Cumulus MX user is using. Before 3.7.0 release the snippet of script that obtained the units via various api calls was quite complex (I described above how the api returned lots of unwanted content), but with 3.7.0 my new api call was greatly simplified to what I show below. Please note my revised log file editing scripts did not make it into a public release, and it is only the units obtaining api that I am making available to public here.


For official full details see [https://cumulus.hosiene.co.uk/viewtopic.php?f=39&t=17888 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).
Here is the code (with the api call written using jQuery):
<pre>/*    Some new variables connected with new api call (MX 3.7.0)  */
var tempLetter;  // C or F
var rainUnit; // mm or in
var windUnit; // any units in style allowed by Cumulus
/*  The one extra api request included to obtain the units used for temperature, rainfall, and wind speed */
$.get('./api/tags/process.json?tempunitnodeg&rainunit&windunit', "limit=1", callUnits);
function callUnits(unitsObject)
{
tempLetter = unitsObject.tempunitnodeg;
rainUnit = unitsObject.rainunit;
windUnit = unitsObject.windunit;
console.log("new api", tempLetter, rainUnit,windUnit);
}</pre>
A little bit of explanation might help:
*JavaScript variables generally need to be declared first, I have used 3 separate line each starting with '''var''', but you can list several variables on one line using a comma to separate them
*In my script it is important to define these variables outside the function as I will explain later
*The jQuery get request takes the api URL as first parameter and the function to deal with the returned result as third parameter
*The middle parameter is irrelevant in this context as only one object instance is returned, but if the qet was returning multiple results, "limit=1" would only return the first result
*The function takes as its sole parameter an Object (a JavaScript Object is a collection of properties), this is what is returned by the api, an object can be given any variable name
*In JavaScript if a variable is defined outside the function, then given a value inside the function, that value can be accessed by later code outside the function (in my case by code within the other functions for calculating each derived value)
*We are only interested in 3 of the '''property_name = property_value''' items in the Object.
*The JavaScript '''refinement''' syntax (starts with a dot) can be used to find the value for any parameter we name. We assign the variable already defined to the object and its refinement (that specifies the attribute we want).
*The console.log command simply outputs all the items in the list within the brackets into the browser console that in many browsers is displayed by selecting '''F12''' on the keyboard. I included this instead of the lengthy rest of my code that uses the units to do the various calculations correctly.


==== My Revised Table of Time and Date Output Modifiers ====
=== "POST" approach ===


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 word "Post" in a computer environment means that the Hypertext Transfer Protocol (HTTP) used by the internet is being asked to transfer information enclosed in the body of the request message. Put slightly less technically in this approach you produce a text file with the details of what tags you want and send it to the api server. I suppose it is a bit like sending an email, its header (subject, author, date sent) is easy to view, but you need to open it to see what text is in the body.
{| class="wikitable" border="1"
 
|-
You may have used POST as an attribute when defining the action of a HTML form. In that context the form is sent as the contents of a message to whatever web page is going to process the contents of that form.  
!style="width:150px" | {{Version badge 1}}Delphi Specifier for Cumulus 1.9.x
 
!style="width:150px" | [[File:Badge vMx.png]]Mono/.NET Specifier for Cumulus MX
The post approach has a few advantages over get:
!style="width:600px" | Displays
*The parameters are not shown in any query-string, so are not obvious to the person looking over your shoulder, nor do they appear in a history list of sites that the browser has visited.
!style="width:600px" | Example
*If you fill out a form online, the post approach will be used as the content needs to be kept secure.  
|-
**The get approach may be seen when you are navigating through a web site, and a selection is being remembered.
|c
*The POST approach can handle very long requests and return a lot of information.  
|G
**In contrast, a URL with query-string is restricted in total length (the restriction is dependent on a number of other factors, but might be at something like 1000 characters in total), so GET comes with a restriction on how many parameters can be specified.
|Displays the date using the format given by the Short Date format, followed by the time using the format given by the Long Time format. The time is not displayed in Cumulus 1 if the date-time value indicates midnight precisely.
|'22/03/2019 09:47:25' produced by {{Version badge 1}}<#time format=c>[[File:Badge vMx.png]]<#time format=G>
|-
|d
|%d
|Displays the day as a number without a leading zero (1-31). [[File:Badge vMx.png]]Note that Cumulus MX requires a ' ' (space), '%' or other modifier to be included, as 'd' on its own returns full 'short date').
|27 produced by {{Version badge 1}}<#metdate format="d">[[File:Badge vMx.png]]<#metdate format="%d">
|-
|dd
|dd
|Displays the day as a number with a leading zero (01-31).
|07 produced by <#metdate format="dd">
|-
|ddd
|ddd
|Displays the day as an abbreviation (Sun-Sat) using the strings appropriate to the Locale.
|'Wed' produced by <#metdate format="ddd"> (English locale)
|-
|dddd
|dddd
|Displays the day as a full name (Sunday-Saturday) using the strings appropriate to the Locale.
|'Friday' produced by <#metdate format="dddd"> (English locale)
|-
|ddddd
|d (as single character format)
|Displays the date using the format given by the Short Date format.
|e.g. '22/03/2019' (British Locale)
|-
|dddddd
|D
|Displays the date using the format given by the Long Date format.
|e.g. '22 March 2020' (British Locale)
|-
|M (or ''m'')
|%M
|Displays the month as a number without a leading zero (1-12).
*{{Version badge 1}}Cumulus 1.x.y:If the 'M' or 'm' specifier immediately follows an h, hh, HH, or H specifier, the minute rather than the month is displayed.
*[[File:Badge vMx.png]]Cumulus MX: Note that including a ' ' (space) or '%' before the M makes it a custom modifier e.g. '7' is returned for July as any initial zero is suppressed. ('M' on its own returns both Month and Day according to local format e.g. 22 July).
|2
|-
|MM (or ''mm'')
|MM
|Displays the month as a number with a leading zero (01-12).
*{{Version badge 1}}Cumulus 1.x.y:If the 'm' or 'M' specifier immediately follows an h, H, HH, or hh specifier, the minute rather than the month is displayed.
|'03' produced by <#LastDataReadT format=MM>
|-
|MMM (or ''mmm'')
|MMM
|Displays the month as an abbreviation (Jan-Dec) using the strings appropriate to the Locale.produced by <#metdate format="MM">
|'Jun' produced by <#metdate format="MMM"> (English locale)
|-
|MMMM (or ''mmmm'')
|MMMM
|Displays the month as a full name (January-December) using the strings appropriate to the Locale.
|'June' produced by <#metdate format="MMMM"> (English locale)
|-
|yy
|yy
|Displays the year as a two-digit number (00-99).
|19 produced by <#LastDataReadT format=yy>
|-
|yyyy
|yyyy
|Displays the year as a four-digit number (0000-9999).
|2019 produced by <#LastDataReadT format=yyyy>
|-
|h [''AM/PM'']
|h [''tt'']
|Displays the hour (12 hour clock) without a leading zero (1-12) [optionally in combination with AM/PM]. What "tt" produces depends on locale settings for your device, it might be capitals or it might be lower case (in Windows use Control Panel, not Settings app, to get to these regional additional settings).
{{Version badge 1}}For Cumulus 1 the formats for am/pm depend on the case in which you type the parameter as shown later in this table
|-
|h:mm (or ''h:nn'') [''AM/PM'']
|h:mm [''tt'']
|Displays the hour (12 hour clock) without a leading zero (1-12) followed by 2 digit minutes [optionally in combination with AM/PM whose case varies as explained in previous entry].
{{Version badge 1}}For Cumulus 1, the minutes can be represented by 'mm' only when appearing in combination with 'h'
|'10:27 am' produced by {{Version badge 1}} <#LastDataReadT format="h:nn am/pm">[[File:Badge vMx.png]] <#LastDataReadT format="h:mm tt">
|-
|H (or ''H'')
|%H
|Displays the hour using 24 hour clock without a leading zero (0-23). [[File:Badge vMx.png]]Note that % is only needed when H is on its own.
|7 produced by {{Version badge 1}}<#daylength format=H>
[[File:Badge vMx.png]]<#daylength format=%H>
|-
|H:mm (or ''H:nn'')
|H:mm
|Displays the hour using 24 hour clock without a leading zero (0-23) followed by 2 digit minutes. [[File:Badge vMx.png]]Note that % is not needed when H is not on its own.
|'7:27' produced by <#LastDataReadT format="H:mm">
|-
|HH (or ''hh'')
|HH
|Displays the hour using 24 hour clock with a leading zero (00-23).
|'06' or 19 produced by <#LastDataReadT format=HH>
|-
|hh (''am/pm'')
|hh [''tt'']
|Displays the hour (12 hour clock) with a leading zero (01-12) [optionally in combination with am/pm].
{{Version badge 1}}For Cumulus 1 the case output for the optional 'am/pm' depends on the case used for that parameter as shown later in this table
[[File:Badge vMx.png]] For MX, the optional 'tt' displays the contents of the device locale setting for AM string for midnight until any hour before noon, and the contents of the PM string for noon or any hour after noon before midnight
|'07 am' produced by {{Version badge 1}} <#LastDataReadT format="hh am/pm">[[File:Badge vMx.png]] <#LastDataReadT format="hh tt">
|-
|hh:mm (or ''hh:nn'') [''am/pm'']
|hh:mm [''tt'']
|Displays the hour (12 hour clock) with a leading zero (01-12) followed by 2 digit minutes [optionally in combination with am/pm].
{{Version badge 1}}For Cumulus 1, the minutes can be represented by 'mm' only when in combination with 'h', in other contexts 'mm' is interpreted as month number, and the case output for am/pm depends on the case used for that parameter as shown later in this table
[[File:Badge vMx.png]] For MX, the optional 'tt' displays the contents of the device locale setting for AM string for midnight until any hour before noon, and the contents of the PM string for noon or any hour after noon before midnight
|'8:27 am' produced by {{Version badge 1}} <#LastDataReadT format="h:nn am/pm">[[File:Badge vMx.png]] <#LastDataReadT format="h:mm tt">
|-
|n
|m
|Displays the minute without a leading zero (0-59).
|7 produced by {{Version badge 1}}<#daylength format=n>[[File:Badge vMx.png]]<#daylength format=m>
|-
|nn
|mm
|Displays the minute with a leading zero (00-59).  
|'07' produced by {{Version badge 1}}<#daylength format=nn>[[File:Badge vMx.png]]<#daylength format=mm>
|-
|s
|s
|Displays the second without a leading zero (0-59).
|-
|ss
|ss
|Displays the second with a leading zero (00-59).
|'06' or 19 produced by <#LastDataReadT format=ss>
|-
|z
|FFF
|Displays the millisecond without a leading zero (Cumulus 1:0-999, Cumulus MX: nothing, or 1-999). Note that the system clock in some versions of Windows only has precision to 15 ms.
|
|-
|(not available)
|ff (or ''f'')
|Displays hundredths of a second (or tenths) with leading zero(s)
|
|-
|zzz
|fff
|Displays the millisecond with a leading zero (000-999). Note that the system clock in some versions of Windows only has precision to 15 ms, so requesting thousandths of a second may not return anything useful. The 'fff' modifier can actually be extended to 'ffffff' for a millionth of a second!
|
|-
|t
|t
|Displays the time using the Short Time format.  [[File:Badge vMx.png]]Remember that 't' combined with other specifiers (or preceded by space or '%') has a different meaning - see below.
| '09:47' produced by <#LastDataReadT format=t> (might not use colon in your locale) for both flavours of Cumulus
|-
|TT
|T
|Displays the time using the Long Time format.
|'09:47:56'  (might not use colon in your locale) produced by {{Version badge 1}}<#LastDataReadT format=TT> [[File:Badge vMx.png]]<#LastDataReadT format=T>
|-
|am/pm or Am/Pm or AM/PM
|tt
|{{Version badge 1}}Uses the 12-hour clock for the preceding h or H specifier, and displays 'am' for any hour from midnight until just before noon, and 'pm' for any hour from noon onwards. The am/pm specifier for Cumulus 1 can use lower, upper, or mixed case, and the result is displayed accordingly.


[[File:Badge vMx.png]] For MX, 'tt' displays the contents of the device locale setting for AM string for midnight until any hour before noon, and the contents of the PM string for noon or any hour after noon before midnight
See https://cumulus.hosiene.co.uk/viewtopic.php?p=145050#p145050 for post example
| {Version badge 1}} 'am' produced by <#LastDataReadT format=am/pm>, 'AM' produced by <#LastDataReadT format=AM/PM>
<br>
|-
|a/p
|t
|Uses the 12-hour clock for the preceding h or H specifier, and displays 'a' for any hour from midnight until before noon, and 'p' for noon or any hour after noon.
{{Version badge 1} The a/p specifier can use lower, upper, or mixed case, and the result is displayed accordingly.
[[File:Badge vMx.png]]Remember that 't' has to be combined with other specifiers (or preceded by space or '%') to display 'a' or 'p' as if it is alone it has a different (short format time) meaning - see above.
| see previous example
|-
|ampm
|(see above for 12 hour formats)
|This displays the contents of the device locale setting for AM string for midnight until any hour before noon, and the contents of the PM string for noon or any hour after noon before midnight.
{{Version badge 1}Uses the 12-hour clock for the preceding h or H specifier
| see previous examples
|-
|/
|/
|Displays the date separator character given by the Date Separator. It might not display a slash.
| '/' for British locale
|-
|:
|:
|Displays the time separator character given by the Time Separator. It might not display a colon.
|':' for British locale
|-
|'xy'
|'xy' or ''\x\y''
|Characters enclosed in single quotation marks are displayed as such, and do not affect formatting. In MX each character to be displayed as it was typed can be prefixed by a backslash.
|Hyphens are added in this PHP language example  '<#LastDataReadT format=yyyy>'.'-'.'<#LastDataReadT format=MM>'.'-'.'<#LastDataReadT format="dd">'
|}


==== Using HTML tags within format parameters (available in MX only) ====
<br>


'''Example using a class to change the look of part of the output'''
=<big>Full List of Tag Names</big> =
{{Template:WorkInProgressBanner}}


<pre><#TapptempH format="dd'&nbsp;'MMM'&nbsp;'yyyy'<span class=\'xx\'> at 'HH:mm'</span>'"></pre>
This list only contains the tag_names, don't forget tag_names are only part of the [[#General Format for Web Tags]], for example in a template file you precede the tag name with &lt;, you may need input parameters, you may need output parameters, and you end the full web tag with &gt;.
the output from this will look like ''04&nbsp;Dec&nbsp;2018<span class='xx'> at 10:12</span>''


'''Note where the quotes are, and where you need to use '\' escape characters'''.
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.


'''Example using HTML tags'''
Here follow tables that group the tag names by the basic purpose of the tags listed. There has been confusion in the past of tags appearing in more than one group, can contributors remove any remaining duplication, so future maintenance is easier.


<pre><#RecentTS d=2 format="h:mm'&nbsp;'tt'<small>on' d/M/yyyy'</small>'"></pre>
There is a table of contents near the top of the page that you might find useful if you are interested in a particular tag group.
This puts the date in a smaller font than the time


=== Output (format modifier) parameters for decimal places ===
==Current Conditions==


We start with tags that relate to the latest values, as these are the ones that people most often choose to use. The current condition data is also available, for processes external to Cumulus, by using the inbuilt facility to generate [[Realtime.txt|a file]] with such data.


Cumulus 1 allows use of <tt>dp=n</tt> 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.
Cumulus software makes current values available for a standard range of sensors where the same web tags apply across a range of weather station models.
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"


*<tt>dp=i</tt> 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>).
Both Cumulus 1 and MX offer current values from some [[#Extra Sensors|extra]] temperature and relative humidity sensors (see [[Extra temperatures]]) from particular weather station models.
*<tt>tc=y</tt> is a new parameter only in MX, the attribute '''tc''' takes the value 'y' to remove decimal places by truncation instead of using <tt>dp=0</tt> 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 ===
Recently, MX has been developed to support further extra sensors (see [[Extra Sensor Files]] page for full list of fields) and web tags have been added to support equivalent current values only.


"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 <tt><#tag_name rc=y></tt> 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.
==== Feels Like ====


Feels like temperature was first made available, just for current conditions at MX version 3.5.4.  In version 3.6.0. it was extended to add max/min for each day, each month, each year, and all time. In version 3.6.11 it was added to recent history.


Why would you want to remove decimal commas?  Well because the JavaScript language cannot understand decimal commas, and MX has several scripts written in this language, equally some third party alternative web pages rely on ajax to update them (and Ajax uses JavaScript).


== Additional text in output format parameters ==
The figures quoted for this derivative vary between versions:
* The first formula was used from MX version 3.5.4 (25 Apr 2020) build 3075 until version 3.6.7 (4 June 2020) build 3083
* The second formula, which was coded incorrectly, and so gave strange results, applied in versions 3.6.8 to 3.6.9 (build 3084, 3085)
* The third, and hopefully final, formula applies from version 3.6.10 (build 3086).


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:
A php script for adding feels like as calculated in version 3.6.10 to any standard log line created either without feels like, or with an older (now incorrect) calculation, can be downloaded from [https://cumulus.hosiene.co.uk/viewtopic.php?f=18&t=18096 Create Missing topic on support forum]. Obviously, this calculates from the small sub-set of current conditions that have been logged, and is not as accurate at deriving maximum and minimum as derivation made as each reading is processed by MX (so including all current conditions).


#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">.
The [[Calculate_Missing_Values#CreateMissing.exe| Create Missing utility]] will not correct the older (incorrectly calculated) figures, but will add Feels Like temperature values to any standard log line created by Cumulus 1, by MX prior to release 3.5.4, or if you have imported lines into the log from an external source.
#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.<br>  Example of valid syntax: <#TapptempH format="'at 'h:nn'&nbsp;'am/pm '&lt;small&gt;on' d/m/yyyy'&lt;/small&gt;'">.


{{Version badge 1}}'''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 [[Php_webtags#Web_tag_Complications| here for work-around]]).
===Standard sensors===


[[File:Badge vMx.png]]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" i.e. "\t" becomes a tab!
The web tags shown here are mainly determined by which appeared on the original "Now" legacy web page (index.htm).


Consequently, the totals for 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; although you might expect to find them listed in tables for this month and this year, those web pages do not show these derivatives.
Those listed here cover both measurements obtained from a weather station (like air temperature, wind speed and direction, humidity and barometric pressure); and all the derived values (like humidex, feels like, apparent temperature, wind chill, and heat index).


 
Note however, that the derived values calculated for Cumulus 1 and for MX may not agree because of differences in the calculation formulae, see derived value section within Recent History tags section for examples.
=The Web Tags for Cumulus =
 
These are available in both Cumulus 1 and MX unless indicated by a version 1 or MX badge.
 
Here follow tables indicating what web tags/tokens can be used, tables group the web tags available by the basic purpose of the tags listed.
 
== System ==
 
Special tags returning information about the Windows device hosting Cumulus 1. ''If you are running MX, then most tags do not work.
''
 
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:150px" |Web tag_name
!style="width:150px" | Web tag_name
!style="width:600px" |Function
!style="width:600px" | Function  
|-
|-
|<#OsVersion>
|colspan="2" style="background:lightgray;"|Temperature
|OS version, e.g. "Windows 7 x64 build 7600"
|-
|-
|<#OsLanguage>
|<#temp>
|OS language, e.g. "English"
|The outside (air) temperature
 
For Oregon Scientific models like WMR-200 with USB connection or models like WMR-928 with serial connections, please refer to [[#Web tags mentioning (outside) temperature]] because any of the [[#Extra Sensors: Davis models and Oregon Scientific WMR928, WR100/200|extra sensors]] can be reported in '''<#temp>''', and consequently also have web tags reporting daily extremes and longer period extreme records.
|-
|-
|<#SystemUpTime>
|<#intemp>
|{{Version badge 1}}How long the system has been up, e.g. "8 hours 21 minutes" (not available on MX)
|The inside temperature
|-
|<#TempChangeLastHour>
|The change in outside temperature over the last hour (not available in early versions of Cumulus  1, when this was announced, a temperature change over 24 hours was also proposed, but never implemented)
|-
|-
|<#ProgramUpTime>
|<#temptrend>
|How long Cumulus has been running, e.g. "7 hours 55 minutes"
|The average rate of change in temperature over the last three hours. Trend = (temp_now - temp_3hrs_ago) / 3 (available in all releases, the calculation selected for this trend matches the standard-based calculation for <#presstrendval> despite the naming inconsistency)
|-
|-
|<#CpuName>
|<#temptrendtext>
|{{Version badge 1}}CPU type, e.g. "Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz" (not available on MX)
|Temperature change over the last three hours - Rising/Falling/Steady (values can be set in strings.ini)
|-
|-
|<#CpuCount>
|<#temptrendenglish>
|Number of processors, e.g. "4"
|Temperature change over the last three hours - Rising/Falling/Steady (for use by [[Webtags_as_boolean_operators_in_HTML|HTML]], [[Editing_content_of_a_webpage_using_either_HTML_or_Script|javascript]] etc, values can't be changed). From version 1.8.8 1st December 2009
|-
|-
|<#MemoryStatus>
|<#heatindex>
|{{Version badge 1}}Free and total system RAM, e.g. "4619/8191 MB (free/total)" (not available on MX)
|Current [[heat index]]. The referenced page in weather terminology section of this Wiki explains it.
|-
|-
|<#DisplayMode>
|<#humidex>
|{{Version badge 1}}Screen display mode, e.g. "1680x1050, 32 bit" (not available on MX)
|Current [http://en.wikipedia.org/wiki/Humidex Humidex]
|-
|-
|<#AllocatedMemory>
|<#apptemp>
|{{Version badge 1}}Amount of memory allocated to Cumulus, e.g. "18.76 MB" (not available on MX)
|The [[Apparent_temperature|apparent]] temperature.  The referenced page in weather terminology section of this Wiki explains it. The formula used is that defined by BOM. Although at temperatures above 20°C (68°F) Feels like reports an "apparent temperature" it uses a different formula.  
|-
|-
|<#DiskSize>
|<#wchill>
|{{Version badge 1}}Size of disk on which Cumulus is running, e.g. "931.51 GB" (not available on MX)
|The current [[wind chill]] temperature.  The referenced page in weather terminology section of this Wiki explains it. For temperatures below 10°C (50°F) Feels like reports the same value.
|-
|-
|<#DiskFree>
|<#feelslike>
|{{Version badge 1}}Free space on disk on which Cumulus is running, e.g. "515.36 GB" (not available on MX)
|[[File:Badge v1.png]] Not available in Cumulus 1.
|}


== Miscellaneous ==
[[File:Badge vMx.png]]Not available in all MX versions. Please see [[#Feels_Like|sub-section before this table]] regarding availability by MX versions if you are using a MX version earlier than 3.6.10.


All tags are available in all flavours, as far as I know, although their output might vary, and which input/output parameters they permit might vary between Cumulus 1 and MX.
The current [[Feels_Like|Feels Like]] temperature.  The referenced page in weather terminology section of this Wiki explains it.
 
{| class="wikitable" border="1"
|-
|-
!style="width:150px" |Web tag_name
|<#IsFreezing>
!style="width:900px" | Function
|If outside temperature is at or below 0°C/32°F. 0=Above freezing, 1=Below freezing
|-
|-
|<#LatestError>
|<#chillhours>
|Displays the last error from the Cumulus 1 error log. (The value is cleared when you click the error light in Cumulus 1).<br />
|The number of [[Heat/cold_degree_days_and_Chill_hours#Chill_Hours_and.2For_Air_Frost|'chill hours']] so far this season (threshold temperature and start date are configurable).
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>
|colspan="2" style="background:lightgray;"|Humidity
|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>
|<#hum>
|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
|The outside [http://en.wikipedia.org/wiki/Humidity humidity]
|-
|-
|<#ErrorLight>
|<#inhum>
|1 if the 'error' light is flashing, 0 if not
|The inside humidity
|-
|-
|<#version>
|<#dew>
|The version of Cumulus in use e.g. '1.9.4' or '3.4.1'
|The current dew point
|-
|-
|<#build>
|<#wetbulb>
|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)
|Estimated [http://en.wikipedia.org/wiki/Wet_bulb wet bulb] temperature, can be seen if hover over 'Dew point' on Cumulus 1 main screen
 
|-
|-
|<#realtimeinterval>
|colspan="2" style="background:lightgray;"|Rainfall
|The realtime update interval in seconds (integer)
|-
|-
|<#interval>
|<#rfall>
|The web site update interval in minutes (integer)
|The total rainfall so far today (reports rain counter now minus rain counter at start of day), start of day counter can be edited using "edit rain today".
|-
|-
|<#rollovertime>
|<#rrate>
|The time that the logs rollover to the next day: 'Midnight', '9 am' or '10 am'
|The current [[Rain_measurement#Rain_Rate|rainfall rate]]
 
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>
|<#rhour>
|The date and time of the last web site update
|The rainfall in the last hour
|-
|-
|<#LastDataReadT>
|<#rmidnight>
|The date/time data was last read from the station
|The total rainfall since midnight. Useful if you don't use midnight as your start of day
|-
|-
|<#stationtype>
|<#r24hour>
|The weather station [https://cumuluswiki.org/a/Cumulus.ini#Section:_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).
| Reading recent history records, takes rain counter for latest minute, and substracts rain counter from as close as possible to same time yesterday (if Cumulus was not running at that time yesterday, but historical catch-up has been enabled, then it is from nearest time available yesterday, so for a logging interval of every 30 minutes might be 24 hours and 16 minutes ago)
|-
|-
|<#latitude>
|<#LastRainTipISO>
|The station [http://en.wikipedia.org/wiki/Latitude latitude] (as you entered during setup).
|Fixed ISO format output giving date and time of last rain gauge tip (e.g 2010-09-06 06:09) The format is always as shown (cannot use output format modifiers)
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<br />
<#latitude> gives "N&nbsp;59& deg;&amp;nbsp;14&amp;#39;&amp;nbsp;33&amp;quot;" for N 59 14 33<br />
<#latitude dp=5> gives "59.24250"
 
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>
|<#LastRainTip>
|The station [http://en.wikipedia.org/wiki/Longitude longitude]  (as you entered during setup). Supports an optional 'dp' and 'rc' parameters as per the latitude tag.
| (available from release 3.6.1) Date/time of last rain gauge tip (default format is as set in locale) '''PLEASE NOTE: this web tag WILL accept any date and time output format modifiers'''
|-
|-
|<#altitude>
|<#MinutesSinceLastRainTip>
|The station [http://en.wikipedia.org/wiki/Altitude altitude] value (webtag outputs web encoded format containing figure, '&amp;nbsp;' 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&amp;nbsp;m'
|The number of minutes since the last rain gauge tip, in whole numbers, rounded down
|-
|-
|<#location>
|<#IsRaining>
|The station location (as you entered during setup)
|For [[Rain_measurement#Optical_Rain_Gauge| Hydreon RG-11 devices]], shows the current rain state. 0=No rain, 1=It's raining
|-
|-
|<#longlocation>
|<#rmonth>
|Longer description of the station location (as you entered during setup)
|The total rainfall so far this month
|-
|-
|<#forum>
|<#ryear>
|URL of the forum (as you entered during setup)
|Annual rainfall total for rainfall season year (i.e. starting month as set on Configuration menu, station screen, Annual rainfall frame)
For Cumulus 1, this defaults to a Sandaysoft URL that is no longer available, for MX this defaults to the current support forum hosted by "Freddie" site
|-
|-
|<#webcam>
|<#ConsecutiveRainDays>
|URL of the webcam (as you entered during setup). Default is blank.
|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).
|-
|-
|<#graphperiod>
|<#ConsecutiveDryDays>
|The number of hours displayed by the graphs, as set using '''Configuration''' menu, ''Display'' settings screen 'Detailed Chart Period'
|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
|-
|-
|<#dailygraphperiod>
|colspan="2" style="background:lightgray;"|Pressure
|The number of days displayed by the graphs, as set using '''Configuration''' menu, ''Display'' settings screen 'Daily Chart Period' (available from build 1098)
|-
|-
|<#LatestNOAAMonthlyReport>
|<#press>
|Gives file name of latest auto-saved NOAA monthly report
|The [http://en.wikipedia.org/wiki/Sea_level_pressure sea level pressure]
|-
|-
|<#LatestNOAAYearlyReport>
|<#presstrendval>
|Gives file name of latest auto-saved NOAA yearly report
|The average rate of pressure change over the last three hours.  Trend = (pressure_now - pressure_3hrs_ago) / 3    (Fixed from version 1.7.7 5th March 2008)
|}
 
==Units==
 
Apply to Cumulus 1 and MX, no optional input nor output parameters.
{| class="wikitable" border="1"
|-
|-
!style="width:150px" | Web tag_name
|<#presstrend>
!style="width:600px" | Function
|The pressure trend in words - values can be set in the 'strings.ini' file
|-
|-
|<#tempunit>
|<#presstrendenglish>
|Unit of temperature being used (Set in Cumulus as [http://en.wikipedia.org/wiki/Centigrade Celsius] or [http://en.wikipedia.org/wiki/Fahrenheit Fahrenheit]) values "&amp;deg;C" or "&amp;deg;F"
| a singe word description for the pressure trend - Rising/Falling/Steady (for use by [[Webtags_as_boolean_operators_in_HTML|HTML]], [[Editing_content_of_a_webpage_using_either_HTML_or_Script|javascript]] etc, values can't be changed). From version 1.8.8 1st December 2009
|-
|-
|<#tempunitnodeg>
| <#PressChangeLast3Hours>
|The temperature units being used, without a degree symbol, i.e. "F" or "C"
|[[File:Badge vMx.png]] Available from version 3.11.1
 
Total Pressure Change since 3 hours ago
|-
|-
|<#pressunit>
|<#altimeterpressure>
|Unit of measure for pressure. Possible values: "mb", "hPa", "in"
|Altimeter pressure. Pressure corrected to sea level using the station's altitude only. Same as sea-level pressure for non-Davis stations.
|-
|-
|<#rainunit>
|colspan="2" style="background:lightgray;"|Wind
|Unit of measure for rain fall. Possible values: "mm" or "inches"
|-
|-
|<#windunit>
|<#wlatest>
|Unit of measure for wind speed. Possible values: "m/s", "mph", "km/h", "kts"
|Current wind speed reading from console.  Corresponds to 'latest' on the Cumulus main screen.
|-
|-
|<#windrununit>
|<#bearing>
|Unit of measure for wind run (distance). Possible values: "km", "miles", "km", "nm" (for wind speeds in m/s, mph, km/h, kts)
|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.
|-
|-
|<#cloudbaseunit>
|<#avgbearing>
|The units used for cloudbase value. Possible values:  "ft" or "m"
|Average wind bearing in degrees over last configured interval minutes. Range 1-360, 0=Calm
|}


==Date & Time==
This is calculated by taking the wind direction and speed for the last 10 minutes (or other interval as configured), calculates the sums of the North/South and East/West vector components, divides the E/W component sum by the N/S component sum, and takes the arctan.
Both Cumulus 1 and MX support all of these, most of these web tags can be used with output parameters.
{| class="wikitable" border="1"
|-
|-
!style="width:150px" |Web tag_name
|<#wdir>
!style="width:600px" | Function
|Average wind bearing over last 10 minutes as a [http://en.wikipedia.org/wiki/Compass compass] point - e.g. ESE
|-
|-
|<#date>
|<#wgust>
|The current date
|The highest wind reading in the last 10 minutes. Corresponds to 'gust' on the Cumulus main screen.
|-
|-
|<#time>
|<#WindSampleCount>
|The current time and date. Example result: 18:30 on 30 December 2009.  If you simply wish the time, use next tag (below)
|The number of wind samples making up the wind rose (etc) data (up to 3600)
|-
|-
|<#timehhmmss>
|<#wdirdata>
|The current time. Example format: 18:30:27
|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:
* Oregon: x=12 seconds (see https://cumulus.hosiene.co.uk/viewtopic.php?p=37#p37) so 12 hours worth in full array
* Davis: x=2 or 3 seconds (see https://cumulus.hosiene.co.uk/viewtopic.php?p=37#p37) so 2.5 hours worth in full array
* Fine Offset: Cumulus 1 reads the wind data every minute (although station transmits wind data every 40 seconds), so 60 hours worth in full array
* Davis WLL: x=2.5 seconds (see https://cumulus.hosiene.co.uk/viewtopic.php?p=160900#p160900) so 2.5 hours worth in full array
 
|-
|-
|<#timeUTC>
|<#wspddata>
|The current UTC date/time rather than local date/time
|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''' tag. Reading interval x varies by station type (see above).
|-
|-
|<#minute>
|<#nextwindindex>
|The current time, just the minutes. Example format: 07
|The index of the entries in <#wdirdata> and <#wspddata> that 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!
|-
|-
|<#hour>
|<#WindRoseData>
|The current time, just the hour. Example format: 07
|A comma-separated list of the wind 'totals' used to draw the wind rose (8 or 16 values)
|-
|-
|<#day>
|<#WindRosePoints>
| The current day as a 2-digit number. Example format: 07 
|The number of items in <#WindRoseData> (i.e. 8 or 16), as configured on [[Cumulus_Screenshots#Display_and_Colour_screens_as_at_version_1.9.4|display settings screen]]
|-
|-
|<#dayname>
|<#beaufort>
| The current day as a word. For example, Monday
|The current wind speed on the [http://en.wikipedia.org/wiki/Beaufort_scale Beaufort scale] (e.g. F8)
|-
|-
|<#shortdayname>
|<#beaufortnumber>
| The current day as a shortened word. Example format: Mon
|The current wind speed on the Beaufort scale, without a leading "F", e.g. "6"
|-
|-
|<#month>
|<#beaudesc>
|The current month as a 2-digit number. Example format: 07
|The current wind speed Beaufort description (e.g. "Gale")
|-
|<#monthname>
|The current month as a word. Example format: July
|-
|-
|<#shortmonthname>
|<#BearingRangeFrom>
|The current month as a shortened word. Example format: Jul
|The 'lowest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in [[Cumulus.ini (Cumulus 1)|cumulus.ini]])
|-
|-
|<#year>
|<#BearingRangeTo>
|The current year as a 4-digit number. Example format: 2009
|The 'highest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini)
|-
|-
|<#shortyear>
|<#BearingRangeFrom10>
|The current year as a 2-digit number. Example format: 09
|The 'lowest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini), rounded down to nearest 10 degrees
|-
|-
|<#metdate>
|<#BearingRangeTo10>
|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. 
|The 'highest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini), rounded down to nearest 10 degrees
 
|-
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
|colspan="2" style="background:lightgray;"|Miscellaneous
|-
|-
|<#metdateyesterday>
|<#cloudbase>
|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.
|Calculated [http://en.wikipedia.org/wiki/Cloud_base cloud base]
 
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.
|-
|-
|<#yesterday>
|<#cloudbasevalue>
|Yesterdays date
|Current calculated cloud base without units
|-
|-
|<#rollovertime>
|<#UV>
|The time that the logs rollover to the next day: 'Midnight', '9 am' or '10 am'
|Current [http://en.wikipedia.org/wiki/Uv_index UV index]. Requires your station to have a UV sensor.
|-
|-
|<#update>
|<#SolarRad>
|The date and time of the last web site update
|Current [http://en.wikipedia.org/wiki/Solar_radiation solar radiation]. Requires your station to have a solar sensor.
|-
|-
|<#LastDataReadT>
|The date/time data was last read from the station
|-
|-
|<#DaysSince30Dec1899>  
|<#Light>
|Day count (gives whole and fractional part) Example: 41250.6523310301
|Current Current light level in Lux. Requires your station to have a solar sensor. Only applies to Fine Offset stations.
|-
|-
|<#recordsbegandate>
|[[Forecast_webtag|<#forecast>]]
|Date when records began (appears twice on "recordsT.htm" provided, and used to calculate next tag, but ignored for all other Cumulus processing)
|The current forecast
|-
|-
|<#DaysSinceRecordsBegan>
|<#forecastenc>
|Day count since Cumulus records started
|The same as <#forecast> but with all reserved HTML characters, and those above character code 159, encoded as HTML entities
|}
 
==Current Conditions==
 
The web tags/token shown here are mainly determined by which appear on "Now" page (index.htm).
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; although you might expect to find them listed in tables for this month and this year, those web pages do not show these derivatives.
Those listed here cover both measurements obtained from a weather station (like air temperature, wind speed and direction, humidity and barometric pressure); and all the derived values (like humidex, feels like, apparent temperature, wind chill and heat index).
 
Note however, that the derived values calculated for Cumulus 1 and for MX may not agree, see derived value section within Recent History tags section for examples.
{| class="wikitable" border="1"
|-
|-
!style="width:150px" | Web tag_name
| <#forecastJsEnc>
!style="width:600px" | Function
|[[File:Badge vMx.png]] Available from version 3.11.0
The current forecast encoded for JavaScript
|-
|-
|colspan="2" style="background:lightgray;"|Temperature
|<#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 [[Forecast_webtag|Cumulus]]: -1 (neg 1) = Exceptional Fine, -26 (neg 26) = Exceptional Bad
|-
|-
|<#temp>
|<#cumulusforecast>
|The outside (air) temperature
|Always gives Cumulus (Zambretti) [[Forecast_webtag|forecast]], even if the <#forecast> tag provides a station forecast
|-
|-
|<#intemp>
|<#cumulusforecastenc>
|The inside temperature
|The same as <#cumulusforecast> but with all reserved HTML characters, and those above character code 159, encoded as HTML entities
|-
|-
|<#temptrend>
| <#cumulusforecastJsEnc>
|The average rate of change in temperature over the last three hours. Trend = (temp_now - temp_3hrs_ago) / 3
|[[File:Badge vMx.png]] Available from version 3.11.0
The current  Cumulus (Zambretti) forecast  encoded for JavaScript
|-
|-
|<#temptrendtext>
|<#wsforecast>
|Temperature change over the last three hours - Rising/Falling/Steady (values can be set in strings.ini)
|Always gives station forecast (if available)
|-
|-
|<#temptrendenglish>
|<#wsforecastenc>
|Temperature change over the last three hours - Rising/Falling/Steady (for use by [[Webtags_as_boolean_operators_in_HTML|HTML]], [[Editing_content_of_a_webpage_using_either_HTML_or_Script|javascript]] etc, values can't be changed)
|The same as <#wsforecast> but with all reserved HTML characters, and those above character code 159, encoded as HTML entities
|-
|-
|<#TempChangeLastHour>
| <#wsforecastJsEnc>
|The change in temperature over the last hour
|[[File:Badge vMx.png]] Available from version 3.11.0
 
The current  station forecast  encoded for JavaScript
|-
|-
|<#heatindex>
|<#currcond>
|Current [[heat index]]. The referenced page in weather terminology section of this Wiki explains it.
|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
|-
|-
|<#humidex>
|<#currcondenc>
|Current [http://en.wikipedia.org/wiki/Humidex Humidex]
|The same as <#currcond> but also has all characters above (decimal base) code 159 encoded as HTML entities for example this would encode any use of symbol for degree.
|}
 
===Extra Sensors===
 
Some tags are only available for certain builds, if the tables below do not say which releases they apply to, see general tip at top of page to check for the build you are using. In particular Cumulus 1 has fewer channels available in its earlier versions, and the final legacy software version 1.9.4 offers just 42 of the 62 extra sensor web tags available in MX.
 
The extra sensors functionality in Cumulus only supports processing for current spot values as read from the sensors, the only processing is to convert the units ready for output, so only current conditions can be reported in web tags.
 
Periodically spot extra sensor values are logged, see the [[Extra_Sensor_Files]] page for information about log files from where you can extract the past spot values.
 
====Extra Sensors: Davis models and Oregon Scientific WMR928, WR100/200 ====
 
These web tags hold current values for additional sensors supported by Cumulus 1 and MX.  
 
For Oregon Scientific model like WMR-200 with USB connection, please refer to [[#Web tags mentioning (outside) temperature]] because any of the extra temperature tags below can be redirected to '''<#temp>''', and consequently also have web tags reporting daily extremes and longer period extreme records.
{| class="wikitable" border="1"
|-
|-
|<#apptemp>
!style="width:150px"|Web tag_name
|The [[Apparent_temperature|apparent]] temperature.  The referenced page in weather terminology section of this Wiki explains it. The formula used is that defined by BOM. Although at temperatures above 20°C (68°F) Feels like reports an "apparent temperature" it uses a different formula.
!style="width:600px"|The related description can be changed in 'strings.ini', but below are default descriptions that will be shown in viewer/editor
|-
|-
|<#wchill>
|<#ExtraTemp1 - 10>
|The current [[wind chill]] temperature.  The referenced page in weather terminology section of this Wiki explains it. For temperatures below 10°C (50°F) Feels like reports the same value.
|Extra temperature channel 1 to channel 10
|-
|-
|<#feelslike>
|<#ExtraDP1 - 10>
|Not available in Cumulus 1. Not available in all MX versions. Please see sub-section below this table regarding availability by MX versions if you are using a MX version earlier than 3.6.10.
|Extra dew point channel 1 to channel 10
 
The current [[Feels_Like|Feels Like]] temperature.  The referenced page in weather terminology section of this Wiki explains it.
|-
|-
|<#IsFreezing>
|<#ExtraHum1 - 10>
|If outside temperature is at or below 0°C/32°F. 0=Above freezing, 1=Below freezing
|Extra humidity channel 1 to channel 10
|-
|-
|<#chillhours>
|<#SoilTemp1 - 16>
|The number of [[Heat/cold_degree_days_and_Chill_hours#Chill_Hours_and.2For_Air_Frost|'chill hours']] so far this season (threshold temperature and start date are configurable).
|Soil temperature channel 1 to channel 16
|-
|-
|colspan="2" style="background:lightgray;"|Humidity
|<#SoilMoisture1 - 16>
|Soil moisture channel 1 to channel 16
|-
|-
|<#hum>
|<#LeafTemp1 - 4>
|The outside [http://en.wikipedia.org/wiki/Humidity humidity]
|Leaf temperature channel 1 to channel 4
|-
|<#LeafWetness1 - 4>
|Leaf wetness channel 1 to channel 4
|}
 
====Extra Sensors: Davis AirLink ====
New from version 3.9.0. Not available for earlier MX, not available for Cumulus 1.
 
Note, that you can configure an Indoor or Outdoor (or both) AirLink, most people will use an outdoor. There are a similar set of tags for each device.
 
{| class="wikitable" border="1"
|-
|-
|<#inhum>
!style="width:150px" |Web tag_name
|The inside humidity
!style="width:600px" |Function
|-
|-
|<#dew>
|colspan="2" style="background:lightgray;"|Particulate Matter
|The current dew point
|-
|-
|<#wetbulb>
|<#AirLinkPm1[InǀOut]>
|Estimated [http://en.wikipedia.org/wiki/Wet_bulb wet bulb] temperature, can be seen if hover over 'Dewpoint' on Cumulus 1 main screen
|Current particulate matter of 1 μm, or less count
|-
|-
|colspan="2" style="background:lightgray;"|Rainfall
|<#AirLinkPm2p5[InǀOut]>
|Currentparticulate matter of 2.5 μm, or less, count
|-
|-
|<#rfall>
|<#AirLinkPm2p5_1hr[InǀOut]>
|The total rainfall so far today
|Last hour average particulate matter of 2.5 μm, or less, count
|-
|-
|<#rrate>
|<#AirLinkPm2p5_3hr[InǀOut]>
|The current rainfall rate
|Last 3 hours average particulate matter of 2.5 μm, or less, count
|-
|-
|<#rhour>
|<#AirLinkPm2p5_24hr[InǀOut]>
|The rainfall in the last hour
|Last 24 hours average particulate matter of 2.5 μm, or less, count
|-
|-
|<#rmidnight>
|<#AirLinkPm2p5_Nowcast[InǀOut]>
|The total rainfall since midnight. Useful if you don't use midnight as your start of day
|The 24 hour "nowcast" weighted average particulate matter of 2.5 μm, or less, count
|-
|-
|<#r24hour>
|<#AirLinkPm10[InǀOut]>
|Amount of rain in the last 24 hours
|Current particulate matter of 10 μm, or less, count
|-
|-
|<#LastRainTipISO>
|<#AirLinkPm10_1hr[InǀOut]>
|Fixed ISO format output giving date and time of last rain gauge tip (e.g 2010-09-06 06:09) The format is a shown, and cannot be modified by locale or addition of parameters.
|Last hour average particulate matter of 10 μm, or less, count
|-
|-
|<#LastRainTip>
|<#AirLinkPm10_3hr[InǀOut]>
| (available from release 3.6.1) Date/time of last rain gauge tip (default format is as set in locale) '''PLEASE NOTE: this web tag WILL accept any date and time output format modifiers'''
|Last 3 hours average particulate matter of 10 μm, or less, count
|-
|-
|<#MinutesSinceLastRainTip>
|<#AirLinkPm10_24hr[InǀOut]>
|The number of minutes since the last rain gauge tip, in whole numbers, rounded down
|Last 24 hours average particulate matter of 10 μm, or less, count
|-
|-
|<#IsRaining>
|<#AirLinkPm10_Nowcast[InǀOut]>
|For [[Rain_measurement#Optical_Rain_Gauge| Hydreon RG-11 devices]], shows the current rain state. 0=No rain, 1=It's raining
|The 24 hour "nowcast" weighted average particulate matter of 10 μm, or less, count
|-
|-
|<#rmonth>
|colspan="2" style="background:lightgray;"|Air Quality Index Values
|The total rainfall so far this month
|-
|<#AirLinkAqiPm2p5[InǀOut]>
|Current particulate matter of 2.5 μm, or less AQI value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|<#ryear>
|<#AirLinkAqiPm2p5_1hr[InǀOut]>
|Annual rainfall total for rainfall season year (i.e. starting month as set on Configuration menu, station screen, Annual rainfall frame)
|Last hour average particulate matter of 2.5 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|<#ConsecutiveRainDays>
|<#AirLinkAqiPm2p5_3hr[InǀOut]>
|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).
|Last 3 hour average particulate matter of 2.5 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|<#ConsecutiveDryDays>
|<#AirLinkAqiPm2p5_24hr[InǀOut]>
|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
|Last 24 hour average particulate matter of 2.5 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|colspan="2" style="background:lightgray;"|Pressure
|<#AirLinkAqiPm2p5_Nowcast[InǀOut]>
|Last 24 hour "nowcast" weighted average particulate matter of 2.5 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|<#press>
|<#AirLinkAqiPm210[InǀOut]>
|The [http://en.wikipedia.org/wiki/Sea_level_pressure sea level pressure]
|Current particulate matter of 10 μm, or less value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|<#presstrendval>
|<#AirLinkAqiPm10_1hr[InǀOut]>
|The average rate of pressure change over the last three hours.
|Last hour average particulate matter of 10 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|<#presstrend>
|<#AirLinkAqiPm10_3hr[InǀOut]>
|The pressure trend in words - values can be set in the 'strings.ini' file
|Last 3 hour average particulate matter of 10 μm, or less AQI value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|<#presstrendenglish>
|<#AirLinkAqiPm10_24hr[InǀOut]>
| a singe word description for the pressure trend - Rising/Falling/Steady (for use by [[Webtags_as_boolean_operators_in_HTML|HTML]], [[Editing_content_of_a_webpage_using_either_HTML_or_Script|javascript]] etc, values can't be changed)
|Last 24 hour average particulate matter of 10 μm, or less AQI value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|<#altimeterpressure>
|<#AirLinkAqiPm10_Nowcast[InǀOut]>
|Altimeter pressure. Pressure corrected to sea level using the station's altitude only. Same as sea-level pressure for non-Davis stations.
|Last 24 hour "nowcast" weighted average particulate matter of 10 μm, or less AQI value - allows use of the "dp=n" and "tc=y" parameters
|-
|-
|colspan="2" style="background:lightgray;"|Wind
|colspan="2" style="background:lightgray;"|Stats Values
|-
|-
|<#wlatest>
|<#AirLinkPct_1hr[InǀOut]>
|Current wind speed reading from console.  Corresponds to 'latest' on the Cumulus main screen.
|Percentage of possible values that were included in the 1 hour averages
|-
|-
|<#bearing>
|<#AirLinkPct_3hr[InǀOut]>
|Current wind bearing in degrees
|Percentage of possible values that were included in the 3 hour averages
|-
|-
|<#currentwdir>
|<#AirLinkPct_24hr[InǀOut]>
|Current wind bearing as a compass point - e.g. ESE
|Percentage of possible values that were included in the 24 hour averages
|-
|-
|<#wspeed>
|<#AirLinkPct_1hr[InǀOut]>
|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.
|Percentage of possible values that were included in the 24 hour weighted averages
|-
|-
|<#avgbearing>
|colspan="2" style="background:lightgray;"|Sensor Info
|Average wind bearing in degrees over last 10 minutes. Range 1-360, 0=Calm
|-
|-
|<#wdir>
|<#AirLinkFirmwareVersion[InǀOut]>
|Average wind bearing over last 10 minutes as a [http://en.wikipedia.org/wiki/Compass compass] point - e.g. ESE
|Shows the AirLink firmware version as a date string.
NOTE: This web tag requires a WeatherLink Pro subscription to work
|-
|-
|<#wgust>
|<#AirLinkTemp[InǀOut]>
|The highest wind reading in the last 10 minutes. Corresponds to 'gust' on the Cumulus main screen.
|The sensors internal temperatue value
|-
|-
|<#wdirdata>
|<#AirLinkHum[InǀOut]>
|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.
|The sensors internal humidity value
|-
|-
|<#wspddata>
|<#AirLinkWifiRssi[InǀOut]>
|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.
|The sensors WiFi signal strength in dB - anything below -90 is considered very poor.
NOTE: This web tag requires a WeatherLink Pro subscription to work
|}
 
 
 
====Extra Sensors: Ecowitt====
 
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 as a generic name for stations sold under a variety of branding, in this Wiki.
 
[[File:Badge v1.png]]Not available in Cumulus 1.
 
=====Extra Sensors: Ecowitt WH45 CO₂ sensor=====
 
[[File:Badge vMx.png]] Unless otherwise indicated these web tags become available from release 3.9.5.
 
{| class="wikitable" border="1"
|-
|-
|<#nextwindindex>
!style="width:150px" |Web tag_name
|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!
!style="width:600px" |Function
|-
|-
|<#beaufort>
| <#CO2>
|The current wind speed on the [http://en.wikipedia.org/wiki/Beaufort_scale Beaufort scale] (e.g. F8)
| The actual CO<small>2</small>concentration in ppm
|-
|-
|<#beaufortnumber>
| <#CO2-pm2p5>
|The current wind speed on the Beaufort scale, without a leading "F", e.g. "6"
| Air Quality expressed in terms of particulate matter of 2.5 μm/m<small>3</small> or less
|-
|-
|<#beaudesc>
| <#CO2-pm2p5-24h>
|The current wind speed Beaufort description (e.g. "Gale")
| Air Quality expressed in terms of particulate matter of 2.5 μm/m<small>3</small>, or less, 24 hours moving average
|-
|-
|<#BearingRangeFrom>
| <#CO2-pm10>
|The 'lowest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini)
| Air Quality expressed in terms of particulate matter of 10 μm/m<small>3</small>, or less (yes, this includes the 2.5 figure)
|-
|-
|<#BearingRangeTo>
| <#CO2-pm10-24h>
|The 'highest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini)
| Air Quality expressed in terms of particulate matter of 10 μm/m<small>3</small>, or less, 24 hours moving average
|-
|-
|<#BearingRangeFrom10>
| <#CO2-temp>
|The 'lowest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini), rounded down to nearest 10 degrees
| Temperature as reported by Air Quality monitor.
 
Note that this temperature has nothing to do with the temperature as reported by the main weather station. It reflects the temperature of the sensor and would be used in combination with the sensors measured humidity (see next) for correction of the measured PM (particulate matter) value. Determination of how to correct the PM value is highly dependent on the conditions and placement of the sensor. See the specification sheet for the sensor or create some multivariate regression line based on calibration measurements. This is also valid for PM sensors like the AirLink. The normal amateur usage of PM sensors is that the uncorrected values are published.  
|-
|-
|<#BearingRangeTo10>
| <#CO2-hum>
|The 'highest' clockwise bearing in the last 10 minutes (or as configured using AvgBearingMinutes in cumulus.ini), rounded down to nearest 10 degrees
| Relative Humidity as reported by Air Quality monitor
|}
 
=====Extra Sensors: Ecowitt WH34 soil and water sensor=====
 
Cumulus MX can support the Ecowitt WH34 (other model types exist and are reported here as if WH34) soil and water temperature sensors.
 
They are reported as "User Temperture 1" to "User Temperature 8", as listed in the table within next sub-section.
 
 
=====Extra Sensors: Ecowitt Air quality, leak sensors, lighting detector, and extra temperature sensors=====
 
[[File:Badge v1.png]] Not available in Cumulus 1.
 
[[File:Badge vMx.png]] Please see release announcements for when individual web tags became available
 
This sub-section applies only to those using Ecowitt GW1000 (also Froggit DS1500, and other equivalents, see [[Supported Devices]]) 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:
{| class="wikitable" border="1"
|-
|-
|<#WindRoseData>
!style="width:150px" |Web tag_name
|A comma-separated list of the wind 'totals' used to draw the wind rose (8 or 16 values)
!style="width:600px" |Function
|-
|-
|<#WindRosePoints>
|<#GW1000FirmwareVersion>
|The number of items in <#WindRoseData> (i.e. 8 or 16)
|GW1000 firmware version string
|}
 
 
{| class="wikitable" border="1"
|-
|-
|<#WindSampleCount>
!style="width:150px"|Web tag_name
|The number of wind samples making up the wind rose (etc) data (up to 3600)
!style="width:600px"|The related description can be changed in 'strings.ini', but below are default descriptions that will be shown in the viewer/editor
|-
|-
|colspan="2" style="background:lightgray;"|Miscellaneous
|<#AirQuality1>
| Air quality in μm/m<small>3</small> or less
|-
|-
|<#cloudbase>
|<#AirQuality2>
|Calculated [http://en.wikipedia.org/wiki/Cloud_base cloud base]
| Air quality in μm/m<small>3</small> or less
|-
|-
|<#cloudbasevalue>
|colspan="2"|... and so on up to <#AirQuality4>
|Current calculated cloud base without units
|-
|-
|<#UV>
|<#AirQualityAvg1>
|Current [http://en.wikipedia.org/wiki/Uv_index UV index]. Requires your station to have a UV sensor.
| 24 hr running average Air quality in μm/m<small>3</small> or less
|-
|-
|<#SolarRad>
|<#AirQualityAvg2>
|Current [http://en.wikipedia.org/wiki/Solar_radiation solar radiation]. Requires your station to have a solar sensor.
| 24 hr running average Air quality in μm/m<small>3</small> or less
|-
|-
|colspan="2"|... and so on up to <#AirQualityAvg4>
|-
|-
|<#Light>
|<#LeakSensor1>
|Current Current light level in Lux. Requires your station to have a solar sensor. Only applies to Fine Offset stations.
|Leak sensor 1 - returns false/true as 0 or 1
|-
|-
|[[Forecast_webtag|<#forecast>]]
|<#LeakSensor2>
|The current forecast
|Leak sensor 2 - returns false/true as 0 or 1
|-
|-
|<#forecastenc>
|colspan="2"|... and so on up to <#LeakSensor4>
|The same as <#forecast> but with all reserved HTML characters, and those above character code 159, encoded as HTML entities
|-
|-
|<#forecastnumber>
|<#LightningDistance>
|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
|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 '----')
|-
|-
|<#cumulusforecast>
|<#LightningTime>
|Always gives Cumulus (Zambretti) forecast, even if the <#forecast> tag provides a station forecast
|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 '----')
|-
|-
|<#cumulusforecastenc>
|<#LightningSrikesToday>
|The same as <#cumulusforecast> but with all reserved HTML characters, and those above character code 159, encoded as HTML entities
|Number of lighting strikes today
|-
|-
|<#wsforecast>
|<#UserTemp1>  
|Always gives station forecast (if available)
|User Temperature 1
|-
|-
|<#wsforecastenc>
|colspan="2"|... and so on up to <#UserTemp8> = User temperature 8
|The same as <#wsforecast> but with all reserved HTML characters, and those above character code 159, encoded as HTML entities
|}
|-
|<#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 for example this would encode any use of symbol for degree.
|}
==== Feels Like ====


The figures quoted for this derivative vary between versions:
==Recent History==
* The first formula was used from MX version 3.5.4 (25 Apr 2020) build 3075 until version 3.6.7 (4 June 2020) build 3083
* The second formula, which was coded incorrectly, and so gave strange results, applied in versions 3.6.8 to 3.6.9 (build 3084, 3085)
* The third, and hopefully final, formula applies from version 3.6.10 (build 3086).


A php script for adding feels like as calculated in version 3.6.10 to any standard log line created either without feels like, or with an older calculation, can be downloaded from [https://cumulus.hosiene.co.uk/viewtopic.php?f=18&t=18096 Create Missing topic on support forum]
Please refer to the [[Recent history]] page for full information about using the tags in the following two tables, as material once on this page has been moved there.  


==Extra Sensors Davis (and a few others)==
===Using input/output modification parameters with recent history tag names===


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.
'''All tag names listed below, require the mandatory input modification parameters specified in this table.'''
The optional output modification parameters available are as specified in this table, depending on tag name:
{| class="wikitable" border="1"
|-
!style="width:150px" | Tag names
!style="width:200px" | Mandatory Input Modification Parameters
!style="width:200px" | Optional Output Modification Parameters
|-
| <#RecentTS> (see [[#Table of Recent History tag names available]])
| Mandatory parameters as table at [[Webtags/Parameters#Input_modification_Parameters]]
| Optional parameters to modify the time format described in tables starting at [[Webtags/Parameters#Multiple_Output_Format_Modifier_parameters_for_times_and_dates]]
|-
| All other tag names in [[#Available in 1.9.3, 1.9.4, and all MX releases]] and [[#Available in MX only]]
| Mandatory parameters as table at [[Webtags/Parameters#Input_modification_Parameters]]
| Whether you can modify the way these values are output depends on release you are using:
* From release 3.10.5: Please see tables at [[Webtags/Parameters#Output_Modification_Parameter_for_changing_any_decimal_comma_into_a_decimal_point]] and [[Webtags/Parameters#Controlling_the_number_of_decimal_places]]
* For legacy Cumulus, and earlier MX releases, no output format modification parameters are available, instead see [[#No_Commas]] section on this page.
|}


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.
=== Table of Recent History tag names 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.
One tag name is available since 1.9.3 to report the time associated with values you request.


Although as [[Recent history]] page explains, the history is intended to cover every minute in last 7 days, some entries may be at less frequent intervals, and when clocks change some entries will be missing altogether.
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:150px"|Web tag_name
!style="width:150px" | Web tag_name
!style="width:600px"|The related description can be changed in 'strings.ini', but below are default descriptions that will be shown in viewer/editor
!style="width:600px" | Function
!style="width:600px" | Parameters example
|-
|-
|<#ExtraTemp1>
|colspan="3" style="background:lightgray;"|Time-stamp tag
|Extra temperature channel 1
|-
|-
|<#ExtraTemp2>
|<#RecentTS>
|Extra temperature channel 2
|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
|<#ExtraTemp3>
|}
|Extra temperature channel 3
 
|-
====Available in 1.9.3, 1.9.4, and all MX releases====
|colspan="2"|... and so on up to <#ExtraTemp10> = Extra temperature channel 10
 
{| class="wikitable" border="1"
|-
|-
|<#ExtraDP1>
!style="width:150px" | Tag_name
|Extra dew point channel 1
!style="width:600px" | Function
!style="width:600px" | Input Modification Parameters example
|-
|-
|<#ExtraDP2>
|colspan="3" style="background:lightgray;"|Temperature & Humidity tags
|Extra dew point channel 2
|-
|-
|<#ExtraDP3>
|<#RecentOutsideTemp>
|Extra dew point channel 3
|Outside Temperature
| <#RecentOutsideTemp h=3 m=1>&nbsp;<#tempunit> will display the temperature at the start of the period for which <#temptrend> is calculated
|-
|-
|colspan="2"|... and so on up to <#ExtraDP10>
|<#RecentWindChill>
|Wind Chill
| <#RecentWindChill d=48 m=1> reports the wind chill temperature 2 days ago
|-
|-
|<#ExtraHum1>
|<#RecentDewPoint>
|Extra humidity channel 1
|Dew Point
| <#RecentDewPoint h=25> reports the dew point temperature just over a day ago
|-
|-
|<#ExtraHum2>
|<#RecentHeatIndex>
|Extra humidity channel 2
|Heat Index
| <#RecentHeatIndex m=121> reports the heat index about 2 hours ago
|-
|-
|<#ExtraHum3>
|<#RecentHumidity>
|Extra humidity channel 3
|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)
|-
|-
|colspan="2"|... and so on up to <#ExtraHum10>
|colspan="3" style="background:lightgray;"|Wind <br>(Note: Wind 'Speed', 'Gust' and 'Latest' have the usual Cumulus meanings see [[Wind measurement]])
|-
|-
|<#SoilTemp1>
|<#RecentWindSpeed>
|Soil temperature 1
|Wind Speed
| <#RecentWindSpeed m=10> will display the average wind speed 10 minutes ago
|-
|-
|<#SoilTemp2>
|<#RecentWindGust>
|Soil temperature 2
|Wind Gust
 
(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
|-
|-
|colspan="2"|... and so on up to <#SoilTemp16>
|<#RecentWindLatest>
|Wind Latest.  
| 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)
|-
|-
|<#SoilMoisture1>
|<#RecentWindDir>
|Soil moisture 1
|Wind Direction (instantaneous)
| <#RecentWindDir m=10> will tell you which direction the wind was blowing from 10 minutes ago
|-
|-
|<#SoilMoisture2>
|<#RecentWindAvgDir>
|Soil moisture 2
|Wind Direction (average)
|<#RecentWindAvgDir d=6> will say what the calculated average wind direction was at this time at the start of the week
|-
|-
|colspan="2"|... and so on up to <#SoilMoisture16>
|colspan="3" style="background:lightgray;"|Pressure
|-
|-
|<#LeafTemp1>
|<#RecentPressure>
|Leaf temperature 1
|Sea-level Pressure
| <#RecentPressure h=3 m=1> gives the sea level pressure when <#presstrendval> started tracking the pressure
|-
|colspan="3" style="background:lightgray;"|Rainfall
|-
|<#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)
|-
|-
|<#LeafTemp2>
|colspan="3" style="background:lightgray;"|Solar & UV
|Leaf temperature 2
|-
|-
|<#LeafWetness1>
|<#RecentSolarRad>
|Leaf wetness 1
|Solar Radiation
| 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)
|-
|-
|<#LeafWetness2>
|<#RecentUV>
|Leaf wetness 2
|UV Index
| 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)
|}
|}


==Extra Sensors Ecowitt==
====Available in MX only====
 
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:


Please note this section has NOT yet been updated for recent MX releases, it appears from [[cumulusmx.db|RecentData table in cumulusmx.db]] that the list here is not complete for MX.  However, no release announcement has been found listing tag names not shown here (i.e. apparent temperature, indoor temperature and humidity, air quality)
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:150px" |Web tag_name
!style="width:150px" | tag_name
!style="width:600px" |Function
!style="width:150px" | Introduced
!style="width:600px" | Function  
!style="width:600px" | Input Modification Parameters example
|-
|colspan="4" style="background:lightgray;"|Indoor Temperature & Humidity tags
|-
|-
|<#GW1000FirmwareVersion>
|colspan="4" | (to do)
|GW1000 firmware version string
|-
|colspan="4" style="background:lightgray;"|Outdoor Temperature & Humidity tags
|-
|<#RecentWindChill>
| Legacy Cumulus version 1.8.5
|Wind Chill  (if temperature is below 10°C or 50 °F, then the new Feels Like now available in MX (next item) will report this same value).
| <#RecentWindChill d=48 m=1> reports the wind chill temperature 2 days ago
|-
|<#RecentFeelsLike>
| Available from version 3.6.11 (build 3087) onwards.
| Feels Like Temperature
| <#RecentFeelsLike h=12 m=1> reports the feel like temperature 12 hours ago
|-
|<#RecentHumidex>
| Available from version 3.7.0 (build 3089) onwards.
| Canadian Humidity Index (humidex) Dimensionless - no units
| <#RecentHumidex h=3> reports humidex 3 hours ago
|-
|colspan="4" style="background:lightgray;"|Air Quality tags
|}
|}


== System ==
Special tags returning information about the Windows device hosting Cumulus 1.
[[File:Badge vMx.png]]''If you are running MX, then most tags do not work.''


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:150px"|Web tag_name
!style="width:150px" |Web tag_name
!style="width:600px"|The related description can be changed in 'strings.ini', but below are default descriptions that will be shown in the viewer/editor
!style="width:150px" |Applicability
!style="width:600px" |Function
|-
|-
|<#AirQuality1>
|<#OsVersion>
|Air quality 1
|up to 1.9.4, and MX
|OS version, e.g. "Windows 7 x64 build 7600"
 
Please note this may not return the information you expect!
|-
|-
|colspan="2"|... and so on up to <#AirQuality4>
|<#OsLanguage>
|Both leagacy and MX
|OS language, e.g. "English"
|-
|-
|<#LeakSensor1>
|<#SystemUpTime>
|Leak sensor - 0 or 1
| (not available on MX)
 
[[File:Badge v1.png]] only in legacy Cumulus
|How long the system has been up, e.g. "8 hours 21 minutes"
|-
|-
|colspan="2"|... and so on up to <#LeakSensor4>
|<#ProgramUpTime>
|all releases
|How long Cumulus has been running, e.g. "7 hours 55 minutes"
|-
|-
|<#LightningDistance>
|<#CpuName>
|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 '----')
| (not available on MX)
 
[[File:Badge v1.png]] only in legacy Cumulus
|CPU type, e.g. "Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz"
|-
|-
|<#LightningTime>
|<#CpuCount>
|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 '----')
| (not available on MX)
 
[[File:Badge v1.png]] only in legacy Cumulus
|Number of processors, e.g. "4"
|-
|-
|<#LightningStrikesToday>
|<#MemoryStatus>
|Number of strikes since midnight, default 0
| (not available on MX)
 
[[File:Badge v1.png]] only in legacy Cumulus
|Free and total system RAM, e.g. "4619/8191 MB (free/total)"
|-
|-
|<#UserTemp1>  
|<#DisplayMode>
|User Temperature 1
| (not available on MX)
support for the Ecowitt WH34 (other model types exist and are reported here as if WH34) soil and water temperature sensors
 
[[File:Badge v1.png]] only in legacy Cumulus
|Screen display mode, e.g. "1680x1050, 32 bit"
|-
|-
|colspan="2"|... and so on up to <#UserTemp8> = User temperature 8
|<#AllocatedMemory>
|}
| (not available on MX)


[[File:Badge v1.png]] only in legacy Cumulus
|Amount of memory allocated to Cumulus, e.g. "18.76 MB"
|-
|<#DiskSize>
| (not available on MX)


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.
[[File:Badge v1.png]] only in legacy Cumulus
|Size of disk on which Cumulus is running, e.g. "931.51 GB"
|-
|<#DiskFree>
| (not available on MX)


==Recent History==
[[File:Badge v1.png]] only in legacy Cumulus
|Free space on disk on which Cumulus is running, e.g. "515.36 GB"
|}


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.
== Miscellaneous ==


(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).
All tags are available in all flavours, as far as I know, although ''their output might vary'', and which input/output parameters they permit might vary between Cumulus 1 and MX.


[[#No_Commas]] versions of the array are available for use in script.
{| class="wikitable" border="1"
 
|-
=== Input Parameters ===
!style="width:150px" |Web tag_name
 
!style="width:900px" | Function
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.
 
 
=== During catch-up ===
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.
 
=== Table of Recent History web tags available ===
 
{| class="wikitable" border="1"
|-
|-
!style="width:150px" | Web tag_name
|<#LatestError>
!style="width:600px" | Function
|Displays the last error from the Cumulus 1 error log. (The value is cleared when you click the error light in Cumulus 1).<br />
!style="width:600px" | Parameters example
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).
|-
|-
|colspan="3" style="background:lightgray;"|Time-stamp tag
|<#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
|-
|-
|<#RecentTS>
|<#LatestErrorTime>
|Gives the timestamp of the data that will be returned for any other recent history tag that uses same '''d, h, and m''' parameters
|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
|<#RecentTS h=3 m=1 format="HH:nn"> for cumulus 1; <#RecentTS h=3 m=1 format="HH:mm"> for cumulus MX
|-
|-
|colspan="3" style="background:lightgray;"|Temperature & Humidity tags
|<#ErrorLight>
|1 if the 'error' light is flashing, 0 if not
|-
|-
|<#RecentOutsideTemp>
|<#version>
|Outside Temperature
|The version of Cumulus in use e.g. '1.9.4' or '3.4.1'
| <#RecentOutsideTemp h=3 m=1>&nbsp;<#tempunit> will display the temperature at the start of the period for which <#temptrend> is calculated
|-
|-
|<#RecentWindChill>
|<#build>
|Wind Chill
|The build of Cumulus in use e.g. '10992' for latest Cumulus 1 patch
| <#RecentWindChill d=48 m=1> reports the wind chill temperature 2 days ago
 
(Cumulus MX is under development so new builds are released frequently)
|-
|-
|<#RecentDewPoint>
|<#NewBuildAvailable>
|Dew Point
|'''Only available from release 3.7.0''' onwards, it is checked on start-up and once a day thereafter at a random time
| <#RecentDewPoint h=25> reports the dew point temperature just over a day ago
*Returns a boolean value
**0 - MX running the latest build available
**1 - MX is running an earlier build that the latest public release
|-
|-
|<#RecentHeatIndex>
|<#NewBuildNumber>
|Heat Index
|'''Only available from release 3.7.0''' onwards, it is checked on start-up and once a day thereafter at a random time
| <#RecentHeatIndex m=121> reports the heat index about 2 hours ago
 
Displays the latest public release build number - eg. b3089
|-
|-
|<#RecentHumidity>
|<#realtimeinterval>
|Relative Humidity
|The real time update interval in seconds (integer)
| 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)
|-
|-
|colspan="3" style="background:lightgray;"|Wind
|<#interval>
|The web site update interval in minutes (integer)
|-
|-
|<#RecentWindSpeed>
|<#rollovertime>
|Wind Speed
|The time that the logs rollover to the next day: will always return one of these: 'Midnight', '9 am' or '10 am'
| <#RecentWindSpeed m=10> will display the average wind speed 10 minutes ago
 
This is the end of the meteorological day, so if during Daylight Saving Time rolover is at "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.
|-
|-
|<#RecentWindGust>
|<#update>
|Wind Gust
|The date and time of the last web site update. The default format of the output depends on your locale settings.
|-
|<#LastDataReadT>
|The date/time data was last read from the station. The default format of the output depends on your locale settings.
|-
|<#stationtype>
|The weather station [https://cumuluswiki.org/a/Cumulus.ini#Section:_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 [http://en.wikipedia.org/wiki/Latitude 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<br />
<#latitude> gives "N&nbsp;59& deg;&amp;nbsp;14&amp;#39;&amp;nbsp;33&amp;quot;" for N 59 14 33<br />
<#latitude dp=5> gives "59.24250"


(reports maximum gust from build 1088 of version 1.9.4)
If the "dp" parameter is supplied, then supplying "rc=y" in addition will cause any decimal comma to be converted to a decimal point.
| <#RecentWindGust d=1 m=1> will report the wind gust at approximately the same time yesterday
|-
|-
|<#RecentWindLatest>
| <#latitudeJsEnc>
|Wind Latest. Note: Wind 'Speed', 'Gust' and 'Latest' have the usual Cumulus meanings
|[[File:Badge vMx.png]] Available from version 3.11.0
| 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)
 
JavaScript encoded of previous web tag that is HTML encoded
|-
|-
|<#RecentWindDir>
|<#longitude>
|Wind Direction (instantaneous)
|The station [http://en.wikipedia.org/wiki/Longitude longitude]  (as you entered during setup). Supports an optional 'dp' and 'rc' parameters as per the latitude tag.
| <#RecentWindDir m=10> will tell you which direction the wind was blowing from 10 minutes ago
|-
|-
|<#RecentWindAvgDir>
| <#longitudeJsEnc>
|Wind Direction (average)
|[[File:Badge vMx.png]] Available from version 3.11.0
|<#RecentWindAvgDir d=6> will say what the calculated average wind direction was at this time at the start of the week
 
JavaScript encoded of previous web tag that is HTML encoded
|-
|-
|colspan="3" style="background:lightgray;"|Pressure
|<#altitude>
|The station [http://en.wikipedia.org/wiki/Altitude altitude] value (web tag outputs web encoded format containing figure, '&amp;nbsp;' and units) in either feet or metres just as you entered during setup (so it is more complex to extract number for script arithmetic); e.g. '123&amp;nbsp;m'
|-
|-
|<#RecentPressure>
| <#altitudenoenc>
|Sea-level Pressure
|[[File:Badge vMx.png]] Available from version 3.11.0
| <#RecentPressure h=3 m=1> gives the sea level pressure when <#presstrendval> started tracking the pressure
 
JavaScript encoded of previous web tag that is HTML encoded
|-
|-
|colspan="3" style="background:lightgray;"|Rainfall
|<#location>
|The station location (as you entered during setup)
|-
|-
|<#RecentRainToday>
| <#locationJsEnc>
|Daily rain total from last roll-over to specified time
|[[File:Badge vMx.png]] Available from version 3.11.0
| 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)
 
JavaScript encoded of previous web tag that is plain text
|-
|-
|colspan="3" style="background:lightgray;"|Solar & UV
| <#locationenc>
|[[File:Badge vMx.png]] Available from version 3.10.3
 
HTML encoded version of previous web tag that is JavaScript encoded
|-
|-
|<#RecentSolarRad>
|<#longlocation>
|Solar Radiation
|Longer description of the station location (as you entered during setup)
| 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)
|-
|-
|<#RecentUV>
| <#longlocationJsEnc>
|UV Index
|[[File:Badge vMx.png]] Available from version 3.11.0
| 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)
|}


JavaScript encoded of previous web tag that is plain text
|-
| <#longlocationenc>
|[[File:Badge vMx.png]] Available from version 3.10.3


=== Other weather derivatives ===
HTML encoded version of previous web tag that is JavaScript encoded
|-
|<#forum>
|URL of the forum (as you entered during setup) encoded into a web page menu item by adding colons
For Cumulus 1, this defaults to a Sandaysoft URL that is no longer available, for MX this defaults to the current support forum  (web server site hosted by "Freddie")
|-
| <#forumurl>
|[[File:Badge vMx.png]] Available from version 3.10.0


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.
Same as previous, but just URL, without any additional colons
|-
|<#webcam>
|URL of the webcam (as you entered during setup) encoded into a web page menu item by adding colons. Default is blank. Can be used to link to any other web page that you host (Cumulus does not verify that it is a web can, that is just a label, and the label can be changed on each standard web page individually)
|-
| <#webcamurl>
|[[File:Badge vMx.png]] Available from version 3.10.0


The relevant formulae using JavaScript, adjust for other languages, for some of these are shown below:
Same as previous, but just URL, without any additional colons
|-
|<#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)
|-
|<#LatestNOAAMonthlyReport>
|Gives file name of latest auto-saved NOAA monthly report
|-
|<#LatestNOAAYearlyReport>
|Gives file name of latest auto-saved NOAA yearly report
|-
|colspan="2" style="background:lightgray;"|Options


==== Canadian Humidity Index ====
[[File:Badge vMx.png]] Available from version 3.10.0
|-
| <#Option_useApparent>
| Whether user prefers to see Apparent Temperature or Feels Like Temperature
|-
| <#Option_showSolar>
| Whether user wants to show Solar data or does not not have a solar sensor
|-
| <#Option_showUV>
| Whether user wants to show Ultra Violet data or does not not have a UV sensor
|}


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.
==Units==


Cumulus 1:
Apply to Cumulus 1 and MX, no optional input nor output parameters.
{| class="wikitable" border="1"
|-
!style="width:150px" | Web tag_name
!style="width:600px" | Function
|-
|<#tempunit>
|Unit of temperature being used (Set in Cumulus as [http://en.wikipedia.org/wiki/Centigrade Celsius] or [http://en.wikipedia.org/wiki/Fahrenheit Fahrenheit]) values "&amp;deg;C" or "&amp;deg;F"
|-
| <#tempunitnoenc>
|[[File:Badge vMx.png]] Available from version 3.11.0


H = <#RecentOutsideTemp h=3> + 5/9 * (6.1094 * Math.exp(5417.753 *(1/273.16 - 1/ (273.16 + <#RecentDewPoint h=3> )))-10);
JavaScript encoded of previous web tag that is HTML encoded (i.e. without '''&amp;''' and without '''&deg;''')
 
|-
Cumulus MX:
|<#tempunitnodeg>
 
|The temperature units being used, without a degree symbol, i.e. "F" or "C"
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;
 
==== Apparent Temperature and Feels Like ====
 
Note this apparent temperature 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.  The Australian Apparent temperature 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;
 
Feels Like as implemented at version 3.6.10 (see [[#Feels_Like|Feels Like section below Current condition web tags]]) reports exactly same as wind chill for temperatures '''below''' 10°C or 50°F:
<pre>if(wind_km_h < 4.828) WC = tempDegC;
else{
wind_pow =  Math.pow(wind_km_h, 0.16);
WC = (13.12 + 0.1625 * tempDegC) - (11.37 * wind_pow) + (0.3965 * tempDegC * wind_pow);// Brackets used to ensure "+" is interpreted as addition not concatenation
} </pre>
 
For temperatures '''above''' 20°C or 68°F it uses a different way to calculate apparent temperature that it uses at these higher temperatures (this formula only used for 3.6.10 onwards):
<pre>var actualVaporPress = (humVal/100) * 6.112* Math.exp((17.62*tempDegC)/(243.12 + tempDegC)) / 10.0;  // Not same as at build 3084
/* uses kilometres per hour for wind speed */
var wind_km_h = calcWind(windSpeedStr, windUnit, "km/h");
/*  What Cumulus MX will use to calculate apparent temperature for feels like is changed very slightly */
if(wind_km_h > 72) wind_km_h =72;
AT= (1.04 * tempDegC) + (2 * actualVaporPress) - (0.1805553 * wind_km_h) - 2.7;</pre>
 
For in-between temperatures it uses a more complicated merge of the two formulas for AT and WC as defined above:
<pre>app_temp_mult = ( tempDegC - 10) / 10;
wind_chill_mult = 1 - app_temp_mult;
 
FL= AT * app_temp_mult + WC * wind_chill_mult;</pre>
 
==Today==
 
Many of these web tags are used on the supplied '''todayT.htm''' template, and the supplied '''todayyest.html''' page within the MX admin interface.
 
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).
{| class="wikitable" border="1"
|-
|-
!style="width:150px" | Web tag_name
|<#pressunit>
!style="width:650px" | Function
|Unit of measure for pressure. Possible values: "mb", "hPa", "in"
!style="width:150px" | Time tag_name
|-
|-
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|<#rainunit>
|Unit of measure for rain fall. Possible values: "mm" or "inches"
|-
|-
|<#tempTH>
|<#windunit>
|Today's highest temperature
|Unit of measure for wind speed. Possible values: "m/s", "mph", "km/h", "kts"
|<#TtempTH>
|-
|-
|<#tempTL>
|<#windrununit>
|Today's lowest temperature
|Unit of measure for wind run (distance). Possible values: "km", "miles", "km", "nm" (for wind speeds in m/s, mph, km/h, kts)
|<#TtempTL>
|-
|-
|<#avgtemp>
|<#cloudbaseunit>
|The [[Average_temperature|average]] temperature so far today (calculated from all temperature readings processed by Cumulus)
|The units used for cloudbase value. Possible values:  "ft" or "m"
|n/a
|}
 
==Date & Time==
Both Cumulus 1 and MX support all of these, except where marked as MX only, most of these web tags can be used with output parameters.
{| class="wikitable" border="1"
|-
|-
|<#temprange>
!style="width:150px" |Web tag_name
|The temperature range (<#tempTH> - <#tempTL>) so far today (Cumulus calculates all these tags using Celsius values, but outputs them in your chosen units)
!style="width:600px" | Function
|n/a
|-
|-
|<#apptempTH>
|<#date>
|Today's high apparent temperature
|The current date - format depends on locale you use to run Cumulus
|<#TapptempTH>
|-
|-
|<#apptempTL>
|<#metdate>
|Today's low apparent temperature
|The current meteorological date. The default format depends on the locale you use to run Cumulus
|<#TapptempTL>
*If you use midnight rollover, this returns same date as <#date> (above), but with a different default format.
*If using a 9am/10am rollover:
**After rollover time on current calendar date,  this is same as <#date>, but with a different default format.
**Between midnight and 9am/10am the <#metdate> will return the date associated with previous calendar day, but will still return current time 
 
Legacy website: Can be used with relevant format parameters to [[Customised templates|customise]] '''todayT.htm''' template page to display current meteorological day, to customise '''thismonthT.htm''' template page to display meteorological month, and to customise '''thisyearT.htm''' template page to display correct meteorological year. This will be particularly useful on first and last day of month/year when rollover happens at 9 (or 10) a.m. and the month (and maybe year) is different before and after rollover.
 
[[File:Badge vMx.png]] Earlier MX releases provide a similar web template set, so these can be customised in same way as for legacy Cumulus above (but note capital "M" must be used for any month formatting). From release 3.10.1 the supplied web pages are web server based, there are no web templates to customise, and the supplied '''.json files''' do not include any meteorological date functionality.
|-
|-
|<#feelslikeTH>
|<#timeUTC>
|[[File:Badge vMx.png]] Available from version 3.6.10 Today's high feels like temperature
|The current UTC date/time rather than local date/time.  Example result (actual format depends on locale settings): 18:30 on 30 December 2009. If you want the local date and time, use next tag (below).
|<#TfeelslikeTH>
|-
|-
|<#feelslikeTL>
|<#time>
|[[File:Badge vMx.png]] Available from version 3.6.10 Today's low feels like temperature
|The current time and date. Example result (actual format depends on locale settings): 18:30 on 30 December 2009. If you simply wish the time, use next tag (below).
|<#TfeelslikeTL>
|-
|-
|<#heatindexTH>
|<#timehhmmss>
|Today's high heat index
|The current time (without date). Example format: 18:30:27. You can use output format specifiers to change the way the time is output, but any date specifiers are ignored.
|<#TheatindexTH>
|-
|-
|<#wchillTL>
|<#minute>
|Today's greatest wind chill (i.e. lowest temperature, highest wind speed)
|The current time, just the minutes. Fixed format: 07 (cannot use output format modifiers)
|<#TwchillTL>
|-
|-
|<#dewpointTH>
|<#hour>
|Today's highest dew point
|The current time, just the hour. Fixed format: 07 (cannot use output format modifiers)
|<#TdewpointTH>
|-
|-
|<#dewpointTL>
|<#day>
|Today's lowest dew point
| The current day as a 2-digit number. Fixed format: 07  (cannot use output format modifiers)
|<#TdewpointTL>
|-
|-
|<#humTH>
|<#dayname>
|Today's highest humidity
| The current day as a word.  For example, Monday  (actual format depends on locale settings)
|<#ThumTH>
|-
|-
|<#humTL>
|<#shortdayname>
|Today's lowest humidity
| The current day as a shortened word. Example format: Mon
|<#ThumTL>
|-
|-
|colspan="3" style="background:lightgray;"|Precipitation
|<#month>
|-
|The current month as a 2-digit number. Fixed format: 07 (cannot use output format modifiers)
|<#rrateTM>
|-  
|Today's maximum rain rate
|<#monthname>
|<#TrrateTM>
|The current month as a word. Example format: July
|-
|<#shortmonthname>
|The current month as a shortened word. Example format: Jul
|-
|-
|<#hourlyrainTH>
|<#year>
|Today's highest hourly rain
|The current year as a 4-digit number. Example format: 2009  (cannot use output format modifiers)
|<#ThourlyrainTH>
|-
|-
|<#RG11RainToday>
|<#shortyear>
|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
|The current year as a 2-digit number. Example format: 09 (cannot use output format modifiers)
| n/a
|-
|-
|<#snowfalling>
|<#rollovertime>
|Returns 1 if there is an entry in the Weather Diary for Today and the Snow Falling check box is ticked. Returns 0 otherwise.
|The time that the logs rollover to the next day: 'Midnight', '9 am' or '10 am'
{{Version badge 1}} Not available in Cumulus 1.
 
[[File:Badge vMx.png]] Available from version 3.1.1 - build 3054.  
PHP code example for testing whether before or after rollover given in next entry.
|-
|-
|<#snowdepth>
|<#metdateyesterday>
|If there is an entry in the Weather Diary for Today, returns the value set there. Returns 0 otherwise.
|The previous meteorological date.  The default format depends on the locale you use to run Cumulus
{{Version badge 1}} 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.
*If you use midnight rollover, this returns same date as <#date>, but with a different default format.
[[File:Badge vMx.png]] Available from version 3.1.1 - build 3054 when weather diary editor was added to MX
*If using a 9am/10am rollover:
**After rollover time on current calendar date,  this is same as <#yesterday> (below), but with a different default format.
**Between midnight and 9am/10am the date output by <#metdateyesterday> will be the calendar day before that returned by <#yesterday>, but the time returned is actual local time.
 
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.
 
if you use PHP Hypertext preprocessor, you can output different text for before and after rollover, e.g.
<pre><?php
if('<#yesterday format=dddd>' == '<#metdateyesterday format=dddd>') echo '(calendar date and meteorological date same)';
else echo 'rollover still to happen, these results will be treated as belonging to <#metdate format=dddd>';?></pre>
|-
|-
|<#snowlying>
|<#yesterday>
|Returns 1 if there is an entry in the Weather Diary for Today and the Snow Lying check box is ticked. Returns 0 otherwise.
|Yesterday's date.  The default format depends on the locale you use to run Cumulus  
{{Version badge 1}}Although this tag is not available in Cumulus 1, you can check if <#snowdepth> is non zero for same answer
[[File:Badge vMx.png]] Available from version 3.1.1 - build 3054
|-
|-
|colspan="3" style="background:lightgray;"|Pressure
|<#update>
|The date and time of the last web site update.  The default format depends on the locale you use to run Cumulus
|-
|-
|<#pressTH>
|<#timeJavaScript>
|Today's highest pressure reading
| [[File:Badge vMx.png]]Available from version 3.5.2, so not available in legacy software
|<#TpressTH>  
 
The JavaScript '''Date''' object contains the number of miliseconds since 00:00:00.000 UTC on 1st January 1970, that date and time is known as the UNIX Epoch.  In JavaScript, you can use <tt>Math.floor(new Date().getTime()/1000.0)</tt> This getTime method returns the time in milliseconds.  The web tag returns an integer (currently with 13 digits) representing the number of milliseconds since the UNIX epoch when the web tag was processed. It can be used in a script where you wish to re-express other times output by Cumulus MX into UTC (Coordinated Universal Time).  Mac OS X uses 00:00:00.000 UTC on 1st January 2001 as the starting time and date for its millisecond count, so that is considerably lower.
 
Note that UTC is calculated using 9192631770 times a particular transition time for Caesium 133 as a basis for 1 second. GMT (Greenwich Mean Time) is calculated on the basis that 1 second is 1/86400 of the time taken for a whole (day) rotation of the Earth. UT1 (or solar time) is calculated from various space measurements. Periodically, leap seconds are added to UTC to realign it with UT1, but these leap seconds are not added to the count of milliseconds represented by this web tag.
 
Do be aware that some devices will use a 32 bit signed integer to represent this number, and that will stop working on 19 January 2038, the year 2038 problem for computing world.
|-
|-
|<#pressTL>
|<#timeUnix>
|Today's lowest pressure reading
| [[File:Badge vMx.png]]Available from version 3.7.0, so not available in legacy software
|<#TpressTL>
 
Unix tracks the number of seconds since the UNIX epoch. So this web tag can be used when you do not want the millisecond accuracy of the previous web tag. Like previous web tag this relates to UTC, so see details for that tag to find out more. This is equivalent in PHP 5 and PHP 7 to '''time();''' (in PHP 8, a parameter is mandatory for time function, so the call changes).
|-
|-
|colspan="3" style="background:lightgray;"|Wind
|<#LastDataReadT>
|The date/time data was last read from the station. Default format for this tag is like this example '''18:30 on 30 December 2009''', but output parameters for both date and time can modify this to include seconds in 1.9.x builds and most MX builds such as per this example  '<#LastDataReadT format="yyyy-MM-dd HH:mm:ss">'.
|-
|-
|<#windTM>
|<#DaysSince30Dec1899>  
|Today's maximum (average) wind speed
|Day count (gives whole and fractional part) Example: 41250.6523310301
|<#TwindTM>
|-
|-
|<#wgustTM>  
|<#recordsbegandate>
|Today's maximum wind gust
|Date when records began (appears twice on "recordT.htm" provided in standard web page, and used to calculate next tag, but ignored for all other Cumulus processing). Any output parameters valid for a date can be used here, don't forget differences in modifiers for Cumulus 1 and MX. There is no time associated with this web tag.  The default format is like 30 December 2009, please note although this web tag reports the value associated with  [b]StartDate=dd/MM/yyyy[/b] (see [[Cumulus.ini#Section:_Station]]), the format there is short-date format and different to default format for this web tag.
|<#TwgustTM>
|-
|-
|<#bearingTM>
|<#DaysSinceRecordsBegan>
|The wind bearing at the time of today's high gust (<#wgustTM>) in degrees
|Day count since Cumulus records started
|<#TwgustTM>
|}
|-
 
|<#Tbeaufort>
==Today==
|Today's highest wind speed, expressed in the Beaufort scale
 
|<#TwindTM>
Cumulus allows some control over the time that "Today" begins:
* For the weather diary feature (originally called "The Log" if you have a very old release or look at old posts on the support forum), Cumulus classifies what you enter by a date. The hour of the day, when that date is first applied, is set in the configuration by the '''SnowDepthHour''' (called that as the only tag name available in the legacy Cumulus was for Snow Depth.
**  The default snow depth hour is 9 for the legacy Cumulus and 0 for MX.
* Readings from your weather station are assigned to the "Today" based on 3 options for [[Meteorological day]]
*# starting at 9:00 am, based on winter time, so switching to 10:00 during Daylight Saving (summer) time, or
*# starting at 9:00 am, all year round, or
*# aligned with calendar days, so today starts at midnight
 
The practice for professional meteorologists varies between nations, some of the traditional practices listed below have been abandoned now most weather reading is by machines:
* Generally, Meteorologists report snowfall, and snow days, on a calendar day basis (i.e. midnight to midnight).
* Most frequently, the Lowest temperature for a day is that recorded prior to the start time for Highest temperature.
** This is because Meteorologists in the past took manual observations at one, or more, fixed times during each day (9 a.m. was the most common, and the closest lowest temperature was generally earlier that morning, while the closest highest temperature was generally the following afternoon)
* Sunshine hours were recorded from sunrise to sunset, so assigned to "Today" aligned with calendar day
* The way that total rainfall was reported varied:
** Some nations assigned used days that ended at 9 a.m. so rainfall was recorded against the end date
** Sometimes totals were recorded separately for 9 a.m to 3 p.m, with 3 p.m. to 9 a.m being assigned to next day (again these were manual observation times)
** In other cases, the total for 9 p.m to 9 a.m was recorded separately, and possibly assigned to the day after the total for 9 a.m. to 9 p.m.
 
Cumulus does not support most of these practices. The independence of the start time for weather diary and weather station related web tags means needs to be remembered when labelling web tags from the two tables below.  Steve Loft assumed that you would use 9 a.m. as start time for both, but not care when snow fell, as it often has in the UK, after Summer Time has begun, so weather station tags were by default reporting from 10 a.m. local time and snow as at 9 a.m.
 
In MX, if you choose 9 a.m. (optionally 10 a.m. in summer) for rollover, so all the standard derivative are assigned to the date the meteorological day starts as Today, but the sunshine hours recorded against today will be from midnight on the said date.
 
===Weather Diary===
 
This first table lists all the web tags available for reporting what is recorded in the weather diary. Just to be clear, the web tags shown below, will report data for previous day if the current time is before the snow depth hour setting, and report data for the current day if the current time matches the snow depth hour or is later.
{| class="wikitable" border="1"
|-
|-
|<#Tbeaufortnumber>
!style="width:150px" | Web tag_name
|Today's high wind speed on the Beaufort scale, without a leading "F", e.g. "6"
!style="width:650px" | Function
|<#TwindTM>
|-
|<#windrun>
|The total wind run so far today
|N/A
|-
|-
|<#domwindbearing>
|<#snowdepth>
|Today's dominant wind direction in degrees
|Meteorologists report snow depth in cm, so this is default unit for Cumulus.
|n/a
 
If there is no entry in Weather Diary for the day explained above, reports zero.
 
[[File:Badge vMx.png]] Input is to 2 decimal places. Available from version 3.1.1 - build 3054 when weather diary editor was added to MX.  MX allows output in centimetres with decimal places without any script. You can't change the units shown in admin interface, but your value can be input as inches to 2 decimal places if you ignore "cm" that is displayed in that interface.
 
[[File:Badge v1.png]] Input and output is always as integer. Available from very early builds, weather diary input amended from version 1.8.6 14th April 2009 to allow units to be specified on diary edit screen. If you choose to enter as whole millimetres,  you can use JavaScript (or another script language) on your web page to divide the web tag by 10 and get centimetres to 1 decimal place on output.
|-
|-
|<#domwinddir>
|colspan="2" style="background:pink;"|MX only
|Today's dominant wind direction as compass point
|n/a
|-
|-
|<#Tbeaudesc>
|<#snowlying>
|Beaufort 'description' for today's high wind speed
| [[File:Badge vMx.png]] Available from version 3.1.1 - build 3054.   If there is no entry in Weather Diary for the day explained above, , this web tag returns Null. Otherwise reports 1 if tick in diary, 0 is unticked.
|n/a
 
|-
[[File:Badge v1.png]] Although this tag is not available in Cumulus 1, your web page can use a script to check if <#snowdepth> is non zero, as that means snow is lying
|colspan="3" style="background:lightgray;"|Miscellaneous
|-
|<#ET>
|Today's [http://en.wikipedia.org/wiki/Evapotranspiration 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 [[FAQ#It.27s_January_1st_and_my_.27rain_since_midnight.27_and.2For_.27last_24_hours_rain.27_and.2For_Evapotranspiration_are_wrong.2Fnegative|this FAQ]]."
|N/A
|-
|<#heatdegdays>
|Today's [[Heat/cold_degree_days_and_Chill_hours|heating degree days]]
|n/a
|-
|<#cooldegdays>
|Today's [[Heat/cold_degree_days_and_Chill_hours|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>
|-
|-
|<#snowfalling>
| [[File:Badge vMx.png]] Available from version 3.1.1 - build 3054.    If there is no entry in Weather Diary for the day explained above, , this web tag returns Null. Otherwise reports 1 if tick in diary, 0 is unticked.
[[File:Badge v1.png]] Not available in Cumulus 1. There is no web page workaround, unless you write a script that reads [[Weather Diary]] and makes relevant information available on your web server.
|}
|}


==Yesterday==
===Today.ini===


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!
As explained earlier, these tag names relate to latest [[Meteorological day]] and they are populated from information held in [[today.ini]], as the sub-section title suggests; except for Sunshine Hours which relate to latest Calendar day and can be taken from either [[yesterday.ini]] or "today.ini" depending on (respectively) whether before or after rollover time if that is not midnight.


Many of these web tags are used on the supplied '''yesterdayT.htm''' template, and the supplied '''todayyest.html''' page within the MX admin interface.
Where a tag name reports a value specific to a past time in today-so-far, there will also be a tag name that can give the time of day, shown in same row of table below. For those that cover whole day so far, the final column contains "n/a". Please note none of the time 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.


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'.
Also as explained earlier, there is some inconsistency in naming with "T" not included in all tag names, "T" is used in conjunction with "H" or "L" as a suffix for extreme values/time-stamps, but a prefix "T" can identify today's value, or prefix "T" can signify a time-stamp.
 
In the legacy '''todayT.htm''' template, in the legacy "/web" folder, use was made of a selection of the tag names listed here.
 
If you are using MX, the today and yesterday page in the [[MX_Administrative_Interface]] shows similar information by using the [[Cumulus_MX_Local_API#Today.2FYesterday_Data|local application programming interface]].
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:150px" | Web tag_name
!style="width:150px" | Web tag_name
!style="width:550px" | Function
!style="width:650px" | Function
!style="width:150px" | Time
!style="width:150px" | Time tag_name
|-
|-
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|-
|-
|<#tempYH>
|<#tempTH>
|Yesterday's highest temperature
|Today's highest temperature
|<#TtempYH>
|<#TtempTH>
|-
|-
|<#tempYL>
|<#tempTL>
|Yesterday's lowest temperature
|Today's lowest temperature
|<#TtempYL>
|<#TtempTL>
|-
|-
|<#avgtempY>
|<#avgtemp>
|Yesterday's average temperature
|The [[Average_temperature|average]] temperature so far today (calculated from all temperature readings processed by Cumulus, [[Today.ini|today.ini]] stores a cumulative aggregate and counts the number of values processed, so a division gives this output)
|n/a
|n/a
|-
|-
|<#temprangeY>
|<#temprange>
|The temperature range (max - min) yesterday
|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
|n/a
|-
|-
|<#apptempYH>
|<#apptempTH>
|Yesterday's high apparent temperature
|Today's high apparent temperature
|<#TapptempYH>
|<#TapptempTH>
|-
|-
|<#apptempYL>
|<#apptempTL>
|Yesterday's low apparent temperature
|Today's low apparent temperature
|<#TapptempYL>
|<#TapptempTL>
|-
|-
|<#feelslikeYH>
|colspan="3" style="background:pink;"|MX only
|Yesterday's high feels like temperature
|<#TfeelslikeYH>
|-
|-
|<#feelslikeYL>
|<#feelslikeTH>
|Yesterday's low feels like temperature
|[[File:Badge vMx.png]] Available from version 3.6.10  (NOT AVAILABLE IN CUMULUS 1)
|<#TfeelslikeYL>
 
Today's high feels like temperature
 
Please see sub-section below current conditions if you are using an earlier 3.6.x version of MX.
|<#TfeelslikeTH>
|-
|-
|<#heatindexYH>
|<#feelslikeTL>
|Yesterday's high heat index
|[[File:Badge vMx.png]] Available from version 3.6.10    (NOT AVAILABLE IN CUMULUS 1)
|<#TheatindexYH>
 
Today's low feels like temperature
|<#TfeelslikeTL>
|-
|-
|<#wchillYL>
|<#humidexTH>
|Yesterday's greatest wind chill (i.e. lowest temperature)
|[[File:Badge vMx.png]] Available from version 3.7.0    (NOT AVAILABLE IN CUMULUS 1)
|<#TwchillYL>
 
Today's high Canadian Humidity Index
 
Please see sub-section below current conditions if you are using Cumulus 1 or an earlier version of MX.
|<#ThumidexTH>
|-
|-
|<#dewpointYL>
|colspan="3" style="background:pink;"|Both legacy and MX
|Yesterday's lowest dew point
|<#TdewpointYL>
|-
|-
|<#dewpointYH>
|<#heatindexTH>
|Yesterday's highest dew point
|Today's high heat index
|<#TdewpointYH>
|<#TheatindexTH>
|-
|-
|<#humYH>
|<#wchillTL>
|High humidity yesterday
|Today's greatest wind chill (i.e. lowest temperature, highest wind speed)
|<#ThumYH>
|<#TwchillTL>
|-
|-
|<#humYL>
|<#dewpointTH>
|Low humidity yesterday
|Today's highest dew point
|<#ThumYL>
|<#TdewpointTH>
|-
|-
|colspan="3" style="background:lightgray;"|Rainfall
|<#dewpointTL>
|Today's lowest dew point
|<#TdewpointTL>
|-
|-
|<#rfallY>
|<#humTH>
|The total rainfall for yesterday according to the connected weather station
|Today's highest humidity
|n/a
|<#ThumTH>
|-
|-
|<#RG11RainYest>
|<#humTL>
|The total rainfall for yesterday according to an RG-11 rain sensor configured in "Tipping Bucket" mode
|Today's lowest humidity
|n/a
|<#ThumTL>
|-
|colspan="3" style="background:lightgray;"|Precipitation
|-
|<#rrateTM>
|Today's maximum rain rate
|<#TrrateTM>
|-
|-
|<#rrateYM>
|<#hourlyrainTH>
|Yesterday's maximum rain rate
|Today's highest hourly rain
|<#TrrateYM>
|<#ThourlyrainTH>
|-
|-
|<#hourlyrainYH>
|<#RG11RainToday>
|Yesterday's highest hourly rain
|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
|<#ThourlyrainYH>
| n/a
|-
|-
|colspan="3" style="background:lightgray;"|Pressure
|colspan="3" style="background:lightgray;"|Pressure
|-
|-
|<#pressYH>
|<#pressTH>
|Yesterday's highest pressure reading
|Today's highest pressure reading
|<#TpressYH>  
|<#TpressTH>  
|-
|-
|<#pressYL>
|<#pressTL>
|Yesterday's lowest pressure reading
|Today's lowest pressure reading
|<#TpressYL>  
|<#TpressTL>  
|-
|-
|colspan="3" style="background:lightgray;"|Wind
|colspan="3" style="background:lightgray;"|Wind
|-
|-
|<#windYM>
|<#windTM>
|Yesterday's maximum (average) wind speed
|Today's maximum (average) wind speed
|<#TwindYM>
|<#TwindTM>
|-
|-
|<#wgustYM>  
|<#wgustTM>  
|Yesterday's maximum wind gust
|Today's maximum wind gust
|<#TwgustYM>
|<#TwgustTM>
|-
|-
|<#bearingYM>
|<#bearingTM>
|The wind bearing at the time of yesterday's high gust
|The wind bearing at the time of today's high gust (<#wgustTM>) in degrees
|<#TwgustYM>
|<#TwgustTM>
|-
|-
|<#Ybeaufort>
|<#Tbeaufort>  
|Yesterday's highest wind speed, expressed in the Beaufort scale
|Today's highest wind speed, expressed in the Beaufort scale
|<#TwindYM>
|<#TwindTM>
|-
|-
|<#Ybeaufortnumber>
|<#Tbeaufortnumber>
|Yesterday's high wind speed on the Beaufort scale, without a leading "F", e.g. "6"
|Today's high wind speed on the Beaufort scale, without a leading "F", e.g. "6"
|<#TwindYM>
|<#TwindTM>
|-
|<#windrun>
|The total wind run so far today
|N/A
|-
|-
|<#Ybeaudesc>
| <#windAvg>
|Beaufort 'description' for yesterday's high wind speed
| [[File:Badge vMx.png]] (Available from release 3.12.0 onwards)
|n/a
 
The wind run divided by time passed since rollover to express it as an average wind speed
| n/a
|-
|-
|<#domwindbearingY>
|<#domwindbearing>
|Yesterday's dominant wind direction in degrees
|Today's dominant wind direction in degrees
|n/a
|n/a
|-
|-
|<#domwinddirY>
|<#domwinddir>
|Yesterday's dominant wind direction as compass point
|Today's dominant wind direction as compass point
|n/a
|n/a
|-
|-
|<#windrunY>
|<#Tbeaudesc>
|The total wind run for yesterday
|Beaufort 'description' for today's high wind speed
|n/a
|n/a
|-
|-
|colspan="3" style="background:lightgray;"|Miscellaneous
|colspan="3" style="background:lightgray;"|Miscellaneous
|-
|-
|<#heatdegdaysY>
|<#ET>
|Yesterday's [[Heat/cold_degree_days_and_Chill_hours|heating degree days]]
|Today's [http://en.wikipedia.org/wiki/Evapotranspiration 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 [[FAQ#It.27s_January_1st_and_my_.27rain_since_midnight.27_and.2For_.27last_24_hours_rain.27_and.2For_Evapotranspiration_are_wrong.2Fnegative|this FAQ]]."
|N/A
|-
|<#heatdegdays>
|Today's [[Heat/cold_degree_days_and_Chill_hours|heating degree days]]
|n/a
|-
|<#cooldegdays>
|Today's [[Heat/cold_degree_days_and_Chill_hours|cooling degree days]]
|n/a
|n/a
|-
|-
|<#cooldegdaysY>
|<#solarTH>
|Yesterday's [[Heat/cold_degree_days_and_Chill_hours|cooling degree days]]
|Today's high solar radiation value (Solar sensor needed)
|<#TsolarTH>
|-
|<#UVTH>
|Today's high UV Index (UV sensor needed)
|<#TUVTH>
|-
|<#SunshineHours>
|Today's hours of sunshine so far. Added in Cumulus 2, then to 1.9.1 build 957, also available in MX. From version 3.7.0 takes a parameter "dp=n" so the number of decimal places required can be specified
|n/a
|n/a
|-
|-
|<#solarYH>
|colspan="3" style="background:pink;"|MX only
|Yesterday's high solar radiation value (Solar sensor needed)  
|-
|<#TsolarYH>
|<#LightningStrikesToday>
|Number of strikes since midnight, default 0  - Added at 3.2.0 - b3056, but see subsequent release announcements as the handling of lightning was improved gradually over several subsequent releases.
 
(other lightning tags can be found in [[#Current_Conditions|Current Conditions table]])
|-
|-
|<#UVYH>
| <#chillhoursToday>
|Yesterday's high UV Index (UV sensor needed)  
| The incremental chill hours figure since start of today (tag name available from version 3.12.0 beta build 3134, but the coding to process this web tag has a bug at time of adding this note to this Wiki page, as it may incorrectly report 99.99; hopefully a calculation using <#Ychillhours> and <#chillhours> will work better)
|<#TUVYH>
 
(Compare with Cumulative seasonal Chill Hours at end of today <#chillhours> found in [[#Current_Conditions|Current Conditions table]])
|}
|}


==Monthly==
== No Commas ==


This table shows the web tags used on the '''thismonthT.htm''' web page,and the '''records.html''' page (accessed by penultimate tab) in the admin interface.
'''This section is for those locales where a comma is used instead of a full stop to separate the integer and decimal parts of a number.''' ''This section on this Wiki page was written for the legacy Cumulus (1.9.4) software.'' Although tag names in this section can be used in Cumulus MX, for backwards compatibility, there is now a better way to ensure that the value output by web tags can be understood by script languages which expect a full stop between the integer and decimal parts of a number.


Because the rainfall this month does not appear on '''thismonthT.htm''' web page, it is shown in [[#Current_Conditions|indexT.htm]] table earlier in this article which is for the web page where it does appear.
Note that Cumulus does not use thousand separators, so the only places a comma can be used are as a field separator, or as a decimal separator. Obviously it cannot be used for both.  Some computer languages like JavaScript will not accept a comma being used for this purpose.
 
===MX===
 
Cumulus MX uses JavaScript Object Notation files for many of its data transfers.
 
From '''release 3.5.4''' build 3075, most web tags (one notable exception is indoor temperature <#intemp> where rc parameter not available until release 3.6.8 build 3084), that produce decimal number output now support the "'''rc=y'''" option. e.g. <tt><#tempYH rc=y></tt> will report yesterday's highest temperature using a full stop to separate decimal part where the locale would normally use a comma.
 
===Legacy Cumulus===
 
Cumulus 1.9.4 uses JavaScript for various tasks, as do various third party web pages.
 
From '''version 1.9.3''' build 1045, Cumulus 1 (and MX) has provided some current conditions web tags, some today web tags, and some recent history web tags in an alternative format where (regardless of locale) the number is always output in a format that uses a decimal point. They are listed in the sub-sections that follow and all correspond to the same tag  name with the letters 'RC' removed that has been listed in respective sections of this Wiki page.
 
====RC CURRENT CONDITIONS:====
 
<#RCtemp>, <#RCdew>, <#RCheatindex>, <#RChum>, <#RCinhum>, <#RCintemp>, <#RCpress>, <#RCrfall>, <#RCrrate>, <#RCwchill>, <#RCwgust>, <#RCwspeed>, <#RCwlatest>
 
====RC TODAY:====
 
<#RCpressTH>,  <#RCpressTL>,  <#RCrrateTM>,  <#RCtempTH>, <#RCtempTL>, <#RCwgustTM>,  <#RCdewpointTH>, <#RCdewpointTL>, <#RCwchillTL>, <#RCheatindexTH>, <#RCapptempTH>, <#RCapptempTL>
 
====RC RECENT HISTORY:====
 
<#RCRecentOutsideTemp>, <#RCRecentWindSpeed>, <#RCRecentWindGust>, <#RCRecentWindLatest>, <#RCRecentWindChill>, <#RCRecentDewPoint>, <#RCRecentHeatIndex>, <#RCRecentPressure>, <#RCRecentRainToday>, <#RCRecentUV>
 
Although 'Apparent Temperature' is not included as a tag, it can be [[FAQ#What_formula_does_Cumulus_use_for_Apparent_Temperature.3F | calculated]] in a script from the RC tags for 'outside temperature', 'wind speed', and 'relative humidity' values. In php language this is <tt>$RCapptempCALC =  round(<#temp> + (0.33 * (<#hum> / 100 * 6.105 * exp (17.27 * <#temp> / (237.7 + <#temp>) ))) - (0.7 * $wspeed) - 4.0, 2);</tt>.
 
There are other derivatives that can be calculated similarly from a set of simultaneous values, as described below the recent history section.
 
==Yesterday==
 
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!


The web tags in the date column output dates in the format "dd MMMM" (for once this is same for Cumulus 1 and Cumulus MX). Should you require a different output format, this can be changed using the [[#Time.2FDate_.27format.27_Parameter|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. Do make sure that you get the web tag names right and the output form at parameters right.
Many of these web tags are used on the supplied '''yesterdayT.htm''' template.


As another example of inconsistency in how web tags added in different versions are coded, there are two web tags (highest minimum/lowest maximum temperatures) where a standard web tag is not provided by Cumulus (1 or MX) for the associated time-stamp. Consequently, for these 2 (and their corresponding tags in the this year group), there are mandatory output parameters required as shown in the table. Obviously Cumulus 1 lets you use "NN", "nn", "MM", or "mm" for the minutes, but minutes can only be represented in one way in Cumulus MX.
If you are using MX, the today and yesterday page in the [[MX_Administrative_Interface]] shows similar information by using the [[Cumulus_MX_Local_API#Today.2FYesterday_Data|local application programming 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'.
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:150px"|Web tag_name
!style="width:150px" | Web tag_name
!style="width:300px"|Function
!style="width:550px" | Function
!style="width:150px"|Time
!style="width:150px" | Time
!style="width:150px"|Date
|-
|-
|colspan="4" style="background:lightgray;"|Temperature & Humidity
|colspan="3" style="background:pink;"|Legacy and MX
|-
|-
|<#MonthTempH>
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|This months high temperature
|<#MonthTempHT>
|<#MonthTempHD>
|-
|-
|<#MonthTempL>
|<#tempYH>
|This months low temperature
|Yesterday's highest temperature
|<#MonthTempLT>
|<#TtempYH>
|<#MonthTempLD>
|-
|-
|<#MonthMinTempH>
|<#tempYL>
|This months highest daily minimum temperature
|Yesterday's lowest temperature
|[[File:badge v1.png]]<#MonthMinTempHD format=hh:nn> or <#MonthMinTempHD format=HH:mm> for Cumulus 1, 
|<#TtempYL>
[[File:Badge vMx.png]] <#MonthMinTempHD format=HH:mm> for Cumulus MX
|<#MonthMinTempHD>
|-
|-
|<#MonthMaxTempL>
|<#avgtempY>
|This months lowest daily maximum temperature
|Yesterday's average temperature
|[[File:badge v1.png]]<#MonthMaxTempLD format=HH:mm> or <#MonthMaxTempLD format=hh:nn> for Cumulus 1,
|n/a
[[File:Badge vMx.png]]<#MonthMaxTempLD format=HH:mm> for Cumulus MX
|<#MonthMaxTempLD>
|-
|-
|<#MonthHighDailyTempRange>
|<#temprangeY>
|High Daily Temp Range
|The temperature range (max - min) yesterday
|n/a
|n/a
|<#MonthHighDailyTempRangeD>
|-
|-
|<#MonthLowDailyTempRange>
|<#apptempYH>
|Low Daily Temp Range
|Yesterday's high apparent temperature
|n/a
|<#TapptempYH>
|<#MonthLowDailyTempRangeD>
|-
|-
|<#MonthHeatIndexH>
|<#apptempYL>
|This months high heat index
|Yesterday's low apparent temperature
|<#MonthHeatIndexHT>
|<#TapptempYL>
|<#MonthHeatIndexHD>
|-
|-
|<#MonthWChillL>
|colspan="3" style="background:pink;"|MX only
|This months greatest wind chill (i.e. lowest temperature)
|<#MonthWChillLT>
|<#MonthWChillLD>
|-
|-
|<#MonthAppTempH>
| <#Ychillhours>
|This months high apparent temperature
| The Cumulative [[Heat/cold_degree_days_and_Chill_hours#Chill_Hours_and.2For_Air_Frost|Chill Hours]] as recorded at rollover (the end of meteorological yesterday) (Available from release 3.12.0 onwards)
|<#MonthAppTempHT>
| n/a
|<#MonthAppTempHD>
|-
|-
|<#MonthAppTempL>
| <#chillhoursYest>
|This months low apparent temperature
| The incremental [[Heat/cold_degree_days_and_Chill_hours#Chill_Hours_and.2For_Air_Frost|Chill Hours]] change yesterday (Available from release 3.12.0 onwards)
|<#MonthAppTempLT>
 
|<#MonthAppTempLD>
(compare with <#chillhoursToday> described in [[#Today.ini]] table)
| n/a
|-
|-
|<#MonthFeelsLikeH>
|<#feelslikeYH>
|This months highest feels like temperature (available from [File:Badge vMx.png]] 3.6.0)
|[[File:Badge vMx.png]] Available from version 3.6.10
|<#MonthFeelsLikeHT>
 
|<#MonthFeelsLikeHD>
Yesterday's high feels like temperature
|<#TfeelslikeYH>
|-
|-
|<#MonthFeelsLikeL>
|<#feelslikeYL>
|This months lowest feels like temperature (available from [File:Badge vMx.png]] 3.6.0)
|Available from version 3.6.10
|<#MonthFeelsLikeLT>
 
|<#MonthFeelsLikeLD>
Yesterday's low feels like temperature
|<#TfeelslikeYL>
|-
|-
|<#MonthDewPointH>
|<#humidexYH
|This months high dew point
|Available from version 3.7.0
|<#MonthDewPointHT>
 
|<#MonthDewPointHD>
Yesterday's high Canadian Humidity Index
|<#ThumidexYH>
|-
|-
|<#MonthDewPointL>
|colspan="3" style="background:pink;"|Legacy and MX
|This months low dew point
|<#MonthDewPointLT>
|<#MonthDewPointLD>
|-
|-
|<#MonthHumH>
|<#heatindexYH>
|This months highest humidity
|Yesterday's high heat index
|<#MonthHumHT>
|<#TheatindexYH>
|<#MonthHumHD>
|-
|-
|<#MonthHumL>
|<#wchillYL>
|This months lowest humidity
|Yesterday's greatest wind chill (i.e. lowest temperature)
|<#MonthHumLT>
|<#TwchillYL>
|<#MonthHumLD>
|-
|-
|colspan="4" style="background:lightgray;"|Pressure
|<#dewpointYL>
|Yesterday's lowest dew point
|<#TdewpointYL>
|-
|-
|<#MonthPressH>
|<#dewpointYH>
|This months highest pressure
|Yesterday's highest dew point
|<#MonthPressHT>
|<#TdewpointYH>
|<#MonthPressHD>
|-
|-
|<#MonthPressL>
|<#humYH>
|This months lowest pressure
|High humidity yesterday
|<#MonthPressLT>
|<#ThumYH>
|<#MonthPressLD>
|-
|-
|colspan="4" style="background:lightgray;"|Wind
|<#humYL>
|Low humidity yesterday
|<#ThumYL>
|-
|-
|<#MonthGustH>
|colspan="3" style="background:lightgray;"|Rainfall
|This months highest wind gust
|<#MonthGustHT>
|<#MonthGustHD>
|-
|-
|<#MonthWindH>
|<#rfallY>
|This months highest wind speed
|The total rainfall for yesterday according to the connected weather station
|<#MonthWindHT>
|n/a
|<#MonthWindHD>
|-
|-
|<#MonthWindRunH>
|<#RG11RainYest>
|High Daily Wind Run
|The total rainfall for yesterday according to an RG-11 rain sensor configured in "Tipping Bucket" mode
|n/a
|n/a
|<#MonthWindRunHD>
|-
|-
|colspan="4" style="background:lightgray;"|Rainfall
|<#rrateYM>
|Yesterday's maximum rain rate
|<#TrrateYM>
|-
|-
|<#MonthRainRateH>
|<#hourlyrainYH>
|This months highest rainfall rate
|Yesterday's highest hourly rain
|<#MonthRainRateHT>
|<#ThourlyrainYH>
|<#MonthRainRateHD>
|-
|-
|<#MonthHourlyRainH>
|colspan="3" style="background:lightgray;"|Pressure
|This months highest hourly rain
|<#MonthHourlyRainHT>
|<#MonthHourlyRainHD>
|-
|-
|<#MonthDailyRainH>
|<#pressYH>
|This months greatest daily rain
|Yesterday's highest pressure reading
|n/a
|<#TpressYH>  
|<#MonthDailyRainHD>
|-
|-
|<#MonthLongestDryPeriod>
|<#pressYL>
|Longest dry period ending this month (days)
|Yesterday's lowest pressure reading
|n/a
|<#TpressYL>  
|<#MonthLongestDryPeriodD>
|-
|-
|<#MonthLongestWetPeriod>
|colspan="3" style="background:lightgray;"|Wind
|Longest period of rain every day, ending this month (days)
|n/a
|<#MonthLongestWetPeriodD>
|}
 
==Yearly==
This table shows the web tags used on the "thisyearT.htm" web page, and the '''records.html''' page (accessed by final tab) in the admin interface.
 
Because the rainfall this year does not appear on '''thisyearT.htm''' web page, it is shown in [[#Current_Conditions|indexT.htm]] table earlier in this article which is for the web page where it does appear.
 
The web tags in the date column output dates in the format "dd MMMM" (for once this is same for Cumulus 1 and Cumulus MX). Should you require a different output format, this can be changed using the [[#Time.2FDate_.27format.27_Parameter|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. Do make sure that you get the web tag names right and the output form at parameters right.
 
As another example of inconsistency in how web tags added in different versions are coded, there are two web tags (highest minimum/lowest maximum temperatures) where a standard web tag is not provided by Cumulus (1 or MX) for the associated time-stamp. Consequently, for these 2 (and their corresponding tags in the this month group), there are mandatory output parameters required as shown in the table. Obviously Cumulus 1 lets you use "NN", "nn", "MM", or "mm" for the minutes, but minutes can only be represented in one way in Cumulus MX.
 
Remember that the Year-to-date runs from roll-over time on 1 January for all web tags listed here. Although, some web tags represent seasonal derivatives, i.e. where you define the month from which they start counting, this does not apply to any listed in this group.
 
 
{| class="wikitable" border="1"
|-
|-
!style="width:150px"|Web tag_name
|<#windYM>
!style="width:300px"|Function
|Yesterday's maximum (average) wind speed
!style="width:350px"|Time
|<#TwindYM>
!style="width:150px"|Date
|-
|-
|colspan="4" style="background:lightgray;"|Temperature & Humidity
|<#wgustYM>
|Yesterday's maximum wind gust
|<#TwgustYM>
|-
|<#bearingYM>
|The wind bearing at the time of yesterday's high gust
|<#TwgustYM>
|-
|-
|<#YearTempH>
|<#Ybeaufort>
|This years highest temperature
|Yesterday's highest wind speed, expressed in the Beaufort scale
|<#YearTempHT>
|<#TwindYM>
|<#YearTempHD>
|-
|-
|<#YearTempL>
|<#Ybeaufortnumber>
|This years lowest temperature
|Yesterday's high wind speed on the Beaufort scale, without a leading "F", e.g. "6"
|<#YearTempLT>
|<#TwindYM>
|<#YearTempLD>
|-
|-
|<#YearHighDailyTempRange>
|<#Ybeaudesc>
|High Daily Temp Range
|Beaufort 'description' for yesterday's high wind speed
|n/a
|n/a
|<#YearHighDailyTempRangeD>
|-
|-
|<#YearLowDailyTempRange>
|<#domwindbearingY>
|Low Daily Temp Range
|Yesterday's dominant wind direction in degrees
|n/a
|n/a
|<#YearLowDailyTempRangeD>
|-
|-
|<#YearHeatIndexH>
|<#domwinddirY>
|This years highest heat index
|Yesterday's dominant wind direction as compass point
|<#YearHeatIndexHT>
|n/a
|<#YearHeatIndexHD>
|-
|-
|<#YearWChillL>
|<#windrunY>
|This years greatest wind chill (i.e. lowest temperature)
|The total wind run for yesterday
|<#YearWChillLT>
|n/a
|<#YearWChillLD>
|-
|-
|<#YearAppTempH>
|colspan="3" style="background:pink;"|MX only
|This years highest apparent temperature
|<#YearAppTempHT>
|<#YearAppTempHD>
|-
|-
|<#YearAppTempL>
| <#windAvgY>
|This years lowest apparent temperature
| [[File:Badge vMx.png]] (Available from release 3.12.0 onwards)
|<#YearAppTempLT>
 
|<#YearAppTempLD>
The wind run yesterday divided by 24 hours to express it as an average wind speed
| n/a
|-
|-
|<#YearFeelsLikeH>
|colspan="3" style="background:pink;"|Legacy and MX
|This years highest feels like temperature (available from 3.6.0)
|<#YearFeelsLikeHT>
|<#YearFeelsLikeHD>
|-
|-
|<#YearFeelsLikeL>
|colspan="3" style="background:lightgray;"|Miscellaneous
|This years lowest feels like temperature (available from 3.6.0)
|<#YearFeelsLikeLT>
|<#YearFeelsLikeLD>
|-
|-
|<#YearDewPointH>
|<#heatdegdaysY>
|This years highest dew point
|Yesterday's [[Heat/cold_degree_days_and_Chill_hours|heating degree days]]
|<#YearDewPointHT>
|n/a
|<#YearDewPointHD>
|-
|-
|<#YearDewPointL>
|<#cooldegdaysY>
|This years lowest dew point
|Yesterday's [[Heat/cold_degree_days_and_Chill_hours|cooling degree days]]
|<#YearDewPointLT>
|n/a
|<#YearDewPointLD>
|-
|-
|<#YearMinTempH>
|<#YSunshineHours>
|This years highest daily minimum temperature
|Yesterday's hours of sunshine so far. Added in Cumulus 2, then to 1.9.1 build 957, also in MX. From version 3.7.0 takes a parameter "dp=n" so the number of decimal places required can be specified
|Flavour specific mandatory output parameters:
|n/a
* <#YearMinTempHD format=HH:nn> ''for Cumulus 1'',
* <#YearMinTempHD format=HH:mm> ''for Cumulus MX''
|<#YearMinTempHD>
|-
|-
|<#YearMaxTempL>
|<#solarYH>
|This years lowest daily maximum temperature
|Yesterday's high solar radiation value (Solar sensor needed)
|Flavour specific mandatory output parameters:
|<#TsolarYH>
* <#YearMaxTempHD format=HH:nn> ''for Cumulus 1'',
* <#YearMaxTempHD format=HH:mm> ''for Cumulus MX''
 
|<#YearMaxTempLD>
|-
|-
|<#YearHumH>
|<#UVYH>
|This years high humidity
|Yesterday's high UV Index (UV sensor needed)
|<#YearHumHT>
|<#TUVYH>
|<#YearHumHD>
|}
 
==Yearly==
 
This table shows most of the web tags used on the "thisyearT.htm" web template.
 
The web tags in the date column output dates in the format "dd MMMM" (for once this is same for Cumulus 1 and Cumulus MX). Should you require a different output format, this can be changed using the [[#Time.2FDate_.27format.27_Parameter|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. Do make sure that you get the web tag names right and the output form at parameters right.
 
As another example of inconsistency in how web tags added in different versions are coded, there are two web tags (highest minimum/lowest maximum temperatures) where a standard web tag is not provided by Cumulus (1 or MX) for the associated time-stamp. Consequently, for these 2 (and their corresponding tags in the this month group), there are mandatory output parameters required as shown in the table. Obviously Cumulus 1 lets you use "NN", "nn", "MM", or "mm" for the minutes, but minutes can only be represented in one way in Cumulus MX.
 
Remember that the Year-to-date runs from roll-over time on 1 January for all web tags listed here.
 
The list below does NOT include any web tags that represent seasonal derivatives, i.e. where you define the month from which they start counting. (Cumulative seasonal Chill Hours <#chillhours> and Total seasonal rainfall <#ryear> can both be found in [[Webtags#Current_Conditions|Current Conditions]]). Note, that does not imply both are included in '''indexT.htm'''.
 
 
{| class="wikitable" border="1"
|-
|-
|<#YearHumL>
!style="width:150px"|Web tag_name
|This years low humidity
!style="width:300px"|Function
|<#YearHumLT>
!style="width:350px"|Time
|<#YearHumLD>
!style="width:150px"|Date
|-
|-
|colspan="4" style="background:lightgray;"|Pressure
|colspan="4" style="background:lightgray;"|Temperature & Humidity
|-
|-
|<#YearPressH>
|<#YearTempH>
|This years high pressure
|This year's highest temperature
|<#YearPressHT>
|<#YearTempHT>
|<#YearPressHD>
|<#YearTempHD>
|-
|-
|<#YearPressL>
|<#YearTempL>
|This years low pressure
|This year's lowest temperature
|<#YearPressLT>
|<#YearTempLT>
|<#YearPressLD>
|<#YearTempLD>
|-
|-
|colspan="4" style="background:lightgray;"|Wind
|<#YearHighDailyTempRange>
|This year's highest Daily Temp Range
|n/a
|<#YearHighDailyTempRangeD>
|-
|-
|<#YearGustH>
|<#YearLowDailyTempRange>
|This years high wind gust
|This year's lowest Daily Temp Range
|<#YearGustHT>
|<#YearGustHD>
|-
|<#YearWindH>
|This years high wind speed
|<#YearWindHT>
|<#YearWindHD>
|-
|<#YearWindRunH>
|High Daily Wind Run
|n/a
|n/a
|<#YearWindRunHD>  
|<#YearLowDailyTempRangeD>
|-
|-
|colspan="4" style="background:lightgray;"|Rainfall
|<#YearHeatIndexH>
|This year's highest USA heat index
|<#YearHeatIndexHT>
|<#YearHeatIndexHD>
|-
|-
|<#YearRainRateH>
|<#YearWChillL>
|This years high rainfall rate
|This year's greatest wind chill (i.e. lowest temperature)
|<#YearRainRateHT>
|<#YearWChillLT>
|<#YearRainRateHD>
|<#YearWChillLD>
|-
|<#YearAppTempH>
|This year's highest apparent temperature
|<#YearAppTempHT>
|<#YearAppTempHD>
|-
|-
|<#YearHourlyRainH>
|<#YearAppTempL>
|This years high hourly rain
|This year's lowest apparent temperature
|<#YearHourlyRainHT>
|<#YearAppTempLT>
|<#YearHourlyRainHD>
|<#YearAppTempLD>
|-
|-
|<#YearDailyRainH>
|<#YearFeelsLikeH>
|This years high daily rain
|[[File:Badge vMx.png]]This year's highest feels like temperature (available from 3.6.0)  (NOT AVAILABLE IN CUMULUS 1)
|n/a
|<#YearFeelsLikeHT>
|<#YearDailyRainHD>
|<#YearFeelsLikeHD>
|-
|-
|<#YearMonthlyRainH>
|<#YearFeelsLikeL>
|This years high monthly rain
|[[File:Badge vMx.png]]This year's lowest feels like temperature (available from 3.6.0)  (NOT AVAILABLE IN CUMULUS 1)
|n/a
|<#YearFeelsLikeLT>
|<#YearMonthlyRainHD>
|<#YearFeelsLikeLD>
|-
|-
|<#YearLongestDryPeriod>
|<#YearHumidexH>
|Longest period without rain ending this year (days)
|[[File:Badge vMx.png]] (Available from version 3.7.0)    (NOT AVAILABLE IN CUMULUS 1)
|n/a
 
|<#YearLongestDryPeriodD>
This year's highest Canadian Humidity Index
|<#YearHumidexHT>
|<#YearHumidexHD>
|-
|-
|<#YearLongestWetPeriod>
|<#YearDewPointH>
|Longest period of rain every day ending this year (days)
|This year's highest dew point
|n/a
|<#YearDewPointHT>
|<#YearLongestWetPeriodD>
|<#YearDewPointHD>
|}
 
==All Time==
 
The web tags in the date/time column have the default format as seen on "records.htm" in the standard web pages.
 
These are also available in the admin interface on "records.html" where they appear in the first tab, although the format used there is different and not able to be edited (any time is shown after the date).
 
*The default format for an extreme month is to show the month name in full i.e. format 'MMMM' followed by the year in full.
*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' again ending with the year.
*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 (i.e. on the standard web page the time comes first, not as seen in admin interface).
 
You can change the default output on either the standard web template, or in your own file,  by 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. Please see examples section above for advice.
 
Note that unlike the this month and this year web tags, the time and the date are both included in the default format of the standard time-stamp web tags for the 'highest minimum' and 'lowest maximum' temperatures, yet another inconsistency!
 
{| class="wikitable" border="1"
|-
|-
!style="width:150px" | Web tag_name
|<#YearDewPointL>
!style="width:400px" | Function
|This year's lowest dew point
!style="width:150px" | Date/Time
|<#YearDewPointLT>
|<#YearDewPointLD>
|-
|-
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|<#YearMinTempH>
|-
|This year's highest daily minimum temperature
|<#tempH>
|Flavour specific mandatory output parameters:
|All time high temperature
* <#YearMinTempHD format=HH:nn> ''for Cumulus 1'',
|<#TtempH>
* <#YearMinTempHD format=HH:mm> ''for Cumulus MX''
|<#YearMinTempHD>
|-
|<#YearMaxTempL>
|This year's lowest daily maximum temperature
|Flavour specific mandatory output parameters:
* <#YearMaxTempHD format=HH:nn> ''for Cumulus 1'',
* <#YearMaxTempHD format=HH:mm> ''for Cumulus MX''
 
|<#YearMaxTempLD>
|-
|-
|<#tempL>
|<#YearHumH>
|All time low temperature
|This year's high humidity
|<#TtempL>
|<#YearHumHT>
|<#YearHumHD>
|-
|-
|<#mintempH>
|<#YearHumL>
|All time high minimum temperature
|This year's low humidity
|<#TmintempH>
|<#YearHumLT>
|<#YearHumLD>
|-
|-
|<#maxtempL>
|colspan="4" style="background:lightgray;"|Pressure
|All time low maximum temperature
|<#TmaxtempL>
|-
|-
|<#LowDailyTempRange>
|<#YearPressH>
|All time low daily temperature range
|This year's high pressure
|<#TLowDailyTempRange>
|<#YearPressHT>
|<#YearPressHD>
|-
|-
|<#HighDailyTempRange>
|<#YearPressL>
|All time high daily temperature range
|This year's low pressure
|<#THighDailyTempRange>
|<#YearPressLT>
|<#YearPressLD>
|-
|-
|<#apptempH>
|colspan="4" style="background:lightgray;"|Wind
|All time high apparent temperature
|<#TapptempH>
|-
|-
|<#apptempL>
|<#YearGustH>
|All time low apparent temperature
|This year's high wind gust
|<#TapptempL>
|<#YearGustHT>
|<#YearGustHD>
|-
|-
|<#feelslikeH>
|<#YearWindH>
|All time high feels like temperature (available from 3.6.0)
|This year's high wind speed
|<#TfeelslikeH>
|<#YearWindHT>
|<#YearWindHD>
|-
|-
|<#feelslikeL>
|<#YearWindRunH>
|All time low feels like temperature (available from 3.6.0)
| This year's highest Daily Wind Run
|<#TfeelslikeL>
|n/a
|<#YearWindRunHD>  
|-
|-
|<#heatindexH>
|colspan="4" style="background:lightgray;"|Rainfall
|All time high heat index
|<#TheatindexH>
|-
|-
|<#dewpointH>
|<#YearRainRateH>
|All time high dew point
|This year's highest rainfall rate
|<#TdewpointH>
|<#YearRainRateHT>
|<#YearRainRateHD>
|-
|-
|<#dewpointL>
|<#YearHourlyRainH>
|All time low dew point
|This year's highest hourly rain
|<#TdewpointL>
|<#YearHourlyRainHT>
|<#YearHourlyRainHD>
|-
|-
|<#humH>
|<#YearDailyRainH>
|All time high humidity
|This year's high daily rain
|<#ThumH>
|n/a
|<#YearDailyRainHD>
|-
|-
|<#humL>
|<#YearMonthlyRainH>
|All time low humidity
|This year's high monthly rain
|<#ThumL>
|n/a
|<#YearMonthlyRainHD>
|-
|-
|<#wchillH>
|<#YearLongestDryPeriod>
|All time greatest wind chill (i.e. lowest temperature, but highest wind speed)  
|Longest period without rain ending this year (days)
|<#TwchillH>
|n/a
|<#YearLongestDryPeriodD>
|-
|-
|colspan="3" style="background:lightgray;"|Rainfall
|<#YearLongestWetPeriod>
|Longest period of rain every day ending this year (days)
|n/a
|<#YearLongestWetPeriodD>
|-
|-
|<#rrateM>
|colspan="4" style="background:lightgray;"|Solar
|All time high rain rate
 
|<#TrrateM>
[[File:Badge vMx.png]] (Available from release 3.12.0 onwards)
|-
|-
|<#rfallH>
| <#SunshineHoursYear>
|All time high daily rain
| the total sunshine hours in year-to-date, or with [[Webtags/Parameters#Input_modification_Parameters|input modification parameters using either '''y''' or '''r''']] for a past year
|<#TrfallH>
| n/a
|-
| n/a
|<#rfallhH>
|}
|All time high hourly rain
 
|<#TrfallhH>
==All Time==
|-
 
|<#rfallmH>
This table lists the web tags that appear in the '''recordsT.htm''' example template that is included in each release since version 1.5.1 10th January 2006.  Additional tags correctly populated from 3.6.10 (build 3086) or 3.7.0 (build 3089) are marked with a "MX" icon as they are not available in Cumulus 1. Please note the 3.6.10 release was available from 24 June 2020, if the date shown for those MX only tags is before when you installed that (or a later release), the output may show incorrect values.
|All time high monthly rain
 
|<#TrfallmH>
The output from the web tags shown in the date/time column have the default format that is seen on "records.htm" in the standard web pages:
*The default format for an extreme month is to show the month name in full i.e. format 'MMMM' followed by the year in full.
*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' again ending with the year.
*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 (i.e. on the standard web page the time comes first, not as seen in admin interface).
 
You can change the default output on either the standard web template, or in your own file,  by 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. Please see examples section above for advice.
 
Note that unlike the this month and this year web tags, the time and the date are both included in the default format of the standard time-stamp web tags for the 'highest minimum' and 'lowest maximum' temperatures, yet another inconsistency!
 
{| class="wikitable" border="1"
|-
|-
|<#LongestDryPeriod>
!style="width:150px" | Web tag_name
|All time longest dry period (days)
!style="width:400px" | Function
|<#TLongestDryPeriod>
!style="width:150px" | Date/Time
|-
|-
|<#LongestWetPeriod>
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|All time longest wet period (days)
|<#TLongestWetPeriod>
|-
|-
|colspan="3" style="background:lightgray;"|Pressure
|<#tempH>
|All time high temperature
|<#TtempH>
|-
|-
|<#pressH>
|<#tempL>
|All time high pressure
|All time low temperature
|<#TpressH>
|<#TtempL>
|-
|-
|<#pressL>
|<#mintempH>
|All time low pressure
|All time high minimum temperature
|<#TpressL>
|<#TmintempH>
|-
|<#maxtempL>
|All time low maximum temperature
|<#TmaxtempL>
|-
|-
|colspan="3" style="background:lightgray;"|Wind
|<#LowDailyTempRange>
|All time low daily temperature range
|<#TLowDailyTempRange>
|-
|-
|<#gustM>
|<#HighDailyTempRange>
|All time high wind gust
|All time high daily temperature range
|<#TgustM>
|<#THighDailyTempRange>
|-
|-
|<#wspeedH>
|<#apptempH>
|All time high average wind speed
|All time high apparent temperature
|<#TwspeedH>
|<#TapptempH>
|-
|-
|<#windrunH>
|<#apptempL>
|All time high daily wind run
|All time low apparent temperature
|<#TwindrunH>
|<#TapptempL>
|}
 
==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.  To supply both optional input, and optional output parameters, separate them with spaces, e.g. <#ByMonthTempHT mon=7 format=hh:nn>. In that example,  the highest ever temperature in July is returned in the value after processing by Cumulus.
 
Each Monthly All Time Records web 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).  The corresponding date/time web tags are formatted like the all time records directly above this section. You can customise the date and time formats using the output  'format' parameter on the web tag.
 
If you don't supply an input parameter (or supply an invalid value like zero) the current month will be used. This is useful if you want to write a template that will always supply values for the current month and don't want to use a script to enter the correct input parameter by processing with that script before Cumulus processes the template.
 
 
{| class="wikitable" border="1"
|-
|-
!style="width:150px"|Web tag_name
|<#feelslikeH>
!style="width:400px"|Function
|[[File:Badge vMx.png]]All time high feels like temperature (available from 3.6.0)
!style="width:150px"|Date/Time
|<#TfeelslikeH>
|-
|-
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|<#feelslikeL>
|[[File:Badge vMx.png]]All time low feels like temperature (available from 3.6.0)
|<#TfeelslikeL>
|-
|-
|<#ByMonthTempH>
|<#humidexH>
|High Temperature
|[[File:Badge vMx.png]]All time high Canadian Humidity Index (available from 3.7.0)
|<#ByMonthTempHT>
|<#ThumidexH>
|-
|-
|<#ByMonthTempL>
|<#heatindexH>
|Low Temperature
|All time high USA heat index
|<#ByMonthTempLT>
|<#TheatindexH>
|-
|-
|<#ByMonthHeatIndexH>
|<#dewpointH>
|High Heat Index
|All time high dew point
|<#ByMonthHeatIndexHT>
|<#TdewpointH>
|-
|-
|<#ByMonthWChillL>
|<#dewpointL>
|Greatest wind chill (i.e. lowest temperature and highest wind speed)
|All time low dew point
|<#ByMonthWChillLT>
|<#TdewpointL>
|-
|-
|<#ByMonthAppTempH>
|<#humH>
|High Apparent Temperature
|All time high humidity
|<#ByMonthAppTempHT>
|<#ThumH>
|-
|-
|<#ByMonthAppTempL>
|<#humL>
|Low Apparent Temperature
|All time low humidity
|<#ByMonthAppTempLT>
|<#ThumL>
|-
|-
|<#ByMonthFeelsLikeH>
|<#wchillH>
|High Feels Like Temperature (available from 3.6.0)
|All time greatest wind chill (i.e. lowest temperature, but highest wind speed)  
|<#ByMonthFeelsLikeTempHT>
|<#TwchillH>
|-
|-
|<#ByMonthFeelsLikeTempL>
|colspan="3" style="background:lightgray;"|Rainfall
|Low Feels Like Temperature (available from 3.6.0)
|<#ByMonthFeelsLikeTempLT>
|-
|-
|<#ByMonthDewPointH>
|<#rrateM>
|High Dew Point
|All time high rain rate
|<#ByMonthDewPointHT>
|<#TrrateM>
|-
|-
|<#ByMonthDewPointL>
|<#rfallH>
|Low Dew Point
|All time high daily rain
|<#ByMonthDewPointLT>
|<#TrfallH>
|-
|-
|<#ByMonthMinTempH>
|<#rfallhH>
|Highest Daily Minimum Temperature
|All time high hourly rain
|<#ByMonthMinTempHT>
|<#TrfallhH>
|-
|-
|<#ByMonthMaxTempL>
|<#rfallmH>
|Lowest Daily Maximum Temperature
|All time high monthly rain
|<#ByMonthMaxTempLT>
|<#TrfallmH>
|-
|-
|<#ByMonthHighDailyTempRange>
|<#LongestDryPeriod>
|High Daily Temp Range
|All time longest dry period (days)
|<#ByMonthHighDailyTempRangeT>  
|<#TLongestDryPeriod>
|-
|-
|<#ByMonthLowDailyTempRange>
|<#LongestWetPeriod>
|Low Daily Temp Range
|All time longest wet period (days)
|<#ByMonthLowDailyTempRangeT>
|<#TLongestWetPeriod>
|-
|-
|<#ByMonthHumH>
|colspan="3" style="background:lightgray;"|Pressure
|High Humidity
|<#ByMonthHumHT>
|-
|-
|<#ByMonthHumL>
|<#pressH>
|Low Humidity
|All time high pressure
|<#ByMonthHumLT>  
|<#TpressH>
|-
|-
|colspan="4" style="background:lightgray;"|Pressure
|<#pressL>
|All time low pressure
|<#TpressL>
|-
|-
|<#ByMonthPressH>
|colspan="3" style="background:lightgray;"|Wind
|High Pressure
|<#ByMonthPressHT>
|-
|-
|<#ByMonthPressL>
|<#gustM>
|Low Pressure
|All time high wind gust
|<#ByMonthPressLT>
|<#TgustM>
|-
|-
|colspan="4" style="background:lightgray;"|Wind
|<#wspeedH>
|All time high average wind speed
|<#TwspeedH>
|-
|-
|<#ByMonthGustH>
|<#windrunH>
|High Wind Gust
|All time high daily wind run
|<#ByMonthGustHT>
|<#TwindrunH>
|}
 
==Monthly==
 
This table shows the web tags used on the '''thismonthT.htm''' web template.
 
Because the rainfall this month does not appear on '''thismonthT.htm''' web page, it is shown in [[#Current_Conditions|indexT.htm]] table earlier in this article which is for the web page where it does appear.
 
The web tags in the date column output dates in the format "dd MMMM" (for once this is same for Cumulus 1 and Cumulus MX). Should you require a different output format, this can be changed using the [[#Time.2FDate_.27format.27_Parameter|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. Do make sure that you get the web tag names right and the output form at parameters right.
 
As another example of inconsistency in how web tags added in different versions are coded, there are two web tags (highest minimum/lowest maximum temperatures) where a standard web tag is not provided by Cumulus (1 or MX) for the associated time-stamp. Consequently, for these 2 (and their corresponding tags in the this year group), there are mandatory output parameters required as shown in the table. Obviously Cumulus 1 lets you use "NN", "nn", "MM", or "mm" for the minutes, but minutes can only be represented in one way in Cumulus MX.
 
{| class="wikitable" border="1"
|-
|-
|<#ByMonthWindH>
!style="width:150px"|Web tag_name
|High Wind Speed
!style="width:300px"|Function
|<#ByMonthWindHT>
!style="width:150px"|Time
!style="width:150px"|Date
|-
|-
|<#ByMonthWindRunH>
|colspan="4" style="background:lightgray;"|Temperature & Humidity
|High Daily Wind Run
|<#ByMonthWindRunHT>
|-
|-
|colspan="4" style="background:lightgray;"|Rainfall
|<#MonthTempH>
|This months high temperature
|<#MonthTempHT>
|<#MonthTempHD>
|-
|-
|<#ByMonthRainRateH>
|<#MonthTempL>
|High Rain Rate
|This months low temperature
|<#ByMonthRainRateHT>
|<#MonthTempLT>
|<#MonthTempLD>
|-
|-
|<#ByMonthMonthlyRainH>
|<#MonthMinTempH>
|High Monthly Rainfall
|This months highest daily minimum temperature
|<#ByMonthMonthlyRainHT>
|[[File:badge v1.png]]<#MonthMinTempHD format=hh:nn> or <#MonthMinTempHD format=HH:mm> for Cumulus 1, 
[[File:Badge vMx.png]] <#MonthMinTempHD format=HH:mm> for Cumulus MX
|<#MonthMinTempHD>
|-
|-
|<#ByMonthHourlyRainH>
|<#MonthMaxTempL>
|High Hourly Rain
|This months lowest daily maximum temperature
|<#ByMonthHourlyRainHT>
|[[File:badge v1.png]]<#MonthMaxTempLD format=HH:mm> or <#MonthMaxTempLD format=hh:nn> for Cumulus 1,
[[File:Badge vMx.png]]<#MonthMaxTempLD format=HH:mm> for Cumulus MX
|<#MonthMaxTempLD>
|-
|-
|<#ByMonthDailyRainH>
|<#MonthHighDailyTempRange>
|High Daily Rain
|High Daily Temp Range
|<#ByMonthDailyRainHT>
|n/a
|<#MonthHighDailyTempRangeD>
|-
|-
|<#ByMonthLongestDryPeriod>
|<#MonthLowDailyTempRange>
|Longest Dry Period
|Low Daily Temp Range
|<#ByMonthLongestDryPeriodT>
|n/a
|<#MonthLowDailyTempRangeD>
|-
|-
|<#ByMonthLongestWetPeriod>
|<#MonthHeatIndexH>
|Longest Wet Period
|This months high USA heat index
|<#ByMonthLongestWetPeriodT>
|<#MonthHeatIndexHT>
|}
|<#MonthHeatIndexHD>
 
==Day/Night/Sun/Moon==
These are updated each hour to refer to current time-zone
{| class="wikitable" border="1"
|-
|-
!style="width:150px" | Web tag_name
|<#MonthWChillL>
!style="width:900px" | Function
|This months greatest wind chill (i.e. lowest temperature)
|<#MonthWChillLT>
|<#MonthWChillLD>
|-
|-
|<#sunrise>
|<#MonthAppTempH>
|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.
|This month's high apparent temperature
|<#MonthAppTempHT>
|<#MonthAppTempHD>
|-
|<#MonthAppTempL>
|This month's low apparent temperature
|<#MonthAppTempLT>
|<#MonthAppTempLD>
|-
|-
|<#sunset>
|<#MonthFeelsLikeH>
|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.
|This month's highest feels like temperature (available from [[File:Badge vMx.png]] 3.6.0)  (NOT AVAILABLE IN CUMULUS 1)
|<#MonthFeelsLikeHT>
|<#MonthFeelsLikeHD>
|-
|-
|<#daylength>
|<#MonthFeelsLikeL>
|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.
|This months lowest feels like temperature (available from [[File:Badge vMx.png]] 3.6.0)  (NOT AVAILABLE IN CUMULUS 1)
|<#MonthFeelsLikeLT>
|<#MonthFeelsLikeLD>
|-
|-
|<#IsSunUp>
|<#MonthHumidexH>
|A flag to indicate if the Sun is above the horizon or not, based on the sunrise and sunset times.
|[[File:Badge vMx.png]] (Available from version 3.7.0)    (NOT AVAILABLE IN CUMULUS 1)


Possible values are 0 or 1, where 1 is when the Sun is above the horizon for the station location.
This month's highest Canadian Humidity Index
|<#MonthHumidexHT>
|<#MonthHumidexHD>
|-
|-
|<#dawn>
|<#MonthDewPointH>
|Start of last Civil Twilight at the station as at last midnight UTC
|This month's high dew point
|<#MonthDewPointHT>
|<#MonthDewPointHD>
|-
|-
|<#dusk>
|<#MonthDewPointL>
|End of next Civil Twilight at the station as at last midnight UTC
|This month's low dew point
|<#MonthDewPointLT>
|<#MonthDewPointLD>
|-
|-
|<#daylightlength>
|<#MonthHumH>
|Length of daylight in hours and minutes (dawn to dusk)
|This month's highest humidity
|<#MonthHumHT>
|<#MonthHumHD>
|-
|-
|<#isdaylight>
|<#MonthHumL>
|A flag to indicate if the location for the station is in civil daylight or not, based on the dawn and dusk times.
|This month's lowest humidity
 
|<#MonthHumLT>
Possible values are 0 or 1, where 1 notes that it is currently within the hours of daylight.
|<#MonthHumLD>
 
|-
|-
|<#tomorrowdaylength>
|colspan="4" style="background:lightgray;"|Pressure
|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>
|<#MonthPressH>
|Current [[Lunar phase|phase of the moon]] in words, eg "New Moon" etc. The names used can be altered in [[Strings.ini#Moon_Phases|strings.ini]].
|This month's highest pressure
|<#MonthPressHT>
|<#MonthPressHD>
|-
|-
|<#MoonAge>
|<#MonthPressL>
|Current '''approximate''' age of the Moon in days (0-29.53)
|This month's lowest pressure
 
|<#MonthPressLT>
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"
|<#MonthPressLD>
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>
|colspan="4" style="background:lightgray;"|Wind
|Current moonrise time at the station (if moon rises on current calendar day)
|-
|-
|<#moonset>
|<#MonthGustH>
|Current moonset time at the station (if moon sets on current calendar day)
|This month's highest wind gust
|<#MonthGustHT>
|<#MonthGustHD>
|-
|-
|<#MoonPercent>
|<#MonthWindH>
|Current percentage of moon visible (negative value indicates 'waning')
|This month's highest wind speed
 
|<#MonthWindHT>
MX b3047 adds the 'dp' and 'rc' parameters as <#MoonAge> above
|<#MonthWindHD>
|-
|-
|<#MoonPercentAbs>
|<#MonthWindRunH>
|Current percentage of moon visible (always positive)
|This month's high Daily Wind Run
 
|n/a
MX b3047 adds the 'dp' and 'rc' parameters as <#MoonAge> above
|<#MonthWindRunHD>  
|-
|-
|<#SunshineHours>
|colspan="4" style="background:lightgray;"|Rainfall
|Hours of sunshine so far today  (Solar sensor needed)
|-
|-
|<#YSunshineHours>
|<#MonthRainRateH>
|Total hours of sunshine yesterday  (Solar sensor needed)
|This month's highest rainfall rate
|<#MonthRainRateHT>
|<#MonthRainRateHD>
|-
|-
|<#CurrentSolarMax>
|<#MonthHourlyRainH>
|[[FAQ#What_is_this_.22Solar_Max.22_value_which_Cumulus_is_displaying.3F | Current theoretical maximum solar radiation]]
|This month's highest hourly rain
|<#MonthHourlyRainHT>
|<#MonthHourlyRainHD>
|-
|-
|<#IsSunny>
|<#MonthDailyRainH>
|Returns 1 if the sun is shining, otherwise 0 (Solar sensor needed)
|This month's wettest day (greatest daily rain)
|n/a
|<#MonthDailyRainHD>
|-
|<#MonthLongestDryPeriod>
|Longest dry period ending this month (days)
|n/a
|<#MonthLongestDryPeriodD>
|-
|<#MonthLongestWetPeriod>
|Longest period of rain every day, ending this month (days)
|n/a
|<#MonthLongestWetPeriodD>
|-
|colspan="4" style="background:lightgray;"|Solar
 
[[File:Badge vMx.png]] (Available from release 3.12.0 onwards)
|-
| <#SunshineHoursMonth>
| the total sunshine hours in month-to-date, or with [[Webtags/Parameters#Input_modification_Parameters|input modification parameters using either '''y''' and '''m''' or '''r''']] for a past month
| n/a
| n/a
|}
|}


==Alarms==


[[File:badge v1.png]]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.
==Monthly All Time Records==
 
This table includes web tags that show the values in [[Monthlyalltime.ini]] log file, which was introduced in version 1.9.3 (build 1033, 10 Apr 2012).


[[File:Badge vMx.png]]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.
These 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. 
# The tag names listed here require a [[Webtags/Parameters#Input_modification_Parameters|input modification parameter]].
# The tag names here can optionally take any [[Webtags/Parameters#Output_modification_parameters|output modification parameters]].
# To supply both optional input modification, and optional output modification parameters, separate them with spaces, e.g. <#ByMonthTempHT mon=7 format=hh:nn>. In that example, the time (not date) of highest ever temperature in July is returned after processing by Cumulus.


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'.
At release 3.6.10 (build 3086), and at release 3.7.0 (build 3089); additional tag names were introduced:
* They are marked with a "MX" icon as they are not available in legacy Cumulus 1.
* If you have any "feels like temperatures" that appear with a date/time parameter with a date before 24 June 2020, or before you installed the 3.6.10 release (or a later release), then the value web tag may show incorrect values.
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:150px" |Web tag_name
!style="width:150px"|Web tag_name
!style="width:600px" |Function
!style="width:400px"|Function
!style="width:150px"|Date/Time
|-
|-
|<#LowTempAlarm>
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|Low temperature alarm
|-
|-
|<#HighTempAlarm>  
|<#ByMonthTempH>
|High temperature alarm
|High Temperature
|<#ByMonthTempHT>
|-
|-
|<#TempChangeUpAlarm>  
|<#ByMonthTempL>
|Temperature increase alarm
|Low Temperature
|<#ByMonthTempLT>
|-
|-
|<#TempChangeDownAlarm>  
|<#ByMonthHeatIndexH>
|Temperature decrease alarm
|High Heat Index
|<#ByMonthHeatIndexHT>
|-
|-
|<#LowPressAlarm>  
|<#ByMonthWChillL>
|Low pressure alarm
|Greatest wind chill (i.e. lowest temperature and highest wind speed)
|<#ByMonthWChillLT>
|-
|-
|<#HighPressAlarm>  
|<#ByMonthAppTempH>
|High pressure alarm
|High Apparent Temperature
|<#ByMonthAppTempHT>
|-
|-
|<#PressChangeUpAlarm>  
|<#ByMonthAppTempL>
|Pressure increase alarm
|Low Apparent Temperature
|<#ByMonthAppTempLT>
|-
|<#ByMonthFeelsLikeH>
|[[File:Badge vMx.png]]High Feels Like Temperature (available from 3.6.10)
|<#ByMonthFeelsLikeHT>
|-
|<#ByMonthFeelsLikeL>
|[[File:Badge vMx.png]]Low Feels Like Temperature (available from 3.6.10)
|<#ByMonthFeelsLikeLT>
|-
|-
|<#PressChangeDownAlarm>  
|<#ByMonthHumidexH>
|Pressure decrease alarm
|[[File:Badge vMx.png]]High Canadian Humidity Index (Humidex) - available from version 3.7.0
|<#ByMonthHumidexHT>
|-
|-
|<#HighRainTodayAlarm>  
|<#ByMonthHumidexL>
|High rain today alarm
|[[File:Badge vMx.png]]Low Canadian Humidity Index (Humidex) - available from version 3.7.0
|<#ByMonthHumidexLT>
|-
|-
|<#HighRainRateAlarm>  
|<#ByMonthDewPointH>
|High rainfall rate alarm
|High Dew Point
|<#ByMonthDewPointHT>
|-
|-
|<#HighWindGustAlarm>  
|<#ByMonthDewPointL>
|High wind gust alarm
|Low Dew Point
|<#ByMonthDewPointLT>
|-
|-
|<#HighWindSpeedAlarm>  
|<#ByMonthMinTempH>
|High wind speed alarm
|Highest Daily Minimum Temperature
|<#ByMonthMinTempHT>
|-
|-
|<#DataStopped>
|<#ByMonthMaxTempL>
|1 if the station has apparently stopped sending data to Cumulus, otherwise 0
|Lowest Daily Maximum Temperature
|}
|<#ByMonthMaxTempLT>
 
== Extreme Records ==
 
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 ===
 
[[File:Badge v1.png]] Cumulus 1.9.x supports all the web tags listed in table below, with the exception of those relating to "feels like".
 
[[File:Badge vMx.png]] 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 <tt>RecordSetTimeoutHrs=24</tt> entry to [[Cumulus.ini#Section:_Station|[Station] section in Cumulus.ini]] where the default '24' can be changed to a different number of hours.
 
=== Table of web tags available for extreme records ===
 
{| class="wikitable" border="1"
|-
|-
!style="width:150px" |Web tag_name
|<#ByMonthHighDailyTempRange>
!style="width:600px" |Function
|High Daily Temp Range
|<#ByMonthHighDailyTempRangeT>
|-
|-
|<#recordsbegandate>
|<#ByMonthLowDailyTempRange>
|The date that Cumulus began tracking all time records (does not prevent earlier record dates being set manually)
|Low Daily Temp Range
|<#ByMonthLowDailyTempRangeT>
|-
|-
|<#newrecord>  
|<#ByMonthHumH>
|Indicates when any tracked extreme is changed.
|High Humidity
*In Cumulus 1.x.x: 1 if 'new record' light is flashing, 0 if not
|<#ByMonthHumHT>
*In Cumulus MX: 1 from when new record is set until next rollover is completed, 0 otherwise
|-
|-
|<#TempRecordSet>
|<#ByMonthHumL>
|1 if the indicator on the temperature tab on the all-time records screen is currently lit, 0 if not
|Low Humidity
|<#ByMonthHumLT>
|-
|-
|<#WindRecordSet>
|colspan="4" style="background:lightgray;"|Pressure
|1 if the indicator on the wind tab on the all-time records screen is currently lit, 0 if not
|-
|-
|<#RainRecordSet>
|<#ByMonthPressH>
|1 if the indicator on the rain tab on the all-time records screen is currently lit, 0 if not
|High Pressure
|<#ByMonthPressHT>
|-
|-
|<#HumidityRecordSet>
|<#ByMonthPressL>
|1 if the indicator on the humidity tab on the all-time records screen is currently lit, 0 if not
|Low Pressure
|<#ByMonthPressLT>
|-
|-
|<#PressureRecordSet>
|colspan="4" style="background:lightgray;"|Wind
|1 if the indicator on the pressure tab on the all-time records screen is currently lit, 0 if not
|-
|-
|<#HighTempRecordSet>
|<#ByMonthGustH>
|1 if the all-time high temperature light is currently flashing, 0 if not
|High Wind Gust
|<#ByMonthGustHT>
|-
|-
|<#LowTempRecordSet>
|<#ByMonthWindH>
|1 if the all-time low temperature light is currently flashing, 0 if not
|High Wind Speed
|<#ByMonthWindHT>
|-
|-
|<#HighTempRangeRecordSet>
|<#ByMonthWindRunH>
|1 if the all-time high daily temperature range light is currently flashing, 0 if not
|High Daily Wind Run
|<#ByMonthWindRunHT>
|-
|-
|<#LowTempRangeRecordSet>
|colspan="4" style="background:lightgray;"|Rainfall
|1 if the all-time low daily temperature range light is currently flashing, 0 if not
|-
|-
|<#HighAppTempRecordSet>
|<#ByMonthRainRateH>
|1 if the all-time high apparent temperature light is currently flashing, 0 if not
|High Rain Rate
|<#ByMonthRainRateHT>
|-
|-
|<#LowAppTempRecordSet>
|<#ByMonthMonthlyRainH>
|1 if the all-time low apparent temperature light is currently flashing, 0 if not
|High Monthly Rainfall
|<#ByMonthMonthlyRainHT>
|-
|-
|<#HighHeatIndexRecordSet>
|<#ByMonthHourlyRainH>
|1 if the all-time high heat index light is currently flashing, 0 if not
|High Hourly Rain
|<#ByMonthHourlyRainHT>
|-
|-
|<#LowWindChillRecordSet>
|<#ByMonthDailyRainH>
|1 if the all-time low wind chill light is currently flashing, 0 if not
|High Daily Rain
|<#ByMonthDailyRainHT>
|-
|-
|<#HighDewPointRecordSet>
|<#ByMonthLongestDryPeriod>
|1 if the all-time high dew point light is currently flashing, 0 if not
|Longest Dry Period
|<#ByMonthLongestDryPeriodT>
|-
|-
|<#LowDewPointRecordSet>
|<#ByMonthLongestWetPeriod>
|1 if the all-time low dew point light is currently flashing, 0 if not
|Longest Wet Period
|<#ByMonthLongestWetPeriodT>
|}
 
==Day/Night/Sun/Moon==
In Cumulus 1 most of these are only calculated at UTC zero hours, but are updated each hour to refer to current time-zone.
 
MX is more complicated, but most of these are calculated hourly.
{| class="wikitable" border="1"
|-
|-
|<#HighMinTempRecordSet>
!style="width:150px" | Web tag_name
|1 if the all-time high minimum temperature light is currently flashing, 0 if not
!style="width:900px" | Function
|-
|-
|<#LowMaxTempRecordSet>
|<#sunrise>
|1 if the all-time low maximum temperature light is currently flashing, 0 if not
|Last sunrise time at the station - This sunrise time is calculated by a third party library each midnight UTC (in legacy cumulus), and each hour Cumulus converts it to local time to ensure shown correctly before and after any clock change.
|-
|-
|<#HighWindGustRecordSet>
|<#sunset>
|1 if the all-time high wind gust light is currently flashing, 0 if not
|Next sunset time at the station - The sunset/sunrise times are calculated each midnight UTC (in legacy cumulus), and each hour Cumulus converts them to local time to ensure it shows them correctly before and after any clock change.
|-
|-
|<#HighWindSpeedRecordSet>
|<#daylength>
|1 if the all-time high wind speed light is currently flashing, 0 if not
|Length of day in hours and minutes (sunrise to sunset) - The third party library that Cumulus uses each midnight UTC (in legacy cumulus), 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.
|-
|-
|<#HighRainRateRecordSet>
|<#IsSunUp>
|1 if the all-time high rain rate light is currently flashing, 0 if not
|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.
|-
|-
|<#HighHourlyRainRecordSet>
|<#dawn>
|1 if the all-time high hourly rain light is currently flashing, 0 if not
|Start of last Civil Twilight at the station as at last midnight UTC
|-
|-
|<#HighDailyRainRecordSet>
|<#dusk>
|1 if the all-time high daily rain light is currently flashing, 0 if not
|End of next Civil Twilight at the station as at last midnight UTC
|-
|-
|<#HighMonthlyRainRecordSet>
|<#daylightlength>
|1 if the all-time high monthly rain light is currently flashing, 0 if not
| Approximate length of daylight in hours and minutes (dawn to dusk) - if your timezone is UTC or a few hours off that,  the dusk may well be that just passed, and the dawn that to come as at the zero hours UTC when Cumulus 1 does this calculation
|-
|-
|<#LongestDryPeriodRecordSet>
|<#isdaylight>
|1 if the all-time longest dry period light is currently flashing, 0 if not
|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.
 
|-
|-
|<#LongestWetPeriodRecordSet>
|<#tomorrowdaylength>
|1 if the all-time longest wet period light is currently flashing, 0 if not
|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, basically because of the note for <#daylightlength>, and its use was not recommended. Its use is therefore not supported by Steve Loft (i.e. you use it at your own risk) in the legacy Cumulus.
|-
|-
|<#HighHumidityRecordSet>
|<#moonphase>
|1 if the all-time high humidity light is currently flashing, 0 if not
|Current [[Lunar phase|phase of the moon]] in words, eg "New Moon" etc. The names used can be altered in [[Strings.ini#Moon_Phases|strings.ini]].
|-
|-
|<#LowHumidityRecordSet>
|<#MoonAge>
|1 if the all-time low humidity light is currently flashing, 0 if not
|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"
 
There is some PHP script code below this table showing how this can be converted to days, hours, minutes, seconds*
 
If the "dp" parameter is supplied, then supplying "rc=y" in addition will cause any decimal comma to be converted to a decimal point.
|-
|-
|<#HighPressureRecordSet>
|<#moonrise>
|1 if the all-time high pressure light is currently flashing, 0 if not
|Current moonrise time at the station (if moon rises on current calendar day)
|-
|-
|<#LowPressureRecordSet>
|<#moonset>
|1 if the all-time low pressure light is currently flashing, 0 if not
|Current moonset time at the station (if moon sets on current calendar day)
|-
|-
|<#HighWindrunRecordSet>
|<#MoonPercent>
|1 if the all-time high wind run light is currently flashing, 0 if not
|Current percentage of moon visible (negative value indicates 'waning')
|}


==Special tags==
MX b3047 adds the 'dp' and 'rc' parameters as <#MoonAge> above
|-
|<#MoonPercentAbs>
|Current percentage of moon visible (always positive)


===OS WMR Series===
MX b3047 adds the 'dp' and 'rc' parameters as <#MoonAge> above
 
There are a set of tags for the WMR928, WR100/200 extra sensors:
 
{| class="wikitable" border="1"
|-
|-
!style="width:150px" |Web tag_name
|<#SunshineHours>
!style="width:600px" |Function
| see [[#Today.ini]] Miscellaneous
|-
|-
|n/a
|<#SunshineHoursY>
|Now incorporated into the Extra Sensors section above
|see [[#Yesterday]] Miscellaneous
|-
|<#CurrentSolarMax>
|[[FAQ#What_is_this_.22Solar_Max.22_value_which_Cumulus_is_displaying.3F | Current theoretical maximum solar radiation]]
|-
|<#IsSunny>
|Returns 1 if the sun is shining, otherwise 0 (Solar sensor needed)
|}
|}
<pre>
* Footnote: PHP code extract:
$MoonAgeDays = <#MoonAge dp=0> +0;
$moonDecimalPart = <#MoonAge dp=4> - $MoonAgeDays;
$MoonAgeHours = round($moonDecimalPart * 24, 0);
$MoonAgeMinutes  = round(($moonDecimalPart * 24 * 60) - ($MoonAgeHours * 60), 0);
$MoonAgeSeconds = round(($moonDecimalPart * 24 * 60 * 60) - ($MoonAgeHours * 60 * 60) - ($MoonAgeMinutes * 60), 3);
$MoonAge      =    $MoonAgeDays . '&nbsp;days, ' .  $MoonAgeHours . '&nbsp;hours, '
. $MoonAgeMinutes . '&nbsp;minutes, ' . $MoonAgeSeconds . '&nbsp;seconds';
// Change the English words 'days, ', ' hours, ', and 'minutes' to the equivalents in your language</pre>


===Davis===
==Alarms==
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.'''
[[File:badge v1.png]]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.


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:
[[File:Badge vMx.png]]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'.
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:150px" |Web tag_name
!style="width:150px" |Web tag_name
!style="width:120px" |Applicability
!style="width:600px" |Function
!style="width:600px" |Function
|-
|-
!<#DavisTotalPacketsReceived>
|<#LowTempAlarm>  
|1.x.x and MX
|Low temperature alarm
|Total number of data packets received
|-
|-
!<#DavisTotalPacketsMissed>
|<#HighTempAlarm>  
|1.x.x and MX
|High temperature alarm
|Number of missed data packets
|-
|-
!<#DavisMaxInARow>
|<#TempChangeUpAlarm>  
|1.x.x and MX
|Temperature increase alarm
|Longest streak of consecutive packets received
|-
|-
!<#DavisNumCRCerrors>
|<#TempChangeDownAlarm>  
|1.x.x and MX
|Temperature decrease alarm
|Number of packets received with CRC errors
|-
|-
!<#DavisFirmwareVersion>
|<#LowPressAlarm>  
|1.x.x and MX
|Low pressure alarm
|The console firmware version
|-
|-
!<#DavisNumberOfResynchs>
|<#HighPressAlarm>
|1.x.x and MX
|High pressure alarm
|Number of times the console resynchronised with the transmitter
|-
|<#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
|-
|-
!<#THWindex>
|<#DataStopped>
|1.9.x
|1 if the station has apparently stopped sending data to Cumulus, otherwise 0
|A derived temperature using Temperature/Humidity/Wind values read from Davis DLL in Cumulus 1.9.x.
*The THW Index uses humidity and temperature (like Heat Index), but includes the cooling effects of wind (like wind chill).
*Available from 1.9.2 Build 1009 (Aug 2011).
|-
|-
!<#THSWindex>
|<#DataSpikeAlarm>
|(1.9.x and) MX
|[[File:Badge vMx.png]] Available from version 3.7.0
|A heat stress indicator using Temperature/Humidity/Solar/Wind values.
*The THSW Index uses humidity and temperature (like the Heat Index), but also includes the heating effects of sunshine, and the cooling effects of wind.
*Therefore requires Davis station with solar sensor.
[http://digitalcommons.unl.edu/cgi/viewcontent.cgi?article=1223&context=animalscinbcr  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.


'''IMPORTANT NOTES:'''
Alarm raised if a data spike is detected, or a data limit exceeded
#Although this tag is available in Cumulus 1.9.x, there is an issue somewhere in the Davis code that prevents Cumulus 1 obtaining the value (so tag always displays zero).
|-
#Search the forum for several discussions about "THSW".
| <#HttpUploadAlarm>
#Cumulus MX reads "LOOP2" packets, and the correct value for this tag can be read there and displayed on 'Now' template.
|[[File:Badge vMx.png]] Available from version 3.11.2
 
Alarm raised if a HTTP upload alarm has been triggered
|-
| <#MySqlUploadAlarm>
|[[File:Badge vMx.png]] Available from version 3.11.2
 
Alarm raised if a MySQL upload alarm has been triggered
|-
| <#UpgradeAlarm>
| Alarm raised if MX upgrade (a newer release) is available
|}
 
== Extreme Records ==
 
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 ===
 
[[File:Badge v1.png]] Cumulus 1.9.x supports all the web tags listed in table below, with the exception of those relating to "humidex" and "feels like".
 
[[File:Badge v1.png]] For Cumulus 1 the tags are cleared in one of two ways:
#Generation of a web page where the web tag is set, clears the record for that web tag.
#Viewing of an extreme screen tab clears all records listed on that tab.
 
[[File:Badge vMx.png]] 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.7.0, Cumulus MX offers all the web tags listed in table below, at earlier versions it offers a subset of those listed.
 
[[File:Badge vMx.png]] For MX these web tags will be set from the time of the record until a timeout value is met (by default each record remains set for 24 hours).
 
'''You can change the default MX timeout''':
*Add a <tt>RecordSetTimeoutHrs=NN</tt> entry to [[Cumulus.ini#Section:_Station|[Station] section in Cumulus.ini]]
*'''NN''' can be set to any reasonable integer representing hours (for the default set the number '''NN''' to '24').
 
=== Table of web tags available for extreme records ===
 
{| class="wikitable" border="1"
|-
!style="width:150px" |Web tag_name
!style="width:600px" |Function
|-
|-
!<#battery>
|<#recordsbegandate>
|1.x.x and MX
|The date that Cumulus began tracking all time records (does not prevent earlier record dates being set manually)
|The console battery condition in volts. eg "4.82v"
|-
|-
|<#newrecord>
!<#txbattery>
|Indicates when any tracked extreme is changed.
<#txbattery channel=1>
* [[File:Badge vMx.png]]In Cumulus MX: 1 from when new record is set until
|1.x.x and MX
** either all records have cleared
|The transmitter battery condition, by default it returns the status of all transmitters.
** or until next rollover is completed,
'''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
** or (in recent releases) until the number of hours for clearing extreme record notifications has passed
|-
* 0 otherwise
!<#StormRain>
* [[File:Badge v1.png]]In Cumulus 1.x.x:
|1.x.x and MX
** 1 if 'new record' light is flashing,
|The console 'storm rain' current amount (build 1090 onwards for Cumulus 1; 3021 onwards for MX)
** 0 if not
|-
|-
!<#StormRainStart>
|<#TempRecordSet>
|1.x.x and MX
|1 if any temperature-based extreme has been updated, 0 if not
|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 [[Webtags#Time.2FDate_.27format.27_Parameter| date/time formatting]] can be applied to that date.
|-
|}
|<#HighTempRecordSet>
|1 if the all-time highest temperature extreme has been updated, 0 if not
|-
|<#LowTempRecordSet>
|1 if the all-time lowest temperature extreme has been updated, 0 if not
|-
|<#HighTempRangeRecordSet>
|1 if the all-time high daily temperature range extreme has been updated, 0 if not
|-
|<#LowTempRangeRecordSet>
|1 if the all-time low daily temperature range extreme has been updated, 0 if not
|-
|<#HighAppTempRecordSet>
|1 if the all-time high apparent temperature extreme has been updated, 0 if not
|-
|<#LowAppTempRecordSet>
|1 if the all-time low apparent temperature extreme has been updated, 0 if not
|-
|<#HighHeatIndexRecordSet>
|1 if the all-time high USA heat index extreme has been updated, 0 if not
|-
|<#HighHumidexRecordSet>
|[[File:Badge vMx.png]]1 if the all-time high Canadian Humidity index extreme has been updated, 0 if not (from version 3.7.0)
|-
|<#LowWindChillRecordSet>
|1 if the all-time greatest wind chill extreme has been updated, 0 if not
|-
|<#HighFeelsLikeRecordSet>
|[[File:Badge vMx.png]]1 if the all-time high feels like temperature extreme has been updated, 0 if not (from version 3.6.0)
|-
|<#LowFeelsLikeRecordSet>
|[[File:Badge vMx.png]]1 if the all-time low feels like temperature extreme has been updated, 0 if not (from version 3.6.0)
|-
|<#HighDewPointRecordSet>
|1 if the all-time high dew point extreme has been updated, 0 if not
|-
|<#LowDewPointRecordSet>
|1 if the all-time low dew point extreme has been updated, 0 if not
|-
|<#HighMinTempRecordSet>
|1 if the all-time high minimum temperature extreme has been updated, 0 if not
|-
|<#LowMaxTempRecordSet>
|1 if the all-time low maximum temperature extreme has been updated, 0 if not
|-
|<#HighWindGustRecordSet>
|1 if the all-time high wind gust extreme has been updated, 0 if not
|-
|<#HighWindSpeedRecordSet>
|1 if the all-time high wind speed extreme has been updated, 0 if not
|-
|<#RainRecordSet>
|1 if any rainfall based extreme has been updated, 0 if not
|-
|<#HighRainRateRecordSet>
|1 if the all-time high rain rate extreme has been updated, 0 if not
|-
|<#HighHourlyRainRecordSet>
|1 if the all-time high hourly rain extreme has been updated, 0 if not
|-
|<#HighDailyRainRecordSet>
|1 if the all-time high daily rain extreme has been updated, 0 if not
|-
|<#HighMonthlyRainRecordSet>
|1 if the all-time high monthly rain  extreme has been updated, 0 if not
|-
|<#LongestDryPeriodRecordSet>
|1 if the all-time longest dry period extreme has been updated, 0 if not
|-
|<#LongestWetPeriodRecordSet>
|1 if the all-time longest wet period extreme has been updated, 0 if not
|-
|<#HumidityRecordSet>
|1 if either the highest or lowest humidity extreme has been updated, 0 if not
|-
|<#HighHumidityRecordSet>
|1 if the all-time high humidity light extreme has been updated, 0 if not
|-
|<#LowHumidityRecordSet>
|1 if the all-time low humidity extreme has been updated, 0 if not
|-
|<#PressureRecordSet>
|1 if either the highest or lowest pressure extreme has been updated, 0 if not
|-
|<#HighPressureRecordSet>
|1 if the all-time high pressure extreme has been updated, 0 if not
|-
|<#LowPressureRecordSet>
|1 if the all-time low pressure extreme has been updated, 0 if not
|-
|<#WindRecordSet>
|1 if any wind speed based extreme has been updated, 0 if not
|-
|<#HighWindrunRecordSet>
|1 if the all-time high wind run extreme has been updated, 0 if not
|}
 
==Special tags==
 
 
 
===Davis===
 
'''Please be aware that the tags available are not the same in all versions.
[[File:Badge vMx.png]]At present 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 from Cumulus 1.9.2. Most of the following web tags are available in Cumulus MX 3.0.0 beta from build 3019, Storm tags from 3021.
 
'''Both flavours update the values of the reception tags every 15 minutes.''' In Cumulus 1 this applies from 1.9.3, in 1.9.2 they were read, and updated, every minute, in earlier versions not available.
 
{| class="wikitable" border="1"
|-
!style="width:150px" |Web tag_name
!style="width:120px" |Applicability
!style="width:600px" |Function
|-
|<#DavisTotalPacketsReceived>
|1.9.2 onwards and MX
|Total number of data packets received. This stat is not supplied by the Davis WLL station.
|-
|<#DavisTotalPacketsMissed>
|1.9.2 onwards and MX
|Number of missed data packets. From version 3.6.0 build 3076, optionally add "tx=n" parameter, where n=1-8 and equals the desired transmitter id. The default is n=0 and will return the VP2 stats.
|-
|<#DavisMaxInARow>
|1.9.2 onwards and MX
|Longest streak of consecutive packets received. From version 3.6.0 build 3076, optionally add "tx=n" parameter, where n=1-8 and equals the desired transmitter id. The default is n=0 and will return the VP2 stats.
|-
|<#DavisNumCRCerrors>
|1.9.2 onwards and MX
|Number of packets received with CRC errors. From version 3.6.0 build 3076, optionally add "tx=n" parameter, where n=1-8 and equals the desired transmitter id. The default is n=0 and will return the VP2 stats.
|-
|<#DavisNumberOfResynchs>
|1.9.2 onwards and MX
|Number of times the console resynchronised with the transmitter. From version 3.6.0 build 3076, optionally add "tx=n" parameter, where n=1-8 and equals the desired transmitter id. The default is n=0 and will return the VP2 stats
|-
|<#DavisFirmwareVersion>
|1.9.2 onwards and MX
|The console/WLL firmware version
|-
|<#THWindex>
|1.9.x
|A derived temperature using Temperature/Humidity/Wind values read from Davis DLL in Cumulus 1.9.x.
*The THW Index uses humidity and temperature (like Heat Index), but includes the cooling effects of wind (like wind chill).
*Available from 1.9.2 Build 1009 (Aug 2011).
|-
|<#THSWindex>
|(1.9.x and) MX
|A heat stress indicator using Temperature/Humidity/Solar/Wind values.
*The THSW Index uses humidity and temperature (like the Heat Index), but also includes the heating effects of sunshine, and the cooling effects of wind.
*Therefore requires Davis station with solar sensor.
[http://digitalcommons.unl.edu/cgi/viewcontent.cgi?article=1223&context=animalscinbcr  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.
 
'''IMPORTANT NOTES:'''
#Although this tag is available in Cumulus 1.9.x, there is an issue somewhere in the Davis code that prevents Cumulus 1 obtaining the value (so tag always displays zero).
#Search the forum for several discussions about "THSW".
#Cumulus MX reads "LOOP2" packets, and the correct value for this tag can be read there and displayed on 'Now' template.
|-
|<#battery>
|1.x.x and MX
|The console battery condition in volts. eg "4.82v"
|-
|<#txbattery>
<#txbattery channel=1>
|1.8.9 onwards and MX
|The transmitter battery condition, by default it returns the status of all transmitters. (This was displayed from version 1.9.4 to 1.8.9 on the main screen).
'''Cumulus 1.9.3 onwards 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', you can use [[Webtags/Parameters#Which_tag_names_take_date.2Ftime_output_formatting_modifiers|date output format modifiers]]
 
(Note that the console does not report start time, so the web tag cannot report time.  It appears a minimum of 2 tips within 3 hours will trigger a storm start, so using <#LastRainTip> in a MX script might help)
|}
 
===Davis WLL ===
 
New from version 3.6.0. Not available for earlier MX, not available for Cumulus 1.
 
{| class="wikitable" border="1"
|-
!style="width:150px" |Web tag_name
!style="width:600px" |Function
|-
|<#DavisReceptionPercent tx=1>
|WLL transmitter reception percentage (replace 1 by any other transmitter number up to 8)
|-
|<#DavisTxRssi tx=0>
|WLL RSSI of the WiFi connection
|-
|<#DavisTxRssi tx=1>
|WLL RSSI of Transmitter #1  (replace 1 by any other transmitter number up to 8)
|}
 
 
 
 
 


===Fine Offset===
===Fine Offset===
Line 2,603: Line 2,971:
0 if contact has been established
0 if contact has been established
|}
|}
=== No Commas ===
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.
'''NOW: '''
<#RCtemp>, <#RCdew>, <#RCheatindex>, <#RChum>, <#RCinhum>, <#RCintemp>, <#RCpress>, <#RCrfall>, <#RCrrate>, <#RCwchill>, <#RCwgust>, <#RCwspeed>, <#RCwlatest>
'''TODAY'''
<#RCpressTH>,  <#RCpressTL>,  <#RCrrateTM>,  <#RCtempTH>, <#RCtempTL>, <#RCwgustTM>,  <#RCdewpointTH>, <#RCdewpointTL>, <#RCwchillTL>, <#RCheatindexTH>, <#RCapptempTH>, <#RCapptempTL>
'''RECENT'''
<#RCRecentOutsideTemp>, <#RCRecentWindSpeed>, <#RCRecentWindGust>, <#RCRecentWindLatest>, <#RCRecentWindChill>, <#RCRecentDewPoint>, <#RCRecentHeatIndex>, <#RCRecentPressure>, <#RCRecentRainToday>, <#RCRecentUV>
Although 'Apparent Temperature' is not included as a tag, it can be [[FAQ#What_formula_does_Cumulus_use_for_Apparent_Temperature.3F | calculated]] in a script from the RC tags for 'outside temperature', 'wind speed', and 'relative humidity' values. In php language this is <tt>$RCapptempCALC =  round(<#temp> + (0.33 * (<#hum> / 100 * 6.105 * exp (17.27 * <#temp> / (237.7 + <#temp>) ))) - (0.7 * $wspeed) - 4.0, 2);</tt>.
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. <tt><#tempYH rc=y></tt> 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

Latest revision as of 19:57, 9 November 2022

Some content has been removed from this page

Please be aware some content originally on this page has been moved to other pages. Old posts on the support forum that used to link directly to the specific material, will instead bring you to this start of the page.

Where the old content was cut, new links have been substituted within three sections on this page: #Input Modification Parameters and Output Modification Parameters, #The tag name, and #Recent History.

Essential Background Reading

If you have not used this Wiki page before, or are unsure about using "web tags", there are some concepts that you do need to understand in the sub-sections that follow.

The tag names

All the "tag_names" that are available for legacy 1.9.4, and for MX up to first beta build release 3.12.0

are in #Full List of Tag Names later on this page.

If you edit this page, to add tag names for later builds, please amend the previous sentence.

If you are using a Oregon Scientific weather station, then you should read #Web tags mentioning (outside) temperature in the optional reading section.

Do not assume that Cumulus always works according to normal meteorological practice in your nation. For examples, the hours used by Cumulus to report derivatives involving rainfall, or minimum temperature, may vary from figures reported by local meteorological stations.

Quick summary of MX and Legacy differences

Cumulus MX versus original Legacy Cumulus 1

The full information that used to appear on this page for differences between MX and the legacy Cumulus has been moved to a new Web tag Applicability page. The next subsection just gives a basic summary.

Badge vMx.png This page has been updated to include web tags up to version 3.12.0 beta build 3134. Announcements for new builds of MX generally provide too little information for it to be easy to update this page, that is why it is often out of date.

  • Since version 3.10.x, MX has not used web page templates, please see WebsitedataT.json page, instead of this Wiki page.
    1. That page explains the ID names used on the default web site introduced from release 3.10.0
    2. That page documents each data pair in the file
    3. That page gives the source web tag for each ID name on the web pages
    4. That page explains what data is represented by the ID name, JSON attribute, web tag name
  • Past MX releases 3.0.0 to 3.9.7 used web template files, similar to (but not same as) the legacy software
    • This Wiki page remains organised according to the content of those old template files.

Badge v1.png This page was created for Cumulus 1. Steve/Beth Loft provided some example web template files, but expected Cumulus users to develop their own Cumulus template files making use of the web tags, listed below, that the software provided.

For tag names available in the release you are using, see the next sub-sections.

What web tags can I use?

Basically, it depends on which web tags are in whatever files are used to transfer weather derivatives to your web server.

As Cumulus has developed, more tag names have been introduced, the tables showing tag names available, attempt to give an indication of which release introduced them. You can, see below, ask Cumulus (both MX and legacy) to list all the tag names it recognises, when it is started at whatever build you are running.


Using release after 3.9.7?

If you are using the default web site, its standard web pages show data as follows:

If you are using your own web templates, or other own Cumulus template files such as XML or PHP data files, then you make the decision on which tag names are used for the data to your web server.


Getting release 3.12.0 or later to list tag names when it starts

Please use the admin interface.

Go to Program settings → General options

Tick List web tags.

The next time that MX is restarted, 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.

Go to Program settings → General options, untick List web tags to stop Cumulus continuing to produce new versions of that file next time it is restarted.


Getting legacy Cumulus, or MX releases up to 3.11.4, to list tag names when starting

The tag names available in the release/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... ListWebTags=1

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.

To stop Cumulus continuing to produce new versions of that file change the line to say ... ListWebTags=0

Badge v1.png If you are using Cumulus 1, each build of that contains a build specific version of Cumulus Help, and within that help is a list of web tags with basic information on what each tag_name returns.

Badge vMx.png MX bug: The inclusion of a web tag in the list produced by this instruction, does not mean that web tag is actually populated with valid information. See https://cumulus.hosiene.co.uk/viewtopic.php?p=153096#p153096 for an example.

What is a web tag?

Weather values are always changing, so Cumulus needs a way for you to tell Cumulus to enter the current value for a particular derivative, when it is processing templates.

General Format for Web Tags

In the position, in any (HTML, JSON, PHP, XML) template file, SQL, or Custom HTTP, where Cumulus is to insert the relevant data, place a web tag in the general format specified here: <#tag_name [optional input selection parameters] [optional output modification parameters]>

The optional parameters

The terminology "optional" is used because some tag names do not accept any parameters, but there are some tag names where a parameter is mandatory. Therefore, check the web tag parameters page to learn whether a web tag name you find here requires a mandatory parameter, or to find out which parameters are optionally available.

The tables of tag names that appear later on this page will seldom give any information about which parameters are mandatory or optional. There are tables on the other page referenced above that help you to understand what parameters the various tag names accept, explain each of the parameters available, and give examples.

There is a basic guide to what these parameters can do, and another link to the new page at #Input Modification Parameters and Output Modification Parameters later on this page.


Inconsistency of tag names

For both the legacy Cumulus and for MX, it is vital that you use tag names exactly as they are listed. That would be easy had Steve Loft created a naming standard and stuck to it.

To be fair to Steve, he created the legacy Cumulus for his own use, working in his spare time, alongside a full time job.

Remember, the original design did not anticipate use by others, nor how much extra functionality would be added later.

Early versions of Cumulus could only report current values and the summary for the day so far. Different web tags for today-so-far were added at different times, hence the names are inconsistent. New web tags for today-so-far added before yesterday tags were considered lack the T suffix (or prefix) later today-so-far tags use.

All-time tags were introduced before yesterday, this month and this year; hence all-time tag names assume they are only extreme monitoring.

The legacy tag names for this month and this year were all introduced in a single release and they remain consistent apart from what MX added later! However, they are not consistent with the naming of the all-time extremes introduced much earlier.

This great inconsistency in the naming, gives rise to a problem as it very easy to spell a tag_name incorrectly (and from time to time such mistakes creep into the tables on this Wiki page) as you naturally expect there to be a standard pattern. Some tags are all lower-case, some are camel-case, and some start with a capital letter. Have a look yourself at just how much inconsistency is present in the names in the tables below.


Inconsistency in use of "Y"

The character "Y" has been selected to denote yesterday in tag names. The inconsistency is where it appears.

  • Steve used Y as a suffix for most, not all, Cumulus 1 yesterday tags (e.g. <#rfallY>, <#windrunY>, <#YSunshineHours>, <#avgtempY>)
  • Mark uses Y as a prefix, in most, not all, the extra Cumulus MX tags (e.g. <#Ybeaufort>, <#Ychillhours>, <#windAvgY>)
Consistency in Cumulus 1, becomes inconsistency in MX, for this month and this year

The legacy tag names for this year and this month were all introduced together by Steve in one release, with consistency in how they were named then, "Month" or "Year" was used as a prefix (this was after he had started using "Y" as a prefix for his new yesterday tag names) e.g. <#YearLongestDryPeriod>.

The development of MX however, broke this consistency, as Mark adds "Year" as a suffix, e.g. <#SunshineHoursYear>, instead of following Steve by using a prefix.

Inconsistency in use of "T"

I said above, that early versions of Cumulus only had tag names for current spot values and for today-so-far daily means/extremes/totals. Therefore it could be assumed that <#beaufort>, <#temp> and <#press> all represented current spot values while <#avgtemp> and <#rfall> represented today-so-far values just by looking at their names.

The current value tag names formed the basic part of tag names, extended for daily extremes with "TH" and "TL" added as suffixes (to represent daily highs and daily lows), (e.g. <#tempTH>, <#tempTL> and <#pressTH>, <#pressTL>), which made a lot of sense. Adding a "T" for related times, made some sense, except that use of "T" was not done in a consistent manner (e.g. <#TpressTH>, <#Tbeaufort>, <#TtempTH>, <#YearTempHT>).


The functionality that can use web tags

In the legacy Cumulus software, the only functionality that could use this was the Cumulus template file used to provide data to a web server. That is why Steve Loft, the author of that software named them web tags.

MX has extended the use of these web tags, they can now be inserted into a SQL commands, Custom HTTP, application programming interface, as well as template files.

The output file can be:

Optional Background Reading

Web tags mentioning (outside) temperature

For Oregon Scientific weather stations using, either USB connections (e.g. WMR-200), or serial connections (e.g. WMR-928), that can have multiple temperature sensors, it is possible to configure which sensor the outdoor temperature (for which daily and longer period extreme records are maintained) is read from, by following this set of instructions originally supplied by Steve Loft:

  1. Stop Cumulus in the normal way
  2. Use a text editor to edit the file called Cumulus.ini
  3. Scroll down to the line that contains [Station]
  4. Create a blank line below it by pressing Return
  5. In that new line, type the command shown in the relevant code box below, type the attribute and equals sign exactly as shown without spaces (regardless of your exact model),
    • USB connections → WMR200TempChannel=N
    • Serial connections → WMR928TempChannel=N
  6. Now edit the value shown after the equals sign, replace N with the relevant number from the following list:
    • To use the main sensor, replace N with 0 (or don't bother with this procedure, as that is default)
    • To use Extra Temp 1 sensor, replace N with 1
    • To use Extra Temp 2 sensor, replace N with 2
    • and so on, up to a possible maximum (check with your weather station, but Cumulus can accept up to 12)
  7. Save the file, and exit
  8. Restart Cumulus in the normal way


For other weather stations, the main outdoor temperature sensor is used for what is reported for current value, daily extremes, and longer period extreme records. This temperature is also used for calculation of derived values such as Australian Apparent Temperature, Canadian Humidity Index, and USA Heat Index.

Please check release announcements, it is planned that swaping of main Temperature sensor will become available for Ecowitt.

Input Modification Parameters and Output Modification Parameters

In #Scary_statistics section of this page, it is explained how less than a thousand tag names (the first part of the #General Format for Web Tags) become billions of web tags, simply by adding modifiers.

The modifiers available used to be listed on this page (so if you select the history tab for this page, you will find references to their introduction and growth), but are now on a new web tag parameters page. Here are some of the advantages achieved by moving them to the new page:

  • This page is very long, so it is not easy to navigate this page, even without the parameters
  • There would be a lot of repetition if you attempted to say beside each tag name which modification parameters were available.
  • Having them on separate pages means you can have two tabs (or two separate browsers) open so you can see both the tag name and the modifier parameter by flicking between tabs, instead of lots of scrolling between different parts of same page.
  • The introduction of WebsitedataT.json, which controls what data is available to tables in the web pages provided by MX, means that page, rather than this page is the entry point for MX, and it is easier for that page to reference a separate parameters page
  • MX has introduced many more input and output modification parameters, it is easier to maintain a separate page (and easier for reference if you just want to refresh your mind on new modification parameters).


For just a taste, there you can discover:

  • A score of input modification parameters
    • For example, find which attribute is used with a value between 1 and 12, so the same tag name can give values for 12 different months)
  • If your locale normally (in real numbers) uses an integer part, then a comma, and then the decimal part, you should be aware that some computer scripts, and some external servers where you might want to send data, insist on a decimal point, instead of a decimal comma:
    • If you have installed a recent MX release, then change decimal comma to decimal point with a simple "y" value to another attribute
    • If you have the legacy Cumulus 1 installed, stay on this page and look at #No_Commas, as you have to use the restricted alternative set of tag names.
  • How to control number of decimal places in any real number output
  • All about the complex subject of modifying the way a duration, a date, or a clock time is output by looking at Multiple_Output_Format_Modifier_parameters_for_times_and_dates

Why does MX talk about tokens?

MX uses a token parser to read the web tags and replace them with the correct value, so if diagnostic output refers to tokens, it is saying the attempt to actually work out what content to return to replace the web tag with its tag name and parameters has encountered a problem.

Scary statistics

  1. The 3.5.0 release of MX defines 9½ million values that can be represented using web tags!
  2. At 3.5.0, there are only 717 options for the tag_name in the general format given above.
  3. How come this discrepancy?
  4. That discrepancy is purely because some of those 717 tag names can be associated with input parameters, (and for Oregon Scientific stations,you can select which sensor is used for outside temperature), these modifications affect what value is selected to be output by the web tag leading to the large number
  5. These millions of web tags can actually produce billions of different outputs!
  6. How come this second discrepancy?
  7. Well adding all possible different output parameters generates the billions of different ways to output the millions of values!

The statistics quoted above keep increasing as MX is developed, the last time I checked, there were another forty or so tag names, and lots more parameters, so the alternatives are probably well over ten billion now.

Brief history of this page

This page was created in August 2009, to list the tags for the (legacy) Cumulus 1 software. Initially, there were going to be further pages to explain individual web tags, e.g. Forecast_webtag; but that idea was never completed.

When MX came out of beta (3.0.0), it has been developing rapidly, as the statistics above suggest, the number of web tag names and input/output modification parameters, to document became too much for one Wiki page, hence the moving of all documentation about modification parameters to a sub-page. There are still a lot of web tag names to document on this page, and separation into a number of pages was considered, but it is easier to have just one page to refer in answers to questions raised in the forum.

Still got questions?

Full support is available via the support forum at https://cumulus.hosiene.co.uk/viewforum.php?f=40 for the latest MX release. Given that some users may still be running an older MX release, where possible any web tag listed below for MX indicates at which release it first became available.

There is limited support available for Cumulus 1.9.4, but on this page every attempt is made to indicate which version of the legacy software introduced any web tag listed below.

The web tag application programming interface

Badge vMx.png Available from version 3.7.0 (build 3089) released 28 July 2020. It was proposed in January 2015, see Steve Loft plan to add a call where you supply a list of items (probably web tag names), and you get back the equivalent data.

Where to use

This is meant for services either on the same computer as Cumulus or on your local network. It is not secure, and should not be available, nor requested, via any external network or the internet.

The MX Administrative Interface uses some application programming interface (api) calls to obtain the data each web page in that interface needs, and if you are making an edit, another api to return the results of any edit made.

If you wanted your CumulusMX/interface/todayyest.html web page to include something else (e.g. snow falling/lying/depth) you could edit that HTML page to have the extra sub-table you want (you cannot edit the existing rainfall table as that is dynamically created by existing api). Then you could edit the associated JavaScript file CumulusMX/interface/js/todayyest.js to add a new api call seeking snowdepth, snowfalling, snowlying tags for today (unfortunately there are no tags for yesterday's snow) and to place the returned values into your new sub-table (probably using jQuery to make it easy). In a similar way, you could add anything where today and yesterday tags are available such as UV Index.

In earlier versions of Cumulus if you wanted to make use of values processed by Cumulus, you wrote a script file referencing the web tags you wanted to use, and let Cumulus process that file at an interval set in the settings, then you had to write something to process the results at the relevant interval. Now if you are running other software on your device that runs MX (or a computer or other device linked directly on your personal network), you can request web tags values on demand via an application programming interface (api hereafter) and don't need to worry about any timing issues.

Obviously each api request creates a processing overhead on Cumulus so use this feature wisely (minimise the information you request and minimise the frequency of requesting it). You can use it for extra current information, but in that usage you might need to repeat the call. Consequently, maybe it is more likely that the api will be used to request information that does not keep changing, such as what units are being used for temperature, rainfall, and wind speed; or perhaps daily, monthly, or yearly, summary figures.

Each admin interface web page uses api techniques for all the information it needs. Some api calls are repeated with AJAX requesting updates for the weather information on a frequent basis, but each page has another api request that is issued just once for the version and build being used. To my mind, the design of CumulusMX/interface/todayyest.html is crazy. The HTML appears to have a table structure, but that table structure is overwritten by each repeating api. So every time AJAX repeats that api call it returns in json format the whole table definition as well as table cell contents, despite that much of that json (all that HTML defining table header, table rows, table cells, etc.; and the units for each value) does not change and it is only some values and times buried within the json in the api that actually might change (and of those half of them, the yesterday values and times only change once a day). In some code I wrote (but later abandoned) I made use of the api calls that support the CumulusMX/interface/todayyest.html web page to get the units I wanted on another interface page, but I only called it once as it returned a lot of other information (as just mentioned) that I did not need. I later found a better way, as in example below, which gives me just what I need and no more.

"GET" approach

You may have used GET as an attribute when defining the action of a HTML form. Equally you might in a script language access the query-string part of a Universal Resource Locator to get parameters for what the script is to supply to the web page. Even if you don't understand the meaning of those technical terms, you probably have seen when using a browser (in the box where a URL is entered) that sometimes the URL seen there has a query-string. You will have seen a question mark (?) followed by one or [separated by ampersand (&)] more name=value parameters. Full List of Tag Names The GET approach to using the Cumulus general api works in this way indicating the start of a query-string with a question mark and using ampersands to separate names. The difference is that a tag name (or list of tag names) is used instead of a name=value parameter (or list of name=value parameters). However, when the Cumulus api returns the values they will be in attribute=value format. Therefore if (like example below) you are coding in JavaScript, what is returned is a JavaScript Object and you extract the values by specifying the Object name and the Attribute name. If that technical terminology confuses you, look at the example.

Selecting values using GET

Suppose you want to get the values for the following three web tags:

  1. <#RCtemp>
  2. <#RChum>
  3. <#RCdew>

Then the URL with query-string to use is http: //localhost:8998/api/tags/process.json?rc&temp&hum&dew

Obviously, if you have started MX with a port parameter like this:

sudo mono CumulusMX.exe -port 9999

then you change the 8998 port shown in the URL for the api to use the port you have selected e.g. http: //localhost:9999/api/tags/process.json?rc&temp&hum&dew


The first parameter is rc to indicate that the tags that follow are to use decimal points not decimal commas, which is how many script languages expect to see values. Remember that in current version (and some earlier versions) of MX, the above three web tags are exactly same as:

  1. <#temp rc=y>
  2. <#hum rc=y>
  3. <#dew rc=y>

Since rc=y can be applied to several web tags that don't appear in Webtags#No_Commas table, this shows how the api can access values without commas for all those web tags that report in real numbers and allow that output modifier.

If you are using the api in a context where it does not matter if decimal commas or decimal points are in the api or for any tags that don't report in real numbers, simply omit the rc as first item, and just include tag names separated by ampersands.

JavaScript example

Some people might feel the admin interface could be improved on some of its pages by showing additional information. It is possible from MX 3.7.0 to obtain extra information.

I wanted to improve the log file editing pages, and that was partly by adding validation, and partly by changing the way the editing is done. For the standard log file editor I wanted to achieve even more, I added a script to calculate (and recalculate after any edit) the derived fields from the source fields. To make these calculations work for anyone, I needed to find out what units the Cumulus MX user is using. Before 3.7.0 release the snippet of script that obtained the units via various api calls was quite complex (I described above how the api returned lots of unwanted content), but with 3.7.0 my new api call was greatly simplified to what I show below. Please note my revised log file editing scripts did not make it into a public release, and it is only the units obtaining api that I am making available to public here.

Here is the code (with the api call written using jQuery):

/*    Some new variables connected with new api call (MX 3.7.0)  */
		var tempLetter;  // C or F
		var rainUnit; // mm or in
		var windUnit; // any units in style allowed by Cumulus
/*  The one extra api request included to obtain the units used for temperature, rainfall, and wind speed */
		$.get('./api/tags/process.json?tempunitnodeg&rainunit&windunit', "limit=1", callUnits);
		function callUnits(unitsObject)
		{
			tempLetter = unitsObject.tempunitnodeg;
			rainUnit = unitsObject.rainunit;
			windUnit = unitsObject.windunit;
			console.log("new api", tempLetter, rainUnit,windUnit);
		}

A little bit of explanation might help:

  • JavaScript variables generally need to be declared first, I have used 3 separate line each starting with var, but you can list several variables on one line using a comma to separate them
  • In my script it is important to define these variables outside the function as I will explain later
  • The jQuery get request takes the api URL as first parameter and the function to deal with the returned result as third parameter
  • The middle parameter is irrelevant in this context as only one object instance is returned, but if the qet was returning multiple results, "limit=1" would only return the first result
  • The function takes as its sole parameter an Object (a JavaScript Object is a collection of properties), this is what is returned by the api, an object can be given any variable name
  • In JavaScript if a variable is defined outside the function, then given a value inside the function, that value can be accessed by later code outside the function (in my case by code within the other functions for calculating each derived value)
  • We are only interested in 3 of the property_name = property_value items in the Object.
  • The JavaScript refinement syntax (starts with a dot) can be used to find the value for any parameter we name. We assign the variable already defined to the object and its refinement (that specifies the attribute we want).
  • The console.log command simply outputs all the items in the list within the brackets into the browser console that in many browsers is displayed by selecting F12 on the keyboard. I included this instead of the lengthy rest of my code that uses the units to do the various calculations correctly.

"POST" approach

The word "Post" in a computer environment means that the Hypertext Transfer Protocol (HTTP) used by the internet is being asked to transfer information enclosed in the body of the request message. Put slightly less technically in this approach you produce a text file with the details of what tags you want and send it to the api server. I suppose it is a bit like sending an email, its header (subject, author, date sent) is easy to view, but you need to open it to see what text is in the body.

You may have used POST as an attribute when defining the action of a HTML form. In that context the form is sent as the contents of a message to whatever web page is going to process the contents of that form.

The post approach has a few advantages over get:

  • The parameters are not shown in any query-string, so are not obvious to the person looking over your shoulder, nor do they appear in a history list of sites that the browser has visited.
  • If you fill out a form online, the post approach will be used as the content needs to be kept secure.
    • The get approach may be seen when you are navigating through a web site, and a selection is being remembered.
  • The POST approach can handle very long requests and return a lot of information.
    • In contrast, a URL with query-string is restricted in total length (the restriction is dependent on a number of other factors, but might be at something like 1000 characters in total), so GET comes with a restriction on how many parameters can be specified.

See https://cumulus.hosiene.co.uk/viewtopic.php?p=145050#p145050 for post example


Full List of Tag Names

Crystal Clear info.png This document is 'Work In Progress' so content may not be complete.

Request for help from Wiki Readers

  • Do you understand how MX works?
  • Do you use hardware, or MX functionality, that is not yet documented? Can you begin that documenting?
  • Can you contribute simple text for novice users, examples of what you have done, correction of typing or factual errors, or supply missing details?
  • Will you make this page more useful by bringing content up-to-date as new releases change some information written for older releases?
  • Does any page need a section for novices, so they don't need to read more technical information further down that page?
  • Is there some information on this page, that should be on a separate page? Can you create the new page and move the less relevant information off this page, don't forget this page needs a link to the new page so people who expect to find it here know where it has moved to?

If you plan on contributing to the Wiki, then you will need an account.

  • Please use the Request Account form to apply for an account. Note that the Wiki is currently undergoing restructuring and is largely locked for editing, but please apply for an account if you wish to contribute in the future.
  • You will find help on how to contribute to this wiki at How to Edit.
  • If you need to consult others, please use the Cumulus Wiki suggestions forum.

Please be aware that information on this page may be incorrect.

This list only contains the tag_names, don't forget tag_names are only part of the #General Format for Web Tags, for example in a template file you precede the tag name with <, you may need input parameters, you may need output parameters, and you end the full web tag with >.

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.

Here follow tables that group the tag names by the basic purpose of the tags listed. There has been confusion in the past of tags appearing in more than one group, can contributors remove any remaining duplication, so future maintenance is easier.

There is a table of contents near the top of the page that you might find useful if you are interested in a particular tag group.

Current Conditions

We start with tags that relate to the latest values, as these are the ones that people most often choose to use. The current condition data is also available, for processes external to Cumulus, by using the inbuilt facility to generate a file with such data.

Cumulus software makes current values available for a standard range of sensors where the same web tags apply across a range of weather station models.

Both Cumulus 1 and MX offer current values from some extra temperature and relative humidity sensors (see Extra temperatures) from particular weather station models.

Recently, MX has been developed to support further extra sensors (see Extra Sensor Files page for full list of fields) and web tags have been added to support equivalent current values only.

Feels Like

Feels like temperature was first made available, just for current conditions at MX version 3.5.4. In version 3.6.0. it was extended to add max/min for each day, each month, each year, and all time. In version 3.6.11 it was added to recent history.


The figures quoted for this derivative vary between versions:

  • The first formula was used from MX version 3.5.4 (25 Apr 2020) build 3075 until version 3.6.7 (4 June 2020) build 3083
  • The second formula, which was coded incorrectly, and so gave strange results, applied in versions 3.6.8 to 3.6.9 (build 3084, 3085)
  • The third, and hopefully final, formula applies from version 3.6.10 (build 3086).

A php script for adding feels like as calculated in version 3.6.10 to any standard log line created either without feels like, or with an older (now incorrect) calculation, can be downloaded from Create Missing topic on support forum. Obviously, this calculates from the small sub-set of current conditions that have been logged, and is not as accurate at deriving maximum and minimum as derivation made as each reading is processed by MX (so including all current conditions).

The Create Missing utility will not correct the older (incorrectly calculated) figures, but will add Feels Like temperature values to any standard log line created by Cumulus 1, by MX prior to release 3.5.4, or if you have imported lines into the log from an external source.

Standard sensors

The web tags shown here are mainly determined by which appeared on the original "Now" legacy web page (index.htm).

Consequently, the totals for 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; although you might expect to find them listed in tables for this month and this year, those web pages do not show these derivatives.

Those listed here cover both measurements obtained from a weather station (like air temperature, wind speed and direction, humidity and barometric pressure); and all the derived values (like humidex, feels like, apparent temperature, wind chill, and heat index).

Note however, that the derived values calculated for Cumulus 1 and for MX may not agree because of differences in the calculation formulae, see derived value section within Recent History tags section for examples.

Web tag_name Function
Temperature
<#temp> The outside (air) temperature

For Oregon Scientific models like WMR-200 with USB connection or models like WMR-928 with serial connections, please refer to #Web tags mentioning (outside) temperature because any of the extra sensors can be reported in <#temp>, and consequently also have web tags reporting daily extremes and longer period extreme records.

<#intemp> The inside temperature
<#TempChangeLastHour> The change in outside temperature over the last hour (not available in early versions of Cumulus 1, when this was announced, a temperature change over 24 hours was also proposed, but never implemented)
<#temptrend> The average rate of change in temperature over the last three hours. Trend = (temp_now - temp_3hrs_ago) / 3 (available in all releases, the calculation selected for this trend matches the standard-based calculation for <#presstrendval> despite the naming inconsistency)
<#temptrendtext> Temperature change over the last three hours - Rising/Falling/Steady (values can be set in strings.ini)
<#temptrendenglish> Temperature change over the last three hours - Rising/Falling/Steady (for use by HTML, javascript etc, values can't be changed). From version 1.8.8 1st December 2009
<#heatindex> Current heat index. The referenced page in weather terminology section of this Wiki explains it.
<#humidex> Current Humidex
<#apptemp> The apparent temperature. The referenced page in weather terminology section of this Wiki explains it. The formula used is that defined by BOM. Although at temperatures above 20°C (68°F) Feels like reports an "apparent temperature" it uses a different formula.
<#wchill> The current wind chill temperature. The referenced page in weather terminology section of this Wiki explains it. For temperatures below 10°C (50°F) Feels like reports the same value.
<#feelslike> Badge v1.png Not available in Cumulus 1.

Badge vMx.pngNot available in all MX versions. Please see sub-section before this table regarding availability by MX versions if you are using a MX version earlier than 3.6.10.

The current Feels Like temperature. The referenced page in weather terminology section of this Wiki explains it.

<#IsFreezing> If outside temperature is at or below 0°C/32°F. 0=Above freezing, 1=Below freezing
<#chillhours> The number of 'chill hours' so far this season (threshold temperature and start date are configurable).
Humidity
<#hum> The outside humidity
<#inhum> The inside humidity
<#dew> The current dew point
<#wetbulb> Estimated wet bulb temperature, can be seen if hover over 'Dew point' on Cumulus 1 main screen
Rainfall
<#rfall> The total rainfall so far today (reports rain counter now minus rain counter at start of day), start of day counter can be edited using "edit rain 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> Reading recent history records, takes rain counter for latest minute, and substracts rain counter from as close as possible to same time yesterday (if Cumulus was not running at that time yesterday, but historical catch-up has been enabled, then it is from nearest time available yesterday, so for a logging interval of every 30 minutes might be 24 hours and 16 minutes ago)
<#LastRainTipISO> Fixed ISO format output giving date and time of last rain gauge tip (e.g 2010-09-06 06:09) The format is always as shown (cannot use output format modifiers)
<#LastRainTip> (available from release 3.6.1) Date/time of last rain gauge tip (default format is as set in locale) 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)
<#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
Pressure
<#press> The sea level pressure
<#presstrendval> The average rate of pressure change over the last three hours. Trend = (pressure_now - pressure_3hrs_ago) / 3 (Fixed from version 1.7.7 5th March 2008)
<#presstrend> The pressure trend in words - values can be set in the 'strings.ini' file
<#presstrendenglish> a singe word description for the pressure trend - Rising/Falling/Steady (for use by HTML, javascript etc, values can't be changed). From version 1.8.8 1st December 2009
<#PressChangeLast3Hours> Badge vMx.png Available from version 3.11.1

Total Pressure Change since 3 hours ago

<#altimeterpressure> Altimeter pressure. Pressure corrected to sea level using the station's altitude only. Same as sea-level pressure for non-Davis stations.
Wind
<#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 configured interval minutes. Range 1-360, 0=Calm

This is calculated by taking the wind direction and speed for the last 10 minutes (or other interval as configured), calculates the sums of the North/South and East/West vector components, divides the E/W component sum by the N/S component sum, and takes the arctan.

<#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.
<#WindSampleCount> The number of wind samples making up the wind rose (etc) data (up to 3600)
<#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 tag. Reading interval x varies by station type (see above).
<#nextwindindex> The index of the entries in <#wdirdata> and <#wspddata> that 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!
<#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), as configured on display settings screen
<#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
Miscellaneous
<#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
<#forecastJsEnc> Badge vMx.png Available from version 3.11.0

The current forecast encoded for JavaScript

<#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
<#cumulusforecastJsEnc> Badge vMx.png Available from version 3.11.0

The current Cumulus (Zambretti) forecast encoded for JavaScript

<#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
<#wsforecastJsEnc> Badge vMx.png Available from version 3.11.0

The current station forecast encoded for JavaScript

<#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 for example this would encode any use of symbol for degree.

Extra Sensors

Some tags are only available for certain builds, if the tables below do not say which releases they apply to, see general tip at top of page to check for the build you are using. In particular Cumulus 1 has fewer channels available in its earlier versions, and the final legacy software version 1.9.4 offers just 42 of the 62 extra sensor web tags available in MX.

The extra sensors functionality in Cumulus only supports processing for current spot values as read from the sensors, the only processing is to convert the units ready for output, so only current conditions can be reported in web tags.

Periodically spot extra sensor values are logged, see the Extra_Sensor_Files page for information about log files from where you can extract the past spot values.

Extra Sensors: Davis models and Oregon Scientific WMR928, WR100/200

These web tags hold current values for additional sensors supported by Cumulus 1 and MX.

For Oregon Scientific model like WMR-200 with USB connection, please refer to #Web tags mentioning (outside) temperature because any of the extra temperature tags below can be redirected to <#temp>, and consequently also have web tags reporting daily extremes and longer period extreme records.

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 - 10> Extra temperature channel 1 to channel 10
<#ExtraDP1 - 10> Extra dew point channel 1 to channel 10
<#ExtraHum1 - 10> Extra humidity channel 1 to channel 10
<#SoilTemp1 - 16> Soil temperature channel 1 to channel 16
<#SoilMoisture1 - 16> Soil moisture channel 1 to channel 16
<#LeafTemp1 - 4> Leaf temperature channel 1 to channel 4
<#LeafWetness1 - 4> Leaf wetness channel 1 to channel 4

Extra Sensors: Davis AirLink

New from version 3.9.0. Not available for earlier MX, not available for Cumulus 1.

Note, that you can configure an Indoor or Outdoor (or both) AirLink, most people will use an outdoor. There are a similar set of tags for each device.

Web tag_name Function
Particulate Matter
<#AirLinkPm1[InǀOut]> Current particulate matter of 1 μm, or less count
<#AirLinkPm2p5[InǀOut]> Currentparticulate matter of 2.5 μm, or less, count
<#AirLinkPm2p5_1hr[InǀOut]> Last hour average particulate matter of 2.5 μm, or less, count
<#AirLinkPm2p5_3hr[InǀOut]> Last 3 hours average particulate matter of 2.5 μm, or less, count
<#AirLinkPm2p5_24hr[InǀOut]> Last 24 hours average particulate matter of 2.5 μm, or less, count
<#AirLinkPm2p5_Nowcast[InǀOut]> The 24 hour "nowcast" weighted average particulate matter of 2.5 μm, or less, count
<#AirLinkPm10[InǀOut]> Current particulate matter of 10 μm, or less, count
<#AirLinkPm10_1hr[InǀOut]> Last hour average particulate matter of 10 μm, or less, count
<#AirLinkPm10_3hr[InǀOut]> Last 3 hours average particulate matter of 10 μm, or less, count
<#AirLinkPm10_24hr[InǀOut]> Last 24 hours average particulate matter of 10 μm, or less, count
<#AirLinkPm10_Nowcast[InǀOut]> The 24 hour "nowcast" weighted average particulate matter of 10 μm, or less, count
Air Quality Index Values
<#AirLinkAqiPm2p5[InǀOut]> Current particulate matter of 2.5 μm, or less AQI value - allows use of the "dp=n" and "tc=y" parameters
<#AirLinkAqiPm2p5_1hr[InǀOut]> Last hour average particulate matter of 2.5 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
<#AirLinkAqiPm2p5_3hr[InǀOut]> Last 3 hour average particulate matter of 2.5 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
<#AirLinkAqiPm2p5_24hr[InǀOut]> Last 24 hour average particulate matter of 2.5 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
<#AirLinkAqiPm2p5_Nowcast[InǀOut]> Last 24 hour "nowcast" weighted average particulate matter of 2.5 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
<#AirLinkAqiPm210[InǀOut]> Current particulate matter of 10 μm, or less value - allows use of the "dp=n" and "tc=y" parameters
<#AirLinkAqiPm10_1hr[InǀOut]> Last hour average particulate matter of 10 μm, or less, AQI value - allows use of the "dp=n" and "tc=y" parameters
<#AirLinkAqiPm10_3hr[InǀOut]> Last 3 hour average particulate matter of 10 μm, or less AQI value - allows use of the "dp=n" and "tc=y" parameters
<#AirLinkAqiPm10_24hr[InǀOut]> Last 24 hour average particulate matter of 10 μm, or less AQI value - allows use of the "dp=n" and "tc=y" parameters
<#AirLinkAqiPm10_Nowcast[InǀOut]> Last 24 hour "nowcast" weighted average particulate matter of 10 μm, or less AQI value - allows use of the "dp=n" and "tc=y" parameters
Stats Values
<#AirLinkPct_1hr[InǀOut]> Percentage of possible values that were included in the 1 hour averages
<#AirLinkPct_3hr[InǀOut]> Percentage of possible values that were included in the 3 hour averages
<#AirLinkPct_24hr[InǀOut]> Percentage of possible values that were included in the 24 hour averages
<#AirLinkPct_1hr[InǀOut]> Percentage of possible values that were included in the 24 hour weighted averages
Sensor Info
<#AirLinkFirmwareVersion[InǀOut]> Shows the AirLink firmware version as a date string.

NOTE: This web tag requires a WeatherLink Pro subscription to work

<#AirLinkTemp[InǀOut]> The sensors internal temperatue value
<#AirLinkHum[InǀOut]> The sensors internal humidity value
<#AirLinkWifiRssi[InǀOut]> The sensors WiFi signal strength in dB - anything below -90 is considered very poor.

NOTE: This web tag requires a WeatherLink Pro subscription to work


Extra Sensors: Ecowitt

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 as a generic name for stations sold under a variety of branding, in this Wiki.

Badge v1.pngNot available in Cumulus 1.

Extra Sensors: Ecowitt WH45 CO₂ sensor

Badge vMx.png Unless otherwise indicated these web tags become available from release 3.9.5.

Web tag_name Function
<#CO2> The actual CO2concentration in ppm
<#CO2-pm2p5> Air Quality expressed in terms of particulate matter of 2.5 μm/m3 or less
<#CO2-pm2p5-24h> Air Quality expressed in terms of particulate matter of 2.5 μm/m3, or less, 24 hours moving average
<#CO2-pm10> Air Quality expressed in terms of particulate matter of 10 μm/m3, or less (yes, this includes the 2.5 figure)
<#CO2-pm10-24h> Air Quality expressed in terms of particulate matter of 10 μm/m3, or less, 24 hours moving average
<#CO2-temp> Temperature as reported by Air Quality monitor.

Note that this temperature has nothing to do with the temperature as reported by the main weather station. It reflects the temperature of the sensor and would be used in combination with the sensors measured humidity (see next) for correction of the measured PM (particulate matter) value. Determination of how to correct the PM value is highly dependent on the conditions and placement of the sensor. See the specification sheet for the sensor or create some multivariate regression line based on calibration measurements. This is also valid for PM sensors like the AirLink. The normal amateur usage of PM sensors is that the uncorrected values are published.

<#CO2-hum> Relative Humidity as reported by Air Quality monitor
Extra Sensors: Ecowitt WH34 soil and water sensor

Cumulus MX can support the Ecowitt WH34 (other model types exist and are reported here as if WH34) soil and water temperature sensors.

They are reported as "User Temperture 1" to "User Temperature 8", as listed in the table within next sub-section.


Extra Sensors: Ecowitt Air quality, leak sensors, lighting detector, and extra temperature sensors

Badge v1.png Not available in Cumulus 1.

Badge vMx.png Please see release announcements for when individual web tags became available

This sub-section applies only to those using Ecowitt GW1000 (also Froggit DS1500, and other equivalents, see Supported Devices) 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:

Web tag_name Function
<#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 in μm/m3 or less
<#AirQuality2> Air quality in μm/m3 or less
... and so on up to <#AirQuality4>
<#AirQualityAvg1> 24 hr running average Air quality in μm/m3 or less
<#AirQualityAvg2> 24 hr running average Air quality in μm/m3 or less
... and so on up to <#AirQualityAvg4>
<#LeakSensor1> Leak sensor 1 - returns false/true as 0 or 1
<#LeakSensor2> Leak sensor 2 - returns false/true as 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 '----')
<#LightningSrikesToday> Number of lighting strikes today
<#UserTemp1> User Temperature 1
... and so on up to <#UserTemp8> = User temperature 8

Recent History

Please refer to the Recent history page for full information about using the tags in the following two tables, as material once on this page has been moved there.

Using input/output modification parameters with recent history tag names

All tag names listed below, require the mandatory input modification parameters specified in this table.

The optional output modification parameters available are as specified in this table, depending on tag name:

Tag names Mandatory Input Modification Parameters Optional Output Modification Parameters
<#RecentTS> (see #Table of Recent History tag names available) Mandatory parameters as table at Webtags/Parameters#Input_modification_Parameters Optional parameters to modify the time format described in tables starting at Webtags/Parameters#Multiple_Output_Format_Modifier_parameters_for_times_and_dates
All other tag names in #Available in 1.9.3, 1.9.4, and all MX releases and #Available in MX only Mandatory parameters as table at Webtags/Parameters#Input_modification_Parameters Whether you can modify the way these values are output depends on release you are using:

Table of Recent History tag names available

One tag name is available since 1.9.3 to report the time associated with values you request.

Although as Recent history page explains, the history is intended to cover every minute in last 7 days, some entries may be at less frequent intervals, and when clocks change some entries will be missing altogether.

Web tag_name Function Parameters example
Time-stamp tag
<#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

Available in 1.9.3, 1.9.4, and all MX releases

Tag_name Function Input Modification Parameters example
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)
Wind
(Note: Wind 'Speed', 'Gust' and 'Latest' have the usual Cumulus meanings see Wind measurement)
<#RecentWindSpeed> Wind Speed <#RecentWindSpeed m=10> will display the average wind speed 10 minutes ago
<#RecentWindGust> Wind Gust

(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. 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
Pressure
<#RecentPressure> Sea-level Pressure <#RecentPressure h=3 m=1> gives the sea level pressure when <#presstrendval> started tracking the pressure
Rainfall
<#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
<#RecentSolarRad> Solar Radiation 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)
<#RecentUV> UV Index 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)

Available in MX only

Please note this section has NOT yet been updated for recent MX releases, it appears from RecentData table in cumulusmx.db that the list here is not complete for MX. However, no release announcement has been found listing tag names not shown here (i.e. apparent temperature, indoor temperature and humidity, air quality)

tag_name Introduced Function Input Modification Parameters example
Indoor Temperature & Humidity tags
(to do)
Outdoor Temperature & Humidity tags
<#RecentWindChill> Legacy Cumulus version 1.8.5 Wind Chill (if temperature is below 10°C or 50 °F, then the new Feels Like now available in MX (next item) will report this same value). <#RecentWindChill d=48 m=1> reports the wind chill temperature 2 days ago
<#RecentFeelsLike> Available from version 3.6.11 (build 3087) onwards. Feels Like Temperature <#RecentFeelsLike h=12 m=1> reports the feel like temperature 12 hours ago
<#RecentHumidex> Available from version 3.7.0 (build 3089) onwards. Canadian Humidity Index (humidex) Dimensionless - no units <#RecentHumidex h=3> reports humidex 3 hours ago
Air Quality tags

System

Special tags returning information about the Windows device hosting Cumulus 1.

Badge vMx.pngIf you are running MX, then most tags do not work.

Web tag_name Applicability Function
<#OsVersion> up to 1.9.4, and MX OS version, e.g. "Windows 7 x64 build 7600"

Please note this may not return the information you expect!

<#OsLanguage> Both leagacy and MX OS language, e.g. "English"
<#SystemUpTime> (not available on MX)

Badge v1.png only in legacy Cumulus

How long the system has been up, e.g. "8 hours 21 minutes"
<#ProgramUpTime> all releases How long Cumulus has been running, e.g. "7 hours 55 minutes"
<#CpuName> (not available on MX)

Badge v1.png only in legacy Cumulus

CPU type, e.g. "Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz"
<#CpuCount> (not available on MX)

Badge v1.png only in legacy Cumulus

Number of processors, e.g. "4"
<#MemoryStatus> (not available on MX)

Badge v1.png only in legacy Cumulus

Free and total system RAM, e.g. "4619/8191 MB (free/total)"
<#DisplayMode> (not available on MX)

Badge v1.png only in legacy Cumulus

Screen display mode, e.g. "1680x1050, 32 bit"
<#AllocatedMemory> (not available on MX)

Badge v1.png only in legacy Cumulus

Amount of memory allocated to Cumulus, e.g. "18.76 MB"
<#DiskSize> (not available on MX)

Badge v1.png only in legacy Cumulus

Size of disk on which Cumulus is running, e.g. "931.51 GB"
<#DiskFree> (not available on MX)

Badge v1.png only in legacy Cumulus

Free space on disk on which Cumulus is running, e.g. "515.36 GB"

Miscellaneous

All tags are available in all flavours, as far as I know, although their output might vary, and which input/output parameters they permit might vary between Cumulus 1 and MX.

Web tag_name Function
<#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)

<#NewBuildAvailable> Only available from release 3.7.0 onwards, it is checked on start-up and once a day thereafter at a random time
  • Returns a boolean value
    • 0 - MX running the latest build available
    • 1 - MX is running an earlier build that the latest public release
<#NewBuildNumber> Only available from release 3.7.0 onwards, it is checked on start-up and once a day thereafter at a random time

Displays the latest public release build number - eg. b3089

<#realtimeinterval> The real time 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: will always return one of these: 'Midnight', '9 am' or '10 am'

This is the end of the meteorological day, so if during Daylight Saving Time rolover is at "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. The default format of the output depends on your locale settings.
<#LastDataReadT> The date/time data was last read from the station. The default format of the output depends on your locale settings.
<#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
<#latitude> gives "N 59& deg;&nbsp;14&#39;&nbsp;33&quot;" for N 59 14 33
<#latitude dp=5> gives "59.24250"

If the "dp" parameter is supplied, then supplying "rc=y" in addition will cause any decimal comma to be converted to a decimal point.

<#latitudeJsEnc> Badge vMx.png Available from version 3.11.0

JavaScript encoded of previous web tag that is HTML encoded

<#longitude> The station longitude (as you entered during setup). Supports an optional 'dp' and 'rc' parameters as per the latitude tag.
<#longitudeJsEnc> Badge vMx.png Available from version 3.11.0

JavaScript encoded of previous web tag that is HTML encoded

<#altitude> The station altitude value (web tag outputs web encoded format containing figure, '&nbsp;' and units) in either feet or metres just as you entered during setup (so it is more complex to extract number for script arithmetic); e.g. '123&nbsp;m'
<#altitudenoenc> Badge vMx.png Available from version 3.11.0

JavaScript encoded of previous web tag that is HTML encoded

<#location> The station location (as you entered during setup)
<#locationJsEnc> Badge vMx.png Available from version 3.11.0

JavaScript encoded of previous web tag that is plain text

<#locationenc> Badge vMx.png Available from version 3.10.3

HTML encoded version of previous web tag that is JavaScript encoded

<#longlocation> Longer description of the station location (as you entered during setup)
<#longlocationJsEnc> Badge vMx.png Available from version 3.11.0

JavaScript encoded of previous web tag that is plain text

<#longlocationenc> Badge vMx.png Available from version 3.10.3

HTML encoded version of previous web tag that is JavaScript encoded

<#forum> URL of the forum (as you entered during setup) encoded into a web page menu item by adding colons

For Cumulus 1, this defaults to a Sandaysoft URL that is no longer available, for MX this defaults to the current support forum (web server site hosted by "Freddie")

<#forumurl> Badge vMx.png Available from version 3.10.0

Same as previous, but just URL, without any additional colons

<#webcam> URL of the webcam (as you entered during setup) encoded into a web page menu item by adding colons. Default is blank. Can be used to link to any other web page that you host (Cumulus does not verify that it is a web can, that is just a label, and the label can be changed on each standard web page individually)
<#webcamurl> Badge vMx.png Available from version 3.10.0

Same as previous, but just URL, without any additional colons

<#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)
<#LatestNOAAMonthlyReport> Gives file name of latest auto-saved NOAA monthly report
<#LatestNOAAYearlyReport> Gives file name of latest auto-saved NOAA yearly report
Options

Badge vMx.png Available from version 3.10.0

<#Option_useApparent> Whether user prefers to see Apparent Temperature or Feels Like Temperature
<#Option_showSolar> Whether user wants to show Solar data or does not not have a solar sensor
<#Option_showUV> Whether user wants to show Ultra Violet data or does not not have a UV sensor

Units

Apply to Cumulus 1 and MX, no optional input nor output parameters.

Web tag_name Function
<#tempunit> Unit of temperature being used (Set in Cumulus as Celsius or Fahrenheit) values "&deg;C" or "&deg;F"
<#tempunitnoenc> Badge vMx.png Available from version 3.11.0

JavaScript encoded of previous web tag that is HTML encoded (i.e. without & and without °)

<#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, except where marked as MX only, most of these web tags can be used with output parameters.

Web tag_name Function
<#date> The current date - format depends on locale you use to run Cumulus
<#metdate> The current meteorological date. The default format depends on the locale you use to run Cumulus
  • If you use midnight rollover, this returns same date as <#date> (above), but with a different default format.
  • If using a 9am/10am rollover:
    • After rollover time on current calendar date, this is same as <#date>, but with a different default format.
    • Between midnight and 9am/10am the <#metdate> will return the date associated with previous calendar day, but will still return current time

Legacy website: Can be used with relevant format parameters to customise todayT.htm template page to display current meteorological day, to customise thismonthT.htm template page to display meteorological month, and to customise thisyearT.htm template page to display correct meteorological year. This will be particularly useful on first and last day of month/year when rollover happens at 9 (or 10) a.m. and the month (and maybe year) is different before and after rollover.

Badge vMx.png Earlier MX releases provide a similar web template set, so these can be customised in same way as for legacy Cumulus above (but note capital "M" must be used for any month formatting). From release 3.10.1 the supplied web pages are web server based, there are no web templates to customise, and the supplied .json files do not include any meteorological date functionality.

<#timeUTC> The current UTC date/time rather than local date/time. Example result (actual format depends on locale settings): 18:30 on 30 December 2009. If you want the local date and time, use next tag (below).
<#time> The current time and date. Example result (actual format depends on locale settings): 18:30 on 30 December 2009. If you simply wish the time, use next tag (below).
<#timehhmmss> The current time (without date). Example format: 18:30:27. You can use output format specifiers to change the way the time is output, but any date specifiers are ignored.
<#minute> The current time, just the minutes. Fixed format: 07 (cannot use output format modifiers)
<#hour> The current time, just the hour. Fixed format: 07 (cannot use output format modifiers)
<#day> The current day as a 2-digit number. Fixed format: 07 (cannot use output format modifiers)
<#dayname> The current day as a word. For example, Monday (actual format depends on locale settings)
<#shortdayname> The current day as a shortened word. Example format: Mon
<#month> The current month as a 2-digit number. Fixed format: 07 (cannot use output format modifiers)
<#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 (cannot use output format modifiers)
<#shortyear> The current year as a 2-digit number. Example format: 09 (cannot use output format modifiers)
<#rollovertime> The time that the logs rollover to the next day: 'Midnight', '9 am' or '10 am'

PHP code example for testing whether before or after rollover given in next entry.

<#metdateyesterday> The previous meteorological date. The default format depends on the locale you use to run Cumulus
  • If you use midnight rollover, this returns same date as <#date>, but with a different default format.
  • If using a 9am/10am rollover:
    • After rollover time on current calendar date, this is same as <#yesterday> (below), but with a different default format.
    • Between midnight and 9am/10am the date output by <#metdateyesterday> will be the calendar day before that returned by <#yesterday>, but the time returned is actual local time.

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.

if you use PHP Hypertext preprocessor, you can output different text for before and after rollover, e.g.

<?php
if('<#yesterday format=dddd>' == '<#metdateyesterday format=dddd>') echo '(calendar date and meteorological date same)';
else echo 'rollover still to happen, these results will be treated as belonging to <#metdate format=dddd>';?>
<#yesterday> Yesterday's date. The default format depends on the locale you use to run Cumulus
<#update> The date and time of the last web site update. The default format depends on the locale you use to run Cumulus
<#timeJavaScript> Badge vMx.pngAvailable from version 3.5.2, so not available in legacy software

The JavaScript Date object contains the number of miliseconds since 00:00:00.000 UTC on 1st January 1970, that date and time is known as the UNIX Epoch. In JavaScript, you can use Math.floor(new Date().getTime()/1000.0) This getTime method returns the time in milliseconds. The web tag returns an integer (currently with 13 digits) representing the number of milliseconds since the UNIX epoch when the web tag was processed. It can be used in a script where you wish to re-express other times output by Cumulus MX into UTC (Coordinated Universal Time). Mac OS X uses 00:00:00.000 UTC on 1st January 2001 as the starting time and date for its millisecond count, so that is considerably lower.

Note that UTC is calculated using 9192631770 times a particular transition time for Caesium 133 as a basis for 1 second. GMT (Greenwich Mean Time) is calculated on the basis that 1 second is 1/86400 of the time taken for a whole (day) rotation of the Earth. UT1 (or solar time) is calculated from various space measurements. Periodically, leap seconds are added to UTC to realign it with UT1, but these leap seconds are not added to the count of milliseconds represented by this web tag.

Do be aware that some devices will use a 32 bit signed integer to represent this number, and that will stop working on 19 January 2038, the year 2038 problem for computing world.

<#timeUnix> Badge vMx.pngAvailable from version 3.7.0, so not available in legacy software

Unix tracks the number of seconds since the UNIX epoch. So this web tag can be used when you do not want the millisecond accuracy of the previous web tag. Like previous web tag this relates to UTC, so see details for that tag to find out more. This is equivalent in PHP 5 and PHP 7 to time(); (in PHP 8, a parameter is mandatory for time function, so the call changes).

<#LastDataReadT> The date/time data was last read from the station. Default format for this tag is like this example 18:30 on 30 December 2009, but output parameters for both date and time can modify this to include seconds in 1.9.x builds and most MX builds such as per this example '<#LastDataReadT format="yyyy-MM-dd HH:mm:ss">'.
<#DaysSince30Dec1899> Day count (gives whole and fractional part) Example: 41250.6523310301
<#recordsbegandate> Date when records began (appears twice on "recordT.htm" provided in standard web page, and used to calculate next tag, but ignored for all other Cumulus processing). Any output parameters valid for a date can be used here, don't forget differences in modifiers for Cumulus 1 and MX. There is no time associated with this web tag. The default format is like 30 December 2009, please note although this web tag reports the value associated with [b]StartDate=dd/MM/yyyy[/b] (see Cumulus.ini#Section:_Station), the format there is short-date format and different to default format for this web tag.
<#DaysSinceRecordsBegan> Day count since Cumulus records started

Today

Cumulus allows some control over the time that "Today" begins:

  • For the weather diary feature (originally called "The Log" if you have a very old release or look at old posts on the support forum), Cumulus classifies what you enter by a date. The hour of the day, when that date is first applied, is set in the configuration by the SnowDepthHour (called that as the only tag name available in the legacy Cumulus was for Snow Depth.
    • The default snow depth hour is 9 for the legacy Cumulus and 0 for MX.
  • Readings from your weather station are assigned to the "Today" based on 3 options for Meteorological day
    1. starting at 9:00 am, based on winter time, so switching to 10:00 during Daylight Saving (summer) time, or
    2. starting at 9:00 am, all year round, or
    3. aligned with calendar days, so today starts at midnight

The practice for professional meteorologists varies between nations, some of the traditional practices listed below have been abandoned now most weather reading is by machines:

  • Generally, Meteorologists report snowfall, and snow days, on a calendar day basis (i.e. midnight to midnight).
  • Most frequently, the Lowest temperature for a day is that recorded prior to the start time for Highest temperature.
    • This is because Meteorologists in the past took manual observations at one, or more, fixed times during each day (9 a.m. was the most common, and the closest lowest temperature was generally earlier that morning, while the closest highest temperature was generally the following afternoon)
  • Sunshine hours were recorded from sunrise to sunset, so assigned to "Today" aligned with calendar day
  • The way that total rainfall was reported varied:
    • Some nations assigned used days that ended at 9 a.m. so rainfall was recorded against the end date
    • Sometimes totals were recorded separately for 9 a.m to 3 p.m, with 3 p.m. to 9 a.m being assigned to next day (again these were manual observation times)
    • In other cases, the total for 9 p.m to 9 a.m was recorded separately, and possibly assigned to the day after the total for 9 a.m. to 9 p.m.

Cumulus does not support most of these practices. The independence of the start time for weather diary and weather station related web tags means needs to be remembered when labelling web tags from the two tables below. Steve Loft assumed that you would use 9 a.m. as start time for both, but not care when snow fell, as it often has in the UK, after Summer Time has begun, so weather station tags were by default reporting from 10 a.m. local time and snow as at 9 a.m.

In MX, if you choose 9 a.m. (optionally 10 a.m. in summer) for rollover, so all the standard derivative are assigned to the date the meteorological day starts as Today, but the sunshine hours recorded against today will be from midnight on the said date.

Weather Diary

This first table lists all the web tags available for reporting what is recorded in the weather diary. Just to be clear, the web tags shown below, will report data for previous day if the current time is before the snow depth hour setting, and report data for the current day if the current time matches the snow depth hour or is later.

Web tag_name Function
<#snowdepth> Meteorologists report snow depth in cm, so this is default unit for Cumulus.

If there is no entry in Weather Diary for the day explained above, reports zero.

Badge vMx.png Input is to 2 decimal places. Available from version 3.1.1 - build 3054 when weather diary editor was added to MX. MX allows output in centimetres with decimal places without any script. You can't change the units shown in admin interface, but your value can be input as inches to 2 decimal places if you ignore "cm" that is displayed in that interface.

Badge v1.png Input and output is always as integer. Available from very early builds, weather diary input amended from version 1.8.6 14th April 2009 to allow units to be specified on diary edit screen. If you choose to enter as whole millimetres, you can use JavaScript (or another script language) on your web page to divide the web tag by 10 and get centimetres to 1 decimal place on output.

MX only
<#snowlying> Badge vMx.png Available from version 3.1.1 - build 3054. If there is no entry in Weather Diary for the day explained above, , this web tag returns Null. Otherwise reports 1 if tick in diary, 0 is unticked.

Badge v1.png Although this tag is not available in Cumulus 1, your web page can use a script to check if <#snowdepth> is non zero, as that means snow is lying

<#snowfalling> Badge vMx.png Available from version 3.1.1 - build 3054. If there is no entry in Weather Diary for the day explained above, , this web tag returns Null. Otherwise reports 1 if tick in diary, 0 is unticked.

Badge v1.png Not available in Cumulus 1. There is no web page workaround, unless you write a script that reads Weather Diary and makes relevant information available on your web server.

Today.ini

As explained earlier, these tag names relate to latest Meteorological day and they are populated from information held in today.ini, as the sub-section title suggests; except for Sunshine Hours which relate to latest Calendar day and can be taken from either yesterday.ini or "today.ini" depending on (respectively) whether before or after rollover time if that is not midnight.

Where a tag name reports a value specific to a past time in today-so-far, there will also be a tag name that can give the time of day, shown in same row of table below. For those that cover whole day so far, the final column contains "n/a". Please note none of the time 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.

Also as explained earlier, there is some inconsistency in naming with "T" not included in all tag names, "T" is used in conjunction with "H" or "L" as a suffix for extreme values/time-stamps, but a prefix "T" can identify today's value, or prefix "T" can signify a time-stamp.

In the legacy todayT.htm template, in the legacy "/web" folder, use was made of a selection of the tag names listed here.

If you are using MX, the today and yesterday page in the MX_Administrative_Interface shows similar information by using the local application programming interface.

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, today.ini stores a cumulative aggregate and counts the number of values processed, so a division gives this output) 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>
MX only
<#feelslikeTH> Badge vMx.png Available from version 3.6.10 (NOT AVAILABLE IN CUMULUS 1)

Today's high feels like temperature

Please see sub-section below current conditions if you are using an earlier 3.6.x version of MX.

<#TfeelslikeTH>
<#feelslikeTL> Badge vMx.png Available from version 3.6.10 (NOT AVAILABLE IN CUMULUS 1)

Today's low feels like temperature

<#TfeelslikeTL>
<#humidexTH> Badge vMx.png Available from version 3.7.0 (NOT AVAILABLE IN CUMULUS 1)

Today's high Canadian Humidity Index

Please see sub-section below current conditions if you are using Cumulus 1 or an earlier version of MX.

<#ThumidexTH>
Both legacy and MX
<#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>
Precipitation
<#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
Pressure
<#pressTH> Today's highest pressure reading <#TpressTH>
<#pressTL> Today's lowest pressure reading <#TpressTL>
Wind
<#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
<#windAvg> Badge vMx.png (Available from release 3.12.0 onwards)

The wind run divided by time passed since rollover to express it as an average wind speed

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
Miscellaneous
<#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."

N/A
<#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>
<#SunshineHours> Today's hours of sunshine so far. Added in Cumulus 2, then to 1.9.1 build 957, also available in MX. From version 3.7.0 takes a parameter "dp=n" so the number of decimal places required can be specified n/a
MX only
<#LightningStrikesToday> Number of strikes since midnight, default 0 - Added at 3.2.0 - b3056, but see subsequent release announcements as the handling of lightning was improved gradually over several subsequent releases.

(other lightning tags can be found in Current Conditions table)

<#chillhoursToday> The incremental chill hours figure since start of today (tag name available from version 3.12.0 beta build 3134, but the coding to process this web tag has a bug at time of adding this note to this Wiki page, as it may incorrectly report 99.99; hopefully a calculation using <#Ychillhours> and <#chillhours> will work better)

(Compare with Cumulative seasonal Chill Hours at end of today <#chillhours> found in Current Conditions table)

No Commas

This section is for those locales where a comma is used instead of a full stop to separate the integer and decimal parts of a number. This section on this Wiki page was written for the legacy Cumulus (1.9.4) software. Although tag names in this section can be used in Cumulus MX, for backwards compatibility, there is now a better way to ensure that the value output by web tags can be understood by script languages which expect a full stop between the integer and decimal parts of a number.

Note that Cumulus does not use thousand separators, so the only places a comma can be used are as a field separator, or as a decimal separator. Obviously it cannot be used for both. Some computer languages like JavaScript will not accept a comma being used for this purpose.

MX

Cumulus MX uses JavaScript Object Notation files for many of its data transfers.

From release 3.5.4 build 3075, most web tags (one notable exception is indoor temperature <#intemp> where rc parameter not available until release 3.6.8 build 3084), 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.

Legacy Cumulus

Cumulus 1.9.4 uses JavaScript for various tasks, as do various third party web pages.

From version 1.9.3 build 1045, Cumulus 1 (and MX) has provided some current conditions web tags, some today web tags, and some recent history web tags in an alternative format where (regardless of locale) the number is always output in a format that uses a decimal point. They are listed in the sub-sections that follow and all correspond to the same tag name with the letters 'RC' removed that has been listed in respective sections of this Wiki page.

RC CURRENT CONDITIONS:

<#RCtemp>, <#RCdew>, <#RCheatindex>, <#RChum>, <#RCinhum>, <#RCintemp>, <#RCpress>, <#RCrfall>, <#RCrrate>, <#RCwchill>, <#RCwgust>, <#RCwspeed>, <#RCwlatest>

RC TODAY:

<#RCpressTH>, <#RCpressTL>, <#RCrrateTM>, <#RCtempTH>, <#RCtempTL>, <#RCwgustTM>, <#RCdewpointTH>, <#RCdewpointTL>, <#RCwchillTL>, <#RCheatindexTH>, <#RCapptempTH>, <#RCapptempTL>

RC RECENT HISTORY:

<#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, as described below the recent history section.

Yesterday

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.

If you are using MX, the today and yesterday page in the MX_Administrative_Interface shows similar information by using the local application programming 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'.

Web tag_name Function Time
Legacy and MX
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>
MX only
<#Ychillhours> The Cumulative Chill Hours as recorded at rollover (the end of meteorological yesterday) (Available from release 3.12.0 onwards) n/a
<#chillhoursYest> The incremental Chill Hours change yesterday (Available from release 3.12.0 onwards)

(compare with <#chillhoursToday> described in #Today.ini table)

n/a
<#feelslikeYH> Badge vMx.png Available from version 3.6.10

Yesterday's high feels like temperature

<#TfeelslikeYH>
<#feelslikeYL> Available from version 3.6.10

Yesterday's low feels like temperature

<#TfeelslikeYL>
<#humidexYH Available from version 3.7.0

Yesterday's high Canadian Humidity Index

<#ThumidexYH>
Legacy and MX
<#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>
Rainfall
<#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>
Pressure
<#pressYH> Yesterday's highest pressure reading <#TpressYH>
<#pressYL> Yesterday's lowest pressure reading <#TpressYL>
Wind
<#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
MX only
<#windAvgY> Badge vMx.png (Available from release 3.12.0 onwards)

The wind run yesterday divided by 24 hours to express it as an average wind speed

n/a
Legacy and MX
Miscellaneous
<#heatdegdaysY> Yesterday's heating degree days n/a
<#cooldegdaysY> Yesterday's cooling degree days n/a
<#YSunshineHours> Yesterday's hours of sunshine so far. Added in Cumulus 2, then to 1.9.1 build 957, also in MX. From version 3.7.0 takes a parameter "dp=n" so the number of decimal places required can be specified n/a
<#solarYH> Yesterday's high solar radiation value (Solar sensor needed) <#TsolarYH>
<#UVYH> Yesterday's high UV Index (UV sensor needed) <#TUVYH>

Yearly

This table shows most of the web tags used on the "thisyearT.htm" web template.

The web tags in the date column output dates in the format "dd MMMM" (for once this is same for Cumulus 1 and Cumulus MX). Should you require a different output format, 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. Do make sure that you get the web tag names right and the output form at parameters right.

As another example of inconsistency in how web tags added in different versions are coded, there are two web tags (highest minimum/lowest maximum temperatures) where a standard web tag is not provided by Cumulus (1 or MX) for the associated time-stamp. Consequently, for these 2 (and their corresponding tags in the this month group), there are mandatory output parameters required as shown in the table. Obviously Cumulus 1 lets you use "NN", "nn", "MM", or "mm" for the minutes, but minutes can only be represented in one way in Cumulus MX.

Remember that the Year-to-date runs from roll-over time on 1 January for all web tags listed here.

The list below does NOT include any web tags that represent seasonal derivatives, i.e. where you define the month from which they start counting. (Cumulative seasonal Chill Hours <#chillhours> and Total seasonal rainfall <#ryear> can both be found in Current Conditions). Note, that does not imply both are included in indexT.htm.


Web tag_name Function Time Date
Temperature & Humidity
<#YearTempH> This year's highest temperature <#YearTempHT> <#YearTempHD>
<#YearTempL> This year's lowest temperature <#YearTempLT> <#YearTempLD>
<#YearHighDailyTempRange> This year's highest Daily Temp Range n/a <#YearHighDailyTempRangeD>
<#YearLowDailyTempRange> This year's lowest Daily Temp Range n/a <#YearLowDailyTempRangeD>
<#YearHeatIndexH> This year's highest USA heat index <#YearHeatIndexHT> <#YearHeatIndexHD>
<#YearWChillL> This year's greatest wind chill (i.e. lowest temperature) <#YearWChillLT> <#YearWChillLD>
<#YearAppTempH> This year's highest apparent temperature <#YearAppTempHT> <#YearAppTempHD>
<#YearAppTempL> This year's lowest apparent temperature <#YearAppTempLT> <#YearAppTempLD>
<#YearFeelsLikeH> Badge vMx.pngThis year's highest feels like temperature (available from 3.6.0) (NOT AVAILABLE IN CUMULUS 1) <#YearFeelsLikeHT> <#YearFeelsLikeHD>
<#YearFeelsLikeL> Badge vMx.pngThis year's lowest feels like temperature (available from 3.6.0) (NOT AVAILABLE IN CUMULUS 1) <#YearFeelsLikeLT> <#YearFeelsLikeLD>
<#YearHumidexH> Badge vMx.png (Available from version 3.7.0) (NOT AVAILABLE IN CUMULUS 1)

This year's highest Canadian Humidity Index

<#YearHumidexHT> <#YearHumidexHD>
<#YearDewPointH> This year's highest dew point <#YearDewPointHT> <#YearDewPointHD>
<#YearDewPointL> This year's lowest dew point <#YearDewPointLT> <#YearDewPointLD>
<#YearMinTempH> This year's highest daily minimum temperature Flavour specific mandatory output parameters:
  • <#YearMinTempHD format=HH:nn> for Cumulus 1,
  • <#YearMinTempHD format=HH:mm> for Cumulus MX
<#YearMinTempHD>
<#YearMaxTempL> This year's lowest daily maximum temperature Flavour specific mandatory output parameters:
  • <#YearMaxTempHD format=HH:nn> for Cumulus 1,
  • <#YearMaxTempHD format=HH:mm> for Cumulus MX
<#YearMaxTempLD>
<#YearHumH> This year's high humidity <#YearHumHT> <#YearHumHD>
<#YearHumL> This year's low humidity <#YearHumLT> <#YearHumLD>
Pressure
<#YearPressH> This year's high pressure <#YearPressHT> <#YearPressHD>
<#YearPressL> This year's low pressure <#YearPressLT> <#YearPressLD>
Wind
<#YearGustH> This year's high wind gust <#YearGustHT> <#YearGustHD>
<#YearWindH> This year's high wind speed <#YearWindHT> <#YearWindHD>
<#YearWindRunH> This year's highest Daily Wind Run n/a <#YearWindRunHD>
Rainfall
<#YearRainRateH> This year's highest rainfall rate <#YearRainRateHT> <#YearRainRateHD>
<#YearHourlyRainH> This year's highest hourly rain <#YearHourlyRainHT> <#YearHourlyRainHD>
<#YearDailyRainH> This year's high daily rain n/a <#YearDailyRainHD>
<#YearMonthlyRainH> This year's 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>
Solar

Badge vMx.png (Available from release 3.12.0 onwards)

<#SunshineHoursYear> the total sunshine hours in year-to-date, or with input modification parameters using either y or r for a past year n/a n/a

All Time

This table lists the web tags that appear in the recordsT.htm example template that is included in each release since version 1.5.1 10th January 2006. Additional tags correctly populated from 3.6.10 (build 3086) or 3.7.0 (build 3089) are marked with a "MX" icon as they are not available in Cumulus 1. Please note the 3.6.10 release was available from 24 June 2020, if the date shown for those MX only tags is before when you installed that (or a later release), the output may show incorrect values.

The output from the web tags shown in the date/time column have the default format that is seen on "records.htm" in the standard web pages:

  • The default format for an extreme month is to show the month name in full i.e. format 'MMMM' followed by the year in full.
  • 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' again ending with the year.
  • 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 (i.e. on the standard web page the time comes first, not as seen in admin interface).

You can change the default output on either the standard web template, or in your own file, by using the 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. Please see examples section above for advice.

Note that unlike the this month and this year web tags, the time and the date are both included in the default format of the standard time-stamp web tags for the 'highest minimum' and 'lowest maximum' temperatures, yet another inconsistency!

Web tag_name Function Date/Time
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> Badge vMx.pngAll time high feels like temperature (available from 3.6.0) <#TfeelslikeH>
<#feelslikeL> Badge vMx.pngAll time low feels like temperature (available from 3.6.0) <#TfeelslikeL>
<#humidexH> Badge vMx.pngAll time high Canadian Humidity Index (available from 3.7.0) <#ThumidexH>
<#heatindexH> All time high USA 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, but highest wind speed) <#TwchillH>
Rainfall
<#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>
Pressure
<#pressH> All time high pressure <#TpressH>
<#pressL> All time low pressure <#TpressL>
Wind
<#gustM> All time high wind gust <#TgustM>
<#wspeedH> All time high average wind speed <#TwspeedH>
<#windrunH> All time high daily wind run <#TwindrunH>

Monthly

This table shows the web tags used on the thismonthT.htm web template.

Because the rainfall this month does not appear on thismonthT.htm web page, it is shown in indexT.htm table earlier in this article which is for the web page where it does appear.

The web tags in the date column output dates in the format "dd MMMM" (for once this is same for Cumulus 1 and Cumulus MX). Should you require a different output format, 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. Do make sure that you get the web tag names right and the output form at parameters right.

As another example of inconsistency in how web tags added in different versions are coded, there are two web tags (highest minimum/lowest maximum temperatures) where a standard web tag is not provided by Cumulus (1 or MX) for the associated time-stamp. Consequently, for these 2 (and their corresponding tags in the this year group), there are mandatory output parameters required as shown in the table. Obviously Cumulus 1 lets you use "NN", "nn", "MM", or "mm" for the minutes, but minutes can only be represented in one way in Cumulus MX.

Web tag_name Function Time Date
Temperature & Humidity
<#MonthTempH> This months high temperature <#MonthTempHT> <#MonthTempHD>
<#MonthTempL> This months low temperature <#MonthTempLT> <#MonthTempLD>
<#MonthMinTempH> This months highest daily minimum temperature Badge v1.png<#MonthMinTempHD format=hh:nn> or <#MonthMinTempHD format=HH:mm> for Cumulus 1,

Badge vMx.png <#MonthMinTempHD format=HH:mm> for Cumulus MX

<#MonthMinTempHD>
<#MonthMaxTempL> This months lowest daily maximum temperature Badge v1.png<#MonthMaxTempLD format=HH:mm> or <#MonthMaxTempLD format=hh:nn> for Cumulus 1,
Badge vMx.png<#MonthMaxTempLD format=HH:mm> for Cumulus MX
<#MonthMaxTempLD>
<#MonthHighDailyTempRange> High Daily Temp Range n/a <#MonthHighDailyTempRangeD>
<#MonthLowDailyTempRange> Low Daily Temp Range n/a <#MonthLowDailyTempRangeD>
<#MonthHeatIndexH> This months high USA heat index <#MonthHeatIndexHT> <#MonthHeatIndexHD>
<#MonthWChillL> This months greatest wind chill (i.e. lowest temperature) <#MonthWChillLT> <#MonthWChillLD>
<#MonthAppTempH> This month's high apparent temperature <#MonthAppTempHT> <#MonthAppTempHD>
<#MonthAppTempL> This month's low apparent temperature <#MonthAppTempLT> <#MonthAppTempLD>
<#MonthFeelsLikeH> This month's highest feels like temperature (available from Badge vMx.png 3.6.0) (NOT AVAILABLE IN CUMULUS 1) <#MonthFeelsLikeHT> <#MonthFeelsLikeHD>
<#MonthFeelsLikeL> This months lowest feels like temperature (available from Badge vMx.png 3.6.0) (NOT AVAILABLE IN CUMULUS 1) <#MonthFeelsLikeLT> <#MonthFeelsLikeLD>
<#MonthHumidexH> Badge vMx.png (Available from version 3.7.0) (NOT AVAILABLE IN CUMULUS 1)

This month's highest Canadian Humidity Index

<#MonthHumidexHT> <#MonthHumidexHD>
<#MonthDewPointH> This month's high dew point <#MonthDewPointHT> <#MonthDewPointHD>
<#MonthDewPointL> This month's low dew point <#MonthDewPointLT> <#MonthDewPointLD>
<#MonthHumH> This month's highest humidity <#MonthHumHT> <#MonthHumHD>
<#MonthHumL> This month's lowest humidity <#MonthHumLT> <#MonthHumLD>
Pressure
<#MonthPressH> This month's highest pressure <#MonthPressHT> <#MonthPressHD>
<#MonthPressL> This month's lowest pressure <#MonthPressLT> <#MonthPressLD>
Wind
<#MonthGustH> This month's highest wind gust <#MonthGustHT> <#MonthGustHD>
<#MonthWindH> This month's highest wind speed <#MonthWindHT> <#MonthWindHD>
<#MonthWindRunH> This month's high Daily Wind Run n/a <#MonthWindRunHD>
Rainfall
<#MonthRainRateH> This month's highest rainfall rate <#MonthRainRateHT> <#MonthRainRateHD>
<#MonthHourlyRainH> This month's highest hourly rain <#MonthHourlyRainHT> <#MonthHourlyRainHD>
<#MonthDailyRainH> This month's wettest day (greatest daily rain) n/a <#MonthDailyRainHD>
<#MonthLongestDryPeriod> Longest dry period ending this month (days) n/a <#MonthLongestDryPeriodD>
<#MonthLongestWetPeriod> Longest period of rain every day, ending this month (days) n/a <#MonthLongestWetPeriodD>
Solar

Badge vMx.png (Available from release 3.12.0 onwards)

<#SunshineHoursMonth> the total sunshine hours in month-to-date, or with input modification parameters using either y and m or r for a past month n/a n/a


Monthly All Time Records

This table includes web tags that show the values in Monthlyalltime.ini log file, which was introduced in version 1.9.3 (build 1033, 10 Apr 2012).

These 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.

  1. The tag names listed here require a input modification parameter.
  2. The tag names here can optionally take any output modification parameters.
  3. To supply both optional input modification, and optional output modification parameters, separate them with spaces, e.g. <#ByMonthTempHT mon=7 format=hh:nn>. In that example, the time (not date) of highest ever temperature in July is returned after processing by Cumulus.

At release 3.6.10 (build 3086), and at release 3.7.0 (build 3089); additional tag names were introduced:

  • They are marked with a "MX" icon as they are not available in legacy Cumulus 1.
  • If you have any "feels like temperatures" that appear with a date/time parameter with a date before 24 June 2020, or before you installed the 3.6.10 release (or a later release), then the value web tag may show incorrect values.
Web tag_name Function Date/Time
Temperature & Humidity
<#ByMonthTempH> High Temperature <#ByMonthTempHT>
<#ByMonthTempL> Low Temperature <#ByMonthTempLT>
<#ByMonthHeatIndexH> High Heat Index <#ByMonthHeatIndexHT>
<#ByMonthWChillL> Greatest wind chill (i.e. lowest temperature and highest wind speed) <#ByMonthWChillLT>
<#ByMonthAppTempH> High Apparent Temperature <#ByMonthAppTempHT>
<#ByMonthAppTempL> Low Apparent Temperature <#ByMonthAppTempLT>
<#ByMonthFeelsLikeH> Badge vMx.pngHigh Feels Like Temperature (available from 3.6.10) <#ByMonthFeelsLikeHT>
<#ByMonthFeelsLikeL> Badge vMx.pngLow Feels Like Temperature (available from 3.6.10) <#ByMonthFeelsLikeLT>
<#ByMonthHumidexH> Badge vMx.pngHigh Canadian Humidity Index (Humidex) - available from version 3.7.0 <#ByMonthHumidexHT>
<#ByMonthHumidexL> Badge vMx.pngLow Canadian Humidity Index (Humidex) - available from version 3.7.0 <#ByMonthHumidexLT>
<#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>
<#ByMonthHumH> High Humidity <#ByMonthHumHT>
<#ByMonthHumL> Low Humidity <#ByMonthHumLT>
Pressure
<#ByMonthPressH> High Pressure <#ByMonthPressHT>
<#ByMonthPressL> Low Pressure <#ByMonthPressLT>
Wind
<#ByMonthGustH> High Wind Gust <#ByMonthGustHT>
<#ByMonthWindH> High Wind Speed <#ByMonthWindHT>
<#ByMonthWindRunH> High Daily Wind Run <#ByMonthWindRunHT>
Rainfall
<#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>

Day/Night/Sun/Moon

In Cumulus 1 most of these are only calculated at UTC zero hours, but are updated each hour to refer to current time-zone.

MX is more complicated, but most of these are calculated hourly.

Web tag_name Function
<#sunrise> Last sunrise time at the station - This sunrise time is calculated by a third party library each midnight UTC (in legacy cumulus), 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 (in legacy cumulus), 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 (in legacy cumulus), 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> Approximate length of daylight in hours and minutes (dawn to dusk) - if your timezone is UTC or a few hours off that, the dusk may well be that just passed, and the dawn that to come as at the zero hours UTC when Cumulus 1 does this calculation
<#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, basically because of the note for <#daylightlength>, and its use was not recommended. Its use is therefore not supported by Steve Loft (i.e. you use it at your own risk) in the legacy Cumulus.

<#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"

There is some PHP script code below this table showing how this can be converted to days, hours, minutes, seconds*

If the "dp" parameter is supplied, then 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> see #Today.ini Miscellaneous
<#SunshineHoursY> see #Yesterday Miscellaneous
<#CurrentSolarMax> Current theoretical maximum solar radiation
<#IsSunny> Returns 1 if the sun is shining, otherwise 0 (Solar sensor needed)
* Footnote: PHP code extract:
	$MoonAgeDays 		= <#MoonAge dp=0> +0;
	$moonDecimalPart 		= <#MoonAge dp=4> - $MoonAgeDays;
	$MoonAgeHours 		= round($moonDecimalPart * 24, 0);
	$MoonAgeMinutes  		= round(($moonDecimalPart * 24 * 60) - ($MoonAgeHours * 60), 0);
	$MoonAgeSeconds		= round(($moonDecimalPart * 24 * 60 * 60) - ($MoonAgeHours * 60 * 60) - ($MoonAgeMinutes * 60), 3);
	$MoonAge       	=    $MoonAgeDays . ' days, ' .   $MoonAgeHours . ' hours, '
				. $MoonAgeMinutes . ' minutes, ' . $MoonAgeSeconds . ' seconds';
	// Change the English words 'days, ', ' hours, ', and 'minutes' to the equivalents in your language

Alarms

Badge v1.pngThere 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.

Badge vMx.pngAlarms 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'.

Web tag_name Function
<#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
<#DataSpikeAlarm> Badge vMx.png Available from version 3.7.0

Alarm raised if a data spike is detected, or a data limit exceeded

<#HttpUploadAlarm> Badge vMx.png Available from version 3.11.2

Alarm raised if a HTTP upload alarm has been triggered

<#MySqlUploadAlarm> Badge vMx.png Available from version 3.11.2

Alarm raised if a MySQL upload alarm has been triggered

<#UpgradeAlarm> Alarm raised if MX upgrade (a newer release) is available

Extreme Records

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

Badge v1.png Cumulus 1.9.x supports all the web tags listed in table below, with the exception of those relating to "humidex" and "feels like".

Badge v1.png For Cumulus 1 the tags are cleared in one of two ways:

  1. Generation of a web page where the web tag is set, clears the record for that web tag.
  2. Viewing of an extreme screen tab clears all records listed on that tab.

Badge vMx.png 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.7.0, Cumulus MX offers all the web tags listed in table below, at earlier versions it offers a subset of those listed.

Badge vMx.png For MX these web tags will be set from the time of the record until a timeout value is met (by default each record remains set for 24 hours).

You can change the default MX timeout:

  • Add a RecordSetTimeoutHrs=NN entry to [Station] section in Cumulus.ini
  • NN can be set to any reasonable integer representing hours (for the default set the number NN to '24').

Table of web tags available for extreme records

Web tag_name Function
<#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.
  • Badge vMx.pngIn Cumulus MX: 1 from when new record is set until
    • either all records have cleared
    • or until next rollover is completed,
    • or (in recent releases) until the number of hours for clearing extreme record notifications has passed
  • 0 otherwise
  • Badge v1.pngIn Cumulus 1.x.x:
    • 1 if 'new record' light is flashing,
    • 0 if not
<#TempRecordSet> 1 if any temperature-based extreme has been updated, 0 if not
<#HighTempRecordSet> 1 if the all-time highest temperature extreme has been updated, 0 if not
<#LowTempRecordSet> 1 if the all-time lowest temperature extreme has been updated, 0 if not
<#HighTempRangeRecordSet> 1 if the all-time high daily temperature range extreme has been updated, 0 if not
<#LowTempRangeRecordSet> 1 if the all-time low daily temperature range extreme has been updated, 0 if not
<#HighAppTempRecordSet> 1 if the all-time high apparent temperature extreme has been updated, 0 if not
<#LowAppTempRecordSet> 1 if the all-time low apparent temperature extreme has been updated, 0 if not
<#HighHeatIndexRecordSet> 1 if the all-time high USA heat index extreme has been updated, 0 if not
<#HighHumidexRecordSet> Badge vMx.png1 if the all-time high Canadian Humidity index extreme has been updated, 0 if not (from version 3.7.0)
<#LowWindChillRecordSet> 1 if the all-time greatest wind chill extreme has been updated, 0 if not
<#HighFeelsLikeRecordSet> Badge vMx.png1 if the all-time high feels like temperature extreme has been updated, 0 if not (from version 3.6.0)
<#LowFeelsLikeRecordSet> Badge vMx.png1 if the all-time low feels like temperature extreme has been updated, 0 if not (from version 3.6.0)
<#HighDewPointRecordSet> 1 if the all-time high dew point extreme has been updated, 0 if not
<#LowDewPointRecordSet> 1 if the all-time low dew point extreme has been updated, 0 if not
<#HighMinTempRecordSet> 1 if the all-time high minimum temperature extreme has been updated, 0 if not
<#LowMaxTempRecordSet> 1 if the all-time low maximum temperature extreme has been updated, 0 if not
<#HighWindGustRecordSet> 1 if the all-time high wind gust extreme has been updated, 0 if not
<#HighWindSpeedRecordSet> 1 if the all-time high wind speed extreme has been updated, 0 if not
<#RainRecordSet> 1 if any rainfall based extreme has been updated, 0 if not
<#HighRainRateRecordSet> 1 if the all-time high rain rate extreme has been updated, 0 if not
<#HighHourlyRainRecordSet> 1 if the all-time high hourly rain extreme has been updated, 0 if not
<#HighDailyRainRecordSet> 1 if the all-time high daily rain extreme has been updated, 0 if not
<#HighMonthlyRainRecordSet> 1 if the all-time high monthly rain extreme has been updated, 0 if not
<#LongestDryPeriodRecordSet> 1 if the all-time longest dry period extreme has been updated, 0 if not
<#LongestWetPeriodRecordSet> 1 if the all-time longest wet period extreme has been updated, 0 if not
<#HumidityRecordSet> 1 if either the highest or lowest humidity extreme has been updated, 0 if not
<#HighHumidityRecordSet> 1 if the all-time high humidity light extreme has been updated, 0 if not
<#LowHumidityRecordSet> 1 if the all-time low humidity extreme has been updated, 0 if not
<#PressureRecordSet> 1 if either the highest or lowest pressure extreme has been updated, 0 if not
<#HighPressureRecordSet> 1 if the all-time high pressure extreme has been updated, 0 if not
<#LowPressureRecordSet> 1 if the all-time low pressure extreme has been updated, 0 if not
<#WindRecordSet> 1 if any wind speed based extreme has been updated, 0 if not
<#HighWindrunRecordSet> 1 if the all-time high wind run extreme has been updated, 0 if not

Special tags

Davis

Please be aware that the tags available are not the same in all versions. Badge vMx.pngAt present 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 from Cumulus 1.9.2. Most of the following web tags are available in Cumulus MX 3.0.0 beta from build 3019, Storm tags from 3021.

Both flavours update the values of the reception tags every 15 minutes. In Cumulus 1 this applies from 1.9.3, in 1.9.2 they were read, and updated, every minute, in earlier versions not available.

Web tag_name Applicability Function
<#DavisTotalPacketsReceived> 1.9.2 onwards and MX Total number of data packets received. This stat is not supplied by the Davis WLL station.
<#DavisTotalPacketsMissed> 1.9.2 onwards and MX Number of missed data packets. From version 3.6.0 build 3076, optionally add "tx=n" parameter, where n=1-8 and equals the desired transmitter id. The default is n=0 and will return the VP2 stats.
<#DavisMaxInARow> 1.9.2 onwards and MX Longest streak of consecutive packets received. From version 3.6.0 build 3076, optionally add "tx=n" parameter, where n=1-8 and equals the desired transmitter id. The default is n=0 and will return the VP2 stats.
<#DavisNumCRCerrors> 1.9.2 onwards and MX Number of packets received with CRC errors. From version 3.6.0 build 3076, optionally add "tx=n" parameter, where n=1-8 and equals the desired transmitter id. The default is n=0 and will return the VP2 stats.
<#DavisNumberOfResynchs> 1.9.2 onwards and MX Number of times the console resynchronised with the transmitter. From version 3.6.0 build 3076, optionally add "tx=n" parameter, where n=1-8 and equals the desired transmitter id. The default is n=0 and will return the VP2 stats
<#DavisFirmwareVersion> 1.9.2 onwards and MX The console/WLL firmware version
<#THWindex> 1.9.x A derived temperature using Temperature/Humidity/Wind values read from Davis DLL in Cumulus 1.9.x.
  • The THW Index uses humidity and temperature (like Heat Index), but includes the cooling effects of wind (like wind chill).
  • Available from 1.9.2 Build 1009 (Aug 2011).
<#THSWindex> (1.9.x and) MX A heat stress indicator using Temperature/Humidity/Solar/Wind values.
  • The THSW Index uses humidity and temperature (like the Heat Index), but also includes the heating effects of sunshine, and the cooling effects of wind.
  • Therefore requires Davis station with solar sensor.

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.

IMPORTANT NOTES:

  1. Although this tag is available in Cumulus 1.9.x, there is an issue somewhere in the Davis code that prevents Cumulus 1 obtaining the value (so tag always displays zero).
  2. Search the forum for several discussions about "THSW".
  3. Cumulus MX reads "LOOP2" packets, and the correct value for this tag can be read there and displayed on 'Now' template.
<#battery> 1.x.x and MX The console battery condition in volts. eg "4.82v"
<#txbattery>

<#txbattery channel=1>

1.8.9 onwards and MX The transmitter battery condition, by default it returns the status of all transmitters. (This was displayed from version 1.9.4 to 1.8.9 on the main screen).

Cumulus 1.9.3 onwards 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', you can use date output format modifiers

(Note that the console does not report start time, so the web tag cannot report time. It appears a minimum of 2 tips within 3 hours will trigger a storm start, so using <#LastRainTip> in a MX script might help)

Davis WLL

New from version 3.6.0. Not available for earlier MX, not available for Cumulus 1.

Web tag_name Function
<#DavisReceptionPercent tx=1> WLL transmitter reception percentage (replace 1 by any other transmitter number up to 8)
<#DavisTxRssi tx=0> WLL RSSI of the WiFi connection
<#DavisTxRssi tx=1> WLL RSSI of Transmitter #1 (replace 1 by any other transmitter number up to 8)




Fine Offset

The following tags are specific to the Fine Offset series of PWS

Web tag_name Function
<#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