Full list of Webtags and Software: Difference between pages

From Cumulus Wiki
(Difference between pages)
Jump to navigationJump to search
m (One tag correction)
 
(→‎Raspberry Pi Image: Updated to version 4.6.4.)
 
Line 1: Line 1:
[[Category:Cumulus MX]] This Wiki page has been created for those who use Cumulus MX. It lists all standard utilities as well as MX itself.
{|align=right
|__TOC__
|}
This page has been updated until CMX version 4.2.1


= What is Cumulus MX? =
This list only contains the tag names. Tag names are the basic entity when asking a value. Check the [[Webtags#Using_Webtags|Usage of webtags]] and don't forget tag names are only part of the [[Webtags#General Format for Web Tags|general format for Webtags]]. 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 cross platform version of Cumulus software that runs on Microsoft Windows, all varieties of UNIX and Linux (including the Raspberry Pi Operating System), and Mac OS X.
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. If you find such occurrence you may notify or modify.


= Current Conditions =


==CumulusMX.exe Usage Restriction==
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. CumulusMX makes current values available for a standard range of sensors where the same web tags apply across a range of weather station models. Current values from some [[#Extra Sensors|extra]] temperature and relative humidity sensors (see [[Extra temperatures]]) from particular weather station models are offered as well.


Both the mandatory [[MX Administrative Interface|MX Interface]], and the optional [[New Default Web Site Information|default MX web site]], include the [https://www.highcharts.com HighStock] product.
==Standard sensors==
The tags in this first list are grouped for historical reasons and remain grouped.


Are you using MX for a non-profit organisation, personal website, or school project?
{| class="wikitable" border="1"
Then download MX and start using it with Highcharts today.
|-
!style="width:150px" | Webtag name
!style="width:600px" | Function
|-
|colspan="2" style="background:lightgray;"|Temperature
|-
|<#temp>
|The outside (air) temperature
|-
|<#intemp>
|The inside temperature
|-
|<#TempChangeLastHour>
|The change in outside temperature over the last hour
|-
|<#temptrend>
|The average rate of change in temperature over the last three hours. Trend = (temp now - temp 3hrs ago) / 3 (the calculation selected for this trend matches the standard-based calculation for <#presstrendval> despite the naming inconsistency)
|-
|<#temptrendsigned>
|signed string value of temperature trend
|-
|<#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 [[Webtags_as_boolean_operators_in_HTML|HTML]], [[Editing_content_of_a_webpage_using_either_HTML_or_Script|javascript]] etc, values can't be changed).
|-
|<#heatindex>
|Current [[heat index]].
|-
|<#humidex>
|Current [http://en.wikipedia.org/wiki/Humidex Humidex]
|-
|<#apptemp>
|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.
|-
|<#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>
|Available for version 3.6.10 and up. See [[Feels Like]]
|-
|<#IsFreezing>
|If outside temperature is at or below 0°C/32°F. 0=Above freezing, 1=Below freezing
|-
|<#chillhours>
|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).
|-
|colspan="2" style="background:lightgray;"|Humidity
|-
|<#hum>
|The outside [http://en.wikipedia.org/wiki/Humidity humidity]
|-
|<#inhum>
|The inside humidity
|-
|<#dew>
|The current dew point (See [[Temperature_(and_humidity)_measurement#Cumulus_Calculated_Parameters|wiki]])
|-
|<#wetbulb>
|Estimated [http://en.wikipedia.org/wiki/Wet_bulb wet bulb] temperature
|-
|<#VapourPressDeficit>
|The difference between the current vapor pressure and the saturated vapor pressure. Various uses in agriculture. Example use in [[Theoretical_background_on_pwsFWI#Humidity_%E2%80%93_the_science|the pwsFWI in CUtils]].
|-
|colspan="2" style="background:lightgray;"|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 [[Rain_measurement#Rain_Rate|rainfall rate]]
|-
|<#rhour>
|The rainfall in the last hour
|-
|<#r24hourH>
|All time high total rainfall in a 24-hour period
|-
|<#Tr24hourH>
|Time of the rainfall in the last 24 hours
|-
|<#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
|-
|<#MinutesSinceLastRainTip>
|The number of minutes since the last rain gauge tip, in whole numbers, rounded down
|-
|<#IsRaining>
|For [[Rain_measurement#Optical_Rain_Gauge| Hydreon RG-11 devices]], shows the current rain state. 0=No rain, 1=It's raining
|-
|<#rweek>
|The total rainfall so far this week
|-
|<#rmonth>
|The total rainfall so far this month
|-
|<#MonthRainfall>
|Returns the rainfall total for the current month by default (see also #rmonth) but may take optional parameters `y=YYYY` and `m=MM` (both must be specified) to return the total rainfall for specified month in the specified year eg. `<#MonthRainfall y=2018 m=10>`
|-
|<#ryear>
|Annual rainfall total for rainfall season year (i.e. starting month as set on Configuration menu, station screen, Annual rainfall frame)
|-
|<#AnnualRainfall>
|Annual rainfall, defaults to the current year (i.e. = <#ryear>), but also takes an optional parameter "y=nnnn" which allows you to specify any year in the Cumulus history
|-
|<#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
|-
|colspan="2" style="background:lightgray;"|Pressure
|-
|<#press>
|The [http://en.wikipedia.org/wiki/Sea_level_pressure sea level pressure]
|-
|<#presstrendval>
|The average rate of pressure change over the last three hours. Trend = (pressure now - pressure 3hrs ago) / 3
|-
|<#presstrendsigned>
|signed string value of pressure trends
|-
|<#presstrend>
|The pressure trend in words - values can be set in the 'strings.ini' file
|-
|<#presstrendenglish>
| a single 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
|-
| <#PressChangeLast3Hours>
|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.
|-
|<#stationpressure>
|station pressure (the absolute pressure reading)
|-
|colspan="2" style="background:lightgray;"|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


Are you representing any commercial organisation running a facility that others use? If so, then you cannot use Cumulus MX to share weather data on behalf of your organisation without buying a licence from the High Charts organisation.
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 [http://en.wikipedia.org/wiki/Compass 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:
* 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


'''HighCharts rules for usage of their products are described ''' [https://shop.highcharts.com/ on their licence purchase web page], and ''it is your responsibility to ensure compliance''.
|-
|<#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)
|-
|<#beaufort>
|The current wind speed on the [http://en.wikipedia.org/wiki/Beaufort_scale 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
|-
|<#BearingRangeTo>
|The 'highest' clockwise bearing in the last 10 minutes
|-
|<#BearingRangeFrom10>
|The 'lowest' clockwise bearing in the last 10 minutes, rounded down to nearest 10 degrees
|-
|<#BearingRangeTo10>
|The 'highest' clockwise bearing in the last 10 minutes, rounded down to nearest 10 degrees
|-
|colspan="2" style="background:lightgray;"|Miscellaneous
|-
|<#cloudbase>
|Calculated [http://en.wikipedia.org/wiki/Cloud_base cloud base]
|-
|<#cloudbasevalue>
|Current calculated cloud base without units
|-
|<#UV>
|Current [http://en.wikipedia.org/wiki/Uv_index UV index]. Requires your station to have a UV sensor.
|-
|<#SolarRad>
|Current [http://en.wikipedia.org/wiki/Solar_radiation 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_webtag|<#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>
|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 [[Forecast_webtag|Cumulus]]: -1 (neg 1) = Exceptional Fine, -26 (neg 26) = Exceptional Bad
|-
|<#cumulusforecast>
|Always gives Cumulus (Zambretti) [[Forecast_webtag|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>
|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>
|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.
|-
|<#currcondJsEnc>
|Available from version 3.11.0; The current conditions encoded for JavaScript
|}


== Help with ‘Stable’ MX releases ==
==Extra Sensors==


If you need any help with Cumulus MX, please first consult, in this Wiki, [[What_to_do_when_I_have_a_problem_with_MX]].
The extra sensors functionality in Cumulus only supports processing for current spot values as read from the sensors. Periodically spot extra sensor values are logged, see the [[Extra_Sensor_Files|Extra Sensor Files]] page for information about log files from where you can extract the past spot values. The logging can be compared to the Standard Logfiles.


It is recommended you check you have complied with any instructions in the announcement for the latest MX release in [https://cumulus.hosiene.co.uk/viewtopic.php?f=40&t=17887 the forum] before seeking help (to see what changes in any release affect you, and what actions you may need to take).
===Extra Sensors: Davis models and Oregon Scientific WMR928, WR100/200 and Ecowitt===


If you wish to research the documentation on MX to try to resolve your problem yourself, use the entry point of the [[:Category:Cumulus MX]] page for pointers to other Wiki pages connected with MX that may help.
These web tags hold current values for additional sensors supported by CumulusMX. 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.


If you cannot answer your questions from information in this Wiki (and MX changes so quickly any information here can be very out of date), then use the [https://cumulus.hosiene.co.uk/viewforum.php?f=50 correct MX support forum] and the developer or Cumulus community will offer assistance.
The webtags are shared between the devices and it is the users responsibility to avoid conflict.


== Current Release ==
{| class="wikitable" border="1"
|-
!style="width:250px"|Webtag 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
|-
|<#ExtraTemp[1 - 16]> OR
<#ExtraTemp sensor=[ 1 - 16 ]>
|Extra temperature channel 1 - 16, both webtag syntaxes are valid
|-
|<#ExtraDP[1 - 16]> OR
<#ExtraDP sensor=[ 1 - 16 ]>
|Extra dew point channel 1 - 16, both webtag syntaxes are valid
|-
|<#ExtraHum[1 - 16]>
<#ExtraHum sensor=[ 1 - 16 ]>
|Extra humidity channel 1 - 16, , both webtag syntaxes are valid
|-
|<#SoilTemp[1 - 16]>
|Soil temperature 1 - 16
|-
|<#SoilMoisture[1 - 16]>
|Soil moisture 1 - 16
|-
|<#LeafWetness[1 - 8]>
|Leaf wetness 1 - 8
|}


There are ''inter-dependencies between different files'' in the MX release distribution:
===Extra Sensors: Davis AirLink ===
* ''Therefore you must always install into your MX folders, every file included in the download zip''.
Available from version 3.9.0. You can configure two Airlink devices which have fixed identification as Indoor and Outdoor. There are a similar set of tags for each device.
* If you customise any file that is in the distribution, either give the new file a new name (perhaps add a prefix of "_" in front of files you edit) or place your tailored version in a different folder
** Either approach will ensure your tailored files are not overwritten by files from the download, and let you compare your tailored file with the new file in any future download to see if you need to tweak your tailored file
* When upgrading, it is strongly recommended that you install all files in the download for a new release of MX directly over your existing installation.
** You can take a back-up of any existing installation before you copy in any new files, that will provide you with the ability to regress to the earlier release, if the new release does cause you an issue
** You may end up with some files no longer needed by the new release, left over from older release, but this is better than risking missing some vital files
** You need a good understanding of the use of each file, before considering deleting any file that you think might be obsolete, because not all files that Cumulus uses are contained within the release zip, some are created as it runs.


{| class="wikitable" border="1"
|-
!style="width:150px" |Webtag name
!style="width:600px" |Function
|-
|colspan="2" style="background:lightgray;"|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 [https://en.wikipedia.org/wiki/NowCast_%28air_quality_index%29 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 [https://en.wikipedia.org/wiki/NowCast_%28air_quality_index%29 nowcast] weighted average particulate matter of 10 μm, or less, count
|-
|colspan="2" style="background:lightgray;"|Air Quality Index Values (allows use of the "dp=n" and "tc=y" parameters)
|-
|<#AirLinkAqiPm2p5[InǀOut]>
|Current particulate matter of 2.5 μm, or less AQI
|-
|<#AirLinkAqiPm2p5_1hr[InǀOut]>
|Last hour average particulate matter of 2.5 μm, or less, AQI
|-
|<#AirLinkAqiPm2p5_3hr[InǀOut]>
|Last 3 hour average particulate matter of 2.5 μm, or less, AQI
|-
|<#AirLinkAqiPm2p5_24hr[InǀOut]>
|Last 24 hour average particulate matter of 2.5 μm, or less, AQI
|-
|<#AirLinkAqiPm2p5_Nowcast[InǀOut]>
|Last 12 hour [https://en.wikipedia.org/wiki/NowCast_%28air_quality_index%29 nowcast] weighted average particulate matter of 2.5 μm, or less, AQI
|-
|<#AirLinkAqiPm10[InǀOut]>
|Current particulate matter of 10 μm, or less
|-
|<#AirLinkAqiPm10_1hr[InǀOut]>
|Last hour average particulate matter of 10 μm, or less, AQI
|-
|<#AirLinkAqiPm10_3hr[InǀOut]>
|Last 3 hour average particulate matter of 10 μm, or less AQI
|-
|<#AirLinkAqiPm10_24hr[InǀOut]>
|Last 24 hour average particulate matter of 10 μm, or less AQI
|-
|<#AirLinkAqiPm10_Nowcast[InǀOut]>
|Last 12 hour [https://en.wikipedia.org/wiki/NowCast_%28air_quality_index%29 nowcast] weighted average particulate matter of 10 μm, or less AQI
|-
|colspan="2" style="background:lightgray;"|Stats Values
|-
|<#AirLinkPct_1hr[InǀOut]>
|Percentage of filling of the 1 hr averages buffer
|-
|<#AirLinkPct_3hr[InǀOut]>
|Percentage of filling of the 3 hr averages buffer
|-
|<#AirLinkPct_24hr[InǀOut]>
|Percentage of filling of the 24 hr averages buffer
|-
|<#AirLinkPct_Nowcast[InǀOut]>
|Percentage of filling of the [https://en.wikipedia.org/wiki/NowCast_%28air_quality_index%29 nowcast] 12 hr averages buffer (2 hrs are required to get a nowcast value)
|-
|colspan="2" style="background:lightgray;"|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 air temperature value
|-
|<#AirLinkHum[InǀOut]>
|The sensors internal air 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
|-
|<#AirLinkUptime[InǀOut]>
|Shows the AirLink Uptime [InǀOut] as a date string.
|-
|<#AirLinkLinkUptime[InǀOut]>
|Shows the AirLink Link Uptime [InǀOut] as a date string.
|}


=== Extra Sensors: Ecowitt ===
===Latest build distribution download===


'''IMPORTANT:''' Before '''installing''' Cumulus MX v4.0 for the first time, please study and understand [https://cumulus.hosiene.co.uk/viewtopic.php?t=22051 this installation guide]
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 this Wiki. See also [https://www.wxforum.net/index.php?board=111.0 WXForum.net].
'''IMPORTANT:''' Before '''upgrading''' Cumulus MX, please read the [https://cumulus.hosiene.co.uk/viewtopic.php?p=192590#p192590 release notice] and the [https://github.com/cumulusmx/CumulusMX/blob/main/CHANGELOG.md CHANGELOG.md] file for any implications before you upgrade


~ Download [https://github.com/cumulusmx/CumulusMX/releases/download/b4128/CumulusMXDist4128.zip Cumulus MX v4.6.4 build 4128 30-September-2025]
==== WH45 CO₂ sensor ====


===Latest MX Source Code===
Available from release 3.9.5. From 3.27.0 the webtags as below are valid. The previous webtags with the minus sign i.s.o. underscores are deprecated.


~ View/download [https://github.com/cumulusmx/CumulusMX Cumulus MX Current Source Code]
{| class="wikitable" border="1"
|-
!style="width:150px" |Webtag name
!style="width:600px" |Function
|-
| <#CO2>
| The actual CO<sub>2</sub> concentration in ppm
|-
| <#CO2_24h>
| The CO<sub>2</sub> concentration in ppm as a moving average over 24 hours
|-
| <#CO2_pm1>
| Air Quality expressed in terms of particulate matter of 1 μm/m<sup>3</sup>
|-
| <#CO2_pm1_24h>
| Air Quality expressed in terms of particulate matter of 1 μm/m<sup>3</sup>, 24 hours moving average
|-
| <#CO2_pm2p5>
| Air Quality expressed in terms of particulate matter of 2.5 μm/m<sup>3</sup> or less
|-
| <#CO2_pm2p5_24h>
| Air Quality expressed in terms of particulate matter of 2.5 μm/m<sup>3</sup>, or less, 24 hours moving average
|-
|<#CO2_pm2p5_aqi>
|The air quality index calculated from the CO2 sensors current pm 2.5 value
|-
|<#CO2_pm2p5_24h_aqi>
|The air quality index calculated from the CO2 sensors pm 2.5 24 hour average value
|-
| <#CO2_pm4>
| Air Quality expressed in terms of particulate matter of 4 μm/m<sup>3</sup> or less
| NOTE: probably - but uncertain - a derivative by Ecowitt (interpolation between 2.5 and 10?)
|-
| <#CO2_pm4_24h>
| Air Quality expressed in terms of particulate matter of 4 μm/m<sup>3</sup>, or less, 24 hours moving average
|-
| <#CO2_pm10>
| Air Quality expressed in terms of particulate matter of 10 μm/m<sup>3</sup>, or less (includes the 2.5 figure)
|-
| <#CO2_pm10_24h>
| Air Quality expressed in terms of particulate matter of 10 μm/m<sup>3</sup>, or less, 24 hours moving average
|-
|<#CO2_pm10_aqi>
|The air quality index calculated from the CO2 sensors current pm 10 value
|-
|<#CO2_pm10_24h_aqi>
|The air quality index calculated from the CO2 sensors pm 10 24 hour average value
|-
| <#CO2_temp><sup>See note</sup>
| Temperature as reported by Air Quality monitor.
|-
| <#CO2_hum>
| Relative Humidity as reported by Air Quality monitor
|}


This source code base is updated for all releases resulting from development by M Crossley, it includes some contributions from other developers.
'''Note''': This temperature 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. This correction is responsibility of the user and is subject to a lot of discussion. 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.


===Raspberry Pi Image===
==== WN34 soil and water sensor ====


~ Download 32 bit image: [//{{SERVERNAME}}/Downloads/rpi-CumulusMX-lite-4.6.4.zip Raspberry Pi Image for Cumulus MX 4.6.4 x32]
Cumulus MX can support the Ecowitt WN34 (other model types exist and are reported here as if WN34) soil and water temperature sensors. They are reported as "User Temperature 1" to "User Temperature 8".
~ Download 64 bit image: [//{{SERVERNAME}}/Downloads/rpi-CumulusMX-lite-4.6.4_X64.zip Raspberry Pi Image for Cumulus MX 4.6.4 x64]


As at April 2022, the image includes Raspberry Pi. O. S. 11 "Bullseye" version of Linux.
{| class="wikitable" border="1"
|-
!style="width:150px" | Webtag name
!style="width:600px" | Function
|-
|<#UserTemp[1 - 8]>
|The temperature of the sensor
|}


<br>
==== Extra Sensors ====
Below are described the tags resulting from ''Ecowitt Air quality (WH41,WH43,WH45)'', Ecowitt leak sensor (WH55), lighting detector (WH57), and extra temperature sensors (WN34)


# This is a pre-built disk image file for your first installation onto a Raspberry Pi computer.
This sub-section applies only to those using Ecowitt GW1000 and possibly other devices (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 CumulusMX which then generates the following web tags:
# Do read the instructions for using this image on the [[Raspberry_Pi_Image|Raspberry Pi Image]] page to see what is in the image and how to use it
# It is of course possible that sometimes the image provided may have issues for you,
#* it is set up so that MX starts running as a service immediately you boot up your Raspberry Pi, rather than letting you first run MX interactively (see [[MX_on_Linux#Running_MX]]);
#* it is produced with a Raspberry Pi model 3, so with other models you may need to consider what updating rates your model can support;
#* it is produced using a GB locale and GB time-zone, so that automatically started MX may not initially be running correctly for your locale (however as you need to restart MX after changing settings you should be okay when MX starts recording data).


: Please note, this image may not always contain latest MX release, but once you have installed a release of MX on your Raspberry Pi, [[Updating MX to new version|upgrading]] is done using main software download link, as none of the other components in the image need to be upgraded (unless the release announcement states that the new release needs a specific version of Dotnet).
{| class="wikitable" border="1"
|-
!style="width:150px" |Webtag name
!style="width:600px" |Function
|-
|<#GW1000FirmwareVersion>
|GW1000 firmware version string
|-
|<#EcowittFirmwareVersion>
|Ecowitt firmware version string
|-
|<#EcowittReception>
|Reception signal strength for the Ecowitt devices in use
|-
|<#EcowittCameraUrl>
|The URL for the HTTPS GET command to get the camera picture
|-
|<#EcowittVideoUrl>
|The URL for the HTTPS GET command to get the camera timelapse for yesterday (no older timelapses can be viewed through CMX)
|-
|}


==Upgrading==


: There is an [[Updating_MX_to_new_version#Installer_Option|installer utility]] available to help with upgrading.
{| class="wikitable" border="1"
|-
!style="width:150px"|Webtag 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
|-
|<#LeakSensor[1 - 4]>
|
|-
|<#UserTemp[1 - 8]>
|User Temperature [1 - 8]
|-
|<#SoilMoisture[1 - 8]>
|Soil moisture [1 - 8]
|-
|<#LaserDist[1 - 4]>
|To be clarified later
|-
|<#LaserDepth[1 - 4]>
|To be clarified later
|-
|<#AirQuality[1 - 4]>
| Air quality in μm/m<sup>3</sup>
|-
|<#AirQualityAvg[1 - 4]>
| 24 hr moving average Air quality in μm/m<sup>3</sup>
|-
|<#AirQualityIdx[1 - 4]>
|The calculated air quality index for sensors 1 to 4
|-
|<#AirQualityAvgIdx[1 - 4]>
|The calculated 24 hour average air quality index for sensors 1 to 4
|-
|<#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 CMX 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.
|-
|<#LightningStrikesToday>
|Number of lighting strikes today
|}


We strongly advise [[Updating_MX_to_new_version#Introduction_to_upgrading_MX|upgrading]] to the latest release:
=Recent History=
* The main developer can most easily offer support if you are using the most familiar recently released build.
* You may wish to wait a few days after a new release comes out, just in case a new release has some bugs
** MX is extremely complex, the developers work on MX edits in their spare time, have settings that suit them, and do not have the full set of sensors that MX can support, so pre-release testing is never perfect
* By switching to latest release, you gain any extra functionality it may offer (although it may not be useful to you), but more importantly you gain fixes of bugs your existing release may have


Please refer to the [[Recent history]] page for full information about using the tags in the following two tables.


*Important, please read all of the release notes (in the [https://cumulus.hosiene.co.uk/viewtopic.php?f=40&t=17887 appropriate forum announcement] threads) for the builds since the version you are upgrading from, especially noting when there are references to necessary once-off actions.
All tags in the tables below have:
*If you have never upgraded before, or you are currently running a fairly old release of MX, you are advised to read the [[Updating MX to new version]] page in this Wiki,
#Mandatory input parameters as in this [[Webtags/Parameters#Input_modification_Parameters|description]]
** you may be recommended to upgrade in stages, as certain releases do essential one off actions that are missed if you skip that release; e.g. rewriting [[Cumulus.ini]] or changes to columns in database tables
#Optional output parameters to modify the time format as in this [[Webtags/Parameters#Multiple_Output_Format_Modifier_parameters_for_times_and_dates|description]]
** overwriting an existing installation will add any new files, but it won't remove obsolete files, and sometimes [[MX_Basic_info#Library_software|replacement files]] have different names to their predecessors so don't overwrite the old files
*If you are upgrading from a previous version of the legacy Cumulus 1, then you might want to read [[Migrating from Cumulus 1 to MX]] page; and if you need more justification read [[Compare_C1_and_MX|Compare legacy Cumulus and MX]] page
** However, it is likely that information on those pages was written for earlier MX releases, and might be out of date, so like many other people you might want to ask in the [https://cumulus.hosiene.co.uk/viewforum.php?f=40 correct MX support forum] to see if others have more up-to-date advice.


Note by Steve Loft: you may find that anti-virus software flag a new release of Cumulus as a ‘threat’, for a few days or weeks after a new version has been released, even though it does not actually contain a virus of any kind. This is due to a system they call ‘reputation’ where they automatically block any versions of software that have recently been released. You may want to consider complaining to the provider of your anti-virus software about this ridiculous system, or better still, use some better anti-virus software.
== Timestamp tag ==
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"
|-
!style="width:150px" | Webtag name
!style="width:300px" | Function
!style="width:500px" | Parameters example
|-
|colspan="3" style="background:lightgray;"|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:mm">
|}


==Older releases==
== All Recent History Tags ==


It is always possible that a new release introduces a bug, and you decide to regress to an earlier release.
{| class="wikitable" border="1"
|-
!style="width:150px" | Webtag name
!style="width:300px" | Function
!style="width:500px" | Input Modification Parameters example
|-
|colspan="3" style="background:lightgray;"|Temperature & Humidity tags
|-
|<#RecentOutsideTemp>
|Outside Temperature
| <#RecentOutsideTemp h=3 m=1>&nbsp;<#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
|-
|<#RecentApparent>
|Apparent
| <#RecentApparent m30> reports the dew point temperature half an hour 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)
|-
|colspan="3" style="background:lightgray;"|Wind <br>(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


Find link to earlier MX release distributions [https://github.com/cumulusmx/CumulusMX/releases here].
(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
|-
|colspan="3" style="background:lightgray;"|Pressure
|-
|<#RecentPressure>
|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)
|-
|colspan="3" style="background:lightgray;"|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)
|-
|colspan="3" style="background:lightgray;"|Indoor Temperature & Humidity tags
|-
|<#RecentIndoorTemp>
|Indoor Temperature
| Parameters as with other Recent webtags
|-
|<#RecentIndoorHumidity>
|Indoor Temperature
| Parameters as with other Recent webtags
|-
|colspan="3" style="background:lightgray;"|Outdoor Temperature & Humidity tags
|-
|<#RecentWindChill>
|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>
| Feels Like Temperature
| <#RecentFeelsLike h=12 m=1> reports the feel like temperature 12 hours ago
|-
|<#RecentHumidex>
| Canadian Humidity Index (humidex) Dimensionless - no units
| <#RecentHumidex h=3> reports humidex 3 hours ago
|-
|colspan="3" style="background:lightgray;"|Air Quality tags
|}


(You can search using the history tab on this Wiki page to see which past builds were made available as Raspberry Pi images, as these are not created for all releases, but there is no way to tell if the old filenames can still be downloaded. Generally, it is easiest to download a different normal MX release distribution over whatever MX release was in the image you downloaded.)
=Today=


= Other utilities =
Cumulus allows some control over the time that "Today" begins:
# You can define the log rollovertime. Choose between 9am or midnight.
# For the weather diary feature '''SnowDepthHour''' The default SnowDepthHour is 8


==Cumulus MX Tools==
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 utilities listed here are only for use with MX, they may be included in the [[#Latest build distribution download|MX release zip]], but links to latest releases without the ''*.dll'' files ("software libraries") needed to run the respective utility, are provided below.
The independence of the start time for weather diary and weather station related web tags needs to be remembered when labelling web tags from the two tables below. It was 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.


The "software libraries" are provided in the MX release zip that is stated alongside download link. The different utilities vary with regard to which software libraries they require, and those with technical understanding can check the code sources.
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.


If you are using an earlier MX release than that stated beside a utility download below, upgrade MX to bring in the new "*.dll" files needed, because the utility will not work with the versions of "software libraries" included with earlier MX releases.
==Weather Diary==


If you are using a later MX release than that stated, check [https://cumulus.hosiene.co.uk/viewtopic.php?t=17887 the MX release announcements] for all releases since that stated below to see if the "software libraries" have been upgraded, if they have then the respective utility because it has been compiled with older versions of the respective .dll files will probably not work. (Sometimes the names of new .dll files are different to the names of the old .dll files, so an upgrade of MX done by copying files over an existing installation will leave the old files there, in that case the utility might still work by picking up old names).
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"
|-
!style="width:150px" | Webtag name
!style="width:650px" | Function
|-
|<#Option_showSnow>
|Displays the value of the ''Display Options=>General Options=>Snowfall'': this option enabled will display snowfall data from the Weather Diary on the default web site
|-
|<#snowdepth>
|Meteorologists report snow depth in cm, so this is default unit for Cumulus. Snowdepth should include the snow24h amount so automatic measurement (by laser) always is the correct amount!


=== Migrate Data v3 to v4 ===
If there is no entry in Weather Diary for the day explained above, reports zero. Input is to 2 decimal places to accommodate inches as unit (see ''station settings=> unit settings'' in CMX).
|-
|<#snowcomment>
|Displays the comment field of the weather diary.
|-
|<#snow24hr>
|Fresh snow which fell the past 24 hrs. If this amount is subtracted from snowdepth you find the melt/compression of the previous snow.
|-
|<#DiaryThunder>
<#DiaryHail>
<#DiaryFog>
<#DiaryGales>
| These tags return "true", "false", or "-" if no diary entry exists. This null value can be overridden with the usual nv= parameter. These tags take an optional parameter of the date to be queried: date=YYYY-MM-DD
|-
|<#SnowAccumSeason>
|queries the Weather Diary for the current snow season total snow fall.
The tag takes an optional parameter `y=YYYY` which you can use to specify the snow season starting year for which you want the total.
|-
|}


~ The MigrateDatav3to4 ''v1.0.4'' download dated 29 January 2025 [https://github.com/cumulusmx/MigrateData3to4/releases/download/v1.0.4/MigrateData3to4v1.0.4.zip is here].
==Today.ini==


A utility to migrate your data files from Cumulus MX v3 format to v4 format.
These tag names relate to the current [[Meteorological day]] and they are populated from information held in [[today.ini]]; 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".
Read [https://cumulus.hosiene.co.uk/viewtopic.php?t=22051 Cumulus MX Version 4 - IMPORTANT Additional Information] for information on how to use this utility.


=== Create Missing ===
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.


~ The CreateMissing ''v2.0.3'' download dated 27 June 2025 (works with MX release of 4.0.0 onwards) [https://github.com/cumulusmx/CreateMissing/releases/download/v2.0.3/CreateMissing-v2.0.3.zip is here].
{| class="wikitable" border="1"
|-
!style="width:150px" | Webtag name
!style="width:650px" | Function
!style="width:150px" | Time Webtag name
|-
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|-
|<#tempTH>
|Today's highest temperature
|<#TtempTH>
|-
|<#tempTL>
|Today's lowest temperature
|<#TtempTL>
|-
|<#avgtemp>
|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
|-
|<#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
|-
|<#tempMidnightTH>
|Today's highest temperature since midnight
|<#TtempMidnightTH>
|-
|<#tempMidnightTL>
|Today's lowest temperature since midnight
|<#TtempMidnightTL>
|-
|<#tempMidnightRangeT>
|The temperature range (max - min) so far today from midnight (Cumulus calculates all these tags using Celsius values, but outputs them in your chosen units)
|n/a
|-
|<#temp9amTH>
|Today's highest temperature since 9am (rollover)
|<#Ttemp9amTH>
|-
|<#temp9amTL>
|Today's lowest temperature since 9am (rollover)
|<#Ttemp9amTL>
|-
|<#temp9amRangeT>
|The temperature range (max - min) so far today from 9am (Cumulus calculates all these tags using Celsius values, but outputs them in your chosen units)
|n/a
|-
|<#apptempTH>
|Today's high apparent temperature
|<#TapptempTH>
|-
|<#apptempTL>
|Today's low apparent temperature
|<#TapptempTL>
|-
|<#feelslikeTH>
|Today's high feels like temperature
|<#TfeelslikeTH>
|-
|<#feelslikeTL>
|Today's low feels like temperature
|<#TfeelslikeTL>
|-
|<#humidexTH>
|Today's high Canadian Humidity Index
|<#ThumidexTH>
|-
|<#heatindexTH>
|Today's high heat index
|<#TheatindexTH>
|-
|<#wchillTL>
|Today's greatest wind chill
|<#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>
|-
|colspan="3" style="background:lightgray;"|Precipitation
|-
|<#rrateTM>
|Today's maximum rain rate
|<#TrrateTM>
|-
|<#hourlyrainTH>
|Today's highest hourly rain
|<#ThourlyrainTH>
|-
|<#rain24hourTH>
|Today's highest rain for 24 hours
|<#Train24hourTH>
|-
|<#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
|-
|colspan="3" style="background:lightgray;"|Pressure
|-
|<#pressTH>
|Today's highest pressure reading
|<#TpressTH>
|-
|<#pressTL>
|Today's lowest pressure reading
|<#TpressTL>
|-
|colspan="3" style="background:lightgray;"|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>
|-
|<#directionTM>
|The wind bearing at the time of today's high gust (<#wgustTM>) in as a compass point (e.g. "NNE")
|<#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>
|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
|-
|colspan="3" style="background:lightgray;"|Miscellaneous
|-
|<#ET>
|Today's [http://en.wikipedia.org/wiki/Evapotranspiration evapotranspiration], if not on the station can be calculated by CMX.
|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>
|-
|<#SunshineHours>
|Today's hours of sunshine so far.
|n/a
|-
|<#LightningStrikesToday>
|Number of strikes since midnight, default 0


~ The CreateMissing ''v1.4.3'' download dated 05 February 2024 (works with MX release of 3.20.0 onwards) [https://github.com/cumulusmx/CreateMissing/releases/download/v1.4.3/CreateMissing-v1.4.3.zip is here].
(other lightning tags can be found in [[#Current_Conditions|Current Conditions table]])
|-
| <#chillhoursToday>
| The incremental chill hours figure since start of today (Compare with Cumulative seasonal Chill Hours at end of today <#chillhours> found in [[#Current_Conditions|Current Conditions table]])
|}


Check compatibility with the MX release you have running as per notes above. (Although earlier releases of "Create Missing" exist on "github.com/cumulusmx/CreateMissing/releases", their software bugs imply they should not be used). Install into same directory as "CumulusMX.exe".
= No Commas; RC Webtags =


This MX utility, affects [[Category:Files with Comma Separated Values|Cumulus CSV files]]:
The conversion of comma decimal separator to a point is described on the [[Webtags/Parameters#Changing_the_decimal_separator|parameter page]]. However, there is a set of legacy webtags which produce that value without a comma without parameter. Those webtags have a prefix of RC and are listed separately. Those webtags still exist and are listed here without further comment.
# It will create a new [[dayfile.txt|daily summary (dayfile.txt)]]. If you already have a "dayfile.txt", that is renamed, the new file should include individual fields, and lines, missing from your old file.
# It will read, and where appropriate update, your [[Standard log files|month by month (MMMyylog.txt)]] files.
#* The utility reads the [[Calculate_Missing_Values#Source_value|source values]] in as input values. This utility has the ability to calculate many of the [[Calculate_Missing_Values#Derived_value|derived fields]], so will add any missing derived values to your month by month files as it proceeds.
#* Therefore the utility should be used to add the [[Standard_log_files#Number_of_fields_per_line_varies_by_release|extra fields]] for those months where the input file was produced by Cumulus 1 or an earlier release of MX (which might have populated fewer fields or used a [[Feels_Like#How_to_express_Feels_Like_for_highest_temperatures|different calculation]]).


== Current conditions ==


Usage information by the author of the utility can be [https://github.com/cumulusmx/CreateMissing/blob/master/README.md found here.]
<#RCtemp>, <#RCdew>, <#RCheatindex>, <#RChum>, <#RCinhum>, <#RCintemp>, <#RCpress>, <#RCrfall>, <#RCrrate>, <#RCwchill>, <#RCwgust>, <#RCwspeed>, <#RCwlatest>
* Learn more about this utility by reading the [[Calculate_Missing_Values#CreateMissing.exe|calculate missing]] page in this Wiki.
** Elsewhere on that same page learn when this utility might be useful, and what else you can try.
* Check in the support forum for information about status of bugs in this utility, at time of last updating this paragraph there was an outstanding issue concerning storing the line in dayfile.txt for the first of some months if your rollover time is not midnight.
* For full information about solving problems with your '''dayfile.txt''' file read the [[Amending dayfile|amending daily summary file]] page.


== Today ==
=== Create Records ===


~ The CreateRecords ''v0.1.1'' download dated 13 December 2023 [https://github.com/cumulusmx/CreateRecords/releases/download/v0.1.1/CreateRecords-v0.1.1.zip is here].
<#RCpressTH>, <#RCpressTL>, <#RCrrateTM>, <#RCtempTH>, <#RCtempTL>, <#RCwgustTM>, <#RCdewpointTH>, <#RCdewpointTL>, <#RCwchillTL>, <#RCheatindexTH>, <#RCapptempTH>, <#RCapptempTL>


A utility to create, or recreate, missing [[Correcting_Extremes|extreme records]] from Cumulus MX by parsing your [[dayfile.txt|daily summary (dayfile.txt)]].
== Recent History ==


See the [https://github.com/cumulusmx/CreateRecords#readme Readme on githib]
<#RCRecentOutsideTemp>, <#RCRecentWindSpeed>, <#RCRecentWindGust>, <#RCRecentWindLatest>, <#RCRecentWindChill>, <#RCRecentDewPoint>, <#RCRecentHeatIndex>, <#RCRecentPressure>, <#RCRecentRainToday>, <#RCRecentUV>


=== Export ''To'' MySQL ===
=Yesterday=


'''DO NOT USE THIS VERSION WITH Cumulus MX v4'''
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!


ExportToMySQL is now included in the Cumulus MX v4 distribution zip file.
For web tags that refer to a particular time of day, there is a corresponding web tag that can give that time of day.


~ The ExportToMySQL ''v1.10.0'' download dated 07 January 2024 (works with release of MX 3.28.1 or later) [https://github.com/cumulusmx/ExportToMySQL/releases/download/v1.10.0/ExportToMySQL-v1.10.0.zip is here.]
{| class="wikitable" border="1"
|-
!style="width:150px" | Webtag name
!style="width:550px" | Function
!style="width:150px" | Time Webtag name
|-
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|-
|<#tempYH>
|Yesterday's highest temperature
|<#TtempYH>
|-
|<#tempYL>
|Yesterday's lowest temperature
|<#TtempYL>
|-
|<#temprangeY>
|The temperature range (max - min) yesterday
|n/a
|-
|<#tempMidnightYH>
|Yesterday's highest temperature from midnight
|<#TtempMidnightYH>
|-
|<#tempMidnightYL>
|Yesterday's lowest temperature from midnight
|<#TtempMidnightYL>
|-
|<#tempMidnightRangeY>
|The temperature range (max - min) yesterday from midnight
|n/a
|-
|<#temp9amYH>
|Yesterdays's highest temperature 9am (rollover)
|<#Ttemp9amYH>
|-
|<#temp9amYL>
|Yesterdays's lowest temperature 9am (rollover)
|<#Ttemp9amYL>
|-
|<#temp9amRangeY>
|The temperature range (max - min) yesterday from 9aam (Cumulus calculates all these tags using Celsius values, but outputs them in your chosen units)
|n/a
|-
|<#avgtempY>
|Yesterday's average temperature
|n/a
|-
|<#apptempYH>
|Yesterday's high apparent temperature
|<#TapptempYH>
|-
|<#apptempYL>
|Yesterday's low apparent temperature
|<#TapptempYL>
|-
| <#Ychillhours>
| 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)
| n/a
|-
| <#chillhoursYest>
| The incremental [[Heat/cold_degree_days_and_Chill_hours#Chill_Hours_and.2For_Air_Frost|Chill Hours]] yesterday


Check compatibility with the MX release you have running as per notes above. Note that compatibility is needed both with the .dll files and with the columns present in the database table to be updated.
(compare with <#chillhoursToday> described in [[#Today.ini]] table)
| n/a
|-
|<#feelslikeYH>
|Yesterday's high feels like temperature
|<#TfeelslikeYH>
|-
|<#feelslikeYL>
|Yesterday's low feels like temperature
|<#TfeelslikeYL>
|-
|<#humidexYH>
|Yesterday's high Canadian Humidity Index
|<#ThumidexYH>
|-
|<#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>
|-
|colspan="3" style="background:lightgray;"|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>
|-
|<#rain24hourYH>
|Yesterday's highest hourly rain over 24 hours
|<#Train24hourYH>
|-
|colspan="3" style="background:lightgray;"|Pressure
|-
|<#pressYH>
|Yesterday's highest pressure reading
|<#TpressYH>
|-
|<#pressYL>
|Yesterday's lowest pressure reading
|<#TpressYL>
|-
|colspan="3" style="background:lightgray;"|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>
|-
|<#directionYM>
|The wind direction at the time of yesterday's high gust as a compass point (e.g. "NNW")
|<#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
|-
| <#windAvgY>
| The wind run yesterday divided by 24 hours to express it as an average wind speed
| n/a
|-
|colspan="3" style="background:lightgray;"|Miscellaneous
|-
|<#heatdegdaysY>
|Yesterday's [[Heat/cold_degree_days_and_Chill_hours|heating degree days]]
|n/a
|-
|<#cooldegdaysY>
|Yesterday's [[Heat/cold_degree_days_and_Chill_hours|cooling degree days]]
|n/a
|-
|<#YSunshineHours>
|Yesterday's hours of sunshine so far.
|n/a
|-
|<#solarYH>
|Yesterday's high solar radiation value (Solar sensor needed)
|<#TsolarYH>
|-
|<#UVYH>
|Yesterday's high UV Index (UV sensor needed)
|<#TUVYH>
|}


If you are not using the MX release named above, then other release zips (and source code) for this utility are available at [https://github.com/cumulusmx/ExportToMySQL/releases ExportToMySQL/releases] and each release there is labelled as to which MX release creates default tables with correct columns.
=Averages=
{| class="wikitable" border="1"
|-
!style="width:300px"|Webtag name
!style="width:700px"|Function
|-
|colspan="2" style="background:lightgray;"|Monthly
|-
|<#ByMonthTempAvg mon=[1-12]>
|Mean for requested month over the entire history. Omit the mon parameter for the current month
|-
|<#MonthTempAvg m=[1-12] y=[YYYY]>
|Mean for the requested specific month. Omit the parameters for the current month
|-
|colspan="2" style="background:lightgray;"|Yearly
|-
|<#YearTempAvg y=[YYYY]>
|Mean for the requested year. Omit the y parameter for the current year
|}


This utility reads [[MySqlConnect|Settings]] that are also used by "CumulusMX.exe". Parameters supplied to this utility enable it to do ''one of the following actions'' affecting rows not already present on a [[Your Own Server|MySQL, or MariaDB, database server]]:
# The parameter used is "dayfile", will insert missing rows into a database table that is called "dayfile" (by default, the user can change the name of that table) that (as minimum) has columns named as per the MX default for that table (at CumulusMX.exe release quoted for which the download applies) from the contents of [[dayfile.txt|daily summary (dayfile.txt)]] file
# Insert missing rows into a database table that is called "Monthly" (by default, the user can change the name of that table) that (as minimum) has columns named as per the MX default for that table (at CumulusMX.exe release quoted for which the download applies) from the contents of the single file of [[Standard log files|month by month (MMMyylog.txt)]] whose relative path "data/..." is named in the parameter
# The parameter used is "monthly", will insert missing rows into a database table that is called "Monthly" (by default, the user can change the name of that table) that (as minimum) has columns named as per the MX default for that table (at CumulusMX.exe release quoted for which the download applies) reading data from the contents of all files of type [[Standard log files|month by month (MMMyylog.txt)]] found in the [[Data folder|data sub-folder]].


Installation and usage information by the author of the utility can be [https://github.com/cumulusmx/ExportToMySQL/blob/main/README.md found here.]
=Records=
==Yearly==


''This new utility replaces the "ExportMySQL.exe" (no "To" in that name) utility included by Steve Loft in his MX beta distributions.'' That is not compatible with any recent MX releases.
{| class="wikitable" border="1"
|-
!style="width:150px"|Webtag name
!style="width:300px"|Function
!style="width:350px"|Time Webtag
!style="width:150px"|Date Webtag
|-
|colspan="4" style="background:lightgray;"|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>
|This year's highest feels like temperature
|<#YearFeelsLikeHT>
|<#YearFeelsLikeHD>
|-
|<#YearFeelsLikeL>
|This year's lowest feels like temperature
|<#YearFeelsLikeLT>
|<#YearFeelsLikeLD>
|-
|<#YearHumidexH>
|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
|n/a
|<#YearMinTempHD>
|-
|<#YearMaxTempL>
|This year's lowest daily maximum temperature
|n/a
|<#YearMaxTempLD>
|-
|<#YearHumH>
|This year's high humidity
|<#YearHumHT>
|<#YearHumHD>
|-
|<#YearHumL>
|This year's low humidity
|<#YearHumLT>
|<#YearHumLD>
|-
|colspan="4" style="background:lightgray;"|Pressure
|-
|<#YearPressH>
|This year's high pressure
|<#YearPressHT>
|<#YearPressHD>
|-
|<#YearPressL>
|This year's low pressure
|<#YearPressLT>
|<#YearPressLD>
|-
|colspan="4" style="background:lightgray;"|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>
|-
|colspan="4" style="background:lightgray;"|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>
|-
|<#YearRain24HourH>
|This year's high 24hr rain
|<#YearRain24HourHT>
|<#YearRain24HourHD>
|-
|<#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>
|-
|colspan="4" style="background:lightgray;"|Solar
|-
|<#AnnualET>
|Year's total [http://en.wikipedia.org/wiki/Evapotranspiration evapotranspiration], if not on the station can be calculated by CMX.
|n/a
|n/a
|-
| <#SunshineHoursYear>
| the total sunshine hours in year-to-date
| n/a
| n/a
|}


==All Time==
==Data Importers==


=== Import WeatherCat Data ===
The default formats are:
*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).


~ The ImportWC ''v1.0.0'' download dated 10 October 2024 [https://github.com/cumulusmx/ImportWC/releases/download/v1.0.0/ImportWC-v1.0.0.zip is here].
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]], please check the [[Webtags/Parameters#Multiple_Output_Format_Modifier_parameters_for_times_and_dates|Parameter page]].


This utility converts WeatherCat monthly log files into Cumulus MX v4 format monthy log files.
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!


You can [https://github.com/cumulusmx/ImportWC/blob/main/README.md read more about how to use it here].
{| class="wikitable" border="1"
|-
!style="width:150px" | Webtag name
!style="width:400px" | Function
!style="width:150px" | Date/Time Webtag name
|-
|colspan="3" style="background:lightgray;"|Temperature & Humidity
|-
|<#tempH>
|All time high temperature
|<#TtempH>
|-
|<#tempL>
|All time low temperature
|<#TtempL>
|-
|<#mintempH>
|All time high minimum temperature
|<#TmintempH>
|-
|<#maxtempL>
|All time low maximum temperature
|<#TmaxtempL>
|-
|<#LowDailyTempRange>
|All time low daily temperature range
|<#TLowDailyTempRange>
|-
|<#HighDailyTempRange>
|All time high daily temperature range
|<#THighDailyTempRange>
|-
|<#apptempH>
|All time high apparent temperature
|<#TapptempH>
|-
|<#apptempL>
|All time low apparent temperature
|<#TapptempL>
|-
|<#feelslikeH>
|All time high feels like temperature
|<#TfeelslikeH>
|-
|<#feelslikeL>
|All time low feels like temperature
|<#TfeelslikeL>
|-
|<#humidexH>
|All time high Canadian Humidity Index
|<#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>
|-
|<#wchillL>
|All time greatest wind chill (i.e. lowest temperature, but highest wind speed)
|<#TwchillL>
|NOTE: These were misnamed ''wchillH'' which names have been deprecated.
|-
|colspan="3" style="background:lightgray;"|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>
|-
|colspan="3" style="background:lightgray;"|Pressure
|-
|<#pressH>
|All time high pressure
|<#TpressH>
|-
|<#pressL>
|All time low pressure
|<#TpressL>
|-
|colspan="3" style="background:lightgray;"|Wind
|-
|<#gustM>
|All time high wind gust
|<#TgustM>
|-
|<#wspeedH>
|All time high average wind speed
|<#TwspeedH>
|-
|<#windrunH>
|All time high daily wind run
|<#TwindrunH>
|}


=== Import Weather Display Data ===
==Monthly==


~ The ImportWD ''v1.0.1'' download dated 14 September 2025 [https://github.com/cumulusmx/ImportWD/releases/download/v1.0.1/ImportWD-v1.0.1.zip is here].
The web tags in the date column default output dates in the format "dd MMMM". 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.


This utility converts Weather Display monthly log files into Cumulus MX v4 format monthly log files.
{| class="wikitable" border="1"
|-
!style="width:240px"|Webtag name
!style="width:300px"|Function
!style="width:150px"|Time Webtag name
!style="width:150px"|Date Webtag name
|-
|colspan="4" style="background:lightgray;"|Temperature & Humidity
|-
|<#MonthTempH>
|This months high temperature
|<#MonthTempHT>
|<#MonthTempHD>
|-
|<#MonthTempL>
|This months low temperature
|<#MonthTempLT>
|<#MonthTempLD>
|-
|<#MonthMinTempH>
|This months highest daily minimum temperature
|n/a
|<#MonthMinTempHD>
|-
|<#MonthMaxTempL>
|This months lowest daily maximum temperature
|n/a
|<#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
|<#MonthFeelsLikeHT>
|<#MonthFeelsLikeHD>
|-
|<#MonthFeelsLikeL>
|This months lowest feels like temperature
|<#MonthFeelsLikeLT>
|<#MonthFeelsLikeLD>
|-
|<#MonthHumidexH>
|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>
|-
|colspan="4" style="background:lightgray;"|Pressure
|-
|<#MonthPressH>
|This month's highest pressure
|<#MonthPressHT>
|<#MonthPressHD>
|-
|<#MonthPressL>
|This month's lowest pressure
|<#MonthPressLT>
|<#MonthPressLD>
|-
|colspan="4" style="background:lightgray;"|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>
|-
|<#windrunmonth>
|This month's Wind Run so far
|n/a
|n/a
|-
|colspan="4" style="background:lightgray;"|Rainfall
|-
|<#MonthRainRateH>
|This month's highest rainfall rate
|<#MonthRainRateHT>
|<#MonthRainRateHD>
|-
|<#MonthHourlyRainH>
|This month's highest hourly rain
|<#MonthHourlyRainHT>
|<#MonthHourlyRainHD>
|-
|<#MonthRain24HourH>
|This month's highest 24hr rain
|<#MonthRain24HourHT>
|<#MonthRain24HourHD>
|-
|<#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>
|-
|-
|<#MonthDryDays y=nnnn m=nn>
|Gives the count of dry days for a particular month in a certain year
|n/a
|n/a
|-
|<#MonthWetDays y=nnnn m=nn>
|Gives the count of wet days for a particular month in a certain year
|n/a
|n/a
|-
|colspan="4" style="background:lightgray;"|Solar
|-
| <#SunshineHoursMonth>
| the total sunshine hours in month-to-date
| n/a
| n/a
|}


You can [https://github.com/cumulusmx/ImportWD/blob/main/README.md read more about how to use it here].
==Monthly All Time Records==


==Older Utilities By Steve Loft==
'''These tag names represent extreme record values (and corresponding time-stamps) for any particular month (1 =January, and so on, to 12 =December) in all years''' (HAR To place somewhere)


Source code for these utilities are not available, therefore they cannot be altered or upgraded.
This table includes webtags that show the values in [[Monthlyalltime.ini]] log file.


=== Utility for Fine Offset Stations ===
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.


*[//{{SERVERNAME}}/Downloads/SetLogger.zip Set Logger Interval] A utility by Steve Loft to adjust the internal logging interval on Fine Offset stations
{| class="wikitable" border="1"
|-
!style="width:150px"|Webtag name
!style="width:400px"|Function
!style="width:150px"|Date/Time Webtag name
|-
|colspan="3" style="background:lightgray;"|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>
|High Feels Like Temperature
|<#ByMonthFeelsLikeHT>
|-
|<#ByMonthFeelsLikeL>
|Low Feels Like Temperature
|<#ByMonthFeelsLikeLT>
|-
|<#ByMonthHumidexH>
|High Canadian Humidity Index (Humidex)
|<#ByMonthHumidexHT>
|-
|<#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>
|-
|colspan="4" style="background:lightgray;"|Pressure
|-
|<#ByMonthPressH>
|High Pressure
|<#ByMonthPressHT>
|-
|<#ByMonthPressL>
|Low Pressure
|<#ByMonthPressLT>
|-
|colspan="4" style="background:lightgray;"|Wind
|-
|<#ByMonthGustH>
|High Wind Gust
|<#ByMonthGustHT>
|-
|<#ByMonthWindH>
|High Wind Speed
|<#ByMonthWindHT>
|-
|<#ByMonthWindRunH>
|High Daily Wind Run
|<#ByMonthWindRunHT>
|-
|colspan="4" style="background:lightgray;"|Rainfall
|-
|<#ByMonthRainRateH>
|High Rain Rate
|<#ByMonthRainRateHT>
|-
|<#ByMonthMonthlyRainH>
|High Monthly Rainfall
|<#ByMonthMonthlyRainHT>
|-
|<#ByMonthHourlyRainH>
|High Hourly Rain
|<#ByMonthHourlyRainHT>
|-
|<#ByMonthRain24HourH>
|High 24hr Rain
|<#ByMonthRain24HourHT>
|-
|<#ByMonthDailyRainH>
|High Daily Rain
|<#ByMonthDailyRainHT>
|-
|<#ByMonthLongestDryPeriod>
|Longest Dry Period
|<#ByMonthLongestDryPeriodT>
|-
|<#ByMonthLongestWetPeriod>
|Longest Wet Period
|<#ByMonthLongestWetPeriodT>
|-
|<#ByMonthMostDryDays m=nn>
|The day count and year/month for the specified month with the most dry days
|<#ByMonthMostDryDaysT m=nn>
|-
|<#ByMonthMostWetDays m=nn>
|The day count and year/month for the specified month with the most wet days
|<#ByMonthMostWetDaysT m=nn>
|}


=== Weather Display Converter ===
=Statistics=
This section is quite small but may enlarge so it has become a separate chapter.


This utility was provided by Steve to convert '''Weather Display''' log files to legacy Cumulus 1 format, download it [https://cumuluswiki.org/a/File:WDconverter.zip here].
{| class="wikitable" border="1"
|-
!style="width:300px" | Webtag name
!style="width:750px" | Function
|-
|<#TempAvg24Hrs>
|Mean for the last 24 hrs. It does not take parameters.
|-
|<#YearTempAvg y=[YYYY]>
|Mean for the requested year. Omit the year parameter for the current year
|-
|<#ByMonthTempAvg mon=[1-12]>
|Mean for requested month over the entire history. Omit the month parameter for the current month. Should return the same value as <#MonthAvgTemp>.
|-
|<#MonthTempAvg m=[1-12] y=[YYYY]>
|Mean for the requested specific month. Omit the parameters for the current month.
|-
|<#WindAvgCust m=x>
|returns the average wind speed over the last X minutes. You define how many minutes (X) using the web tag parameter m=X
|-
|<#WindGustCust m=x>
|returns the highest wind gust over the last X minutes. You define how many minutes (X) using the web tag parameter m=X
|-
|colspan="2" style="background:lightgray;"|Monthly averages
|-
|colspan="2" |These are the average values for a month across all your Cumulus MX history. The average excludes any partial month at the start of the history, and the current month, but assumes the data between is complete. Defaults to the current month, specify a month using the `mon=NN` tag parameter.
|-
|<#MonthAvgTemp>`
|-
|<#MonthAvgTempHigh>`
|-
|<#MonthAvgTempLow>`
|-
|<#MonthAvgTotalRainfall>`
|-
|<#MonthAvgTotalWindRun>`
|-
|<#MonthAvgTotalSunHours>`
|-
|<#MonthAvgTotalET>`
|-
|<#MonthAvgTotalChillHrs>`
|}


Please carefully read the '''readme''' file in the zip. There is a [https://cumulus.hosiene.co.uk/viewtopic.php?f=4&t=10118 forum thread about using this converter with the legacy Cumulus here].
=Day/Night/Sun/Moon=


Remember this utility will not support all fields used by MX. It is advised you use [[#Create Missing]] (see above) after using this utility to populate the other fields. If you do find this utility does not work with your MX release, you may need to manually recreate records, etc. using Cumulus 1 formats, and then [[Migrating from Cumulus 1 to MX|Migrate all your files from Cumulus 1 to MX]].
These values are calculated hourly.


=== WeatherLink Converter ===
{| class="wikitable" border="1"
|-
!style="width:150px" | Webtag name
!style="width:900px" | Function
|-
|<#sunrise>
|Last sunrise time at the station - This sunrise time is calculated by a third party library 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 hour Cumulus converts it to local time to ensure shown correctly before and after any clock change.
|-
|<#daylength>
|Length of day in hours and minutes (sunrise to sunset).
|-
|<#IsSunUp>
|A flag to indicate if the Sun is above the horizon or not, based on the sunrise and sunset times.


This utility was provided by Steve to convert Davis '''WeatherLink''' log files to Cumulus format, download it [https://cumuluswiki.org/a/File:WLconverter.zip here]. Please carefully read the '''readme''' file in the zip to understand how to use this utility.
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. Possible values are 0 or 1
|-
|<#dusk>
|End of next Civil Twilight at the station as at last midnight UTC. Possible values are 0 or 1
|-
|<#IsDawn>
|Dawn as described above is active
|-
|<#IsDusk>
|Dusk as described above is active
|-
|<#daylightlength>
| Approximate length of daylight in hours and minutes (dawn to dusk)
|-
|<#isdaylight>
|A flag to indicate if the location for the station is in civil daylight or not, based on the dawn and dusk times.


NOTE: this has nothing to do with Davis ''Weather Link Live'' despite confusing similarity in name.
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.
|-
|<#moonphase>
|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]].
|-
|<#MoonAge>
|Current '''approximate''' age of the Moon in days (0-29.53)
|-
|<#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')
|-
|<#MoonPercentAbs>
|Current percentage of moon visible (always positive)
|-
|<#SunshineHours>
| see [[#Today.ini]] Miscellaneous
|-
|<#YSunshineHours>
|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)
|}


Basically, this converter utility reads '''.wlk''' files, it creates a folder called '''converted''' into which it places [[Standard log files]] and [[dayfile.txt]] files as used by Cumulus software. You need to be able to manually merge (using a text file editor) the newly created files with any files of same name in your Cumulus [[data folder|'''data''' folder]]. You might also want to read (although not directly related to this converter utility) [[Amending_dayfile#Importing_data_not_recorded_by_Cumulus|Importing_data_not_recorded_by_Cumulus]].
= System =


A search on the support forum will reveal various posts on use of this converter. The key topics are:
Special tags returning information about the device hosting CumulusMX
* [https://cumulus.hosiene.co.uk/viewtopic.php?f=6&t=20017 forum topic about using this converter with MX here]
* [https://cumulus.hosiene.co.uk/viewtopic.php?t=11349 forum topic about using this converter with the legacy Cumulus here].


== Third Party Contributions by other Cumulus Users ==
{| class="wikitable" border="1"
|-
!style="width:150px" |Webtag name
!style="width:450px" |Applicability
|-
|<#OsVersion>
|OS version, e.g. "Windows 7 x64 build 7600"
|-
|<#OsLanguage>
|OS language, e.g. "English"
|-
|<#SystemUpTime>
|How long the system has been up, e.g. "8 hours 21 minutes"
|-
|<#ProgramUpTime>
|How long Cumulus has been running, e.g. "7 hours 55 minutes"
|-
|<#ProgramUpTimeMs>
|How long Cumulus has been running in milliseconds
|-
|<#StationUpTime>
|How long the station has been running as timespan (for DAVIS WLL & WLC and for ECOWITT)
|-
|<#StationLinkUpTime>
|How long the station Link has been estaablished as timespan (only for DAVIS WLL & WLC)
|-
|<#CpuName>
|Name of the processors or n/a
|-
|<#CpuCount>
|Number of processors, e.g. "4"
|-
|<#CPUTemp>
|Temperature of the CPU in C, only works on Linux, updates once a minute, returns '-999.0' on Windows
|-
|<#AllocatedMemory>
|Amount of memory allocated to Cumulus, e.g. "60.69 MB"
|-
|<#MemoryStatus>
|Memory status or n/a
|-
|<#DisplayMode>
|Display mode or n/a
|-
|<#DiskSize>
|The size of the disk CumulusMX resides on or n/a
|-
|<#DiskFree>
|The free space on the disk CumulusMX resides on or n/a
|-
|}


For files, and add-on's, contributed by Cumulus users, see these Categories (where third party authors may have mentioned what they offer):
=Units=
# [[:Category:3rd Party Apps]] - contributions for various devices,
# [[:Category:AddOns]] - adding extra functionality,
# [[:Category:WebTools]] - for your web server, and
# [[:Category:User_Contributions]] - key contributions from the user community


=Current MX Developed from =
No optional input nor output parameters.
{| class="wikitable" border="1"
|-
!style="width:150px" | Webtag 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>
|JavaScript encoded of previous web tag that is HTML encoded (i.e. without '''&amp;''' and without '''&deg;''')
|-
|<#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", "kPa"
|-
|<#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"
|}


Cumulus 3 (MX) software was developed as a beta with limited functionality by Steve Loft.
=Date & Time=
* Steve Loft previously developed Cumulus 2 (where he tested using the C# language, now used for MX)
The default format depends on the locale you use to run Cumulus.
* Steve Loft created the original Cumulus software (now known as legacy cumulus 1) just for his use, before making it generally available, he then developed it over the next decade to include requirements suggested by thousands of users.
* Steve Loft, the author of Cumulus/Cumulus MX has since fully retired, and stopped providing support, or updates, to any of his software.


==Steve's final beta MX==
When format is fixed it is noted.


You can download below the final Cumulus 3 beta release, as made available by Steve Loft, and also his ''subsequent'' final source code.
{| class="wikitable" border="1"
|-
!style="width:150px" |Webtag name
!style="width:600px" | Function
|-
|<#date>
|The current date.
|-
|<#metdate>
|The current meteorological date.
*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
|-
|<#timeUTC>
|The current UTC date/time rather than local date/time. Example result: 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: 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
|-
|<#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'
|-
|<#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.
|-
|<#yesterday>
|Yesterday's date.
|-
|<#update>
|The date and time of the last web site update.
|-
|<#timeJavaScript>
| The JavaScript '''Date''' object contains the number of milliseconds 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 <code>Math.floor(new Date().getTime()/1000.0)</code> 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.


If you are able to understand his source code (linked below), and compare it to the latest source code (linked above), you can appreciate the transformation that has taken place in recent years.
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.


*[//{{SERVERNAME}}/Downloads/CumulusMXDist3043.zip Cumulus MX v3.0.0 beta build 3043, 20-Jan-2017] Cumulus MX, a cross platform version of Cumulus 3 which runs on Windows, Linux (including the Raspberry Pi) and Mac OS X (Steve Loft - final release), single zip that includes both "CumulusMX.exe" and "ExportMySQL.exe".
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.
*[//{{SERVERNAME}}/Downloads/CumulusMXSource.zip subsequent updated Cumulus MX Source Code] from Steve Loft. He made the following comments, as he handed the project over to "the community":
|-
**This version of the code is post the last release I made at build 3043 as it includes some extra changes that I have not finalised.
|<#timeUnix>
**My source code is offered as my parting gift, completely '''without support''', in the hope that it might be useful to future developers.
| 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.
**My source code is very badly structured due to the 'Frankenstein' way I cobbled it together from various places. Some of it is a machine translation of parts of Cumulus 1.
|-
|<#LastDataReadT>
|The date/time data was last read from the station.
|-
|<#DaysSince30Dec1899>
|Day count (gives whole and fractional part) Example: 41250.6523310301
|-
|<#recordsbegandate>
|Date when records began.
|-
|<#DaysSinceRecordsBegan>
|Day count since Cumulus records started
|-
|<#DataDateTime>
|this reflects the current date time with respect to the data. Use this web tag in things like Custom MySQL INSERT statements to pick up the historic data's date/time rather than the current clock date/time.
|}


= Legacy releases =
=Alarms=


See [[Downloads| downloads page]] for full details.
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'.


== Cumulus 1 ==
{| class="wikitable" border="1"
|-
!style="width:150px" |Webtag name
!style="width:600px" |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
|-
|<#IsRainingAlarm>
|"It's Raining" alarm triggered either via a Hydreon RG-11 device, or rain rate > 0
|-
|<#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
|-
|<#BatteryLowAlarm>
|Alarm for WLL (Console [if you have an API key] & Tx), VP2 (Console & Tx), GW1000 (Tx)
|-
|<#DataSpikeAlarm>
|Alarm raised if a data spike is detected, or a data limit exceeded
|-
| <#HttpUploadAlarm>
|Alarm raised if a HTTP upload alarm has been triggered
|-
| <#MySqlUploadAlarm>
|Alarm raised if a MySQL upload alarm has been triggered
|-
| <#UpgradeAlarm>
| Alarm raised if MX upgrade (a newer release) is available
|-
| <#FirmwareAlarm>
| Ecowitt only. Firmware update check on start-up and once a day at 13:00
|-
| <#NewRecordAlarm>
| NewRecordAlarm somewhat replicates the existing #newrecord web tag, but is also controlled by the alarm being enable/disabled
|-
| <#NewRecordAlarmMessage>
| Displays the last new record alarm text message
|}


Cumulus 1 software was popular, when it went public in 2004, and its [[Cumulus_Users|usage]] grew very rapidly in the subsequent decade until final 2014 release. Even now (in mid-2022) some people are still using the final release version (and a quite substantial number of public viewable weather sites are still driven by earlier builds).
= Extreme Records =


Be aware, the longer you wait before swapping from legacy to Cumulus MX software; the more that MX will have developed away from the legacy. MX's development has effectively abandoned its former focus on compatibility, so you might encounter more difficulty with [[Migrating from Cumulus 1 to MX|transferring your data files when you migrate]].
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'.


In all months of 2020, (when the year selection drop-down provided in all releases of original software reached its limit, and MX gained a substantial increase in functionality), and continuing into mid-2021, there was an avalanche of people who used to use the legacy software successfully swapping to MX. As of mid-2022, the usage of this legacy software is in fast decline, implying fewer people can offer assistance.
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).


The '''installer for the FINAL release of the legacy Cumulus 1''' is available here:
You can change the default timeout through the parameter ''Station Settings=>Common Options=>Advanced Options''.
#[//{{SERVERNAME}}/Downloads/CumulusSetup.exe Cumulus 1099 installer] Full set of files within an installer.
#* On the "this period" type, and snow index, screens you can still manually enter any year,but you have to over-type with the full year yourself, outside range 2008 to 2020.
#* You cannot manually regenerate NOAA reports after 2020, but there is no problem with automatic generation.
#[//{{SERVERNAME}}/Downloads/cumulus.1099.2.zip Cumulus 1.9.4 build 1099.2 patch] Patched version of one file (cumulus.exe) to replace that file from above installer
#* Note this is not the full installation package, just one file to replace in the suite of files created by the installer.
#* This patch modifies the drop-down year selectors, (on "this period" screens, for NOAA reports, and for Snow Index) making it easier to choose date entries (patch version 1099.2 was released 28 Jan 2020) up to the year 2030.


=== Legacy Cumulus 1 Resources ===
== Table of web tags available for extreme records ==


*[//{{SERVERNAME}}/Downloads/Cumulus%20basic%20installation%20guide.pdf Cumulus installation guide] Instructions for installing Cumulus 1
{| class="wikitable" border="1"
*[//{{SERVERNAME}}/Downloads/readme.txt Cumulus readme.txt] Please read this before installing or updating Cumulus
|-
*[//{{SERVERNAME}}/Downloads/Cumulus.chm Cumulus help file] The Cumulus 1 help file (this also gets installed when Cumulus is installed)
!style="width:150px" |Webtag name
*[//{{SERVERNAME}}/Downloads/CumulusFR.chm Cumulus help file in French] The Cumulus 1 help file translated into French
!style="width:600px" |Function
*[//{{SERVERNAME}}/Downloads/CumulusRealtime.zip Cumulus Realtime] An obsolete Silverlight (Silverlight is no longer developed or supported by Microsoft) application for displaying 2 extra dials showing real time wind data on the standard Cumulus gauges page (with temperature and rainfall in histogram style) for a web site
|-
|<#recordsbegandate>
|The date that Cumulus began tracking all time records<br/> (does not prevent earlier record dates being set manually)
|-
|<#newrecord>
|Indicates when any tracked extreme is changed (sets the LED on the interface flashing).
|-
|<#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>
|1 if the all-time high Canadian Humidity index extreme has been updated, 0 if not
|-
|<#LowWindChillRecordSet>
|1 if the all-time greatest wind chill extreme has been updated, 0 if not
|-
|<#HighFeelsLikeRecordSet>
|1 if the all-time high feels like temperature extreme has been updated, 0 if not
|-
|<#LowFeelsLikeRecordSet>
|1 if the all-time low feels like temperature extreme has been updated, 0 if not
|-
|<#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
|-
|<#HighRain24HourRecordSet>
|1 if the all-time high 24hr 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 Variants ===
= Miscellaneous =


It is '''STRONGLY RECOMMENDED''' that users of Cumulus '''1.9.4 variants''' migrate to Cumulus MX, which has ongoing support by Mark Crossley. The baud rate can be selected within MX as a configuration setting.
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.


*[//{{SERVERNAME}}/Downloads/CumulusSetup1100.zip Cumulus 1.9.4 build 1100 setup] '''Use ONLY if you are an Instromet user''', and your logger operates at 115200 baud, you should use build 1100
{| class="wikitable" border="1"
*[//{{SERVERNAME}}/Downloads/CumulusSetup1101.zip Cumulus 1.9.4 build 1101 setup] '''Use ONLY if you are an Instromet user''', and your logger operates at 19200 baud, you should use build 1101
|-
*'''NOTE:''' '''These Cumulus 1.9.4 variants will not have any updates in the future.'''
!style="width:150px" |Webtag name
* The patch for Cumulus.exe, cannot be used with these variants
!style="width:900px" | Function
* The menu items with year drop-down selectors will not display years beyond 2020.
|-
**For example, this will happen on manual generation of NOAA-style reports.
|<#LatestError>
**This does not affect any automatic generation of NOAA reports, but does prevent re-generation.
| This tag and the next 5 are in CumulusMX containing the latest error information.
|-
|-
|<#LatestErrorEnc>
| See previous tag for use in PHP scripts.
|-
|-
|<#LatestErrorJsEnc>
| See previous tag for use in javascript.
|-
|<#LatestErrorDate>
|See previous tags
|-
|<#LatestErrorTime>
|See previous tags
|-
|<#ErrorLight>
|1 if the 'error' light is flashing, 0 if not
|-
|<#version>
|The version of Cumulus in use
|-
|<#build>
|The build of Cumulus in use
|-
|<#NewBuildAvailable>
|This gets the value 0 or 1 and is checked on start-up and once a day thereafter at a random time
|-
|<#NewBuildNumber>
|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'


== Cumulus 2 ==
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.
|-
|<#LastDataReadT>
|The date/time data was last read from the station.
|-
|<#stationId>
|The weather station internal ID corresponding to the stationType (see next web tag).
|-
|<#stationtype> stationId
|The weather station [https://cumuluswiki.org/a/Cumulus.ini#Section:_Station model] description.
|-
|<#stationtypeJsEnc>
|JavaScript encoded of previous web tag that is HTML encoded
|-
|<#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"


The software for Cumulus 2 alpha release is no longer available.
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>
|JavaScript encoded of previous web tag that is HTML encoded
|-
|<#longitude>
|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.
|-
| <#longitudeJsEnc>
|JavaScript encoded of previous web tag that is HTML encoded
|-
|<#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 e.g. '123&amp;nbsp;m'
|-
| <#altitudenoenc>
|JavaScript encoded of previous web tag that is HTML encoded
|-
|<#location>
|The station location (as you entered during setup)
|-
| <#locationJsEnc>
|JavaScript encoded of previous web tag that is plain text
|-
| <#locationenc>
|HTML encoded version of previous web tag that is JavaScript encoded
|-
|<#longlocation>
|Longer description of the station location (as you entered during setup)
|-
| <#longlocationJsEnc>
|JavaScript encoded of previous web tag that is plain text
|-
| <#longlocationenc>
|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
|-
| <#forumurl>
|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 cam, that is just a label, and the label can be changed on each standard web page individually)
|-
| <#webcamurl>
|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'
|-
|<#LatestNOAAMonthlyReport>
|Gives file name of latest auto-saved NOAA monthly report
|-
|<#LatestNOAAYearlyReport>
|Gives file name of latest auto-saved NOAA yearly report
|-
|<#MySqlRealtimeTime>
|time of last real-time table insert
|-
|<#MySqlIntervalTime>
|time of last interval data table insert
|-
| <#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
|-
| <#Option_noaaFormat>
| If true (1) the HTML format will be generated for the NOAA reports. Whene false (0) the standard text will be generated. Changing this parameter will need you to regenerate all your reports!
|}

=Special tags=

==Davis==

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

The values of the reception tags are updated every 15 minutes.

{| class="wikitable" border="1"
|-
!style="width:150px" |Webtag name
!style="width:600px" |Function
|-
|<#DavisTotalPacketsReceived>
|Total number of data packets received. This stat is not supplied by the Davis WLL station.
|-
|<#DavisTotalPacketsMissed>
|Number of missed data packets. 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>
|Longest streak of consecutive packets received. 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>
|Number of packets received with CRC errors. 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>
|Number of times the console resynchronised with the transmitter. 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>
|The console/WLL firmware version
|-
|<#THWindex>
|A derived temperature using Temperature/Humidity/Wind values

The THW Index uses humidity and temperature (like Heat Index), but includes the cooling effects of wind (like wind chill).
|-
|<#THSWindex>
|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.
See [http://digitalcommons.unl.edu/cgi/viewcontent.cgi?article=1223&context=animalscinbcr Approx calculation].
|-
|<#battery>
|The console battery condition in volts. eg "4.82v"
|-
|<#txbattery>
<#txbattery channel=1>
|The transmitter battery condition, by default it returns the status of all transmitters.
|-
|<#StormRain>
|The console 'storm rain' current amount.
|-
|<#StormRainStart>
|The console reported date of the start of the 'storm' (see previous webtag).
|-
|<#StationFreeMemory>
|Shows the station free memory for Davis WLC, Ecowitt GW1100/20000 (using HTTP also using Ecowitt API)
|-
|<#StationRuntime>
| Shows the station uptime in seconds for Davis WLL/WLC, Ecowitt GW1100/20000 (using HTTP)
|}

'''Note:''' that the console does not report start time, so the webtag cannot report time. It appears a minimum of 2 tips within 3 hours will trigger a storm start, so using <#LastRainTip> might help

==Davis WLL ==

You need a purchased license to use these webtags.

{| class="wikitable" border="1"
|-
!style="width:150px" |Webtag name
!style="width:600px" |Function
|-
|<#ConsoleSupplyV>
|The WLL external supply voltage
|-
|<#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)
|-
|<#MulticastBadCnt>
|Count of multicast packets missed or have bad a CRC
|-
|<#MulticastGoodCnt>
|Count of good multicast packets received
|-
|<#MulticastGoodPct>
|Percentage of good multicast packets received
|}
'''Note''': See also the '''Davis''' table for <#StationFreeMemory> and <#StationRuntime>

==Ecowitt && Fine Offset==

The following tags are specific to the Ecowitt and Fine Offset series

{| class="wikitable" border="1"
|-
!style="width:150px" | Webtag name
!style="width:600px" | 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
|-
|<#ExtraStationFreeMemory>
|to avoid clashes with the main station and a Ecowitt HTTP station used for extra sensors
|-
|<#LowBatteryList>
|In case sensors have a low battery, this tag lists them comma separated with ''LOW, 0 or 1'' depending on what is received
|}
'''Note''': See also the '''Davis''' table for <#StationFreeMemory> and <#StationRuntime>

=QueryDayFile=

This web tag deviates from the regular webtags in that is gives the possibility to actually query the whole dayfile on a per row and per column basis. The arguments which govern this query are different from the regular parameters which also play a role. For that reason ''QueryDayFile'' is classified as a ''chapter on its own''. It even may evolve to an even complexer query system for the dayfile (e.g. find a record for a specific date). This entry is based on the ''QueryDayFileWebTag.md''-file which you can find in the ''MXutils directory'' in the distribution.

The general form of the use of this web tag is:
<#QueryDayFile value=MinTemp function=min [where=>10] dateFrom=2023-01-01 [dateTo=2024-01-01] [resfunc=max] [showDate=y] [format="date_format"] [dp=N] [tc=y] [rc=y]>

The arguments are described below.

'''''NOTE:''' If there is an existing web tag for the value you require, please use that specific tag rather than this general query. The specific tag is likely be *much* more efficient.''

==The value parameter==
The value parameter is required and specifies which value from the dayfile you want (the column). It can take any of the following values (only one at a time):
'' HighGust, WindRun, HighAvgWind, LowTemp, HighTemp, AvgTemp, HighHeatIndex, HighAppTemp, LowAppTemp, LowWindChill, HighDewPoint, LowDewPoint, HighFeelsLike, LowFeelsLike, HighHumidex, LowPress, HighPress, HighRainRate, TotalRain, HighHourlyRain, HighRain24h, LowHumidity, HighHumidity, SunShineHours, HighSolar, HighUv, ET, HeatingDegreeDays, CoolingDegreeDays, ChillHours''

==The function parameter==
Not used for the date selector ''ThisDay''.

Required for all other date selectors. The name of the function to apply to the value within each period.

The possible functionstrings are:
''min, max, avg, sum, count''.

==The where clause==
Required if function = count.

Criteria applied to the count. This is a comparison value, so for example you want to count days where the minimum temperature was below zero °C you would use `where="<0"`.

You can use the following comparison strings:

>, <, >=, <=, =

==The dateFrom field==
Required. The start date of the query.

It can be any date string that can be parsed by the "yyyy-MM-dd" format.<br>
OR<br>
It can be one of the following special values:
''ThisDay, ThisMonth, ThisYear, Day-[N], Month-[N], Year-[N], Month[N] Day[MMDD], Yearly''

#''ThisDay'', ''ThisMonth'', and ''ThisYear'' are hopefully self explanatory.
#''Day-N'', ''Month-N'' and ''Year-N'' are used to specify the relative day, month or year. For example ''Month-1'' = the previous month to current, ''Day-1'' = yesterday.
#''DayMMDD'' is used to specify a month and day to return an "on this day" value. MM = 1 to 12, DD = 1 to 31. For example ''Day0421'' shows results for the 4th April every year
#''MonthN'' is used to find values for any year for the specified month. N = 1 to 12.
#''Yearly'' groups the results by year

The value is found for dates >= dateFrom.

==The dateTo field==
Optional if dateFrom has one of the special values.

Required if dateFrom is a date string - format "yyyy-MM-dd"

The value is found for dates <= dateTo

==The result function field==
Result function.

Mandatory for grouped results, ie those using the date options: ''ThisDay, Day[MMDD], Month-[N], Year-[N], Month[N], Yearly''

Controls if the largest or smallest value for the grouped period is returned.

Must be one of the following:

''min, max''

==The showDate field==
Optional.

If omitted, then the web tag returns only the numeric value.

If present, the the web tag returns a pair of strings, the value itself, and the date-time it occurred in the format: [''"value","datetime_string"'']

The parameter showdate should not be used if the function is one of ''"avg", "sum", or "count"''. If specified for these functions it returns a datetime_string of "-".

==The format field==
Optional. The standard date formatting string used by all date-time web tags.

==The dp, tc and rc arguments==
''[dp=N] [tc=y] [rc=y]'' are regular parameters described in [[Webtags/Parameters|their proper page]].

==Examples==
1 - The maximum sun hours in a day this year and the date on which it occurred:

`<#QueryDayFile value=SunShineHours function=max from=ThisYear showDate=y dp=2 format="dd-MM-yyyy">`

returns: `["12.32","26-07-2024"]`

2 - The total sun hours last year:

<#QueryDayFile value=SunShineHours function=sum from=Year-1 dp=2>

returns: 1287.22

3 - Highest sun hours in any year, and the year it occurred:

<#QueryDayFile value=SunShineHours function=sum from=Yearly resFunc=max dp=2 showDate=y format=yyyy>

returns: ["1405.9","2018"]

4 - The total evapotranspiration last month:

<#QueryDayFile value=ET> function=sum from=Month-1 dp=2>

returns: 23.56

5 - The average maximum UV-I in April & May 2024:

<#QueryDayFile value=HighUv function=avg from=2024-04-01 to=2024-06-01>

returns: 4.5

6 - The lowest minimum temperature that has occurred in any December (*NOTE: in reality there is standard web tag for this <#ByMonthTempL>*):

<#QueryDayFile value=LowTemp function=min from=Month12 resFunc=min showDate=y>

returns: ["-12.5","20/12/2010 07:17"]

7 - The highest minimum temperature that has occurred in any December (*NOTE: in reality there is standard web tag for this <#ByMonthMinTempH>*):

<#QueryDayFile value=LowTemp function=max from=Month12 resFunc=max showDate=y>

returns: ["12.1","19/12/2015 00:36"]

8 - The lowest minimum temperature that has occurred on this day

<#QueryDayFile value=LowTemp resFunc=min from=ThisDay showDate=y>

returns: ["5.2","05/10/2014 00:21"]

9 - The lowest minimum temperature that has occurred on this day (yesterdays date)

<#QueryDayFile value=LowTemp resFunc=min from=Day-1 showDate=y>

returns: ["4.5","04/10/2010 08:07"]

10 - The lowest minimum temperature that has occurred on this specified day

<#QueryDayFile value=LowTemp resFunc=min from=Day0421 showDate=y>

returns: ["-1.8","21/04/2010 05:47"]

[[Category:Cumulus_MX]][[Category:CumulusUtils]]

Revision as of 11:19, 15 October 2025

This Wiki page has been created for those who use Cumulus MX. It lists all standard utilities as well as MX itself.

What is Cumulus MX?

a cross platform version of Cumulus software that runs on Microsoft Windows, all varieties of UNIX and Linux (including the Raspberry Pi Operating System), and Mac OS X.


CumulusMX.exe Usage Restriction

Both the mandatory MX Interface, and the optional default MX web site, include the HighStock product.

Are you using MX for a non-profit organisation, personal website, or school project? Then download MX and start using it with Highcharts today.

Are you representing any commercial organisation running a facility that others use? If so, then you cannot use Cumulus MX to share weather data on behalf of your organisation without buying a licence from the High Charts organisation.

HighCharts rules for usage of their products are described on their licence purchase web page, and it is your responsibility to ensure compliance.

Help with ‘Stable’ MX releases

If you need any help with Cumulus MX, please first consult, in this Wiki, What_to_do_when_I_have_a_problem_with_MX.

It is recommended you check you have complied with any instructions in the announcement for the latest MX release in the forum before seeking help (to see what changes in any release affect you, and what actions you may need to take).

If you wish to research the documentation on MX to try to resolve your problem yourself, use the entry point of the Category:Cumulus MX page for pointers to other Wiki pages connected with MX that may help.

If you cannot answer your questions from information in this Wiki (and MX changes so quickly any information here can be very out of date), then use the correct MX support forum and the developer or Cumulus community will offer assistance.

Current Release

There are inter-dependencies between different files in the MX release distribution:

  • Therefore you must always install into your MX folders, every file included in the download zip.
  • If you customise any file that is in the distribution, either give the new file a new name (perhaps add a prefix of "_" in front of files you edit) or place your tailored version in a different folder
    • Either approach will ensure your tailored files are not overwritten by files from the download, and let you compare your tailored file with the new file in any future download to see if you need to tweak your tailored file
  • When upgrading, it is strongly recommended that you install all files in the download for a new release of MX directly over your existing installation.
    • You can take a back-up of any existing installation before you copy in any new files, that will provide you with the ability to regress to the earlier release, if the new release does cause you an issue
    • You may end up with some files no longer needed by the new release, left over from older release, but this is better than risking missing some vital files
    • You need a good understanding of the use of each file, before considering deleting any file that you think might be obsolete, because not all files that Cumulus uses are contained within the release zip, some are created as it runs.


Latest build distribution download

IMPORTANT: Before installing Cumulus MX v4.0 for the first time, please study and understand this installation guide
IMPORTANT: Before upgrading Cumulus MX, please read the release notice and the CHANGELOG.md file for any implications before you upgrade
~ Download Cumulus MX v4.6.4 build 4128 30-September-2025

Latest MX Source Code

~ View/download Cumulus MX Current Source Code 

This source code base is updated for all releases resulting from development by M Crossley, it includes some contributions from other developers.

Raspberry Pi Image

~ Download 32 bit image: Raspberry Pi Image for Cumulus MX 4.6.4 x32
~ Download 64 bit image: Raspberry Pi Image for Cumulus MX 4.6.4 x64

As at April 2022, the image includes Raspberry Pi. O. S. 11 "Bullseye" version of Linux.


  1. This is a pre-built disk image file for your first installation onto a Raspberry Pi computer.
  2. Do read the instructions for using this image on the Raspberry Pi Image page to see what is in the image and how to use it
  3. It is of course possible that sometimes the image provided may have issues for you,
    • it is set up so that MX starts running as a service immediately you boot up your Raspberry Pi, rather than letting you first run MX interactively (see MX_on_Linux#Running_MX);
    • it is produced with a Raspberry Pi model 3, so with other models you may need to consider what updating rates your model can support;
    • it is produced using a GB locale and GB time-zone, so that automatically started MX may not initially be running correctly for your locale (however as you need to restart MX after changing settings you should be okay when MX starts recording data).
Please note, this image may not always contain latest MX release, but once you have installed a release of MX on your Raspberry Pi, upgrading is done using main software download link, as none of the other components in the image need to be upgraded (unless the release announcement states that the new release needs a specific version of Dotnet).

Upgrading

There is an installer utility available to help with upgrading.

We strongly advise upgrading to the latest release:

  • The main developer can most easily offer support if you are using the most familiar recently released build.
  • You may wish to wait a few days after a new release comes out, just in case a new release has some bugs
    • MX is extremely complex, the developers work on MX edits in their spare time, have settings that suit them, and do not have the full set of sensors that MX can support, so pre-release testing is never perfect
  • By switching to latest release, you gain any extra functionality it may offer (although it may not be useful to you), but more importantly you gain fixes of bugs your existing release may have


  • Important, please read all of the release notes (in the appropriate forum announcement threads) for the builds since the version you are upgrading from, especially noting when there are references to necessary once-off actions.
  • If you have never upgraded before, or you are currently running a fairly old release of MX, you are advised to read the Updating MX to new version page in this Wiki,
    • you may be recommended to upgrade in stages, as certain releases do essential one off actions that are missed if you skip that release; e.g. rewriting Cumulus.ini or changes to columns in database tables
    • overwriting an existing installation will add any new files, but it won't remove obsolete files, and sometimes replacement files have different names to their predecessors so don't overwrite the old files
  • If you are upgrading from a previous version of the legacy Cumulus 1, then you might want to read Migrating from Cumulus 1 to MX page; and if you need more justification read Compare legacy Cumulus and MX page
    • However, it is likely that information on those pages was written for earlier MX releases, and might be out of date, so like many other people you might want to ask in the correct MX support forum to see if others have more up-to-date advice.

Note by Steve Loft: you may find that anti-virus software flag a new release of Cumulus as a ‘threat’, for a few days or weeks after a new version has been released, even though it does not actually contain a virus of any kind. This is due to a system they call ‘reputation’ where they automatically block any versions of software that have recently been released. You may want to consider complaining to the provider of your anti-virus software about this ridiculous system, or better still, use some better anti-virus software.

Older releases

It is always possible that a new release introduces a bug, and you decide to regress to an earlier release.

Find link to earlier MX release distributions here.

(You can search using the history tab on this Wiki page to see which past builds were made available as Raspberry Pi images, as these are not created for all releases, but there is no way to tell if the old filenames can still be downloaded. Generally, it is easiest to download a different normal MX release distribution over whatever MX release was in the image you downloaded.)

Other utilities

Cumulus MX Tools

The utilities listed here are only for use with MX, they may be included in the MX release zip, but links to latest releases without the *.dll files ("software libraries") needed to run the respective utility, are provided below.

The "software libraries" are provided in the MX release zip that is stated alongside download link. The different utilities vary with regard to which software libraries they require, and those with technical understanding can check the code sources.

If you are using an earlier MX release than that stated beside a utility download below, upgrade MX to bring in the new "*.dll" files needed, because the utility will not work with the versions of "software libraries" included with earlier MX releases.

If you are using a later MX release than that stated, check the MX release announcements for all releases since that stated below to see if the "software libraries" have been upgraded, if they have then the respective utility because it has been compiled with older versions of the respective .dll files will probably not work. (Sometimes the names of new .dll files are different to the names of the old .dll files, so an upgrade of MX done by copying files over an existing installation will leave the old files there, in that case the utility might still work by picking up old names).

Migrate Data v3 to v4

~ The MigrateDatav3to4 v1.0.4 download dated 29 January 2025 is here.

A utility to migrate your data files from Cumulus MX v3 format to v4 format. Read Cumulus MX Version 4 - IMPORTANT Additional Information for information on how to use this utility.

Create Missing

~ The CreateMissing v2.0.3 download dated 27 June 2025 (works with MX release of 4.0.0 onwards) is here.
~ The CreateMissing v1.4.3 download dated 05 February 2024 (works with MX release of 3.20.0 onwards) is here.

Check compatibility with the MX release you have running as per notes above. (Although earlier releases of "Create Missing" exist on "github.com/cumulusmx/CreateMissing/releases", their software bugs imply they should not be used). Install into same directory as "CumulusMX.exe".

This MX utility, affects:

  1. It will create a new daily summary (dayfile.txt). If you already have a "dayfile.txt", that is renamed, the new file should include individual fields, and lines, missing from your old file.
  2. It will read, and where appropriate update, your month by month (MMMyylog.txt) files.
    • The utility reads the source values in as input values. This utility has the ability to calculate many of the derived fields, so will add any missing derived values to your month by month files as it proceeds.
    • Therefore the utility should be used to add the extra fields for those months where the input file was produced by Cumulus 1 or an earlier release of MX (which might have populated fewer fields or used a different calculation).


Usage information by the author of the utility can be found here.

  • Learn more about this utility by reading the calculate missing page in this Wiki.
    • Elsewhere on that same page learn when this utility might be useful, and what else you can try.
  • Check in the support forum for information about status of bugs in this utility, at time of last updating this paragraph there was an outstanding issue concerning storing the line in dayfile.txt for the first of some months if your rollover time is not midnight.
  • For full information about solving problems with your dayfile.txt file read the amending daily summary file page.

Create Records

~ The CreateRecords v0.1.1 download dated 13 December 2023 is here.

A utility to create, or recreate, missing extreme records from Cumulus MX by parsing your daily summary (dayfile.txt).

See the Readme on githib

Export To MySQL

DO NOT USE THIS VERSION WITH Cumulus MX v4

ExportToMySQL is now included in the Cumulus MX v4 distribution zip file.

~ The ExportToMySQL v1.10.0 download dated 07 January 2024 (works with release of MX 3.28.1 or later) is here.

Check compatibility with the MX release you have running as per notes above. Note that compatibility is needed both with the .dll files and with the columns present in the database table to be updated.

If you are not using the MX release named above, then other release zips (and source code) for this utility are available at ExportToMySQL/releases and each release there is labelled as to which MX release creates default tables with correct columns.

This utility reads Settings that are also used by "CumulusMX.exe". Parameters supplied to this utility enable it to do one of the following actions affecting rows not already present on a MySQL, or MariaDB, database server:

  1. The parameter used is "dayfile", will insert missing rows into a database table that is called "dayfile" (by default, the user can change the name of that table) that (as minimum) has columns named as per the MX default for that table (at CumulusMX.exe release quoted for which the download applies) from the contents of daily summary (dayfile.txt) file
  2. Insert missing rows into a database table that is called "Monthly" (by default, the user can change the name of that table) that (as minimum) has columns named as per the MX default for that table (at CumulusMX.exe release quoted for which the download applies) from the contents of the single file of month by month (MMMyylog.txt) whose relative path "data/..." is named in the parameter
  3. The parameter used is "monthly", will insert missing rows into a database table that is called "Monthly" (by default, the user can change the name of that table) that (as minimum) has columns named as per the MX default for that table (at CumulusMX.exe release quoted for which the download applies) reading data from the contents of all files of type month by month (MMMyylog.txt) found in the data sub-folder.

Installation and usage information by the author of the utility can be found here.

This new utility replaces the "ExportMySQL.exe" (no "To" in that name) utility included by Steve Loft in his MX beta distributions. That is not compatible with any recent MX releases.

Data Importers

Import WeatherCat Data

~ The ImportWC v1.0.0 download dated 10 October 2024 is here.

This utility converts WeatherCat monthly log files into Cumulus MX v4 format monthy log files.

You can read more about how to use it here.

Import Weather Display Data

~ The ImportWD v1.0.1 download dated 14 September 2025 is here.

This utility converts Weather Display monthly log files into Cumulus MX v4 format monthly log files.

You can read more about how to use it here.

Older Utilities By Steve Loft

Source code for these utilities are not available, therefore they cannot be altered or upgraded.

Utility for Fine Offset Stations

  • Set Logger Interval A utility by Steve Loft to adjust the internal logging interval on Fine Offset stations

Weather Display Converter

This utility was provided by Steve to convert Weather Display log files to legacy Cumulus 1 format, download it here.

Please carefully read the readme file in the zip. There is a forum thread about using this converter with the legacy Cumulus here.

Remember this utility will not support all fields used by MX. It is advised you use #Create Missing (see above) after using this utility to populate the other fields. If you do find this utility does not work with your MX release, you may need to manually recreate records, etc. using Cumulus 1 formats, and then Migrate all your files from Cumulus 1 to MX.

WeatherLink Converter

This utility was provided by Steve to convert Davis WeatherLink log files to Cumulus format, download it here. Please carefully read the readme file in the zip to understand how to use this utility.

NOTE: this has nothing to do with Davis Weather Link Live despite confusing similarity in name.

Basically, this converter utility reads .wlk files, it creates a folder called converted into which it places Standard log files and dayfile.txt files as used by Cumulus software. You need to be able to manually merge (using a text file editor) the newly created files with any files of same name in your Cumulus data folder. You might also want to read (although not directly related to this converter utility) Importing_data_not_recorded_by_Cumulus.

A search on the support forum will reveal various posts on use of this converter. The key topics are:

Third Party Contributions by other Cumulus Users

For files, and add-on's, contributed by Cumulus users, see these Categories (where third party authors may have mentioned what they offer):

  1. Category:3rd Party Apps - contributions for various devices,
  2. Category:AddOns - adding extra functionality,
  3. Category:WebTools - for your web server, and
  4. Category:User_Contributions - key contributions from the user community

Current MX Developed from

Cumulus 3 (MX) software was developed as a beta with limited functionality by Steve Loft.

  • Steve Loft previously developed Cumulus 2 (where he tested using the C# language, now used for MX)
  • Steve Loft created the original Cumulus software (now known as legacy cumulus 1) just for his use, before making it generally available, he then developed it over the next decade to include requirements suggested by thousands of users.
  • Steve Loft, the author of Cumulus/Cumulus MX has since fully retired, and stopped providing support, or updates, to any of his software.

Steve's final beta MX

You can download below the final Cumulus 3 beta release, as made available by Steve Loft, and also his subsequent final source code.

If you are able to understand his source code (linked below), and compare it to the latest source code (linked above), you can appreciate the transformation that has taken place in recent years.

  • Cumulus MX v3.0.0 beta build 3043, 20-Jan-2017 Cumulus MX, a cross platform version of Cumulus 3 which runs on Windows, Linux (including the Raspberry Pi) and Mac OS X (Steve Loft - final release), single zip that includes both "CumulusMX.exe" and "ExportMySQL.exe".
  • subsequent updated Cumulus MX Source Code from Steve Loft. He made the following comments, as he handed the project over to "the community":
    • This version of the code is post the last release I made at build 3043 as it includes some extra changes that I have not finalised.
    • My source code is offered as my parting gift, completely without support, in the hope that it might be useful to future developers.
    • My source code is very badly structured due to the 'Frankenstein' way I cobbled it together from various places. Some of it is a machine translation of parts of Cumulus 1.

Legacy releases

See downloads page for full details.

Cumulus 1

Cumulus 1 software was popular, when it went public in 2004, and its usage grew very rapidly in the subsequent decade until final 2014 release. Even now (in mid-2022) some people are still using the final release version (and a quite substantial number of public viewable weather sites are still driven by earlier builds).

Be aware, the longer you wait before swapping from legacy to Cumulus MX software; the more that MX will have developed away from the legacy. MX's development has effectively abandoned its former focus on compatibility, so you might encounter more difficulty with transferring your data files when you migrate.

In all months of 2020, (when the year selection drop-down provided in all releases of original software reached its limit, and MX gained a substantial increase in functionality), and continuing into mid-2021, there was an avalanche of people who used to use the legacy software successfully swapping to MX. As of mid-2022, the usage of this legacy software is in fast decline, implying fewer people can offer assistance.

The installer for the FINAL release of the legacy Cumulus 1 is available here:

  1. Cumulus 1099 installer Full set of files within an installer.
    • On the "this period" type, and snow index, screens you can still manually enter any year,but you have to over-type with the full year yourself, outside range 2008 to 2020.
    • You cannot manually regenerate NOAA reports after 2020, but there is no problem with automatic generation.
  2. Cumulus 1.9.4 build 1099.2 patch Patched version of one file (cumulus.exe) to replace that file from above installer
    • Note this is not the full installation package, just one file to replace in the suite of files created by the installer.
    • This patch modifies the drop-down year selectors, (on "this period" screens, for NOAA reports, and for Snow Index) making it easier to choose date entries (patch version 1099.2 was released 28 Jan 2020) up to the year 2030.

Legacy Cumulus 1 Resources

  • Cumulus installation guide Instructions for installing Cumulus 1
  • Cumulus readme.txt Please read this before installing or updating Cumulus
  • Cumulus help file The Cumulus 1 help file (this also gets installed when Cumulus is installed)
  • Cumulus help file in French The Cumulus 1 help file translated into French
  • Cumulus Realtime An obsolete Silverlight (Silverlight is no longer developed or supported by Microsoft) application for displaying 2 extra dials showing real time wind data on the standard Cumulus gauges page (with temperature and rainfall in histogram style) for a web site

Special Variants

It is STRONGLY RECOMMENDED that users of Cumulus 1.9.4 variants migrate to Cumulus MX, which has ongoing support by Mark Crossley. The baud rate can be selected within MX as a configuration setting.

  • Cumulus 1.9.4 build 1100 setup Use ONLY if you are an Instromet user, and your logger operates at 115200 baud, you should use build 1100
  • Cumulus 1.9.4 build 1101 setup Use ONLY if you are an Instromet user, and your logger operates at 19200 baud, you should use build 1101
  • NOTE: These Cumulus 1.9.4 variants will not have any updates in the future.
  • The patch for Cumulus.exe, cannot be used with these variants
  • The menu items with year drop-down selectors will not display years beyond 2020.
    • For example, this will happen on manual generation of NOAA-style reports.
    • This does not affect any automatic generation of NOAA reports, but does prevent re-generation.

Cumulus 2

The software for Cumulus 2 alpha release is no longer available.