Webtags (preserving history): Difference between revisions

From Cumulus Wiki
Jump to navigationJump to search
m
→‎Recent History: reference to examples added
m (→‎Recent History: reference to examples added)
(9 intermediate revisions by the same user not shown)
Line 7: Line 7:
</div>
</div>


=What is a web tag? =
=Introduction=


Put simply, a web tag is included in a [[Cumulus template file]] to indicate where Cumulus should insert values when it produces an output file. The concept of [[Customised_templates#What_is_meant_by_.27Cumulus_processes_templates.27|processing templates]] is explained in another article.  
==What is a web tag? ==
 
Put simply, a web tag is included in a [[Cumulus template file]] to indicate where Cumulus should insert values when it produces an output file. The concept of [[Customised_templates#What_is_meant_by_.27Cumulus_processes_templates.27|processing templates]] is explained in another article.
 
==Template files can create many types of file==


The output file can be:
The output file can be:
Line 18: Line 22:
*a [[Xml_webtags|eXtensible Mark-up Language (XML)]] file.
*a [[Xml_webtags|eXtensible Mark-up Language (XML)]] file.


==General Format for Web Tags==


== Why does MX talk about tokens? ==
In the position in any template file where Cumulus is to insert the relevant data, place a web tag in the '''general format''' specified here:  <pre><#tag_name [optional input selection parameters] [optional output modification parameters]></pre>
 
MX uses a '''token parser''' to read the web tags and replace them with the correct value, so if diagnostic output refers to tokens, it is saying the attempt to actually work out what content to return to replace the web tag with its tag name and parameters has encountered a problem.


=GENERAL TIP=
To find out what is allowed for '''tag_name''', see the various tables later on this page.


The web tags available in the version/build you are using, can be listed (in Cumulus 1 or Cumulus MX) by adding the following line to [[Cumulus.ini#Section:_Station|Cumulus.ini]] in the [station] section...
To find out what is allowed for the '''input selection parameters''' and '''output modification parameters''', refer to [[Webtags/Parameters|web tag parameters]] page.


ListWebTags=1
==What this page covers ==
 
Then start Cumulus and it will create a file called WebTags.txt in the same folder as where the executable is found. That file will list all the tags your build of Cumulus can currently generate. This list only contains the tag_names, it does not indicate what parameters they can take, nor does it include the brackets the tag name is surrounded by when you quote it in a template file for Cumulus to process.
 
An example of the output for an early MX version is at the end of this page (the actual output does not include commas, and has just one item per line, it has been compressed for inclusion in this article).
 
To stop Cumulus continuing to produce new versions of that file change the line to say ...
 
ListWebTags=0
 
{{Version badge 1}}If you are using Cumulus 1, each build of that contains a build specific version of Cumulus Help, and within that help is a list of web tags with basic information on what each tag_name returns.
 
[[File:Badge vMx.png]] MX bug: The inclusion of a web tag in the list produced by this instruction, does not mean that web tag is actually populated with valid information. See https://cumulus.hosiene.co.uk/viewtopic.php?p=153096#p153096 for an example.
 
=What this page covers =


{{TOCright}}
{{TOCright}}
Line 55: Line 44:
*Over 7 hundred web tags -'''THIS ARTICLE MAY NOT CONTAIN ALL WEB TAGS AVAILABLE IN LATEST VERSION - It depends on someone updating this article if the developer does not have time to do so'''
*Over 7 hundred web tags -'''THIS ARTICLE MAY NOT CONTAIN ALL WEB TAGS AVAILABLE IN LATEST VERSION - It depends on someone updating this article if the developer does not have time to do so'''


=What is covered on another page=  
==What is covered on another page==  


The parameters you can use with web tags are explained on the [[Web Tag Parameters|parameters page]], there you can discover:
The parameters you can use with web tags are explained on the [[Web Tag Parameters|parameters page]], there you can discover:
Line 67: Line 56:
The tables below are not able to indicate which of the billions of combinations possible are valid or invalid for particular tag names nor for particular release versions..
The tables below are not able to indicate which of the billions of combinations possible are valid or invalid for particular tag names nor for particular release versions..


=Applicability by flavour, and by release version and build=
==Applicability by flavour, and by release version and build==


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


There is some more information on [[Webtag Applicability|Web tag Applicability page]].
There is some more information on [[Webtag Applicability|Web tag Applicability page]].
== Why does MX talk about tokens? ==
MX uses a '''token parser''' to read the web tags and replace them with the correct value, so if diagnostic output refers to tokens, it is saying the attempt to actually work out what content to return to replace the web tag with its tag name and parameters has encountered a problem.
=GENERAL TIP=
The web tags available in the version/build you are using, can be listed (in Cumulus 1 or Cumulus MX) by adding the following line to [[Cumulus.ini#Section:_Station|Cumulus.ini]] in the [station] section...
ListWebTags=1
Then start Cumulus and it will create a file called WebTags.txt in the same folder as where the executable is found. That file will list all the tags your build of Cumulus can currently generate. This list only contains the tag_names, it does not indicate what parameters they can take, nor does it include the brackets the tag name is surrounded by when you quote it in a template file for Cumulus to process.
An example of the output for an early MX version is at the end of this page (the actual output does not include commas, and has just one item per line, it has been compressed for inclusion in this article).
To stop Cumulus continuing to produce new versions of that file change the line to say ...
ListWebTags=0
{{Version badge 1}}If you are using Cumulus 1, each build of that contains a build specific version of Cumulus Help, and within that help is a list of web tags with basic information on what each tag_name returns.
[[File:Badge vMx.png]] MX bug: The inclusion of a web tag in the list produced by this instruction, does not mean that web tag is actually populated with valid information. See https://cumulus.hosiene.co.uk/viewtopic.php?p=153096#p153096 for an example.


=The web tag application programming interface=
=The web tag application programming interface=
Line 170: Line 182:
=The Web Tags for Cumulus =
=The Web Tags for Cumulus =


These are available in both Cumulus 1 and MX unless indicated by a version 1 or MX badge.
Here follow tables indicating what web tags are available to be used, tables group them by the basic purpose of the tags listed.
 
Here follow tables indicating what web tags/tokens can be used, tables group the web tags available by the basic purpose of the tags listed.


== System ==
== System ==
Line 183: Line 193:
|-
|-
!style="width:150px" |Web tag_name
!style="width:150px" |Web tag_name
!style="width:150px" |Applicability
!style="width:600px" |Function
!style="width:600px" |Function
|-
|-
|<#OsVersion>
|<#OsVersion>
|up to 1.9.4, and MX
|OS version, e.g. "Windows 7 x64 build 7600"
|OS version, e.g. "Windows 7 x64 build 7600"
Please note this may not return the information you expect!
|-
|-
|<#OsLanguage>
|<#OsLanguage>
|Both leagacy and MX
|OS language, e.g. "English"
|OS language, e.g. "English"
|-
|-
|<#SystemUpTime>
|<#SystemUpTime>
|{{Version badge 1}}How long the system has been up, e.g. "8 hours 21 minutes" (not available on MX)
|{{Version badge 1}}(not available on MX)
|How long the system has been up, e.g. "8 hours 21 minutes"  
|-
|-
|<#ProgramUpTime>
|<#ProgramUpTime>
|all releases
|How long Cumulus has been running, e.g. "7 hours 55 minutes"
|How long Cumulus has been running, e.g. "7 hours 55 minutes"
|-
|-
|<#CpuName>
|<#CpuName>
|{{Version badge 1}}CPU type, e.g. "Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz" (not available on MX)
|{{Version badge 1}}(not available on MX)
|CPU type, e.g. "Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz"
|-
|-
|<#CpuCount>
|<#CpuCount>
|{{Version badge 1}}(not available on MX)
|Number of processors, e.g. "4"
|Number of processors, e.g. "4"
|-
|-
|<#MemoryStatus>
|<#MemoryStatus>
|{{Version badge 1}}Free and total system RAM, e.g. "4619/8191 MB (free/total)" (not available on MX)
|{{Version badge 1}}(not available on MX)
|Free and total system RAM, e.g. "4619/8191 MB (free/total)"
|-
|-
|<#DisplayMode>
|<#DisplayMode>
|{{Version badge 1}}Screen display mode, e.g. "1680x1050, 32 bit" (not available on MX)
|{{Version badge 1}}(not available on MX)
|Screen display mode, e.g. "1680x1050, 32 bit"
|-
|-
|<#AllocatedMemory>
|<#AllocatedMemory>
|{{Version badge 1}}Amount of memory allocated to Cumulus, e.g. "18.76 MB" (not available on MX)
|{{Version badge 1}}(not available on MX)
|Amount of memory allocated to Cumulus, e.g. "18.76 MB"
|-
|-
|<#DiskSize>
|<#DiskSize>
|{{Version badge 1}}Size of disk on which Cumulus is running, e.g. "931.51 GB" (not available on MX)
|{{Version badge 1}}(not available on MX)
|Size of disk on which Cumulus is running, e.g. "931.51 GB"  
|-
|-
|<#DiskFree>
|<#DiskFree>
|{{Version badge 1}}Free space on disk on which Cumulus is running, e.g. "515.36 GB" (not available on MX)
|{{Version badge 1}}(not available on MX)
|Free space on disk on which Cumulus is running, e.g. "515.36 GB"
|}
|}


== Miscellaneous ==
== Miscellaneous ==


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


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 261: Line 285:
|-
|-
|<#realtimeinterval>
|<#realtimeinterval>
|The realtime update interval in seconds (integer)
|The real time update interval in seconds (integer)
|-
|-
|<#interval>
|<#interval>
Line 267: Line 291:
|-
|-
|<#rollovertime>
|<#rollovertime>
|The time that the logs rollover to the next day: 'Midnight', '9 am' or '10 am'
|The time that the logs rollover to the next day: will always return one of these: 'Midnight', '9 am' or '10 am'


This is the end of the meteorological day, so if during Daylight Saving Time it is "10 am", then on the day DST ends it will return to "9 am" ensuring every meteorological day is exactly 24 hours long. If the time is "Midnight" or during DST it is "9 am", then days will be 23 or 25 hours long just on day clocks change, 24 hours otherwise.
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>
|<#update>
|The date and time of the last web site update
|The date and time of the last web site update. The default format of the output depends on your locale settings.
|-
|-
|<#LastDataReadT>
|<#LastDataReadT>
|The date/time data was last read from the station
|The date/time data was last read from the station. The default format of the output depends on your locale settings.
|-
|-
|<#stationtype>
|<#stationtype>
Line 292: Line 316:
|-
|-
|<#altitude>
|<#altitude>
|The station [http://en.wikipedia.org/wiki/Altitude altitude] value (webtag outputs web encoded format containing figure, '&amp;nbsp;' and units) in either feet or metres just as you entered during setup (so it is more complex to extract number for script arithmetric); e.g. '123&amp;nbsp;m'
|The station [http://en.wikipedia.org/wiki/Altitude altitude] value (web tag outputs web encoded format containing figure, '&amp;nbsp;' and units) in either feet or metres just as you entered during setup (so it is more complex to extract number for script arithmetic); e.g. '123&amp;nbsp;m'
|-
|-
|<#location>
|<#location>
Line 302: Line 326:
|<#forum>
|<#forum>
|URL of the forum (as you entered during setup)
|URL of the forum (as you entered during setup)
For Cumulus 1, this defaults to a Sandaysoft URL that is no longer available, for MX this defaults to the current support forum hosted by "Freddie" web server site
For Cumulus 1, this defaults to a Sandaysoft URL that is no longer available, for MX this defaults to the current support forum (web server site hosted by "Freddie")
|-
|-
|<#webcam>
|<#webcam>
Line 875: Line 899:
==Recent History==
==Recent History==


There are a set of web tags for 'recent historical data', based on an array stored by Cumulus giving data values from 1 minute ago, up to 1 week ago, in 1 minute intervals. As Cumulus runs it will add the latest values to the array with full resolution, and shift existing values along so those older than 7 days fall off.  Following the table giving the tags actually available, there is a section on how to derive a few more tags.
There are a set of web tags for 'recent historical data', based on an array stored by Cumulus giving data values from 1 minute ago, up to 1 week ago, in 1 minute intervals. As Cumulus runs it will add the latest values to the array with full resolution, and shift existing values along so those older than 7 days fall off.   
*The input modification parameters available are listed at [[Webtags/Parameters#Input Modification Parameters for Recent History]].
**To save you looking up the details, these input parameters specify how many minutes ago is required. Instead of entering a very large number for minutes, you can include separate input parameters for days, hours, and minutes, ago.
**Examples appear in the table below, with explanations


(Note that Cumulus uses current time read from the computer to determine which array element it stores each value in. Hence ''when clocks go back'' the value stored for winter time overwrites the value previously stored for same time during summer time for the relevant repeating hour. Hence even if you use 10am for your rollover time in summer, you will not have access to a whole hour worth of data when the clocks change as either the hour has been overwritten or ''when the clocks go forward'' it simply does not exist).
Following the table giving the tag names actually available, there is a section on how to derive a few more weather derivatives using a combination of the tag names shown.


[[#No_Commas]] versions of the array are available for use in script.


=== Input Parameters ===
===Warning when Daylight Saving Time starts or ends===


You specify which value you want from the array by using parameters on the web tags for number of days ago, hours ago, and minutes ago. The same d, h, and m, parameters are used by Cumulus 1 and MX.
Note that Cumulus uses current time, read from the computer, to determine which array element it stores each value in.  


All values supplied for parameters must be whole numbers.  
Hence ''when clocks go back'' the value stored for winter time overwrites the value previously stored for same time during summer time for the relevant repeating hour.  


If you don't supply any parameters, the result is undefined for Cumulus 1, and an illegal web tag for MX.  
Hence even if you use 10am for your rollover time in summer, you will not have access to a whole hour worth of data when the clocks change
* ''when the clocks go back'', one hour has been overwritten; or
* ''when the clocks go forward'', one hour in the array simply does not exist.


<#RecentOutsideTemp m=1> will give the temperature one minute ago, <#RecentOutsideTemp h=1> will give the temperature one hour ago (as will <#RecentOutsideTemp m=60>).
=== Table of Recent History web tags available ===
 
<#RecentOutsideTemp d=1> will give the temperature one day ago. '''Please note:''' Some Cumulus users say that using <#RecentOutsideTemp  d=1 m=1> is more reliable at getting the temperature at a similar time the day before, the extra minute apparently gives better results when you might not be using Cumulus all the time, or your weather station might have some drift on when it supplies readings. See which works best for you.
 
<#RecentOutsideTemp d=1 h=1 m=1> will give the temperature one day, one hour and one minute ago.
 
'''Please note that parameters specify time-stamped array element to retrieve based on counting back from current local time''' so the result for ''any period including when clocks change'' may not be quite what you anticipated.
 
 
=== During catch-up ===
When Cumulus is re-started the array it sets up will be based on reading the logs, so the contents will initially have a resolution according to the logger interval you have set in Cumulus and/or your station.  You'll get the nearest value if you ask for a time for which there is currently no exact match, and the first tag listed tells you that nearest time.


=== Variations between Builds/Versions ===
Before build 1098, the recent history array did not initialise correctly from the station logger for the period since Cumulus was last run.


The input parameters are same for Cumulus 1 and Cumulus MX, they always use lower case d, h or m.
[[#No_Commas]] versions of the array are available for use in script. If you use MX, the tag names in this table can take a [[Webtags/Parameters#Output Modification Parameter for Removing Commas|rc=y]] parameter.
 
The list of tags available has not changed between last Cumulus 1 release and any MX release. Any new derivatives reported elsewhere have not resulted in equivalent new recent history tags.
 
=== Table of Recent History web tags available ===


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 1,956: Line 1,968:
This table includes web tags that show the values in [[Monthlyalltime.ini]] log file, which was introduced in version 1.9.3 (build 1033, 10 Apr 2012).
This table includes web tags that show the values in [[Monthlyalltime.ini]] log file, which was introduced in version 1.9.3 (build 1033, 10 Apr 2012).


These are a set of tags for monthly all-time highs and lows, in other words the highest and lowest values for a particular month of the year.  To supply both optional input, and optional output parameters, separate them with spaces, e.g. <#ByMonthTempHT mon=7 format=hh:nn>. In that example,  the highest ever temperature in July is returned in the value after processing by Cumulus.
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.  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 highest ever temperature in July is returned in the value after processing by Cumulus.
 
Each Monthly All Time Records web tag has an optional input parameter "mon=N" where N is the index of the month of the year that you want the value for (January=1 and so on).  The corresponding date/time web tags are formatted like the all time records directly above this section. You can customise the date and time formats using the output  'format' parameter on the web tag.


If you don't supply an input parameter (or supply an invalid value like zero) the current month will be used. This is useful if you want to write a template that will always supply values for the current month and don't want to use a script to enter the correct input parameter by processing with that script before Cumulus processes the template.
For full details of the input modification parameters, see [[Webtags/Parameters#Input_modification_Parameters|Parameters]] page.


Additional tags correctly populated from 3.6.10 (build 3086) or 3.7.0 (build 3089) are marked with a "MX" icon as they are not available in Cumulus 1. Please note the 3.6.10 release was available from 24 June 2020, if the date/time shown for those MX only tags is before when you installed that (or a later release), the feels like output may show incorrect values.
Additional tags correctly populated from 3.6.10 (build 3086) or 3.7.0 (build 3089) are marked with a "MX" icon as they are not available in Cumulus 1. Please note the 3.6.10 release was available from 24 June 2020, if the date/time shown for those MX only tags is before when you installed that (or a later release), the feels like output may show incorrect values.
5,838

edits

Navigation menu