Compare C1 and MX

From Cumulus Wiki


At the time of writing this text, there are two flavours of software that was originally developed by Steve Loft. 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. 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).

This page compares functionality between the original Cumulus software and the current Cumulus MX software. It is aimed at those who are using the original software, and are unsure whether to keep using Cumulus 1, or to make the swap to Cumulus MX.

It is not intended to be a prompt list for features to be considered for future inclusion in MX.

A basic introduction to the functionality available in both flavours of Cumulus software can be found at About Cumulus. That explains some of the background to its development and what functionality both flavours offer.

Overview comparing Cumulus 1 and MX

This is an overview, there will be further explanation later.

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. Thus this section 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. (This does mean MX cannot run on Vista, XP, or older Windows OS).
  • MX releases are made available as a zip containing all the files in the distribution in their hierachic positions
    • There are two executables included in a MX release
    • 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
  • 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 templates (showing how Web tags can be used to add the weather outputs that Cumulus generates to a web page
  • MX generates charts that you can view on the admin interface, and generates data for trends page that can be optionally uploaded to a web server (web site) where that data is used to draw charts.
  • 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

Comparing these two lists it is already obvious each of the two flavours has some features that are not available in the other. Some of the functionality listed above was not available in early releases. There is a section later on this page indicating which releases added certain functionality. Initially, there was an attempt to add some Cumulus 1 features that were not in the MX beta. But MX development is now largely focussed on resolving bugs (and there seem to be many in the beta) and adding new functionality (it might take a few releases before the new functionality is bug free).

There are no plans to add two useful Cumulus 1 (C1) features to MX:

  • Select-a-graph (although both C1 and MX have control over what is plotted, C1 offers more control over period to be plotted than MX does)
  • View Period (C1 allows a table summarising various derivatives to be output for any period from 1 day to all-time, MX pre-determines what period its tables cover, and as shown below omits several derivatives).

Derivatives only available in original Cumulus

This period.PNG

Cumulus 1 (but not MX) calculates various 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 period (threshold set in settings, counts days in period below threshold)
  • Number of wet days in 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)

Interogation 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 is on the Supported_Devices page.

Also, there are some weather station specific differences between Cumulus 1 and MX for reading variables from the same weather station. As just one example, the original Cumulus has an error in the code for reading absolute pressure from a Fine Offset station and 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

It was mentioned above that Speciallog.txt is only generated by the original Cumulus. There are no plans for mX to generate this file.

Basic files used by both flavours=

  • Cumulus.ini (The configuration file Cumulus.ini has some differences between Cumulus 1 and MX, see that wiki page for more information, but essentially each flavour will ignore the parts they don't understand, and add the additional parts that they need but the other did not use.),
  • today.ini (This file holds some derived values, and time-stamps; although both flavours use the same file structure, there are differences in the format of the date, at the start of the file, that stops the file being interchangable),
  • yesterday.ini,
  • 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 interchangable between flavours)
  • month.ini,
  • year.ini,
  • alltime.ini,
  • monthlyalltimelog.txt
  • monthlyalltime.ini
  • sample string.ini
  • strings.ini (optional file)

The format used for dates in each of the extreme record files depends on whether the individual parameter was last updated by the original Cumulus (day, then month, then year) or by MX (ISO format with 4 digit year, then hyphen, then 2 digit month number, then hyphen, then 2 digit day of month number). This means MX can read both date formats, but Cumulus 1 can only read its date format. For time-stamps, MX uses date-time entries in the "2019-03-06T02:05:00" style, while the original Cumulus uses a format like "02/09/2008 04:00:45".

More information about all of these files can be accessed by following links on Log Files index page.

Example Web Templates

Processed frequently

Both Cumulus 1 and Cumulus MX supply a number of templates that can be optionally processed into web pages.

  • indexT.htm,
  • todayT.htm,
  • yesterdayT.htm,
  • thismonthT.htm,
  • thisyearT.htm.

The above templates have same filename for both flavours, but are not interchangeable. These templates use web tags that Cumulus has to processs to create the related web page, so the frequency of processing the template determines the frequency that it can be uploaded to show fresh information on your web server

If you have edited a Cumulus 1 template, listed above, to customise what you see, you will have to start again with the equivalent MX template, and you will need to check information on the Webtags page, because any output formatters will either need to be changed, or perhaps added where modifiers were not needed before.

For Cumulus 1 only, there is one more template that needs to be updated frequently.

  • gaugesT.htm (The gauges page provided with original Cumulus uses "Web Dashboard Components for FreeWX and FreeWX-Wi", plus Microsoft Silverlight tool)

Processed just once

The following template for original Cumulus software does not contain any variable data, so it only need to be processed once (to create heading), and optionally uploaded that one time.

  • trendsT.htm

The following MX templates do not contain any variable data, so they only need to be processed once (to create heading), and optionally uploaded that one time.

  • trendsT.htm,
  • gaugesT.htm (The gauges page provided with MX is based on Mark's implementation of steel series)

These two templates are totally different between flavours, this is because Cumulus generates locally some images containing graphs and gauges, then uploads those images, in constrast MX generates files containing data, that it can optionally upload so that the web page then uses that data to draw charts or gauges.

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.

  • 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!

Enhancements during Beta stage for MX and after MX came out of beta

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

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.