Cumulus.ini: Difference between revisions

7,786 bytes added ,  21:43, 3 May 2022
m
Minor resequencing of page
m (→‎Solar: add explanation that "June" factor mislabelled "July" in 3.15.x)
m (Minor resequencing of page)
Line 7: Line 7:
{{Template:WorkInProgressBanner}}
{{Template:WorkInProgressBanner}}
Since this page describes a file whose content frequently changes, this page may be out of date, unless somebody bothers to update it for every change.
Since this page describes a file whose content frequently changes, this page may be out of date, unless somebody bothers to update it for every change.
''Note that 3.12.0 (when first installed) apparently automatically rewrites this file, to remove some historic parameters, and to insert some new parameters, hopefully the support forum will explain this, as it appears people are losing some settings due to this file rewrite, and have to manually add those lost preferences back.''


=Purpose of Cumulus.ini file=
=Purpose of Cumulus.ini file=
Line 22: Line 20:
* Control what is output to those destinations, to the extent that each can be configured
* Control what is output to those destinations, to the extent that each can be configured


== Why does this Wiki now contain multiple pages describing "Cumulus.ini"?==
 
 
= Why does this Wiki now contain multiple pages describing "Cumulus.ini"?=


[[Category:Configuration Files]]
[[Category:Configuration Files]]
Line 31: Line 31:


All the pages, previously called "Cumulus.ini", can be found from the owning [[:Category:Configuration Files|category]].  The original page was preserved at [[Cumulus.ini_(preserving_history)]] so look there for its editing history.  That page also expands on the above summary of why that old page was replaced by this new page.
All the pages, previously called "Cumulus.ini", can be found from the owning [[:Category:Configuration Files|category]].  The original page was preserved at [[Cumulus.ini_(preserving_history)]] so look there for its editing history.  That page also expands on the above summary of why that old page was replaced by this new page.
==Need to install MX 3.12.0 ==
If you are using Cumulus 1 or a release of MX earlier than 3.12.0, be aware that the content of "Cumulus.ini" is totally different to the file for later MX releases. It might have been better had the file been given a new name in release 3.2.0.
The way the developer decided to implement it, is that when somebody installs release 3.12.0, any existing "Cumulus.ini" file is renamed, and a new "Cumulus.ini" file is created from scratch, and from then onwards all changes apply to the new file. As 3.12.0 is the only release that can create the replacement file, it is highly recommended that anybody currently using an older release, downloads 3.12.0 from [https://github.com/cumulusmx/CumulusMX/releases/download/b3141/CumulusMXDist3141.zip here] and runs that release for a while before upgrading to the latest release [https://github.com/cumulusmx/CumulusMX here].


== Simplifications ==
== Simplifications ==
Line 2,010: Line 2,016:
|}
|}


==Database==


==Debugging==


* Available from beta MX.
* Available from beta MX.
* File Section is [MySQL]
* File Section is [Station]
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:30px" | Parameter Line Entry
!style="width:30px" | Parameter Line Entry
!style="width:100px" | Shown on Settings page?
!style="width:300px" | MX Section
!style="width:100px" | MX Section
!style="width:60px" | Label on Settings page
!style="width:60px" | Label on Settings page
!style="width:20px" | Default
!style="width:20px" | Default
!style="width:600px" | Description
!style="width:600px" | Description
|-
|-
| CustomMySqlMinutesCommandString=
| Logging=1
| only if "Custom Minutes Enabled"
| Depends on release installed:
| MySQL Settings → Monthly log file upload
# Alternatives:
| SQL command
#* (Releases 3.0.0 to 3.9.8) Close Cumulus MX, then edit Cumulus.ini configuration file, and add a line in the [Station] section: Logging = 1, then restart Cumulus MX.
| (blank)
#* (Releases 3.1.0 to 3.9.3) Station Settings &rarr Options
| SQL to be obeyed at the interval defined in "CustomMySqlMinutesIntervalIndex"
# (Release 3.9.4 to 3.11.4) Program Settings → Program General Options
# (Release 3.12.0 onwards) Program Settings → Logging Options
| Debug logging
| 0 (disabled)
| This adds extra information about data transfers between your weather station and MX.
 
It was introduced originally for Davis stations only, but later (can someone insert here the relevant release) extended to cover more stations.
|-
|-
| CustomMySqlMinutesIntervalIndex=6
| DataLogging=1
| only if "Custom Minutes Enabled"
| Depends on release installed:
| MySQL Settings → Monthly log file upload
# Alternatives:
| Interval
#* (Releases 3.0.0 to 3.9.8) Close Cumulus MX, then edit Cumulus.ini configuration file, and add a line in the [Station] section: DataLogging = 1, then restart Cumulus MX.
| 6 = 10 minutes
#* (Releases 3.1.0 to 3.9.3) Station Settings &rarr Options
| Time between custom SQL uploads:
# (Release 3.9.4 to 3.11.4) Program Settings → Program General Options
* 0 = 1 minute
# (Release 3.12.0 onwards) Program Settings → Logging Options
* 1 = 2 minutes
| Debug logging
* 2 = 3 minutes
| 0 (disabled)
* 3 = 4 minutes
| This adds extra information about both data transfers initiated from MX, and all the internal MX processes.
* 4 = 5 minutes
|}
* 5 = 6 minutes
 
* 6 = 10 minutes
== Display Options ==
* 7 = 12 minutes
 
