Compare C1 and MX

The text on this page was written when Cumulus MX 3.0.0 beta offered a subset of the functionality that was available with the original Cumulus 1. 
Since then MX has developed very quickly and its functionality is now vastly different. An attempt has been made to remove (apart from the Steve Loft section) MX information that no longer applies, and there is some attempt to document when the missing legacy functionality was added (but some, e.g select-a-chart, has not yet been documented).
If any contributor is willing to update content, then (as well as filling in gaps like select-a-graph) they should focus on documenting what MX does that the legacy software did not, in such a way it helps people wondering about the difference between MX releases and the legacy Cumulus software.
=Introduction=
At the time of writing this comparison, two flavours of software developed by Steve Loft were available for people to choose between. 
The newcomer to the story is Cumulus 3, also known as MX. When this comparison was originally written, MX had very little functionality, the only real advantage was that MX could run on other devices, such as a Raspberry Pi computer, that (unlike Microsoft Windows PCs) run reliably without rebooting themselves for mandatory updating.
The original Cumulus software (now called Legacy Cumulus 1) is no longer capable of being developed any further, as neither its development environment, nor its source, are available now. However, most people are still using it.
There was a Cumulus 2, but it is no longer available, some of its functionality was subsequently added to Cumulus 1, and some of its concepts formed the basis for Cumulus 3 (now generally known as Cumulus MX).
When Steve Loft abandoned Cumulus to concentrate on enjoying his retirement (in a new home in France), he made the MX 3.0.0 beta source available, so that others could take on future development.
As a result, MX has diverged greatly from that original beta functionality that was a subset of the legacy Cumulus functionality.
= Overview comparing Cumulus 1 and MX =
Unfortunately, there is no list anywhere of all features in Cumulus 1. About_Cumulus does not cover all features. 
Nor is there a list of features in, or still to be introduced into, MX since it emerged from the Steve Loft beta. 
Thus this comparison is neither authoritative nor definitive.
== Cumulus 1 ==
* Cumulus 1 is software that only runs on Windows Operating System
* Cumulus 1 has an installer that you download and run to create all the files that are needed
* Cumulus 1 has a built-in Graphic User Interface
** The main screen summarises key current values (with some extra ones revealed when you mouse over parts of the screen) with a menu giving access to the other screens
** The View menu let you view data (e.g. View period shows you data for any one day, for any week, month, year, season or any other period) and lets you view the standard data logs and the extra sensor data logs
** The Edit menu lets you edit the extreme records and some of the log files (in original Cumulus, you can edit any file that contains extremes for one day or more, you cannot edit the standard data logs nor the extra sensor data logs)
** The Configuration menu lets you adjust the most useful of many settings available
** The file menu lets you request an upload, print a screen shot, or exit the software
** Select-a-graph gives you ability to plot whatever variable and period you want
* Cumulus 1 comes with an example set of web templates (showing how Web tags can be used to add the weather outputs that Cumulus generates to a web page
* Cumulus 1 can generate file containing images of graphs that you can view (and customise) on the view menu, and optionally upload to a web server (web site).
* Cumulus 1 creates a special log containing just temperature and humidity values, this is NOT available in MX.
* Cumulus 1 generates a moon phase image, that is produced from a picture of a full moon by applying a mask so the final image can also represent a waning/waxing moon (such as a crescent).
== Cumulus MX ==
*MX runs on multiple Operating Systems (OS).
**MX runs on all UNIX-derived OS (principally Linux, Raspberry Pi Operating System, Apple Mac OS X), but it needs Mono runtime software to support running of executables
** To run MX on Windows, you need .NET installed, which is included on Windows 7 upwards.
*** Neither .NET, nor Mono, are currently available for older Windows OS, so MX cannot run on Vista, XP, or other versions.
*MX releases are made available as a zip containing all the files in the distribution in their hierarchical positions
** The contents included in a MX release varies depending on release being installed
** The functionality of MX depends on the release being installed
**A pre-built image, combining the MX distribution, and a Raspberry Lite OS, is also made available by the developer, this is for those with 2 devices on their local network; who run their Raspberry Pi computer in headless mode, and do all setting-up via their second computer
**There are third party tools to aid installation, and upgrade, of MX
*Like Cumulus 2, the MX executable is just an engine to drive the various processes, but CumulusMX.exe generates a web server
*The web server generated by CumulusMX.exe runs the separate admin interface where you can adjust settings, and locally view all the data that MX outputs
* MX comes with an example set of web pages that you install onto your web server
** This is a different approach to that used in the legacy software as Cumulus 1 included web templates (showing how Web tags can be used to add the weather outputs that Cumulus generates to a web page
** Instead MX uses a series of .JSON Files that it can upload to your web server containing the data for those web pages to display
* MX offers both recent charts and historic charts.
** These can be viewed both locally in the interface, and on your web server
** Cumulus 1 generated images of charts, so it was images that got uploaded to your web server
** MX uses .json files to transfer the data, and Highstock software on the local interface server, and your web server, to draw charts based on that data.
*MX (except in early releases) has a full moon image and uses a system routine to create an image that correctly shows the current phase, updated at every hour, and optionally uploaded to your web server
*New functionality areas provided in MX include:
** Reading data from new weather station types, and new sensor types, even combining data from different sources
** Calculating new derived values (like feels like temperature)
** Automatically, updating a remote database, at real-time interval, standard logging interval, end of day, and during catch-up
** (There are more, but nobody has added them to list yet)
==Derivatives only available in original Cumulus==
MX provides the functionality to update a MariaDB, or MySQL, database. The Cumulus user can therefore run queries against that that replicate the functionality built into the legacy software (listed below), and many more statistics.
rightCumulus 1 can calculate the following additional parameters for any period from one day, through a month or year, to any number of days, in current or past years (you select start and end dates):
*Average temperature from all readings (at 1 minute intervals if Cumulus is left running) in period
*Average temperature from daily highest plus lowest in each day in period
*Average of all daily maximum temperature
*Average of all daily minimum temperature
*Number of gale days (when average wind speed sufficient to earn Beaufort description as a gale)
*Snow index for period (cumulative totals of snow depths over days in period)
*Number of days with snow falling
*Number of days with snow lying
*Number of dry days in any period (threshold set in settings, counts days in period below threshold)
*Number of wet days in any period
==Differences in way flavours calculate derivatives==
The following derivatives use different calculations depending on the flavour, and therefore if you swap flavours these will show a discontinuity:
*rain rate
*dew point
*wind chill
*heat index
*humidity index (humidex)
==Interrogation of Weather Stations==
Cumulus MX has ability to work with every web station that the original Cumulus worked with, but it can also work with newer weather station hardware. The definitive list should be maintained on the Supported_Devices page.
There are some weather station specific differences between Cumulus 1 and MX for reading variables from the same weather station:
# Information is obtained from Davis stations differently, that affects which Davis derived measurements are available to MX
# The way that MX communicates with Instromet stations has changed (now you just need correct settings), with the legacy software, you needed to select the right special build
# The original Cumulus has an error in the code for reading absolute pressure from a Fine Offset station and consequently sometimes calculates the wrong value for sea-level pressure, this has been corrected in (all but earliest releases of) MX, meaning MX is more reliable, and more accurate, for use with those old models.
=Files used by Cumulus=
Speciallog.txt is only generated by the original Cumulus. There are no plans for MX to generate this file.
There are some extra files that MX can generate like Air Link Log.txt.
==Basic files used by both flavours==
 
*cumulus.ini (Despite the name being same, the file used by Cumulus 1 and the file used by MX only have the structure in common, the content is very different; in fact the first run of 3.12.0 deletes the old file and creates a brand new file)
*today.ini (This file holds some derived values, and time-stamps; although both flavours use the same file structure, there are differences in the content. It is differences in the format of the date, at the start of the file, that stops the MX file being understood by 1.9.4,although MX can understand the 1.9.4 file),
*yesterday.ini (Again the yesterday.ini file content is different for MX, but MX can read the 1.9.4 file)
*dayfile.txt (The number of fields changes at certain releases, see daily summary log page, but also MX releases 3.7.0 onwards are more fussy about how fields are formatted and so the file is no longer interchangeable between flavours)
*month.ini (This file has like other .ini files differences that mean MX can read a legacy file, but 1.9.4 cannot read a MX file), 
*year.ini (This file has like other .ini files differences that mean MX can read a legacy file, but 1.9.4 cannot read a MX file), 
*alltime.ini (This file has like other .ini files differences that mean MX can read a legacy file, but 1.9.4 cannot read a MX file),
*monthlyalltimelog.txt (same in both flavours)
*monthlyalltime.ini (This file has like other .ini files differences that mean MX can read a legacy file, but 1.9.4 cannot read a MX file)
*sample string.ini (The content of Samplestring.ini varies depending on release being installed
*strings.ini (optional file, its contents has to relate to the samplestring.ini for the release being installed)
= Key differences and similarities between Cumulus 1 and MX =
NOTE: This section is also based on Steve Loft's wording taken from the support forum with minimal alteration for its new context. Consequently, references to MX mean the 3.0.0 beta, not any MX release by Mark Crossley.
* While Cumulus 1 has a tool to generate graphs itself and then uploads them to your website, the graphs used in Cumulus MX are drawn when the end-user loads the web page, they use Highcharts routines that are free for non-commercial use only, i.e. you may not use MX with these graphs on a company web site.
* While Cumulus 1 runs as an application that includes a main screen, and other screens, that appear when you start it, Cumulus MX is two separate applications, there is the "engine" that connects to your weather station and processes that data, but there is also a separate administrative interface. The latter is viewed on a browser on any device connected to the same local network as the device that runs the engine. On this admin interface you change settings, you can edit the various logs, and you can view a series of web pages that allow you to see all the weather derivatives output from MX.
* The settings for both Cumulus 1 and MX are held in Cumulus.ini. For MX the file name is case sensitive [on non-Windows devices] and must have capitals where shown.
**The case sensitivity of MX [on all devices, even Windows,] also applies to the section names within the file e.g. [FTP site] must use capitals for the FTP and must use lower case for site. Edit any section names that do not follow format in the wiki article for this file referenced above.
**All the characters used within this configuration file must be within ASCII range (represented by binary 0 to 127, basically A to Z, a to z, 0 to 9, and some punctuation), any extended characters (such as those used for accented characters, symbols and non English characters) must be removed. 
**Whilst many settings are common between both flavours, some are not used by MX and MX has some new ones. In particular if you used Port in Cumulus 1, that will not be carried across to MX, and you will need to set ComPort instead. You are advised to check all Settings using the MX admin interface.
*The contents of your Cumulus 1 Reports folder (NOAA style reports) can be read by MX.
*The contents of your Cumulus 1 data folder (log files ending with extension .ini or .txt) can be read by MX.
**However, if you use decimal commas in your Cumulus 1 '.ini' files then you do need to change, in each stored value, the decimal commas into periods/full stops.
**MX when it needs to update these files will change the way dates are stored, see the Log File pages in the Wiki for more information.
** The '.txt' files in the data folder will work with both Cumulus 1 and MX - assuming you are using the same decimal and list separators in MX as you used in Cumulus 1 (i.e. the same locale).
*The Cumulus 1 web templates (files using web tags) will not work with MX (whether you use the standard files provided or have written your own replacements)
**The reason is because the content of the standard web pages is different. For any web templates you have written, you will almost certainly need to change some web tags, and you may find this difficult because certain formatting characters (e.g. H or M) have different meanings when they appear in isolation in an output format to what they mean when combined with others (e.g.H:mm or 'd M'). See the Webtags page for full information on how to change these, and ask in the support forum if you have difficulty.
*(Other file names within MX will be as supplied in the zip that you download, or as Cumulus MX decides when it creates the file). 
* The settings in Cumulus 1 and MX work differently, for Cumulus 1 you choose to save changes by clicking OK, for MX changes are only saved when you click a Save button if one is provided. If there is no Save button anywhere on the screen (as in Extra Web Files) then the setting is saved when you move to next field/line.
Finally if you are moving from Windows to Linux, remember you need to learn a host of new commands!
= Tracking of when some legacy software features were added to MX =
While MX was in beta, there was limited documentation about what features were included and why, there was some fault reporting and a tracking list that showed when some of those issues were fixed, also initially the documentation on how MX had implemented features it did have was very sparse. The lack of a list of features in Cumulus 1, meant it remains difficult to track which Cumulus 1 features are or are not implemented in MX. Steve Loft said parts of MX were simply machine code level copies of parts of Cumulus 1 functionality, and parts were trying to offer better functionality, but he never said what was included in these two categories.
There was a list of enhancements requested by users for Cumulus 1, but that list was deleted before work on MX started. Despite that, it does seem that some features that were on the now lost list of enhancements for Cumulus 1 that never got implemented in Cumulus 1, have been implemented in MX, although again there is no definitive documentation.
The documentation that does exist is the release notes issued by Steve or Mark. In the next few sections, an attempt is made to prećis such announcements to track when the basic functionality from Cumulus 1 made it into MX.
Of course weather station design evolves, and the sensors available vary. Thus another feature of MX development is adapting to new weather station dongles and new sensors (which obviously cannot be added to Cumulus 1). Once MX came out of beta, the changes in each release are being tracked in another article. Obviously, you still need to look at the support forum for the detailed information in full release announcements about fixes, functionality changes, and actions needed to update to new major versions. 
== Version 3.0.x ==
 build 3023 - you can now control the output format of <#tomorrowdaylength> using an entry in strings.ini like this example:
[Solar]
MoreDaylightTomorrow=Il y aura {0} minutes {1} secondes plus la lumière du jour demain
LessDaylightTomorrow=Il y aura {0} minutes {1} secondes moins la lumière du jour demain
 Build 3025 - new MySQL (6 options) and custom HTTP uploads (can invoke a PHP script) facilities
 Also introduces a second pass to read archive records in catch up for Davis stations only
 Debug logging, diagnostic data logging, and ftp logging can now be set in the UI
 Changes for reading from Fine Offset and Davis stations
 Improved console messages at start up to indicate whether station has been connected successfully
 Makes sure dayfile.txt entry is always logged to MXdiags to help in case has problems writing file
 'Stop second instance' option now implemented (there were problems with this, see later versions)
 Graph periods can now be configured
 build 3035 - archives the month.ini and year.ini file at the end of the month/year as monthYYYYMM.ini and yearYYYY.ini.
 Build 3041 - Support for FTP over SSL/TLS (FTPS) - enable in Internet Settings
 build 3046 - added weather diary database (Note the MX diary file is different to the Cumulus 1 diary file).
 build 3047 - Web token parser updated to cope with html tag characters "<>" in the format string (see web tag page).
 build 3049 - This build enables ability to upload data to Windy.com.
== Version 3.1.1==
This release is mainly part of my attempts to add some of the Cumulus 1 features that are missing from CMX.
 build 3054 - Adds a Current Conditions editor and an All Time Records editor to admin interface
 Build 3056 - Fix for the All Time Records editor
== Version 3.2.5==
adds editors for files that track extremes previously missing from MX
 Build 3061 - that completes all the missing record editors from Cumulus 1
== Version 3.4.0==
The big change for this release is adding historic data "catch-up" for Davis WeatherLink Live devices.
 Build 3064 - fixes bug in Monthly Records editor for dry/wet periods.
==Version 3.4.5==
This release continues attempts to add some of the Cumulus 1 features that are missing from CMX.
 Build 3069 - Adds Editors for: Dayfile, Monthly Logs, Extra Logs
== Version 3.5.0==
adds the generation of a Moon phase image, and the ability to push data to MQTT brokers.
== Version 3.5.4 ==
Adds "Feel like temperature" as alternative to "apparent temperature"
==From 3.7.0 onwards==
Focus is now on adding new functionality. A new contributor must research these and document them
Category:Cumulus 1Category:Cumulus MX