Migrating from Cumulus 1 to MX: Difference between revisions

From Cumulus Wiki
Jump to navigationJump to search
(Created page with " This article compares functionality between Cumulus 1 and MX. This article also covers moving from Cumulus 1 to MX. = Comparing Cumulus 1 and MX = (The next bit retains w...")
 
m (corrected cross reference that was linking to text that has moved to different page)
 
(109 intermediate revisions by the same user not shown)
Line 1: Line 1:
Like other longer pages in this Wiki, the content is divided into sections, if you are interested in a particular issue, find it in the table of contents, rather than reading whole page!


=Introduction=
This article compares functionality between Cumulus 1 and MX.


This page was inspired by this [https://cumulus.hosiene.co.uk/viewtopic.php?f=40&t=17749 update from Cumulus 1] forum topic. That post was made in January 2020, and therefore relates to Version 3.3.0, which was the MX release that was in use at the time.
This article also covers moving from Cumulus 1 to MX.


<div style="background: LemonChiffon;padding:5px; margin:2px;">
[[File:Crystal Clear info.png|40px]] This page was last partially updated for the MX release available in June 2021; that is no longer latest!


Appeal to contributors: Please work out any updates needed for this page, so it is kept correct for more recent releases!
= Comparing Cumulus 1 and MX =
</div>


(The next bit retains wording by Steve Loft, but this is a new location for it)


You might want to read the related page at [[My_migration_from_C1_to_MX]] which describes how this worked in practice for release version 3.4.5 (build 3069).
Cumulus MX aims to be as compatible with Cumulus 1 as possible with 3 exceptions:


=Should I migrate to MX or not?=
Like Cumulus 2, MX separates:
the engine (reads weather station, calculates derivatives, creates web server for user interface, and sends updates to various external web sites), and the
administrative (shortened to admin hereafter) interface (displays basic information, allows you to vary settings, contains editors for highs and lows and for log files).
Like Cumulus 2, MX runs on Linux and OS X as well as (like Cumulus 1) Windows.
Like Cumulus 2, MX learns from some of the mistakes made in early part of design of Cumulus 1, that limited further development.


The legacy Cumulus will never be updated, and as more people migrate to MX there will be fewer people to help you if the legacy cumulus software gives you a problem. MX has a major advantage it runs on more devices, and for example a Raspberry Pi computer is far cheaper to leave on all the time to run MX (knowing it will never be rebooted by Windows updates). The current developer of MX offers support, and other people are also gaining expertise, so if you have a problem you will get help.
Because the development environment for Cumulus 1 is no longer available, it cannot have any extra functionality added. MX uses standard language C# (pronounced "C Sharp"), an object-oriented programming language created by Microsoft for use with the .NET Framework. It also works with Mono an open source implementation of Microsoft's .NET Framework based on the ECMA standards for C# and the Common Language Runtime.


==Features and functionality==


Of course MX started with very little of the functionality that the original Cumulus offered, but over time MX has gained more and more functionality. Features in the original Cumulus have been gradually added to MX, but also MX offers a lot that is not in the original Cumulus. See [[Compare_C1_and_MX|Compare C1and MX]] page for more on this. Unfortunately, there is no list anywhere of all features in Cumulus 1. [[About_Cumulus|About_Cumulus does not cover all features]]. Nor is there a list of features still to be introduced into MX. Therefore it is hard to help you understand whether functionality changes between the flavours will suit you.
Initially MX, as written by Steve Loft, lacked a lot of features that were available in Cumulus 1, but subsequent developments headed by Mark Crossley have now added the majority of the missing features. I am trying to get a list of Cumulus 1 features that are not in MX (or are implemented differently) in the forum at Features in C1 that are not replicated in MX, so anyone contemplating the move knows what they will lose out on. Although MX now generates a Moon image, it does not generate all the chart images (replaced by graph drawing from json data) nor the wind images that Cumulus 1 generated.


There are Cumulus users who tried MX, then have migrated back (from MX) to the legacy product; either on a temporary basis (to use a missing feature before they return to MX) or in a very few cases decided to stay with Cumulus 1 (because they prefer it). It is worth noting here that the legacy Cumulus is a stable product with very few bugs, but MX is constantly being developed and thus likely to contain bugs (these obviously vary depending on release as some are fixed and others appear). To put this in context, MX now has a huge amount of functionality and it is difficult for the developer to test all the different features.


Cumulus 1 creates a [[Speciallog.txt|special log]] containing just temperature and humidity values, this is NOT available in MX.
There are also many features that have been added to MX that were either on the now lost list of enhancements for Cumulus 1 that never got implemented, or are extra functionality to reflect recent changes in weather station features. All quotes below are from the release notes issued by Steve or Mark. Only significant changes to functionality are noted below (for fixes see support forum for full release announcements). There is also version change information here for MX versions.


Although from version 1.7.5 onwards the original Cumulus counts air frosts and gale days, this feature is not in MX.


The [[Cumulus_Screenshots#View_data|This Period]] screen that is a popular feature of the original Cumulus software as it tabulates data simply, is not available in MX.
=== Version 3.0.x ===


=Migrating from original Cumulus to beta MX=
build 3023 - you can now control the output format of <#tomorrowdaylength> using an entry in strings.ini like this example:


The beta builds (version 3.0.0) of MX were designed to make it easy to migrate. This section is based on Steve Loft's wording taken from the support forum with minimal alteration for its new context.
[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


You can move between [Cumulus flavours] fairly easily, but you should really read all the guidance.
Build 3025 - new MySQL (6 options) and custom HTTP uploads (can invoke a PHP script) facilities
*In particular if you use decimal commas with Cumulus 1, then you MIGHT have issues when MX tries to read existing log files.
Also introduces a second pass to read archive records in catch up for Davis stations only
*[For separator characters in dates and lists] whilst Cumulus 1 only takes settings from the control panel in Windows,
Debug logging, diagnostic data logging, and ftp logging can now be set in the UI
** MX running in a Windows environment, takes settings from the locale you specify in a parameter when starting MX, or the Control Panel in Windows,
Changes for reading from Fine Offset and Davis stations
** MX running in a non-windows environment takes settings from the locale you specify in a parameter when starting MX, or the default locale in your Mono installation
Improved console messages at start up to indicate whether station has been connected successfully
** MX [may] take some [settings from] interaction between the two [the specified locale and the default locale], and MX may struggle to read file [lines] created by Cumulus 1 if the MX locale is not precisely same as settings when that file [line was] created.
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


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.
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.


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.
==== Version 3.1.1===


=How to install MX=
This release is mainly part of my attempts to add some of the Cumulus 1 features that are missing from CMX.


The basic instructions for installing MX (see [[MX on Linux]], [[MX on Windows OS]], or [[Raspberry Pi Image]], as appropriate for fuller instructions):
build 3054 - Adds a Current Conditions editor and an All Time Records editor to admin interface
#Download the MX distribution (from [[Software]] for latest version or from https://github.com/cumulusmx/CumulusMX/releases if you want an earlier release version)
Build 3056 - Fix for the All Time Records editor
#Unzip into the location where you are going to install MX.


== 'Engine' and 'Admin Interface' for MX ==
=== Version 3.2.5===


When you run the original Cumulus software it displays a screen (see [[Cumulus_Screenshots#Main_Screen]], and from there you navigate to other screens to view data or change settings.
adds editors for files that track extremes previously missing from MX


MX is different, it consists of a stand-alone 'engine' which performs the reading and logging of data, uploading to a web site etc. This 'engine' is a command-line/terminal/console application which has no user interface. It does write diagnostic information to a [[MXdiags_folder|diagnostic log]], but many people run MX on a device that has no monitor and so the terminal output (if any) is not monitored.
Build 3061 - that completes all the missing record editors from Cumulus 1


When you successfully start MX, the engine is running, and it continues, until it is terminated by control C (or its equivalent in a Mac environment). (You can also run MX as a service, that has different ways to start and stop, discussed in the links given in previous section).
=== Version 3.4.0===


The separate [[MX Administrative Interface|admin interface]](unfortunately this is called various names in the support forum, including "user interface", "dashboard", and "interface") is provided by virtue of the engine acting as a web server. You can view the admin interface by typing the URL of the built-in web server into your browser, either on the same machine, or on a separate machine sharing the same local network.
The big change for this release is adding historic data "catch-up" for Davis WeatherLink Live devices.


If you install MX on Microsoft Windows, then a few extra one-off steps are needed to allow this web server functionality:
Build 3064 - fixes bug in Monthly Records editor for dry/wet periods.
# Windows Defender has to be told to allow all for Cumulus MX.
# Typically for other security packages, select "CumulusMX.exe" then right click and select "Change File Rating to Trusted"
# In any "Firewall" package, add port 8998 as one that was permitted.
# Using "command prompt as administrator" type <tt>netsh http add urlacl url=http://http://192.168.1.64:8998/ user=\users</tt>, the response "URL reservation successfully added" means it worked. This command is apparently to allow all users to bind to port 8998 (i.e. that used for the Cumulus interface). This also means you don't have to run the engine (CumulusMX.exe) in an administrator user, nor select "Run as administrator" from right click menu on the shortcut, nor set the properties for any shortcut to run in any special way.


The default URL if the browser is on the same machine as MX is http://localhost:8998/. Newer releases of MX will tell you an IPv4 address to use, such as by typing "http://192.168.1.64:8998/".
===Version 3.4.5===


For security reasons, the admin interface should not be accessible via the public internet.
This release continues attempts to add some of the Cumulus 1 features that are missing from CMX.


=Migrating existing data files from legacy Cumulus to a recent build of MX=
Build 3069 - Adds Editors for: Dayfile, Monthly Logs, Extra Logs


If you want to continue using the same weather station, and you are not moving to a different home, you will want to maintain the data you collected using Cumulus 1 in your MX installation. This is what is meant by migration, and there is quite a bit to read, taking up most of the rest of this Wiki page. The Cumulus configuration files for Cumulus 1 and for MX share the same name, but their content is very different, so these are discussed at length in subsections below.
=== Version 3.5.0===


Obviously, you will want to copy ALL (''except weather diary which uses a different file'') the files in the [[#"data" folder]], from any old installation into the new installation, but migrating these is not always easy, here is a quick summary of the potential issues (all discussed further in various subsections later):
adds the generation of a Moon phase image, and the ability to push data to MQTT brokers.
* '''When you first run MX, the [[#Start date|Start Date]] is recorded in the configuration file'''
** In the legacy software, this date is purely used as something to appear on one of the [[Customised_templates#The_Standard_Templates_for_Cumulus_1|sample web templates]]
** In Cumulus MX, this date controls what data is read from [[Monthly log files]], such as [[Standard log files]], and [[Extra Sensor Files]], any lines in those files with earlier dates are ignored by CumulusMX.exe, ExportToMySQL.exe, and other utilities.
** You can edit this [[Cumulus.ini#Data_Logging|'''StartDate=xxxxx''']] parameter, in the admin interface select ''Station Settings → Common Options → Advanced Options → Records Began date''
* Be aware your new installation has to use the same "locale" as the old installation, or MX will struggle as the locale affects how new lines are stored, and how MX expects old lines to have been stored the same way.
** The legacy software was fairly tolerant about date formats, and use of decimal commas
* Cumulus MX is much more fussy than Cumulus 1 about every line in any data file using exactly the same locale formatting:
** Cumulus 1 is able to accept any character (other than the list separator, and space) being used to separate hour and minutes in time-stamps, MX only accepts a colon ":"
** [[Amending dayfile]] tells you about how MX is far more fussy about the content in [[dayfile.txt]]
** [[:Category:Ini Files|.ini files]] explains how time-stamps are formatted differently in the extreme tracking files, and how MX prefers decimal points to decimal commas
* If your old installation, is on a different operating system to the new installation, remember that Microsoft Windows uses different line terminators to all other operating systems, although MX should cope with mixed line terminators, any third party routines reading your data files will probably not accept a line terminator change.


==Simplest migration==
=== Version 3.5.4 ===


There is no harm in trying the following steps, but whether this simple approach works, really does depend on what parts of Cumulus functionality you actually use, and how you had your legacy Cumulus working, as each subsection below explains.
Adds "Feel like temperature" as alternative to "apparent temperature"


# Copy the configuration files ('''Cumulus.ini''' and the optional '''strings.ini''') from the directory with Cumulus.exe in it to the directory with CumulusMX.exe in it
= The difference in how A Cumulus 1 user and a MX user see current values and change settings =
# If you use the [[Weather Diary]], see that cross reference, because MX cannot read the old file, and there is no conversion utility.
# Copy all the [[:Category:Ini Files|extreme tracking files ending in .ini]] and the [[:Category:Files with Comma Separated Values|files with your data ending in .txt]] in the old [[Data folder]] across to MX folder with same name
# If you have files in the [[Reports folder]], copy them across to the MX folder of same name, see that cross reference for information about different defaults


== Cumulus 1 ==
==File names==


Note that if you run MX on a UNIX based operating system (e.g. Linux or Raspberry Pi OS) all file names are case-sensitive, please read documentation to see where capital letters are required in those file names. Be aware that Wiki pages always change first letter to a capital, so do check carefully if that wiki page is describing a file name that must be all lower-case.
Cumulus 1 was an all in one application, it both read the data from the weather station and provided the user interface for you to see the derived data and change the settings.


==Line terminators==
== Accessing Admin Interface==


If you are not running MX on a Microsoft Windows computer, ideally you should change the characters appearing at the end of every line in every file you move from Cumulus 1.
MX is different, it consists of a stand-alone 'engine' which performs the reading and logging of data, uploading to a web site etc. This 'engine' is a command-line/terminal/console application which has no user interface. The separate admin interface is provided by virtue of the engine acting as a web server.


I say ideally, because although Microsoft is fussy, and determined to be different by insisting files match its choice, most other operating systems can tolerate different line terminators. This means that MX will generally tolerate files using a mixture of line terminators. However, if you are using third-party routines, please be aware that these are often written to expect a particular line terminator, and they may give unexpected results when used with files that do not match that expectation!
When you successfully start MX, the engine is running until it is terminated. You can view the admin interface by typing the URL of the built-in web server into your browser, either on the same machine, or on a separate machine sharing the same local network. The default URL if the browser is on the same machine as MX is http://localhost:8998/.


With Cumulus 1 (or MX) on Windows, each line in every file ends with both carriage return and line feed.
If you are using the browser on a different device on your local network to the device running MX, you cannot use local host. Instead you specify a IPv4 address, that is listed in your router (might be called a hub) for the device running MX, this IPv4 address will look like '192.168.y.z' (where y and z are numbers that vary between implementations).


With MX on a Mac, each line should end with just a Carriage Return.
Equally, if "localhost" is already in use for another web server (that you already run on your device), you will need to use the correct IPv4 address as above, even on the same device.


For all Unix-based operating systems (Linux, Raspberry Pi OS, and other variants), each line should end with just a Line Feed.
For security reasons, the admin interface should not be accessible via the public internet.

To change end of line characters, run each file through an editor designed for programmers. Various editors are available but "Notepad ++" is one that is popular on Windows, but can run on other operating systems. In its '''Edit''' menu, choose '''EOL conversion'''. On a Linux system like a Raspberry Pi computer, please see [[Preparing_your_Linux_computer_for_MX#Changing_line_terminators|Changing line terminators]].

If you use PHP Hypertext Pre-processor (php) anywhere on your installation, normally that is written for "Line-feed" as line terminator and any "carriage return" in your files may mess up the content unless you code in a "trim" function to remove it. Hopefully, if you use PHP, you are technical enough to realise you may need to edit the code depending on which device it is being run on!

==Configuration file==

MX's [[Cumulus.ini]] has different content to the legacy [[Cumulus.ini_(Cumulus_1)|'''cumulus.ini''']]. From release 3.12.0,many more new settings were added, more settings were removed, and some parameters in the file were renamed. The first cross reference, in listing all the parameters, makes it clear which settings were introduced in the legacy software, and which MX release added new settings, this should help you to grasp how many new settings exist!

===Differences===

The original Cumulus MX beta by Steve Loft was partly written by machine code translation from his Cumulus 1 code, and therefore MX initially worked fairly similarly to the legacy software.

The development of MX since then, has replaced significant coding and it is safest to assume that MX works differently to the legacy software.

This does mean that some settings do have to be changed when moving from the legacy software to MX:
* Some settings actually have a different parameter name, e.g. '''Port=n''' is replaced by '''Comport=tttttttt''', these differences are explained later
* Some settings work in a different way e.g. the real-time interval in the legacy software is the number of seconds after real-time actions end to when they starts again, so two real-time cycles cannot overlap. For Cumulus MX, a real-time interval kicks off a cycle after the specified number of seconds and therefore you probably need to increase the time in the setting to ensure all actions in one cycle finish before the next attempt starts

Consequently, if you are migrating from the legacy software to MX now, it is best to rename your old '''cumulus.ini'' file so it is is not seen by MX. Let MX create a new configuration file with just the parameters it needs using the various [MX_Administrative_Interface#Changing_Settings|settings pages in the admin interface]]. That will ensure you don't get muddled by parameters used for Cumulus 1 (but not for MX); and you do have all the parameters you do need, set correctly.

===Configuration file naming restrictions===

Cumulus 1 can recognise, in some circumstances, "cumulus1.ini", and other variants, not just "cumulus.ini".

MX only recognises "Cumulus.ini". The Windows operating system is not case sensitive for file names. All other operating systems require the first letter of the filename to be a capital, and the remainder to be lower case as shown.

===Historical evolution of configuration file===

The oldest approach for migration from the legacy software, was to copy across to MX your existing configuration file, and let MX ignore all the parameters that do not apply to it. This worked because the early MX releases had few new parameters, and mostly used the majority of the old parameters.

For any parameters that were not set by the admin interface (and there were many "read-only" parameters in early releases of MX), one assumed these also existed in Cumulus 1 (refer to [[Cumulus.ini (Cumulus 1)]]) and so were already in your file.

To add the few new parameters that MX did need (see [[Cumulus.ini (MX 3.0.0 to 3.7.0)]] page), you would then go to the [[MX_Administrative_Interface#Changing_Settings]] pages and work steadily through ALL the options.

Retaining your old settings as far as possible simplified any migration of data files from your legacy installation into MX, because it ensured you kept to same unit selections, and same extra sensor selections.

At releases like 3.3.0 and 3.6.0, amongst others, there were changes to "read-only" parameters for MX. These could not be adjusted through the admin interface, and needed to be entered manually into the '''Cumulus.ini''' file, as instructed on [[Cumulus.ini (MX 3.0.0 to 3.7.0)]] page.

===Subsequent evolution of configuration file===

Substantial changes to settings available were made from release 3.8.0 onwards. The content of the '''Cumulus.ini''' file changed drastically, with much deviation from the configuration file used in earlier releases (including for the legacy software), hence [[Cumulus.ini]] is a new page describing the settings, and the parameters appearing in the configuration file, applicable from that release.

More changes were made in 3.10.0, and subsequent releases, as settings that previously had to be made directly in file were gradually moved to be advanced settings controlled in the admin interface. In addition, these releases, have added many new settings never encountered in your legacy software.

For example the changes include the (advanced) ability to change the number of decimal places for storing derived values like daily rainfall, sea level pressure, and wind speeds.

Changes to the [[New Default Web Site Information|Default Web Site]] (diverging away from the [[Customised templates]] approach in the legacy software) and implementing the option to use (as was available in the legacy software, and the earliest MX beta, but then removed) a copy action instead of a file transfer action for [[Your Own Server]], has led to many,many new settings. Thus the advice has become abandon your old legacy software cumulus.ini file when you move to MX.


===How to make new Settings take effect===

'''The [[MX_Administrative_Interface#Changing_Settings|settings pages]] in MX, work differently to the [[Cumulus_Screenshots#Configuration_Menu_Screens|settings screens]] in Cumulus 1:
* 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.
* The alarms page works slightly differently, with an "Update alarms" button.
* If there is no Save button anywhere on the screen (as in Extra Web Files) then the setting is saved to configuration file when you move to next field/line, and acted on when you next restart MX.

Be aware that you do have to restart MX after changing certain settings:
* You certainly need to restart after any changes that relate to weather station input reading
* You may need to restart after changes that relate to processing of outputs
* At time of writing there is no list of which settings require a restart
* Early releases of MX tended to write new settings to configuration file, but not change how the internal code behaved
* Such settings only took effect on restart, when MX reads the configuration file
* As MX is rewritten for later releases, the handling of settings is changing, and more and more take effect immediately

===Start date===

When you first run any Cumulus software (whatever flavour) a parameter is added to the configuration file that documents the date Cumulus was first used.

For Cumulus 1, this parameter appeared in two places on the example web template for all-time records, but was otherwise ignored. Thus if you decided to import into your data logs readings from before you first ran Cumulus, the legacy software would be able to find those earlier records, without you needing to change the date that appeared on the web page.

'''CumulusMX.exe''' uses this parameter to determine the first standard data file to start reading from, it will ignore any data files for earlier dates, it will also ignore any lines with an earlier date in the first data file. Thus if you were to migrate your Cumulus 1 configuration file into MX, you should check the [[Cumulus.ini#Data_Logging|'''StartDate=xxxxx''']] parameter in the '[Station]' section is correct for your earliest data before you let MX read this configuration file for first time. If you need to make any edit, ensure you stick to exactly the same date format.

From release 3.10.1, MX allows you to edit this start date within the admin interface, just select ''Station Settings → Common Options → Advanced Options → Records Began date''. It is "hidden" as an "advanced" setting, with a strict danger warning, because of the importance of sticking to exactly the right date format when you edit it!

=== Station connections===

''You can skip this subsection if your weather station connects to MX either by USB or by wireless connection''.

This subsection is relevant if your station connects by a serial connection and MX needs to be told which port. It also applies if the serial connection is converted to USB.

If your weather station used a port to connect to Cumulus 1, that port was set on the settings screen as a number and stored in [[Cumulus.ini_(Cumulus_1)]] in the station section as a parameter in the format '''Port=n'''.

In Cumulus MX, as it runs on various operating systems, the port is specified using text (instead of a number), again you select it within settings, on Station settings page, but within [[Cumulus.ini]] in the station section the parameter is in the format '''Comport=tttttttt'''.

If your old parameter had a value of '''3''', and you are still using Windows, the new setting would have value of '''COM3''', i.e. serial port 3 now requires a "COM" prefix.

A typical parameter value for other serial connecting devices might be "/dev/ttyUSB3" where the final digit will change depending on the new connection. You can search for posts on the support forum that talk about how to find out what connection is being used, depending on what hardware you are using.

===Fine Offset Read Avoid Setting===

The "read-avoid" timer setting for traditional Fine Offset Stations, was intended to reduce the lock-up problem.

This type of weather station consists of some remote sensors that transmit a short burst of readings every 40 seconds (those models with solar sensors do a second transmission every 60 seconds).

The legacy Cumulus 1 software would read data from these weather stations every 30 seconds, i.e. slightly more frequently than the updates, so sometimes it would read the same data twice. The way the "read-avoid" was implemented in the legacy software was that the software attempted to see which subsequent reads were same, and which were different, as the latter indicated a transmission had taken place. Thereafter, a (configurable) delay of a few seconds would ensure thereafter the 30 second interval reads would never clash with the update following transmission.

MX reads the same station type every 10 seconds, with extra processing once a minute, both timings are fixed, based on computer time. Therefore if read-avoid is enabled, then some of the fixed 10 second interval actions will be skipped. The current advice is not to enable the read avoid as the result can be that almost all reads are skipped.

===RG11 Rain gauge===

If you use a RG11 rain gauge:
*Replace: '''RG11port=n''' and '''RG11port2 =n''' (Cumulus 1) where n is a number,
* With: '''RG11portName=xxxx''' and '''RG11portName2=yyyy''' (Cumulus MX on Windows)


The new value is a string with values as per previous paragraph depending on device on which Cumulus MX is running.


== Operating Systems for Cumulus 1 and MX ==
===Other Cumulus.ini parameters===


Lots of parameters in [[Cumulus.ini]] are being changed as MX is developed. So much had changed by the time that MX releases reached 3.12.0, the first run of that particular release created a brand new '''Cumulus.ini''' discarding the old file. If you migrate from Cumulus 1 to MX without stepping through MX releases, you may have several issues, but without knowing which MX release you have selected, all I can suggest is that you work through all settings found in the Settings page of the MX release you choose. Although you could compare [[Cumulus.ini (Cumulus 1)]] and [[Cumulus.ini]] pages, there is no guarantee that either is totally accurate!
MX runs on:


==Strings.ini==
Microsoft Windows operating system (Cumulus 1 only runs on this)
To run MX on Windows, you need .NET installed which is included on Windows 7 upwards.
Unix derivatives Linux and Mac OS X.
To run MX on the additional platforms, it requires the Mono runtime, and you will need to install this


This is another configuration file, but it is an optional one. Please remember that the Microsoft Windows Operating System is case insensitive for file names, so "Strings.ini", "STRINGS.INI", and "strings.ini" are all treated as the same file by any Cumulus software.
As mentioned in the comparison between Cumulus 1 and MX section earlier, Mono is the open source version of the propriety .Net. Both are sponsored by Microsoft.


If you install MX on another operating system, then the file system is case sensitive, in this case MX will only recognise "strings.ini".


If you have not created a [[Strings.ini|strings.ini]] file in your (legacy) Cumulus top level folder, then you have no file to move to your MX installation, and you should skip the rest of this sub-section.
== Configuration, Log, and Web files==


The contents of the [[Samplestring.ini|samplestring.ini]] file you get in your MX release distribution varies depending on the release you have downloaded.
Both Cumulus 1 and MX both use the same basic files: Cumulus.ini, dayfile.txt, today.ini, month.ini, year.ini, alltime.ini, monthlyalltime.ini, indexT.htm, todayT.htm, yesterdayT.htm, thismonthT.htm, thisyearT.htm. But there are differences in content in all these, and the web pages not mentioned there are totally different.


Check your existing '''strings.ini''' file against the ''samplestring.ini'' file in the MX distribution you have. If the attribute names (left hand side of the equals sign) match for the parameters you selected to include in your '''strings.ini''', then you can reuse your existing file. If your file includes attributes that are no longer in the MX ''samplesting.ini'' file, then you will need to edit your '''strings.ini''' file that is placed in the folder containing CumulusMX.exe. You may also need to add new items into your '''strings.ini''' based on new content in ''samplestring.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.


==NOAA style reports==
While Cumulus MX can read the today.ini produced by Cumulus 1, you probably need to edit the date format in the date at the start of that file before Cumulus 1 can read a today.ini produced by MX. MX uses ISO format dates with year first, Cumulus 1 uses the date format defined on your PC system that might have year last. Look up in this wiki pages for the Log Files index page or the individual file pages just referenced to see the differences between file content, and what you may need to edit to use Cumulus 1 files with MX.


The generation of reports is an optional feature, if you have never used it your (legacy) Cumulus Reports folder will be empty, then you have no files to move to your MX installation, and you should skip the rest of this sub-section.
Both Cumulus 1 and Cumulus MX supply a number of templates that are processed into web pages, although the end produce web pages are (except for trends.htm) identical, the templates are not interchangeable. However, there are files that Cumulus 1 uses (for example it uses several image files for the trends web page and a weather diary in a XML file) that are not used by MX and also many files that MX creates (for example json files and a weather diary in a SQlite file) that were not part of Cumulus 1.


Please see [[Reports_folder]] for full information. Cumulus software creates reports, it does not edit existing reports, so migration is fairly simple. Just copy the contents of the '''Reports''' folder in your original Cumulus installation into the folder in the new installation. Of course, nothing is totally simple, the encoding default changes between Cumulus 1 and MX, and once again we might need to consider end of line characters!


For those of you who are more technical:
= Changing from Cumulus 1 to MX=
* files created in Microsoft's Windows Operating System use two characters (carriage return and line feed) to end each line, while all other operating systems use a single character (line feed in most Unix derived systems). Apple Mac are again different in using just Carriage Return. This should not cause any problems.
* files can be encoded (how individual characters are represented by binary codes) by Cumulus in two different ways. There is more about encoding at [[Reports_folder#Encoding]], the relevance here is that if your MX settings and Cumulus 1 settings use different encodings (as they will if you let this default) you may find some characters (e.g. degree symbol) do not appear correctly when viewing some of your reports.


=="data" folder==
Remember, that depending on the operating system, MX may require you to install extra components, such as Mono, not included in distribution, see Cumulus MX article for details.


You should copy all files in the [[data folder]] from your legacy Cumulus installation to your MX installation if you want to be able to see past data, but as mentioned earlier there are some complications:
== Files to copy from Cumulus 1 into where you are installing MX==
* See [[#Start date]] earlier on this page for a change that you may need to make to ensure MX accepts data in any old [[Standard log files]] and [[Extra Sensor Files]]
* See [[#Weather Diary]] later on this page, and [[Weather Diary]] page; Cumulus does not provide any utility to convert the old legacy format to the new MX format.
* See [[#Extreme Record files]] later on this page, and [[:Category:Ini Files]], for information on differences between the legacy files and the MX files
* See [[#dayfile.txt]] later still on this page, and [[Amending dayfile]] page, for how you can ensure MX can read your existing dayfile.txt file
* See [[#Line terminators]] earlier on this page for some technical issues if MX is running on a different computer to your Cumulus 1 installation.


===Standard log files and other log files===
MX requires all files from "data" and "Reports" folder created by Cumulus 1. You also need "strings.ini" (if you use that), and "Cumulus.ini", plus any other tailoring set-up files, batch processes etc. you might use.


The [[Speciallog.txt]] file optionally used by the legacy Cumulus 1, is not used by MX.
You may be installing MX on a different device to the Windows PC that Cumulus 1 ran on, in that case follow first alternative below.


The [[Standard_log_files]] and any (optional) [[Extra Sensor Files]], from the legacy software can be transferred to your MX installation, but see [[#Start date]] earlier on this page, and [[Calculate Missing Values]] page to read about extra tasks you may need to do.
If you are installing MX on a PC that has been running Cumulus 1, then there are actually 2 alternatives to choose between:


MX extends these [[Monthly log files]] by adding [[Air_Link_Log.txt|another optional set of files]].
Just create a new directory (recommended name CumulusMX) and unzip the contents into it. Then copy over your existing data files and your Cumulus.ini file, and any other configuration files that you may have created (e.g. strings.ini, twitter.txt etc). In this case you will need to edit that copied across "Cumulus.ini" so any lines that referenced the old folder are changed to reference the new folder, and you may need to edit a few other items either now, or via the settings functionality in MX user interface. The big advantage of this approach is that anytime you are not running MX you can go back to Cumulus 1 and let it run from where it left off (subject to availability of past data in your weather station).
Alternatively, to run Cumulus MX with your existing Cumulus data, take a back up copy of your existing Cumulus directory, and then unzip Cumulus MX into the original Cumulus folder. This saves you from copying Cumulus 1 files, and removes the need to edit any reference to folders. However, using same folder stops you going back easily to Cumulus 1 if you have an issue, because MX changes the date formats in some files, so that Cumulus 1 can no longer understand them.


=== Editing files===
===Weather Diary===


As explained on [[Weather_Diary|weather diary]] page, the Cumulus 1 weather diary uses a different file to MX, and indeed takes a very different model for how to store the information.
====Cumulus.ini====


Therefore don't copy [[Log.xml]] file into the data folder of your MX installation. You will need to manually use the [[Weather_Diary#How_to_edit_the_contents|admin interface Edit menu]] to access the new diary and add your previous entries one by one.
If your "Cumulus.ini" was actually called "cumulus.ini" you should rename it to start with a capital letter.
Please see Cumulus.ini#Parameters_changed to see the list of 2 parameters that must always be changed in this configuration file. They are also mentioned in next 2 sections here.
There are some differences in how the contents of this file are used in the 2 flavours, one to remember now is to check the "StartDate=" line in the '[Station]' section is correct for your earliest data before you let MX read this configuration file for first time, as MX uses that to find the first log file to start reading from, it will ignore any log files for earlier dates; whilst Cumulus 1 always looks at all log files it finds in the data folder.
There are several other differences in settings stored in "Cumulus.ini", but you can address those later through the MX settings screens.


Please note the editing interface has been changed from release 3.10.1, but the page linked to above may not have been updated. A major change in the upgrade relates to handling of time-zones.
====Log files====


Please also note that the Cumulus 1 weather diary permitted multiple entries to be stored for an individual day, but the MX implementation only permits a single entry per day. Also the configuration file defines a time when the entries stop applying that may not match the rollover time for other weather measurements.
See individual log file pages already referenced (alternatively access from Log Files index page) where there is more information for how to edit your .ini files to work with MX.


==Extreme Record files==
== Station connections==


The [[Correcting_Extremes]] page explains how extreme records are stored in the [[:Category:Ini Files]] discussed below, with the changes to all-time records being tracked in [[Alltimelog.txt]].
If your weather station used a port to connect to Cumulus 1, that port was set on the settings screen as a number and stored in Cumulus.ini in the station section as Port=n. In Cumulus MX, as it runs on various operating systems, the port is specified using text (instead of a number), again you select it within settings, on Station settings screen, but that is stored within Cumulus.ini in the station section as Comport=tttttttt. If your old number was 3, and you are still using Windows, the new setting would have value of COM3, for other devices it might be /dev/ttyUSB0.


You will find that MX creates at least one file that was not in the older Cumulus ([[Correcting_Extremes#How_do_I_correct_my_monthly_all-time_records.3F|monthlyalltimelog.txt]]).
== web pages==


===the .ini files===
There are differences in how to upload the standard files between Cumulus 1 and MX.


Once again, the simple instruction is to copy these from your old installation to your new installation, to ensure your extreme record history is maintained. Once again, differences between Cumulus 1 and MX mean that the process may not be that simple, especially if you try to migrate straight to the latest MX release.
It is best to work through the Internet settings screen in the MX admin interface.


====MX releases up to 3.5.4====
Consequently, there is a difference between the entries in Cumulus.in, remove the IncludeSTDImages=1 used in Cumulus 1 and replace it with IncludeGraphDataFiles=1 used in MX.


'''Your Cumulus 1 '''.ini''' files can be read in all release versions from 3.0.0 to 3.5.y.''' Steve Loft did make two changes in his beta MX, these mean your .ini files may look strange while they have some entries made by Cumulus 1 and some made by MX:
If you have been using the Cumulus 1 supplied web pages, you will find they do not work with MX, there is a new set provided with MX that work slightly differently.
# all newly stored values will use decimal points in these files, (i.e. any decimal commas valid in the legacy software, are not used by MX).
# all newly stored time-stamps will use the ISO specification (ISO 8601 Data elements and interchange formats – Information interchange – Representation of dates and times) so new dates have year first, the parts of the date are separated by hyphens, and new times use colon (:) between hour and minutes (i.e. the regional settings that the legacy software adopted have been abandoned by MX)


* '''MX releases from version 3.0.0 to 3.5.4''' can read all the date/time entries in any file whether in the Cumulus 1 format or in the MX format.
Cumulus 1 uploads a number of images, these include a couple of images that combined show the moon phase, and a number of graphs are also uploaded as images (used on Cumulus 1 trends page).
* MX will change any dates to the ISO format only when it needs to update that particular date/time.
Cumulus MX does not upload any images (prior to Release 3.5.0, from then on it uploads a moon phase image), instead it uploads a series of .json files that hold time and value pairs that can be used to draw graphs. (Hence the difference in settings mentioned above).
* Consequently, within a single file both formats will co-exist, you may see lines using Cumulus 1 format for the extremes that have existed for a while, and Cumulus MX format for any new extremes.
The gauges page provided with MX is based on Mark's implementation of steel series, so it is different to the old "Web Dashboard Components for FreeWX and FreeWX-Wi " that Cumulus 1 used.
The other web pages look the same, and indeed are effectively functionally same.


If you used decimal commas in your Cumulus 1 installation, you will make the migration to MX easier, by an edit of each ".ini" file to change those commas to full stops.
= What I did to Install MX=


Equally, if you had any times not using a ":" as separator, you will make the migration to MX easier, by an edit of each ".ini" file to change those characters into colons.
I have used Cumulus 1 for a decade or so, and been very happy with it, but I wanted to give MX a go without affecting my Cumulus 1 installation. Here is exactly what I did on my ex NHS Windows 10 Pro PC, step by step; I am hoping this list might help some readers. Can I just stress I downloaded version 3.4.5 (build 3069), there may be some changes that affect what I record below in more recent versions, I just noted what I had to do at that moment in time (March 2020). For example the latest version probably has some changes to folders and files included in the package.


====MX releases at versions 3.6.x onwards====
== Download and unzip==


Migration from the legacy Cumulus to MX has become harder as MX has been developed for two reasons:
I downloaded the CumulusMXDist3069 zip from the Current Release section on the downloads page. Although 3069 is no longer the latest distribution, still use the same link as it will always give you latest available.
# It appears that releases at versions 3.6.x onwards have become more fussy about existing content in these files due to changes in the source code.
I unzipped the contents into a partition I use just for software downloads.
#* Effectively, the format of existing entries is expected to be same as any newly created entries, i.e. matching current locale settings
You don't have to have somewhere separate to the installation, but many people will want to download on a separate device to the device where they will install MX
# The addition of Feels Like temperature and Canadian Humidity Index (Humidex) to the .ini files
Downloading to somewhere other than where you will install it, also makes it easier if you do any customisation of particular files and wish to keep copies of originals.
#* Neither of these was stored by the legacy software or by earlier MX releases
I used a package that verifies the files it copies to duplicate the folder CumuluxMX within the zip onto the drive where I wanted to run Cumulus MX.
#* The technique for adding this is described on [[Calculate Missing Values]] page
As I was not intending to use the web pages that come with MX, so I selected to exclude in this verified copying everything from the "\CumulusMX\webfiles\*.*" folder, and its sub-folders in the download.
If you intend to use the standard MX web pages, then you will need to:
Ensure you do copy these files from download into where you are installing MX.
You will also need to FTP all files and sub-folders within the webfiles folder (not the actual folder itself), to whatever folder on your web server you specify as the directory in the Web/FTP site part of the settings for MX.


Despite this, most people migrating from Cumulus 1 to the newer MX releases, are doing so successfully, so it works for at least some old files.
== Copying Cumulus 1 files into MX folder==


====Historical background to dates/times====
The locale I used for Cumulus 1 is going to be the same I will use for MX (same PC!) so my copying across of my existing files was easy:


When Steve Loft designed his original Cumulus (1), he had no experience to draw upon as to the best way to treat items like dates. He wrote the software originally just for his own benefit and did not need to worry about time zones. Subsequently as he enhanced his software to make it usable by others, he faced many issues on how to cope with different time zones, and different weather stations having different sensors. In Cumulus 1, he basically focussed on compatibility by keeping to his original design for the data logging files (both those ending in '''.ini''' and those ending in '''.txt''', and only adding extra fields to the end.
First, I copied my \Cumulus\strings.ini to \CumulusMX\strings.ini. This preserves any tailoring I have done of terminology.
Remember, "\Cumulus\web" and "\CumulusMX\web" have different content, so don't do any copying between these.
Next, I copied my existing Cumulus 1 alarm sounds in "\Cumulus" across to MX folder "\CumulusMX\interface\sounds" as these were referenced in my main Cumulus.ini file (I will edit that file next to reference the new location of these files).
Now, I copy my \Cumulus\Cumulus1.ini (don't worry why my file had a "1" in its name, just remember that yours probably won't) to \CumulusMX folder as "Cumulus.ini". I then edit the MX "Cumulus.ini" file:
In the [Alarms] section (your Cumulus.ini may have sections in a different order to mine) I edit all the parameter lines where the attribute ends in "File" to reflect their MX location in the sounds folder (there is no such folder in Cumulus 1).
I checked that I had a "[FTP site]" section (yes, mine was named correctly with second word all lowercase, but if your has [FTP Site] you will need to edit that section title to put second word entirely in lower-case)
I now had to decide whether
I would use the Extra web files settings page in the MX admin interface to make the changes, in the local file column, necessary to define which web templates I wanted MX to process
Or I would make the changes myself by editing the appropriate lines in this [FTP site] section. (I decided on this option).
Although my web templates are stored in a folder "Templates for Cumulus to Process" outside the Cumulus 1 or Cumulus MX folder structure, I had to reference a new set of template files to cope with differences in the output parameters of MX web tags.
Next where I want a transfer done only at end of day, I added lines like "ExtraEOD19=1" (when you run MX it will add a ExtraEODnn for each of the 100 possible values of nn that you have not created) and changed the previous "ExtraRealtime19=1" to "ExtraRealtime19=0" (I previously used realtime as that was only way in Cumulus 1 to ensure a template file was processed so it held correct values as close to end of day as possible, but it inefficiently also made huge numbers of unwanted transfers during the day). I had 9 such files being copied far too often, so those 9 changes will cause a huge reduction in processing load! I know I could also do this later using the MX admin interface, but it makes sense to me to do it as I am working through the file.
I have a few files that are PHP scripts written as Cumulus templates; each PHP script has a number of PHP variables being set equal to a Cumulus web tag. You can find out about these scripts at Php webtags.
I also have a few Cumulus templates that, like the standard ones I don't use, generate web pages and embed a lot of Cumulus web tags. I have had to edit these templates as in some cases the web tags have date/time output format parameters.
I mentioned some of my web pages are generated from my own Cumulus templates. Despite now having Cumulus 1 and Cumulus MX templates with different names, these still both generate remote web pages given the same names, so I don't need to alter any navigation between pages on my web server.
In the "[NOAA]" section I had MonthFileFormat="NOAAMO"MMMyyyy".txt" on a line, I checked at Webtags#The_format_used_for_naming that 'MMM' and 'yyyy' were valid in Cumulus MX as well as in Cumulus 1, they were, so no edit needed either to that line or to "YearFileFormat="NOAAYR"yyyy".txt" line.
In the download, there is a file "\CumulusMX\Reports\.gitignore" provided. In this same MX folder, I copied in the 200 or so report files I currently have in "\Cumulus\Reports". Remember you don't need to rename these files, it is only how that naming is specified in the settings that might need changing.
Next I see there is a "MXdiags" folder, so I don't copy across the Cumulus 1 "diags" folder. Equally I don't change anything in the new MX "webfiles" folder, but I do copy across to my web server the "cumuluscharts.js" and "logoSmall.png" files I see there that I have not seen before.
So left to last is the "data" folder:
I have copied all files from "\Cumulus\data" to "\CumulusMX\data" (except log.xml as MX uses a different file and MX does not provide a way to read the XML file into its diary.db).
Some of my .ini contain date-time entries like "12/03/2019 14:50:45". I'm assured MX can read these, although it changes a date time like that to "2019-03-12T14:50:45", but I am waiting to see if that is true. I use the full stop character for all my decimal points, but if you use decimal commas, you might find you need to do some editing of your .ini files in this data folder before MX can read them.


When Steve Loft took a new look at the data log files for Cumulus 2, he started with a new design, the principal change was that he decided to use UTC for all fields in them that reference dates and times. Steve struggled with Cumulus 2 largely because he was (at that time) not familiar with the C# language he was later to use for MX. It is fair to say that conversions between local time and UTC did contribute to his failure to get Cumulus 2 to provide the functionality he had offered in the original Cumulus.
== Aside on .ini files in data folder==


When Steve Loft designed Cumulus MX, he was able to learn from his experiences with both Cumulus 1 and Cumulus 2, so he decided to use dates to an ISO specification (ISO 8601 Data elements and interchange formats – Information interchange – Representation of dates and times), but in the local time zone of the particular user, and therefore log files are not [https://cumulus.hosiene.co.uk/viewtopic.php?f=4&t=15167 backwards compatible].
I find after running the CumulusMX engine, that it edits those .ini files it needs to, and the new versions contain date-time entries in the "2019-03-16T12:45:00" style, but despite what I worried about from reading on the forum, I found you don't need to edit beforehand these entries in log files like month.ini as Cumulus MX can read the old formats like "12/03/2019 14:50:45" as well as the new year first formats.


==dayfile.txt==
== Creating the shortcut to run MX==


MX (except early releases) reads the whole of this file as it starts running, so all lines must use exactly the same format.
I right clicked on the "CumulusMX.exe" entry in the top level folder and selected Send to ... desktop (create shortcut) .
Ensure that your shortcut has a Start in: defined as the folder where your executable is stored. This is the most vital setting.
You can optionally change other shortcut properties. I selected to use different settings in the colours tab, so when I have that terminal/console window open I don't confuse it with any other command window I might open. I selected to change options in the layout tab to position the terminal/console window on my second (smaller) screen. I also selected the Start minimised option, as I don't need the window for this MX engine taking up screen space all the time.
I have renamed my shortcut to "MX_run" so I can recognise it as different to the folder name, as I have also created a shortcut for the folder.
On the same right click menu I also selected Pin to taskbar.
When I am happy with MX, I will copy the shortcut into C:\Users\Personal\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ and then MX will start automatically after I (or Windows Update) reboot my PC.


===date format issue===
== One-off extra installation steps==


For MX (from release 3.5.4 onwards), the date separator specified for the locale when you run MX must be used in all lines of this file. Please see [[Amending_dayfile#Date_Separator_in_MX]] for more detail of what MX expects.
I clicked on one of my new shortcuts. Windows Defender popped up, so I told it allow all for Cumulus MX.
I opened my Internet Security premium package, in the "unrecognised files" section I selected CumulusMX.exe then right clicked and selected Change File Rating to Trusted
In the "Firewall" section of the Internet Security package I added port 8998 as one that was permitted.
I viewed my hub (router) to see the IPv4 address allocated to my Cumulus MX computer (192.168.1.64), that told me that I would find the user interface by typing "http://192.168.1.64:8998/" into my browser while the MX engine command window remains open (so MX is actually running), so I typed that and I saw the user interface and navigated around it.
I right clicked on my desktop (you may need to right click on the windows symbol at bottom left), selected command prompt as administrator that opened a command window where I typed


Cumulus 1 allows the date that appears in the first field of each line to use any character (except space) to separate the day of the month, from the month, and from the last two digits of the year. Consequently "29/03/88", "29-03-88", and "29.03.88" are all acceptable in the legacy software (and indeed in some early MX releases).
netsh http add urlacl url=http://http://192.168.1.64:8998/ user=\users


and I got the response "URL reservation successfully added", so I know it worked. This command is apparently to allow all users to bind to port 8998 (i.e. that used for the Cumulus interface). This also means you don't have to run the engine (CumulusMX.exe) in an administrator user, nor select "Run as administrator" from right click menu on the shortcut, nor set the properties for any shortcut to run in any special way.
*See [[MX_on_Windows_OS#Parameter_for_changing_Locale]] for how to specify locale if you are running on Microsoft Windows (by default the locale settings are taken from the standard Windows settings application or Control Panel).
*If you are running MX in a Linux operating system, the locale parameter can be used, but the default locale is determined by the mono-complete package, and that in turn depends on your device settings.


So when you migrate "dayfile.txt", run it through an editor designed for programmers. Many such editors (e.g. Geary, NoteTab Light, Brackets) are available.
IMPORTANT NOTE: I don't use "localhost:8998" for two reasons, first I already have a web server on my PC at IPv4 "127.0.0.1" using "localhost" as an alternative name (and port 81, selected because something called 'Skype' that I don't use had reserved port 80 that I had expected to use), and second using the IPv4 exact "http://192.168.1.64:8998/" address as a bookmark, I can view the Cumulus Admin Interface on my mobile phone which shares bookmarks with my PC and connects to my LAN via wifi.


For example "Notepad ++" is one that is popular. That editor has a "Search" menu, with a '''Replace...''' option within it. In that option, there is a "Find what" box, a "Replace with" box, and a "Regular expression" selection.
== End of my test of MX actions==


Suppose your latest lines use either "." or "-" as separator, and that is what MX expects, but you have some older lines using "/" as date separator. Since you know "/" does not appear anywhere but in the dates with an older format, putting "/" in '''find what''' box and either "-" or "." (as required) in '''replace with''' box will sort you out after you hit "Replace all".
When I am happy to stop using MX, I type Control + C into that MX command window on my PC and MX closes.


It is all a bit technical, if MX expects "/", but you have "-" in some older lines. The complication comes because "-" may be used in value fields too, so you need to find a way of specifying a minus with two digits before it and two digits after it. For this correction you need to select '''Regular expression''' and then set '''Find what''' to "^([\d]{2})-([\d]{2})-" and '''Replace with''' to "$1/$2/". Please check this, as this was copied from a forum post by Mark Crossley and I have not verified it.
== Testing MX while still using Cumulus 1==


===time-stamp format issue===
Obviously, you cannot have Cumulus 1 and Cumulus MX running at same time, accessing same weather station.


The dayfile.txt contains time-stamps following any value that represents a highest or lowest in the day.
If you (like I was to begin with) are just experimenting with MX you may sometimes run one flavour (say MX) and sometimes the other (Cumulus 1).


All such time-stamps must be expressed quoting hour and minutes, with a separator. The use of seconds is not accepted.
Each time you swap, you must copy all the updated log files from the just used data folder to the data folder you are about to use when you close one favour before you start the other flavour, or you must have both executables in same top level folder to force them to share the data folder.


The legacy Cumulus was not fussy on the character separating the minutes from the hour.
Please note, today.ini is a special case, the time-stamp line has a different format in Cumulus 1 (C1) and MX; while MX can read the format that C1 uses, C1 cannot understand the format that MX uses. Remember today.ini determines which stored entries in the weather station console need to be read to "catch-up" and it also holds the various figures that will inform what gets stored in dayfile.txt at the end of the day. So to have this file being read and updated correctly is vital.


MX will only accept colon ":" separator, all dayfile.txt time-stamps must be in "HH:mm" format. You will need to edit your old lines if any use a different separator.
If you don't do ensure both flavours use the same log files (.txt and .ini), various derivatives (e.g. Chill Hours) will become wrong and you may have conflicting rows in dayfile.txt (because its content is generated from what that flavour saw when it was running the previous day) and generally this will be particularly evident in any weather parameter that varies a lot like the wind vector (speed and direction). It also affects what is stored for any derivatives that rely on averaging (temperature, wind run, rain rate) as these are calculated biased towards the actual times when that flavour of Cumulus was actually running, so you can have issues if you run the 2 flavours in different folders/devices as if the other does not exist.


===value format issues===
I have some batch scripts that Cumulus initiates, and a number of Cumulus templates, and in my case I had to be happy these were working before I stopped using Cumulus 1, and got MX as the flavour that auto-started on switching on my PC.


If you moved your Cumulus 1 installation from one windows pc to another, it is just possible that you might have a mix of "decimal comma" and "decimal point" in your values, or you might have changed the field separator (normally ";" or ","). Again, these must be consistent in all dayfile.txt lines for MX, and must match what is defined in the locale used.
I also use output modifiers on a lot of the web tags I use in my custom web pages and it took me a long time to work out the necessary changes to get these templates correctly edited so that MX could process them and produce the web page content I wanted. I am not going to explain all the problems nor give the solutions, because you probably don't have web pages as complex as mine.
2.4.8 My migration from Cumulus 1 to MX


=web server=
My installation of Cumulus MX has succeeded, and as the experiment did help me find a mistake in one of my Cumulus templates where I had not defined input parameters for "Recent History", it has been useful. Initially, I am continuing to use Cumulus 1 for the moment, until I am absolutely sure MX can do everything I want.


Some people have been slow to migrate from the legacy Cumulus to MX because any web pages designed using a [[Cumulus template file]] that works with the legacy software will not work with MX. It is not appropriate for this page to explain how to edit your [[Customised templates]], but it can briefly cover the different approaches for default web pages.
I believe MX will do some tasks better, but there is a lot more to learn about how to use MX. MX does lack some features that I used in Cumulus 1. I found the View Period screen in Cumulus 1, where you could look at any day, week, month, season, or year in the past extremely useful. MX does not have such functionality yet.


From release 3.10.1, the new default web pages have a totally new look (designed by Neil Thomas), and include responsive code allowing them to look better on wide screens and on narrow screens (such as those on smart mobile phones). MX creates a number of [[:Category:JSON Files]] that are used to convey the data from your local MX installation to the web pages installed on your web server. Mark Crossley's [[SteelSeries Gauges|Steel Series]] is used for the MX gauges page. A single "use default web pages" setting sets up the settings required, see [[New Default Web Site Information]] page.
While I was using Cumulus 1, I found with my Chas Olsen Fine Offset I had to define EWpressureoffset=x.y otherwise Cumulus 1 frequently failed to read the correct pressure. In implementing MX, I decided to try without that line in the new Cumulus.ini file; I have not had any problems either when I first ran MX or indeed 2 months later when it is more than a month since I last ran Cumulus 1. Consequently, if you used to have pressure reading problems, you might find you don't with MX.


Steve Loft's Cumulus 1 came with a set of example template files (designed by Beth Loft) that could generate web pages to upload to your web server. It also produced a set of images representing standard graphs that could be uploaded to your web server and shown on the default "trends.htm" page, a set of images representing wind speed and direction that could be shown on the default "gauges.htm" page these were based on'''Web Dashboard Components for FreeWX and FreeWX-Wi''' (no longer available) and mixed images generated by Cumulus with plots drawn using JavaScript routines (before "Canvas" functionality)., and a moon image that was shown on one web page.
Some days after I first started trying MX, I have tried out more MX features, been happy with those, and as MX is now doing all I want I have stopped using Cumulus 1.


=Library software=
I still use my own PHP script to update my database tables, I tried the custom SQL and it does not do all I want.


Any non-technical person can skip this final sub-section!
I have done a little editing of the user interface, partly to discover how easy it is to edit, partly to understand better how it works. For each file I have edited (HTML or CSS) I have kept copy of original and made a second copy of my edited version, so I cam easily go back to original and if I download a new release I won't lose the copies of my edited versions of files.


MX uses a number of library software utilities like Highstock, jQuery, boot-strap, and others, see [[MX_Basic_info#Library_software_for_your_web_server]]. Be aware that MX determines the versions of these it seeks, and they may not match the versions needed for anything on your web server that is not supplied in the MX release distribution. A browser tries to reuse components that are already loaded, so there is a possibility of the wrong version being loaded.
You can judge my progress with trying features, because elsewhere in this Wiki I have expanded the text for those features I have tried and therefore understand.

Latest revision as of 09:33, 26 May 2022

Like other longer pages in this Wiki, the content is divided into sections, if you are interested in a particular issue, find it in the table of contents, rather than reading whole page!

Introduction

This page was inspired by this update from Cumulus 1 forum topic. That post was made in January 2020, and therefore relates to Version 3.3.0, which was the MX release that was in use at the time.

Crystal Clear info.png This page was last partially updated for the MX release available in June 2021; that is no longer latest!

Appeal to contributors: Please work out any updates needed for this page, so it is kept correct for more recent releases!


You might want to read the related page at My_migration_from_C1_to_MX which describes how this worked in practice for release version 3.4.5 (build 3069).

Should I migrate to MX or not?

The legacy Cumulus will never be updated, and as more people migrate to MX there will be fewer people to help you if the legacy cumulus software gives you a problem. MX has a major advantage it runs on more devices, and for example a Raspberry Pi computer is far cheaper to leave on all the time to run MX (knowing it will never be rebooted by Windows updates). The current developer of MX offers support, and other people are also gaining expertise, so if you have a problem you will get help.


Of course MX started with very little of the functionality that the original Cumulus offered, but over time MX has gained more and more functionality. Features in the original Cumulus have been gradually added to MX, but also MX offers a lot that is not in the original Cumulus. See Compare C1and MX page for more on this. 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 still to be introduced into MX. Therefore it is hard to help you understand whether functionality changes between the flavours will suit you.

There are Cumulus users who tried MX, then have migrated back (from MX) to the legacy product; either on a temporary basis (to use a missing feature before they return to MX) or in a very few cases decided to stay with Cumulus 1 (because they prefer it). It is worth noting here that the legacy Cumulus is a stable product with very few bugs, but MX is constantly being developed and thus likely to contain bugs (these obviously vary depending on release as some are fixed and others appear). To put this in context, MX now has a huge amount of functionality and it is difficult for the developer to test all the different features.

Cumulus 1 creates a special log containing just temperature and humidity values, this is NOT available in MX.

Although from version 1.7.5 onwards the original Cumulus counts air frosts and gale days, this feature is not in MX.

The This Period screen that is a popular feature of the original Cumulus software as it tabulates data simply, is not available in MX.

Migrating from original Cumulus to beta MX

The beta builds (version 3.0.0) of MX were designed to make it easy to migrate. This section is based on Steve Loft's wording taken from the support forum with minimal alteration for its new context.

You can move between [Cumulus flavours] fairly easily, but you should really read all the guidance.

  • In particular if you use decimal commas with Cumulus 1, then you MIGHT have issues when MX tries to read existing log files.
  • [For separator characters in dates and lists] whilst Cumulus 1 only takes settings from the control panel in Windows,
    • MX running in a Windows environment, takes settings from the locale you specify in a parameter when starting MX, or the Control Panel in Windows,
    • MX running in a non-windows environment takes settings from the locale you specify in a parameter when starting MX, or the default locale in your Mono installation
    • MX [may] take some [settings from] interaction between the two [the specified locale and the default locale], and MX may struggle to read file [lines] created by Cumulus 1 if the MX locale is not precisely same as settings when that file [line was] created.

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.

How to install MX

The basic instructions for installing MX (see MX on Linux, MX on Windows OS, or Raspberry Pi Image, as appropriate for fuller instructions):

  1. Download the MX distribution (from Software for latest version or from https://github.com/cumulusmx/CumulusMX/releases if you want an earlier release version)
  2. Unzip into the location where you are going to install MX.

'Engine' and 'Admin Interface' for MX

When you run the original Cumulus software it displays a screen (see Cumulus_Screenshots#Main_Screen, and from there you navigate to other screens to view data or change settings.

MX is different, it consists of a stand-alone 'engine' which performs the reading and logging of data, uploading to a web site etc. This 'engine' is a command-line/terminal/console application which has no user interface. It does write diagnostic information to a diagnostic log, but many people run MX on a device that has no monitor and so the terminal output (if any) is not monitored.

When you successfully start MX, the engine is running, and it continues, until it is terminated by control C (or its equivalent in a Mac environment). (You can also run MX as a service, that has different ways to start and stop, discussed in the links given in previous section).

The separate admin interface(unfortunately this is called various names in the support forum, including "user interface", "dashboard", and "interface") is provided by virtue of the engine acting as a web server. You can view the admin interface by typing the URL of the built-in web server into your browser, either on the same machine, or on a separate machine sharing the same local network.

If you install MX on Microsoft Windows, then a few extra one-off steps are needed to allow this web server functionality:

  1. Windows Defender has to be told to allow all for Cumulus MX.
  2. Typically for other security packages, select "CumulusMX.exe" then right click and select "Change File Rating to Trusted"
  3. In any "Firewall" package, add port 8998 as one that was permitted.
  4. Using "command prompt as administrator" type netsh http add urlacl url=http://http://192.168.1.64:8998/ user=\users, the response "URL reservation successfully added" means it worked. This command is apparently to allow all users to bind to port 8998 (i.e. that used for the Cumulus interface). This also means you don't have to run the engine (CumulusMX.exe) in an administrator user, nor select "Run as administrator" from right click menu on the shortcut, nor set the properties for any shortcut to run in any special way.

The default URL if the browser is on the same machine as MX is http://localhost:8998/. Newer releases of MX will tell you an IPv4 address to use, such as by typing "http://192.168.1.64:8998/".

For security reasons, the admin interface should not be accessible via the public internet.

Migrating existing data files from legacy Cumulus to a recent build of MX

If you want to continue using the same weather station, and you are not moving to a different home, you will want to maintain the data you collected using Cumulus 1 in your MX installation. This is what is meant by migration, and there is quite a bit to read, taking up most of the rest of this Wiki page. The Cumulus configuration files for Cumulus 1 and for MX share the same name, but their content is very different, so these are discussed at length in subsections below.

Obviously, you will want to copy ALL (except weather diary which uses a different file) the files in the #"data" folder, from any old installation into the new installation, but migrating these is not always easy, here is a quick summary of the potential issues (all discussed further in various subsections later):

  • When you first run MX, the Start Date is recorded in the configuration file
    • In the legacy software, this date is purely used as something to appear on one of the sample web templates
    • In Cumulus MX, this date controls what data is read from Monthly log files, such as Standard log files, and Extra Sensor Files, any lines in those files with earlier dates are ignored by CumulusMX.exe, ExportToMySQL.exe, and other utilities.
    • You can edit this StartDate=xxxxx parameter, in the admin interface select Station Settings → Common Options → Advanced Options → Records Began date
  • Be aware your new installation has to use the same "locale" as the old installation, or MX will struggle as the locale affects how new lines are stored, and how MX expects old lines to have been stored the same way.
    • The legacy software was fairly tolerant about date formats, and use of decimal commas
  • Cumulus MX is much more fussy than Cumulus 1 about every line in any data file using exactly the same locale formatting:
    • Cumulus 1 is able to accept any character (other than the list separator, and space) being used to separate hour and minutes in time-stamps, MX only accepts a colon ":"
    • Amending dayfile tells you about how MX is far more fussy about the content in dayfile.txt
    • .ini files explains how time-stamps are formatted differently in the extreme tracking files, and how MX prefers decimal points to decimal commas
  • If your old installation, is on a different operating system to the new installation, remember that Microsoft Windows uses different line terminators to all other operating systems, although MX should cope with mixed line terminators, any third party routines reading your data files will probably not accept a line terminator change.

Simplest migration

There is no harm in trying the following steps, but whether this simple approach works, really does depend on what parts of Cumulus functionality you actually use, and how you had your legacy Cumulus working, as each subsection below explains.

  1. Copy the configuration files (Cumulus.ini and the optional strings.ini) from the directory with Cumulus.exe in it to the directory with CumulusMX.exe in it
  2. If you use the Weather Diary, see that cross reference, because MX cannot read the old file, and there is no conversion utility.
  3. Copy all the extreme tracking files ending in .ini and the files with your data ending in .txt in the old Data folder across to MX folder with same name
  4. If you have files in the Reports folder, copy them across to the MX folder of same name, see that cross reference for information about different defaults

File names

Note that if you run MX on a UNIX based operating system (e.g. Linux or Raspberry Pi OS) all file names are case-sensitive, please read documentation to see where capital letters are required in those file names. Be aware that Wiki pages always change first letter to a capital, so do check carefully if that wiki page is describing a file name that must be all lower-case.

Line terminators

If you are not running MX on a Microsoft Windows computer, ideally you should change the characters appearing at the end of every line in every file you move from Cumulus 1.

I say ideally, because although Microsoft is fussy, and determined to be different by insisting files match its choice, most other operating systems can tolerate different line terminators. This means that MX will generally tolerate files using a mixture of line terminators. However, if you are using third-party routines, please be aware that these are often written to expect a particular line terminator, and they may give unexpected results when used with files that do not match that expectation!

With Cumulus 1 (or MX) on Windows, each line in every file ends with both carriage return and line feed.

With MX on a Mac, each line should end with just a Carriage Return.

For all Unix-based operating systems (Linux, Raspberry Pi OS, and other variants), each line should end with just a Line Feed.

To change end of line characters, run each file through an editor designed for programmers. Various editors are available but "Notepad ++" is one that is popular on Windows, but can run on other operating systems. In its Edit menu, choose EOL conversion. On a Linux system like a Raspberry Pi computer, please see Changing line terminators.

If you use PHP Hypertext Pre-processor (php) anywhere on your installation, normally that is written for "Line-feed" as line terminator and any "carriage return" in your files may mess up the content unless you code in a "trim" function to remove it. Hopefully, if you use PHP, you are technical enough to realise you may need to edit the code depending on which device it is being run on!

Configuration file

MX's Cumulus.ini has different content to the legacy cumulus.ini. From release 3.12.0,many more new settings were added, more settings were removed, and some parameters in the file were renamed. The first cross reference, in listing all the parameters, makes it clear which settings were introduced in the legacy software, and which MX release added new settings, this should help you to grasp how many new settings exist!

Differences

The original Cumulus MX beta by Steve Loft was partly written by machine code translation from his Cumulus 1 code, and therefore MX initially worked fairly similarly to the legacy software.

The development of MX since then, has replaced significant coding and it is safest to assume that MX works differently to the legacy software.

This does mean that some settings do have to be changed when moving from the legacy software to MX:

  • Some settings actually have a different parameter name, e.g. Port=n is replaced by Comport=tttttttt, these differences are explained later
  • Some settings work in a different way e.g. the real-time interval in the legacy software is the number of seconds after real-time actions end to when they starts again, so two real-time cycles cannot overlap. For Cumulus MX, a real-time interval kicks off a cycle after the specified number of seconds and therefore you probably need to increase the time in the setting to ensure all actions in one cycle finish before the next attempt starts

Consequently, if you are migrating from the legacy software to MX now, it is best to rename your old 'cumulus.ini file so it is is not seen by MX. Let MX create a new configuration file with just the parameters it needs using the various [MX_Administrative_Interface#Changing_Settings|settings pages in the admin interface]]. That will ensure you don't get muddled by parameters used for Cumulus 1 (but not for MX); and you do have all the parameters you do need, set correctly.

Configuration file naming restrictions

Cumulus 1 can recognise, in some circumstances, "cumulus1.ini", and other variants, not just "cumulus.ini".

MX only recognises "Cumulus.ini". The Windows operating system is not case sensitive for file names. All other operating systems require the first letter of the filename to be a capital, and the remainder to be lower case as shown.

Historical evolution of configuration file

The oldest approach for migration from the legacy software, was to copy across to MX your existing configuration file, and let MX ignore all the parameters that do not apply to it. This worked because the early MX releases had few new parameters, and mostly used the majority of the old parameters.

For any parameters that were not set by the admin interface (and there were many "read-only" parameters in early releases of MX), one assumed these also existed in Cumulus 1 (refer to Cumulus.ini (Cumulus 1)) and so were already in your file.

To add the few new parameters that MX did need (see Cumulus.ini (MX 3.0.0 to 3.7.0) page), you would then go to the MX_Administrative_Interface#Changing_Settings pages and work steadily through ALL the options.

Retaining your old settings as far as possible simplified any migration of data files from your legacy installation into MX, because it ensured you kept to same unit selections, and same extra sensor selections.

At releases like 3.3.0 and 3.6.0, amongst others, there were changes to "read-only" parameters for MX. These could not be adjusted through the admin interface, and needed to be entered manually into the Cumulus.ini file, as instructed on Cumulus.ini (MX 3.0.0 to 3.7.0) page.

Subsequent evolution of configuration file

Substantial changes to settings available were made from release 3.8.0 onwards. The content of the Cumulus.ini file changed drastically, with much deviation from the configuration file used in earlier releases (including for the legacy software), hence Cumulus.ini is a new page describing the settings, and the parameters appearing in the configuration file, applicable from that release.

More changes were made in 3.10.0, and subsequent releases, as settings that previously had to be made directly in file were gradually moved to be advanced settings controlled in the admin interface. In addition, these releases, have added many new settings never encountered in your legacy software.

For example the changes include the (advanced) ability to change the number of decimal places for storing derived values like daily rainfall, sea level pressure, and wind speeds.

Changes to the Default Web Site (diverging away from the Customised templates approach in the legacy software) and implementing the option to use (as was available in the legacy software, and the earliest MX beta, but then removed) a copy action instead of a file transfer action for Your Own Server, has led to many,many new settings. Thus the advice has become abandon your old legacy software cumulus.ini file when you move to MX.


How to make new Settings take effect

The settings pages in MX, work differently to the settings screens in Cumulus 1:

  • 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.
  • The alarms page works slightly differently, with an "Update alarms" button.
  • If there is no Save button anywhere on the screen (as in Extra Web Files) then the setting is saved to configuration file when you move to next field/line, and acted on when you next restart MX.

Be aware that you do have to restart MX after changing certain settings:

  • You certainly need to restart after any changes that relate to weather station input reading
  • You may need to restart after changes that relate to processing of outputs
  • At time of writing there is no list of which settings require a restart
  • Early releases of MX tended to write new settings to configuration file, but not change how the internal code behaved
  • Such settings only took effect on restart, when MX reads the configuration file
  • As MX is rewritten for later releases, the handling of settings is changing, and more and more take effect immediately

Start date

When you first run any Cumulus software (whatever flavour) a parameter is added to the configuration file that documents the date Cumulus was first used.

For Cumulus 1, this parameter appeared in two places on the example web template for all-time records, but was otherwise ignored. Thus if you decided to import into your data logs readings from before you first ran Cumulus, the legacy software would be able to find those earlier records, without you needing to change the date that appeared on the web page.

CumulusMX.exe uses this parameter to determine the first standard data file to start reading from, it will ignore any data files for earlier dates, it will also ignore any lines with an earlier date in the first data file. Thus if you were to migrate your Cumulus 1 configuration file into MX, you should check the StartDate=xxxxx parameter in the '[Station]' section is correct for your earliest data before you let MX read this configuration file for first time. If you need to make any edit, ensure you stick to exactly the same date format.

From release 3.10.1, MX allows you to edit this start date within the admin interface, just select Station Settings → Common Options → Advanced Options → Records Began date. It is "hidden" as an "advanced" setting, with a strict danger warning, because of the importance of sticking to exactly the right date format when you edit it!

Station connections

You can skip this subsection if your weather station connects to MX either by USB or by wireless connection.

This subsection is relevant if your station connects by a serial connection and MX needs to be told which port. It also applies if the serial connection is converted to USB.

If your weather station used a port to connect to Cumulus 1, that port was set on the settings screen as a number and stored in Cumulus.ini_(Cumulus_1) in the station section as a parameter in the format Port=n.

In Cumulus MX, as it runs on various operating systems, the port is specified using text (instead of a number), again you select it within settings, on Station settings page, but within Cumulus.ini in the station section the parameter is in the format Comport=tttttttt.

If your old parameter had a value of 3, and you are still using Windows, the new setting would have value of COM3, i.e. serial port 3 now requires a "COM" prefix.

A typical parameter value for other serial connecting devices might be "/dev/ttyUSB3" where the final digit will change depending on the new connection. You can search for posts on the support forum that talk about how to find out what connection is being used, depending on what hardware you are using.

Fine Offset Read Avoid Setting

The "read-avoid" timer setting for traditional Fine Offset Stations, was intended to reduce the lock-up problem.

This type of weather station consists of some remote sensors that transmit a short burst of readings every 40 seconds (those models with solar sensors do a second transmission every 60 seconds).

The legacy Cumulus 1 software would read data from these weather stations every 30 seconds, i.e. slightly more frequently than the updates, so sometimes it would read the same data twice. The way the "read-avoid" was implemented in the legacy software was that the software attempted to see which subsequent reads were same, and which were different, as the latter indicated a transmission had taken place. Thereafter, a (configurable) delay of a few seconds would ensure thereafter the 30 second interval reads would never clash with the update following transmission.

MX reads the same station type every 10 seconds, with extra processing once a minute, both timings are fixed, based on computer time. Therefore if read-avoid is enabled, then some of the fixed 10 second interval actions will be skipped. The current advice is not to enable the read avoid as the result can be that almost all reads are skipped.

RG11 Rain gauge

If you use a RG11 rain gauge:

  • Replace: RG11port=n and RG11port2 =n (Cumulus 1) where n is a number,
  • With: RG11portName=xxxx and RG11portName2=yyyy (Cumulus MX on Windows)

The new value is a string with values as per previous paragraph depending on device on which Cumulus MX is running.

Other Cumulus.ini parameters

Lots of parameters in Cumulus.ini are being changed as MX is developed. So much had changed by the time that MX releases reached 3.12.0, the first run of that particular release created a brand new Cumulus.ini discarding the old file. If you migrate from Cumulus 1 to MX without stepping through MX releases, you may have several issues, but without knowing which MX release you have selected, all I can suggest is that you work through all settings found in the Settings page of the MX release you choose. Although you could compare Cumulus.ini (Cumulus 1) and Cumulus.ini pages, there is no guarantee that either is totally accurate!

Strings.ini

This is another configuration file, but it is an optional one. Please remember that the Microsoft Windows Operating System is case insensitive for file names, so "Strings.ini", "STRINGS.INI", and "strings.ini" are all treated as the same file by any Cumulus software.

If you install MX on another operating system, then the file system is case sensitive, in this case MX will only recognise "strings.ini".

If you have not created a strings.ini file in your (legacy) Cumulus top level folder, then you have no file to move to your MX installation, and you should skip the rest of this sub-section.

The contents of the samplestring.ini file you get in your MX release distribution varies depending on the release you have downloaded.

Check your existing strings.ini file against the samplestring.ini file in the MX distribution you have. If the attribute names (left hand side of the equals sign) match for the parameters you selected to include in your strings.ini, then you can reuse your existing file. If your file includes attributes that are no longer in the MX samplesting.ini file, then you will need to edit your strings.ini file that is placed in the folder containing CumulusMX.exe. You may also need to add new items into your strings.ini based on new content in samplestring.ini.

NOAA style reports

The generation of reports is an optional feature, if you have never used it your (legacy) Cumulus Reports folder will be empty, then you have no files to move to your MX installation, and you should skip the rest of this sub-section.

Please see Reports_folder for full information. Cumulus software creates reports, it does not edit existing reports, so migration is fairly simple. Just copy the contents of the Reports folder in your original Cumulus installation into the folder in the new installation. Of course, nothing is totally simple, the encoding default changes between Cumulus 1 and MX, and once again we might need to consider end of line characters!

For those of you who are more technical:

  • files created in Microsoft's Windows Operating System use two characters (carriage return and line feed) to end each line, while all other operating systems use a single character (line feed in most Unix derived systems). Apple Mac are again different in using just Carriage Return. This should not cause any problems.
  • files can be encoded (how individual characters are represented by binary codes) by Cumulus in two different ways. There is more about encoding at Reports_folder#Encoding, the relevance here is that if your MX settings and Cumulus 1 settings use different encodings (as they will if you let this default) you may find some characters (e.g. degree symbol) do not appear correctly when viewing some of your reports.

"data" folder

You should copy all files in the data folder from your legacy Cumulus installation to your MX installation if you want to be able to see past data, but as mentioned earlier there are some complications:

Standard log files and other log files

The Speciallog.txt file optionally used by the legacy Cumulus 1, is not used by MX.

The Standard_log_files and any (optional) Extra Sensor Files, from the legacy software can be transferred to your MX installation, but see #Start date earlier on this page, and Calculate Missing Values page to read about extra tasks you may need to do.

MX extends these Monthly log files by adding another optional set of files.

Weather Diary

As explained on weather diary page, the Cumulus 1 weather diary uses a different file to MX, and indeed takes a very different model for how to store the information.

Therefore don't copy Log.xml file into the data folder of your MX installation. You will need to manually use the admin interface Edit menu to access the new diary and add your previous entries one by one.

Please note the editing interface has been changed from release 3.10.1, but the page linked to above may not have been updated. A major change in the upgrade relates to handling of time-zones.

Please also note that the Cumulus 1 weather diary permitted multiple entries to be stored for an individual day, but the MX implementation only permits a single entry per day. Also the configuration file defines a time when the entries stop applying that may not match the rollover time for other weather measurements.

Extreme Record files

The Correcting_Extremes page explains how extreme records are stored in the Category:Ini Files discussed below, with the changes to all-time records being tracked in Alltimelog.txt.

You will find that MX creates at least one file that was not in the older Cumulus (monthlyalltimelog.txt).

the .ini files

Once again, the simple instruction is to copy these from your old installation to your new installation, to ensure your extreme record history is maintained. Once again, differences between Cumulus 1 and MX mean that the process may not be that simple, especially if you try to migrate straight to the latest MX release.

MX releases up to 3.5.4

Your Cumulus 1 .ini files can be read in all release versions from 3.0.0 to 3.5.y. Steve Loft did make two changes in his beta MX, these mean your .ini files may look strange while they have some entries made by Cumulus 1 and some made by MX:

  1. all newly stored values will use decimal points in these files, (i.e. any decimal commas valid in the legacy software, are not used by MX).
  2. all newly stored time-stamps will use the ISO specification (ISO 8601 Data elements and interchange formats – Information interchange – Representation of dates and times) so new dates have year first, the parts of the date are separated by hyphens, and new times use colon (:) between hour and minutes (i.e. the regional settings that the legacy software adopted have been abandoned by MX)
  • MX releases from version 3.0.0 to 3.5.4 can read all the date/time entries in any file whether in the Cumulus 1 format or in the MX format.
  • MX will change any dates to the ISO format only when it needs to update that particular date/time.
  • Consequently, within a single file both formats will co-exist, you may see lines using Cumulus 1 format for the extremes that have existed for a while, and Cumulus MX format for any new extremes.

If you used decimal commas in your Cumulus 1 installation, you will make the migration to MX easier, by an edit of each ".ini" file to change those commas to full stops.

Equally, if you had any times not using a ":" as separator, you will make the migration to MX easier, by an edit of each ".ini" file to change those characters into colons.

MX releases at versions 3.6.x onwards

Migration from the legacy Cumulus to MX has become harder as MX has been developed for two reasons:

  1. It appears that releases at versions 3.6.x onwards have become more fussy about existing content in these files due to changes in the source code.
    • Effectively, the format of existing entries is expected to be same as any newly created entries, i.e. matching current locale settings
  2. The addition of Feels Like temperature and Canadian Humidity Index (Humidex) to the .ini files
    • Neither of these was stored by the legacy software or by earlier MX releases
    • The technique for adding this is described on Calculate Missing Values page

Despite this, most people migrating from Cumulus 1 to the newer MX releases, are doing so successfully, so it works for at least some old files.

Historical background to dates/times

When Steve Loft designed his original Cumulus (1), he had no experience to draw upon as to the best way to treat items like dates. He wrote the software originally just for his own benefit and did not need to worry about time zones. Subsequently as he enhanced his software to make it usable by others, he faced many issues on how to cope with different time zones, and different weather stations having different sensors. In Cumulus 1, he basically focussed on compatibility by keeping to his original design for the data logging files (both those ending in .ini and those ending in .txt, and only adding extra fields to the end.

When Steve Loft took a new look at the data log files for Cumulus 2, he started with a new design, the principal change was that he decided to use UTC for all fields in them that reference dates and times. Steve struggled with Cumulus 2 largely because he was (at that time) not familiar with the C# language he was later to use for MX. It is fair to say that conversions between local time and UTC did contribute to his failure to get Cumulus 2 to provide the functionality he had offered in the original Cumulus.

When Steve Loft designed Cumulus MX, he was able to learn from his experiences with both Cumulus 1 and Cumulus 2, so he decided to use dates to an ISO specification (ISO 8601 Data elements and interchange formats – Information interchange – Representation of dates and times), but in the local time zone of the particular user, and therefore log files are not backwards compatible.

dayfile.txt

MX (except early releases) reads the whole of this file as it starts running, so all lines must use exactly the same format.

date format issue

For MX (from release 3.5.4 onwards), the date separator specified for the locale when you run MX must be used in all lines of this file. Please see Amending_dayfile#Date_Separator_in_MX for more detail of what MX expects.

Cumulus 1 allows the date that appears in the first field of each line to use any character (except space) to separate the day of the month, from the month, and from the last two digits of the year. Consequently "29/03/88", "29-03-88", and "29.03.88" are all acceptable in the legacy software (and indeed in some early MX releases).


  • See MX_on_Windows_OS#Parameter_for_changing_Locale for how to specify locale if you are running on Microsoft Windows (by default the locale settings are taken from the standard Windows settings application or Control Panel).
  • If you are running MX in a Linux operating system, the locale parameter can be used, but the default locale is determined by the mono-complete package, and that in turn depends on your device settings.

So when you migrate "dayfile.txt", run it through an editor designed for programmers. Many such editors (e.g. Geary, NoteTab Light, Brackets) are available.

For example "Notepad ++" is one that is popular. That editor has a "Search" menu, with a Replace... option within it. In that option, there is a "Find what" box, a "Replace with" box, and a "Regular expression" selection.

Suppose your latest lines use either "." or "-" as separator, and that is what MX expects, but you have some older lines using "/" as date separator. Since you know "/" does not appear anywhere but in the dates with an older format, putting "/" in find what box and either "-" or "." (as required) in replace with box will sort you out after you hit "Replace all".

It is all a bit technical, if MX expects "/", but you have "-" in some older lines. The complication comes because "-" may be used in value fields too, so you need to find a way of specifying a minus with two digits before it and two digits after it. For this correction you need to select Regular expression and then set Find what to "^([\d]{2})-([\d]{2})-" and Replace with to "$1/$2/". Please check this, as this was copied from a forum post by Mark Crossley and I have not verified it.

time-stamp format issue

The dayfile.txt contains time-stamps following any value that represents a highest or lowest in the day.

All such time-stamps must be expressed quoting hour and minutes, with a separator. The use of seconds is not accepted.

The legacy Cumulus was not fussy on the character separating the minutes from the hour.

MX will only accept colon ":" separator, all dayfile.txt time-stamps must be in "HH:mm" format. You will need to edit your old lines if any use a different separator.

value format issues

If you moved your Cumulus 1 installation from one windows pc to another, it is just possible that you might have a mix of "decimal comma" and "decimal point" in your values, or you might have changed the field separator (normally ";" or ","). Again, these must be consistent in all dayfile.txt lines for MX, and must match what is defined in the locale used.

web server

Some people have been slow to migrate from the legacy Cumulus to MX because any web pages designed using a Cumulus template file that works with the legacy software will not work with MX. It is not appropriate for this page to explain how to edit your Customised templates, but it can briefly cover the different approaches for default web pages.

From release 3.10.1, the new default web pages have a totally new look (designed by Neil Thomas), and include responsive code allowing them to look better on wide screens and on narrow screens (such as those on smart mobile phones). MX creates a number of Category:JSON Files that are used to convey the data from your local MX installation to the web pages installed on your web server. Mark Crossley's Steel Series is used for the MX gauges page. A single "use default web pages" setting sets up the settings required, see New Default Web Site Information page.

Steve Loft's Cumulus 1 came with a set of example template files (designed by Beth Loft) that could generate web pages to upload to your web server. It also produced a set of images representing standard graphs that could be uploaded to your web server and shown on the default "trends.htm" page, a set of images representing wind speed and direction that could be shown on the default "gauges.htm" page these were based onWeb Dashboard Components for FreeWX and FreeWX-Wi (no longer available) and mixed images generated by Cumulus with plots drawn using JavaScript routines (before "Canvas" functionality)., and a moon image that was shown on one web page.

Library software

Any non-technical person can skip this final sub-section!

MX uses a number of library software utilities like Highstock, jQuery, boot-strap, and others, see MX_Basic_info#Library_software_for_your_web_server. Be aware that MX determines the versions of these it seeks, and they may not match the versions needed for anything on your web server that is not supplied in the MX release distribution. A browser tries to reuse components that are already loaded, so there is a possibility of the wrong version being loaded.