* 8 = 20 minutes
* File Section is '''[Display]'''
* 9 = 30 minutes
* MX Section is '''Station Settings → Display Options'''
* 10 = 1 hour (60 minutes)
{| class="wikitable" border="1"
|-
|-
| CustomMySqlMinutesEnabled=0
!style="width:30px" | Parameter Line Entry
| (always)
!style="width:100px" | Introduced
| MySQL Settings
!style="width:60px" | Label on Settings page
| Custom Minutes Enabled
!style="width:20px" | Default
| Not ticked (shown as 0 in Cumulus.ini)
!style="width:600px" | Description
| Enable the optional functionality to run SQL at a selected interval in minutes
|-
|-
| CustomMySqlSecondsCommandString=
| DisplaySolarData=0
| only if "Custom Seconds Enabled"
| ??? 3.10.0 ???
| MySQL Settings → Monthly log file upload
| Display Solar data
| SQL command
| Unticked (shown as 0 in Cumulus.ini)
| (blank)
| Simple tick or not
| SQL to be obeyed at the interval defined in "CustomMySqlSecondsInterval"
* Tick (value shown as 1 in Cumulus.ini) if you want MX to display solar data in tables shown on the [[New_Default_Web_Site_Information|web pages]] provided in [[Webfiles folder|webfiles folder]] (from release 3.10.0 onwards)
* Don't tick (value shown as 0 in Cumulus.ini) if you want MX to suppress the table cells that would display solar data
|-
|-
| CustomMySqlSecondsInterval=10
| DisplayUvData=0
| only if "Custom Seconds Enabled"
| ??? 3.10.0 ???
| MySQL Settings → Monthly log file upload
| Display UV-I data 
| Interval
| Unticked (shown as 0 in Cumulus.ini)
| 10 (seconds)
| Simple tick or not
| Time between custom SQL uploads
* Tick (value shown as 1 in Cumulus.ini) if you want MX to display ultra-violet intensity data in tables shown on the [[New_Default_Web_Site_Information|web pages]] provided in [[Webfiles folder|webfiles folder]] (from release 3.10.0 onwards)
* Don't tick (value shown as 0 in Cumulus.ini) if you want MX to suppress the table cells that would display UV intensity data
|-
|-
| CustomMySqlSecondsEnabled=0
| NumWindRosePoints=16
| (always)
| Legacy Cumulus
| MySQL Settings
| Number of wind rose points
| Custom Minutes Enabled
| 16
| Not ticked (shown as 0 in Cumulus.ini)
| Drop-down determining if weather station bearing supplied by weather station is to be converted to 8 or 16 compass directions (i.e. whether to include or exclude (in English) NNE, ENE, ESE, SSE, SSW, WSW, WNW, and NNW
| Enable the optional functionality to run SQL at a selected interval in seconds
* 8 points
* 16 points
Despite what it says in the hint on the settings page, leave at default whichever weather station type you use, unless this actually causes you a problem.  The parameter was introduced by Steve Loft.  Davis wind vanes use a potentiometer to measure wind direction so send Cumulus a bearing that can vary continuously between 1 and 360 degrees. Fine Offset wind vanes use magnetic switches that depend on the magnet under the moving part selecting two switches in the fixed part for the vane being exactly in-between compass directions, and selecting one switch for the main 8 directions and slightly away from the main directions; so they have a bias against sending Cumulus the in-between directions.
|-
|-
| Database=
| UseApparent=1
| when section opened
| ??? MX 3.6.0 or 3.10.0 ???
| MySQL Settings → Server Details
| Use Apparent Temperature
| Database name
| Ticked (shown as 1 in Cumulus.ini)
| (blank)
| Simple tick or not
| The name given to the database that includes the table(s) you want to update
* Tick (value shown as 1 in Cumulus.ini) if you want MX to display apparent temperature in tables shown on the [[New_Default_Web_Site_Information|web pages]] provided in [[Webfiles folder|webfiles folder]] (from release 3.10.0 onwards) for consistency with Cumulus prior to release 3.6.0
* Don't tick (value shown as 0 in Cumulus.ini) if you want MX to display feels like temperature  in tables shown on the [[New_Default_Web_Site_Information|web pages]] provided in [[Webfiles folder|webfiles folder]] (from release 3.10.0 onwards) for consistency with Cumulus from release 3.6.0
|}
 
==Extra Web Files==
 
There are 100 occurrences of each parameter in Cumulus.ini, and therefore each parameter has a base name followed by numbers 0 to 99.
 
The settings interface presents the rows on multiple pages, the rows are not numbered, so you have to do some counting to work out which row in the admin interface page corresponds with which parameter in Cumulus.ini file.
 
'''You MUST restart MX after any changes in this section, before the new settings take effect.'''
 
{| class="wikitable" border="1"
|-
|-
| DayfileMySqlEnabled=0
!style="width:30px" | Parameter Line Entry
| (always)
!style="width:100px" | Label on Settings page
| MySQL Settings
!style="width:20px" | Default
| Dayfile Enabled
!style="width:800px" | Description
| Not ticked (shown as 0 in Cumulus.ini)
| Enable the automatic upload to the table named in "DayfileTable" within the database named in "Database"
|-
|-
| DayfileTable=Dayfile
|style="background:lightgray;"|[FTP site]
| when "Dayfile Enabled" is ticked and the next section is opened
|
| MySQL Settings → Dayfile.txt upload
|
| Table name
|style="background:lightgray;"|Section name
| Dayfile
| Enables you to choose the name for the database table to be updated when "DayfileMySqlEnabled" is ticked
|-
|-
| Host=
|ExtraLocal0= to ExtraLocal99=
| when section opened
|Local File Name
| MySQL Settings → Server Details
|(empty)
| Host name
|You can enter:
| (blank)
* A relative path name, with respect to the "CumulusMX" root folder
| Enter the database server name or Internet Protocol address
** e.g.  '''./data/dayfile.txt''' (Note: this is the [[Daily_Summary|daily summary log file]], see link for how it can be used on a web server)
** e.g. '''./webMX/betel_monthlyrecord_liteMXT.html''' (Note: this is a third party [[Cumulus_template_file|template file]] - see [https://cumulus.hosiene.co.uk/viewtopic.php?f=14&t=7500 Alternative Monthly Extremes using <#webtag>s]
** e.g. '''./web/trendsT.htm''' (Note: That file is not part of default web site any more, but serves as another example
* A full path name for a file on the computer running MX
** e.g. '''/home/pi/documents/myFile'''
** e.g. '''C:\Users\Public\Documents\working.txt'''
*You can place any of the following special tags into the entry
** These should be typed as shown on their own
*** '''<noaayearfile>''' and '''<noaamonthfile>''' these respectively represent latest yearly and latest monthly reports 
***  '''<currentlogfile>''',  '''<currentextralogfile>''', and '''<airlinklogfile>''' these respectively represent [[Standard_log_files|standard]], [[Extra_Sensor_Files| extra sensor]], and [[Air_Link_Log.txt|Davis AirLink air quality monitor]] log files  e.g. ExtraLocal3=<currentlogfile>
|-
|-
| MonthlyMySqlEnabled=0
|ExtraRemote0= to ExtraRemote99=
| (always)
|Destination Filename
| MySQL Settings
|(empty)
| Monthly Log Enabled
|Defines where MX is to upload file to
| Not ticked (shown as 0 in Cumulus.ini)
* If file transfer is requested (see below), the file path should be expressed starting at the FTP/FTPS/SFTP root
| Enable the automatic upload to the table named in "MonthlyTable" within the database named in "Database"
**I can't tell you what the file path is for your web server, but I can give a couple of examples to steer you
|-
*** e.g. httpdocs/dayfile.txt
| MonthlyTable=Monthly
*** e.g. public_html/thismonthyear.htm
| when "Dayfile Enabled" is ticked and the next section is opened
* If the FTP is not ticked, the file path should be full path for a file on the computer running MX
| MySQL Settings &rarr; Monthly log file upload
** e.g. /var/www/html/weather/images/moon.png could be destinatation for uploading the MX generated moon image to a Linux hosted [[Your_Own_Server|server]]
| Table name
** e.g. /var/www/html/weather/webfilesMX/tempdata.json for uploading one of the [[:Category:JSON_Files|files with graph data]] to a Linux hosted [[Your_Own_Server|server]]
| Monthly
*You can place any of the following special tags into the entry
| Enables you to choose the name for the database table to be updated when "MonthlyMySqlEnabled" is ticked
** These should be typed as shown as part of the destination path, note that they can be used:
|-
*** either to represent the final filename part of the path e.g. ExtraRemote3=/var/www/html/weather/monthly/<currentlogfile>
| Pass=
*** or to modify a filename, so it becomes unique to a particular month e.g. ExtraRemote0=/var/www/html/weather/cumulus_generated/savedFiles/web_tags_real_time_<currentlogfile>.inc
| when section opened
** '''<noaayearfile>''' and '''<noaamonthfile>''' these respectively represent latest yearly and latest monthly reports
| MySQL Settings &rarr; Server Details
**  '''<currentlogfile>''',  '''<currentextralogfile>''', and '''<airlinklogfile>''' these respectively represent [[Standard_log_files|standard]], [[Extra_Sensor_Files| extra sensor]], and [[Air_Link_Log.txt|Davis AirLink air quality monitor]] log files
| Password
| (blank)
| Enter the password needed to access the database server specified in "Host"
|-
|-
| Port=3306
|ExtraProcess0= to ExtraProcess99=
| when section opened
|Process
| MySQL Settings &rarr; Server Details
|0
| Port
|Simple tick or not
| 3306
* Tick (value shown as 1 in Cumulus.ini) if the local file is a [[Cumulus_template_file|template file]], see [[Customised_templates#What_is_meant_by_.27Cumulus_processes_templates.27|here]] for full explanation of '''Process'''
| Enter the port used to access the database server
* Don't tick (value shown as 0 in Cumulus.ini) if you want local file uploaded with existing content
|-
|-
| RealtimeMySql1MinLimit=0
|ExtraRealtime0= to ExtraRealtime99=
| When section opened
|Realtime
| MySQL Settings &rarr; Raltime.txt upload
|0
| Limit real time table inserts to once a minute 
|Simple tick or not
| Not ticked (shown as 0 in Cumulus.ini)
*Tick (value shown as 1 in Cumulus.ini) if
| Enable the optional functionality to limit database uploads, if your real time interval has been set to less than 60 seconds
*# See [[#Realtime Settings]], you must have "Enable realtime" ticked, and defined an interval there
|-
*# Uploads the file to destination specified at interval defined
| RealtimeMySqlEnabled=0
* Don't tick (value shown as 0 in Cumulus.ini) if you want uploading to happen at a different interval (e.g. [[#Interval Settings|Standard interval]])
| (always)
| MySQL Settings
| Realtime enabled
| Not ticked (shown as 0 in Cumulus.ini)
| Enable the automatic upload to the table named in "RealtimeTable" within the database named in "Database"
|-
|-
| RealtimeRetention=
|ExtraFTP0= to ExtraFTP99=
| When section opened
|FTP
| MySQL Settings &rarr; Raltime.txt upload
|1
| '''Data Retention value''' and '''Data Retention unit'''
|Simple tick or not
| "7" and "Days"
*Tick (value shown as 1 in Cumulus.ini) if you want MX to use the FTP protocol specified in [[#Web/FTP Site]]
| The value field will take any number, the unit field is a dropdown:
* Don't tick (value shown as 0 in Cumulus.ini) if the remote file is on the computer running MX and a simple Copy File is required
* Seconds
* Minutes
* Hours
* Days
* Weeks
* Months
Taken together, these determine the period for which rows are kept in the table named in "RealtimeTable", any row older than this specification will be deleted as part of the automatic SQL
|-
|-
| RealtimeTable=Realtime
|ExtraUTF0= to ExtraUTF99=
| When section opened
|UTF-8
| MySQL Settings &rarr; Raltime.txt upload
|1
| Table name
|Please see [[Reports_folder#Encoding|technical guidance on encoding]]
| Realtime
*Tick (value shown as 1 in Cumulus.ini) for default, modern files use UTF-8 encoding, this can display an extended range of characters
| Enables you to choose the name for the database table to be updated when "RealtimeMySqlEnabled" is ticked
*If unticked (0 appears in file), then iso-8859-1 encoding is used
|-
|-
| User=
|ExtraBinary0= to ExtraBinary99=
| when section opened
|Binary
| MySQL Settings &rarr; Server Details
|0
| User name
|Simple tick or not
| (blank)
*Tick (value shown as 1 in Cumulus.ini) if your file is e.g. an image file (e.g. moon.png)
| Enter the username associated with "Pass"
* Don't tick (value shown as 0 in Cumulus.ini) if the file is text, HTML, PHP script, JSON, JavaScript
|-
|ExtraEOD0= to ExtraEOD99=
|End of Day
|0
|Simple tick or not
*Tick (value shown as 1 in Cumulus.ini) if your file is to be uploaded during the [[MX_Basic_info#MX_End_of_Day_Process|End of Day process]]
* Don't tick (value shown as 0 in Cumulus.ini) if you want uploading to happen at a different interval (e.g. [[#Interval Settings|Standard interval]])
|}
|}


==Debugging==
== Location==


* Available from beta MX.
* Introduced for legacy Cumulus
* File Section is [Station]
* File Section is [Station]
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:30px" | Parameter Line Entry
!style="width:30px" | Parameter Line Entry
!style="width:300px" | MX Section
!style="width:100px" | MX Section
!style="width:60px" | Label on Settings page
!style="width:60px" | Label on Settings page
!style="width:20px" | Default
!style="width:20px" | Default
!style="width:600px" | Description
!style="width:600px" | Description
|-
|-
| Logging=1
| Altitude=0
| Depends on release installed:
| Station Settings &rarr; Location
# Alternatives:
| Altitude
#* (Releases 3.0.0 to 3.9.8) Close Cumulus MX, then edit Cumulus.ini configuration file, and add a line in the [Station] section: Logging = 1, then restart Cumulus MX.
| 0
#* (Releases 3.1.0 to 3.9.3) Station Settings &rarr Options
| The height above mean sea level where the (pressure) sensor is positioned
# (Release 3.9.4 to 3.11.4) Program Settings &rarr; Program General Options
|-
# (Release 3.12.0 onwards) Program Settings &rarr; Logging Options
| AltitudeInFeet=1
| Debug logging
| Station Settings &rarr; Location
| 0 (disabled)
| Altitude Units
| This adds extra information about data transfers between your weather station and MX.
| Default depends on release:
 
# Legacy until 3.11.4: 1 (labelled as feet)
It was introduced originally for Davis stations only, but later (can someone insert here the relevant release) extended to cover more stations.
# From 3.12.0: 0 (labelled metres)
| Radio Setting
* feet  (value shown as 1 in Cumulus.ini)
* metres (value shown as 0 in Cumulus.ini)
|-
| LocName=
| Station Settings &rarr; Location
| Name
| (empty)
| A short name for the location
|-
|-
| DataLogging=1
| LocDesc=
| Depends on release installed:
| Station Settings &rarr; Location
# Alternatives:
| Description
#* (Releases 3.0.0 to 3.9.8) Close Cumulus MX, then edit Cumulus.ini configuration file, and add a line in the [Station] section: DataLogging = 1, then restart Cumulus MX.
| (empty)
#* (Releases 3.1.0 to 3.9.3) Station Settings &rarr Options
| A longer description for the location
# (Release 3.9.4 to 3.11.4) Program Settings &rarr; Program General Options
|-
# (Release 3.12.0 onwards) Program Settings &rarr; Logging Options
| "Latitude=0" and "LatTxt="
| Debug logging
| Station Settings &rarr; Location &rarr; Latitude
| 0 (disabled)
| "Degrees", "Minutes", "Seconds", and "Hemisphere &rarr; North or South"
| This adds extra information about both data transfers initiated from MX, and all the internal MX processes.
| (blank)
| The selections made on this Settings Page sub-section will place the appropriate content in the two parameters in the file
|-
| "Longitude=0" and "LongTxt="
| Station Settings &rarr; Location &rarr; Longitude
| "Degrees", "Minutes", "Seconds", and "Hemisphere &rarr; East or West"
| (blank)
| The selections made on this Settings Page sub-section will place the appropriate content in the two parameters in the file
|}
|}


== Display Options ==
==Optional Structured Query Language Settings==
 
SQL is structured in the sense that keywords have to appear in the correct order, and there are rules about which words are mandatory. SQL is not just for running queries that read database tables, it can create database tables, give and revoke permissions, and do many more maintenance type tasks. SQL is a language in that each variant of SQL has a vocabulary and set of rules that are specific to that database server, although there is a sub-set, that is set by "ANSI", of words and constructions that all SQL dialects should obey.
 
MX uses two types of SQL. One type is for SQLite database (see [[Cumulusmx.db]] and [[Diary.db]], that type stores data in rows that are numbered, and columns that are named. In a retrieval query you can sort ascending/descending on value in any column.  You can select a row by specifyimg content, but that gets translated into a row number to actually determine what is updated.
 
The file section '''[MySQL]''' is about a different type of database (i.e. Maria database, or Oracle MySQL) these implement a relational database that has to satisfy the rule that all data appears in a table with rows and columns. The columns have a particular order, but there is no control over the order of rows, so you can't specify a row number, you either specify a primary key that identifies a particular row, or you specify that what is returned from query should be sorted in an ascending/descending order of the value in a specified column.
 
Both "CumulusMX.exe" and "ExportToMySQL.exe" make use of the following settings:


* File Section is '''[Display]'''
* MX Section is '''Station Settings &rarr; Display Options'''
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:30px" | Parameter Line Entry
!style="width:30px" | Executable
!style="width:100px" | Introduced
!style="width:100px" | Function
!style="width:60px" | Label on Settings page
!style="width:300px" | Description
!style="width:20px" | Default
|-
!style="width:600px" | Description
| CumulusMX.exe
| Data Logs menu
| An option "Update MySQL on Edit" allows you to decide whether MX issues SQL when you edit a data log or "dayfile.txt", so the same edit is made to the corresponding database table, provided that the table has been created with the default name and has the column names defined by default.
|-
! rowspan="7" |CumulusMX.exe
| Settings menu &rarr; MySQL settings &rarr; General Options
| An option "Buffer commands on failure" allows you to decide whether MX tries to run SQL commands again, if they fail. IMPORTANT: This is to cope with failure due to the database server going down; the option should not be ticked if you are testing new "custom" SQL and may have made a mistake in the coding.  You need to ensure the SQL is either generated by MX as a fixed query, or has been tested and is correct synta before considering this option.
|-
|-
| DisplaySolarData=0
| Settings menu &rarr; MySQL settings &rarr; Realtime.txt Upload
| ??? 3.10.0 ???
| An option that can be enabled that automatically updates a "Realtime" table, each new row is effectively what is stored in the file [[realtime.txt]].
| Display Solar data
|-
| Unticked (shown as 0 in Cumulus.ini)
| Settings menu &rarr; MySQL settings &rarr; Dayfile.txt Upload
| Simple tick or not
| An option that can be enabled that at end of day ensures that a new line is added to [[dayfile.txt]] and a new row (with similar data) is inserted into a "Dayfile" table.
* Tick (value shown as 1 in Cumulus.ini) if you want MX to display solar data in tables shown on the [[New_Default_Web_Site_Information|web pages]] provided in [[Webfiles folder|webfiles folder]] (from release 3.10.0 onwards)
|-
* Don't tick (value shown as 0 in Cumulus.ini) if you want MX to suppress the table cells that would display solar data
| Settings menu &rarr; MySQL settings &rarr; Monthly log file Upload
| An option that can be enabled that automatically updates a "Monthly" table, every time a new line is added to the [[Standard_log_files|standard data log file]].
|-
| Settings menu &rarr; MySQL settings &rarr; Custom Upload - seconds interval
| An option that can be enabled that runs some predetermined SQL every time the specified number of seconds has elapsed.
|-
|-
| DisplayUvData=0
| Settings menu &rarr; MySQL settings &rarr; Custom Upload - minutes interval
| ??? 3.10.0 ???
| An option that can be enabled that runs some predetermined SQL every time the specified number of minutes has elapsed.
| Display UV-I data 
| Unticked (shown as 0 in Cumulus.ini)
| Simple tick or not
* Tick (value shown as 1 in Cumulus.ini) if you want MX to display ultra-violet intensity data in tables shown on the [[New_Default_Web_Site_Information|web pages]] provided in [[Webfiles folder|webfiles folder]] (from release 3.10.0 onwards)
* Don't tick (value shown as 0 in Cumulus.ini) if you want MX to suppress the table cells that would display UV intensity data
|-
|-
| NumWindRosePoints=16
| Settings menu &rarr; MySQL settings &rarr; Custom Upload - at rollover
| Legacy Cumulus
| An option that can be enabled that runs some predetermined SQL just after dayfile.txt has had a new line, but before other end-of-day actions occur.
| Number of wind rose points
| 16
| Drop-down determining if weather station bearing supplied by weather station is to be converted to 8 or 16 compass directions (i.e. whether to include or exclude (in English) NNE, ENE, ESE, SSE, SSW, WSW, WNW, and NNW
* 8 points
* 16 points
Despite what it says in the hint on the settings page, leave at default whichever weather station type you use, unless this actually causes you a problem.  The parameter was introduced by Steve Loft.  Davis wind vanes use a potentiometer to measure wind direction so send Cumulus a bearing that can vary continuously between 1 and 360 degrees. Fine Offset wind vanes use magnetic switches that depend on the magnet under the moving part selecting two switches in the fixed part for the vane being exactly in-between compass directions, and selecting one switch for the main 8 directions and slightly away from the main directions; so they have a bias against sending Cumulus the in-between directions.
|-
|-
| UseApparent=1
| ExportToMySQL.exe
| ??? MX 3.6.0 or 3.10.0 ???
| parameters to utility
| Use Apparent Temperature
| Determine which file read (and therefore which table updated, using table names set in table name parameters explained in next table)
| Ticked (shown as 1 in Cumulus.ini)
| Simple tick or not
* Tick (value shown as 1 in Cumulus.ini) if you want MX to display apparent temperature in tables shown on the [[New_Default_Web_Site_Information|web pages]] provided in [[Webfiles folder|webfiles folder]] (from release 3.10.0 onwards) for consistency with Cumulus prior to release 3.6.0
* Don't tick (value shown as 0 in Cumulus.ini) if you want MX to display feels like temperature  in tables shown on the [[New_Default_Web_Site_Information|web pages]] provided in [[Webfiles folder|webfiles folder]] (from release 3.10.0 onwards) for consistency with Cumulus from release 3.6.0
|}
|}
Here is an example of what might be input as "predetermined SQL", showing how you can use conditionals and web tags:
<pre>
INSERT IGNORE INTO table_name_1 (primary_key, column_name_1, column_name_2 ....) VALUES ('<#primary_key>', '<#web tag_name_1 modifier_1>', '<#web tag_name_2 modifier_2>'  ....);


==Extra Web Files==
DELIMITER $$
BEGIN NOT ATOMIC
IF '<#web tag>' = '---' THEN
simpler query to run if something not numeric;
ELSE
UPDATE table_name_2 SET  column_name_1 = '<#web tag_name_1 modifier_1>', column_name_2 = '<#web tag_name_2 modifier_2>'  ....  WHERE primary_key = '<#primary_key>';
END IF;
END $$
</pre>


There are 100 occurrences of each parameter in Cumulus.ini, and therefore each parameter has a base name followed by numbers 0 to 99.
* Introduced in Cumulus MX 3.0.0 beta
 
* File Section is [MySQL]
The settings interface presents the rows on multiple pages, the rows are not numbered, so you have to do some counting to work out which row in the admin interface page corresponds with which parameter in Cumulus.ini file.
* MX page is Settings menu &rarr; MySQL settings
 
'''You MUST restart MX after any changes in this section, before the new settings take effect.'''


{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
!style="width:30px" | Parameter Line Entry
!style="width:30px" | Parameter Line Entry
!style="width:100px" | Label on Settings page
!style="width:100px" | MX Section
!style="width:60px" | Label on Settings page
!style="width:20px" | Default
!style="width:20px" | Default
!style="width:800px" | Description
!style="width:600px" | Description
|-
|-
|style="background:lightgray;"|[FTP site]
| BufferOnFailure=0
|
| General Options
|
| Buffer commands on failure
|style="background:lightgray;"|Section name
| 0 = ignore errors
| Simple tick or not
*Tick (value shown as 1 in Cumulus.ini) if you want MX to store any commands that fail (see note above), and try them again (stored commands lost if MX is stopped)
* Don't tick (value shown as 0 in Cumulus.ini) if you want MX to ignore any errors
|-
|-
|ExtraLocal0= to ExtraLocal99=
| CustomMySqlMinutesCommandString=
|Local File Name
| Custom Upload - minutes interval
|(empty)
| "SQL command" only shown if next parameter is ticked
|You can enter:
| (empty)
* A relative path name, with respect to the "CumulusMX" root folder
| See "predetermined SQL" example above
** e.g.  '''./data/dayfile.txt''' (Note: this is the [[Daily_Summary|daily summary log file]], see link for how it can be used on a web server)
** e.g. '''./webMX/betel_monthlyrecord_liteMXT.html''' (Note: this is a third party [[Cumulus_template_file|template file]] - see [https://cumulus.hosiene.co.uk/viewtopic.php?f=14&t=7500 Alternative Monthly Extremes using <#webtag>s]
** e.g. '''./web/trendsT.htm''' (Note: That file is not part of default web site any more, but serves as another example
* A full path name for a file on the computer running MX
** e.g. '''/home/pi/documents/myFile'''
** e.g. '''C:\Users\Public\Documents\working.txt'''
*You can place any of the following special tags into the entry
** These should be typed as shown on their own
*** '''<noaayearfile>''' and '''<noaamonthfile>''' these respectively represent latest yearly and latest monthly reports 
***  '''<currentlogfile>''',  '''<currentextralogfile>''', and '''<airlinklogfile>''' these respectively represent [[Standard_log_files|standard]], [[Extra_Sensor_Files| extra sensor]], and [[Air_Link_Log.txt|Davis AirLink air quality monitor]] log files  e.g. ExtraLocal3=<currentlogfile>
|-
|-
|ExtraRemote0= to ExtraRemote99=
| CustomMySqlMinutesEnabled=0
|Destination Filename
| Custom Upload - minutes interval
|(empty)
| Custom Minutes Enabled
|Defines where MX is to upload file to
| 0 = don't display other options
* If file transfer is requested (see below), the file path should be expressed starting at the FTP/FTPS/SFTP root
| Simple tick or not
**I can't tell you what the file path is for your web server, but I can give a couple of examples to steer you
*Tick (value shown as 1 in Cumulus.ini) if you want the previous and next options to be displayed, and actioned
*** e.g. httpdocs/dayfile.txt
* Don't tick (value shown as 0 in Cumulus.ini) if MX is not to action the previous and next settings
*** e.g. public_html/thismonthyear.htm
* If the FTP is not ticked, the file path should be full path for a file on the computer running MX
** e.g. /var/www/html/weather/images/moon.png could be destinatation for uploading the MX generated moon image to a Linux hosted [[Your_Own_Server|server]]
** e.g. /var/www/html/weather/webfilesMX/tempdata.json for uploading one of the [[:Category:JSON_Files|files with graph data]] to a Linux hosted [[Your_Own_Server|server]]
*You can place any of the following special tags into the entry
** These should be typed as shown as part of the destination path, note that they can be used:
*** either to represent the final filename part of the path e.g. ExtraRemote3=/var/www/html/weather/monthly/<currentlogfile>
*** or to modify a filename, so it becomes unique to a particular month e.g. ExtraRemote0=/var/www/html/weather/cumulus_generated/savedFiles/web_tags_real_time_<currentlogfile>.inc
** '''<noaayearfile>''' and '''<noaamonthfile>''' these respectively represent latest yearly and latest monthly reports
**  '''<currentlogfile>''',  '''<currentextralogfile>''', and '''<airlinklogfile>''' these respectively represent [[Standard_log_files|standard]], [[Extra_Sensor_Files| extra sensor]], and [[Air_Link_Log.txt|Davis AirLink air quality monitor]] log files
|-
|-
|ExtraProcess0= to ExtraProcess99=
| CustomMySqlMinutesIntervalIndex=6
|Process
| Custom Upload - minutes interval
|0
| Interval:
|Simple tick or not
| 6 = 10 minutes
* Tick (value shown as 1 in Cumulus.ini) if the local file is a [[Cumulus_template_file|template file]], see [[Customised_templates#What_is_meant_by_.27Cumulus_processes_templates.27|here]] for full explanation of '''Process'''
| Drop-down list of predetermined intervals:
* Don't tick (value shown as 0 in Cumulus.ini) if you want local file uploaded with existing content
* 0 = 1 minute
* 1 = 2 minutes
* 2 = 3 minutes
* 3 = 4 minutes
* 4 = 5 minutes
* 5 = 6 minutes
* 6 = 10 minutes
* 7 = 12 minutes
* 8 = 20 minutes
* 9 = 30 minutes
* 10 = 1 hour (60 minutes)
|-
|-
|ExtraRealtime0= to ExtraRealtime99=
| CustomMySqlRolloverCommandString=
|Realtime
| Custom Upload - at rollover
|0
| "SQL command" only shown if next parameter is ticked
|Simple tick or not
| (empty)
*Tick (value shown as 1 in Cumulus.ini) if
| See "predetermined SQL" example above
*# See [[#Realtime Settings]], you must have "Enable realtime" ticked, and defined an interval there
*# Uploads the file to destination specified at interval defined
* Don't tick (value shown as 0 in Cumulus.ini) if you want uploading to happen at a different interval (e.g. [[#Interval Settings|Standard interval]])
|-
|-
|ExtraFTP0= to ExtraFTP99=
| CustomMySqlRolloverEnabled=0
|FTP
| Custom Upload - at rollover
|1
| Custom Rollover Enabled
|Simple tick or not
| 0 = don't display other options
*Tick (value shown as 1 in Cumulus.ini) if you want MX to use the FTP protocol specified in [[#Web/FTP Site]]
| Simple tick or not
* Don't tick (value shown as 0 in Cumulus.ini) if the remote file is on the computer running MX and a simple Copy File is required
*Tick (value shown as 1 in Cumulus.ini) if you want the previous and next options to be displayed, and actioned
* Don't tick (value shown as 0 in Cumulus.ini) if MX is not to action the previous and next settings
|-
|-
|ExtraUTF0= to ExtraUTF99=
| CustomMySqlSecondsCommandString=
|UTF-8
| Custom Upload - seconds interval
|1
| "SQL command" only shown if next parameter is ticked
|Please see [[Reports_folder#Encoding|technical guidance on encoding]]
| (empty)
*Tick (value shown as 1 in Cumulus.ini) for default, modern files use UTF-8 encoding, this can display an extended range of characters
| See "predetermined SQL" example above
*If unticked (0 appears in file), then iso-8859-1 encoding is used
|-
|-
|ExtraBinary0= to ExtraBinary99=
| CustomMySqlSecondsEnabled=0
|Binary
| Custom Upload - seconds interval
|0
| Custom Seconds Enabled
|Simple tick or not
| 0 = don't display other options
*Tick (value shown as 1 in Cumulus.ini) if your file is e.g. an image file (e.g. moon.png)
| Simple tick or not
* Don't tick (value shown as 0 in Cumulus.ini) if the file is text, HTML, PHP script, JSON, JavaScript
*Tick (value shown as 1 in Cumulus.ini) if you want the previous and next options to be displayed, and actioned
* Don't tick (value shown as 0 in Cumulus.ini) if MX is not to action the previous and next settings
|-
|-
|ExtraEOD0= to ExtraEOD99=
| CustomMySqlSecondsInterval=10
|End of Day
| Custom Upload - seconds interval
|0
| Interval (seconds):
|Simple tick or not
| 10
*Tick (value shown as 1 in Cumulus.ini) if your file is to be uploaded during the [[MX_Basic_info#MX_End_of_Day_Process|End of Day process]]
| A number field, takes 1 to 59
* Don't tick (value shown as 0 in Cumulus.ini) if you want uploading to happen at a different interval (e.g. [[#Interval Settings|Standard interval]])
|}
 
== Location==
 
* Introduced for legacy Cumulus
* File Section is [Station]
 
{| class="wikitable" border="1"
|-
|-
!style="width:30px" | Parameter Line Entry
| Database=
!style="width:100px" | MX Section
| Server details
!style="width:60px" | Label on Settings page
| Database name:
!style="width:20px" | Default
| (empty)
!style="width:600px" | Description
| A text field where you enter the name of the database your tables are to be created/updated in
|-
|-
| Altitude=0
| DayfileMySqlEnabled=0
| Station Settings &rarr; Location
| Dayfile.txt upload
| Altitude
| Dayfile Enabled
| 0
| 0
| The height above mean sea level where the (pressure) sensor is positioned
| Simple tick or not
*Tick (value shown as 1 in Cumulus.ini) if you want MX to at end of day ensure that a new line is added to [[dayfile.txt]] and a new row (with similar data) is inserted into a "Dayfile" table
* Don't tick (value shown as 0 in Cumulus.ini) if MX is only to ensure that a new line is added to dayfile.txt
|-
|-
| AltitudeInFeet=1
| DayfileTable=
| Station Settings &rarr; Location
| Dayfile.txt upload
| Altitude Units
| Table name
| Default depends on release:
| Dayfile
# Legacy until 3.11.4: 1 (labelled as feet)
| Having defined this table, and saved the settings, click the "Create Dayfile" button to create the database table with the standard column names. If you change the name here, normal updates and "ExportToMySQl.exe"  will use the table name you define, but the option to update table when you edit "dayfile.txt" will fail (and if set to do so, keep failing as it repeats).
# From 3.12.0: 0 (labelled metres)
| Radio Setting
* feet  (value shown as 1 in Cumulus.ini)
* metres (value shown as 0 in Cumulus.ini)
|-
|-
| LocName=
| Host=Localhost
| Station Settings &rarr; Location
| Server details
| Name
| Host name
| (empty)
| (empty)
| A short name for the location
| Set to whatever host name your database server has specified, if you host [[Your_Own_Server]], then you may be able to use "Localhost".
|-
| MonthlyMySqlEnabled=0
| Monthly logfile upload
| Monthly Log Enabled
| 0
| Simple tick or not
*Tick (value shown as 1 in Cumulus.ini) if you want MX to at your standard logging interval ensure that a new line is added to [[Standard_log_files|standard data log file]] and a new row (with similar data) is inserted into a "Monthly" table.
* Don't tick (value shown as 0 in Cumulus.ini) if MX is only to ensure that a new line is added to standard data log file
|-
| MonthlyTable=
| Monthly logfile upload
| Table name
| Monthly
| Having defined this table, and saved the settings, click the "Create Monthly" button to create the database table with the standard column names. You might wish to change the name here once a year, to stop the database table getting enormous, if so you might name the table something like "standard2020".  If you change the name here, normal updates and "ExportToMySQl.exe"  will use the table name you define, but the option to update table when you edit "MMMyyyyLog.txt" will fail (and if set to do so, keep failing as it repeats).
|-
|-
| LocDesc=
| Pass=
| Station Settings &rarr; Location
| Server details
| Description
| Password
| (empty)
| (empty)
| A longer description for the location
| Set to whatever password is used for update access with the database user name (see below)
|-
|-
| "Latitude=0" and "LatTxt="
| Port=3306
| Station Settings &rarr; Location &rarr; Latitude
| Server details
| "Degrees", "Minutes", "Seconds", and "Hemisphere &rarr; North or South"
| Port number
| (blank)
| 3306
| The selections made on this Settings Page sub-section will place the appropriate content in the two parameters in the file
| The port related to the host name (defined above) for update access to your database server
|-
| RealtimeMySql1MinLimit=0
| Realtime.txt upload
| Limit Inserts:
| 0 = false
| Simple tick or not
*Tick (value shown as 1 in Cumulus.ini)
* Don't tick (value shown as 0 in Cumulus.ini)
See explanation beside and below setting
|-
| RealtimeMySqlEnabled=0
| Realtime.txt upload
| Real time Enabled
| 0 = don't display other options
| Simple tick or not
*Tick (value shown as 1 in Cumulus.ini) if you want MX to at your real time interval ensure that a new realtime.txt file is created and a new row (with similar data) is inserted into a "Realtime" table.
* Don't tick (value shown as 0 in Cumulus.ini) if MX is only to ensure that a new line is added to standard data log file
|-
| RealtimeRetention=
| Realtime.txt upload
| '''Data Retention value''' and '''Data Retention unit'''
| "7" and "Days"
| The value field will take any number, the unit field is a dropdown:
* Seconds
* Minutes
* Hours
* Days
* Weeks
* Months
Taken together, these determine the period for which rows are kept in the table named in "RealtimeTable", any row older than this specification will be deleted as part of the automatic SQL
|-
| RealtimeTable=Realtime
| Realtime.txt upload
| Table name
| Realtime
| Having defined this table, and saved the settings, click the "Create Realtime" button to create the database table with the standard column names. Remember that you can tailor the contents of "realtime.txt", if you want non-standard columns in this table, you have to create the table yourself.
|-
| UpdateOnEdit=1
| General Options
| Update MySQL on Edit
| 1 = update the table when edit the file
| Simple tick or not
*Tick (value shown as 1 in Cumulus.ini)
* Don't tick (value shown as 0 in Cumulus.ini)
Please see begining of previous table for explanation and warning about how all defaults must be set for this to work
|-
|-
| "Longitude=0" and "LongTxt="
| User=
| Station Settings &rarr; Location &rarr; Longitude
| Server details
| "Degrees", "Minutes", "Seconds", and "Hemisphere &rarr; East or West"
| User name
| (blank)
| (empty)
| The selections made on this Settings Page sub-section will place the appropriate content in the two parameters in the file
| Database access user name, that matches with password described earlier
|}
|}


==Optional Report Settings==
==Optional Report Settings==
5,838

edits