Releases: cumulusmx/CumulusMX
RELEASE CANDIDATE v5.0.0 b5000
RC 5000 Changes from RC 4141
- Now a release build - so debug logging is not enabled by default, please enable it before reporting issues with this build
- Adds the ability to connect a third party sunshine recorder to a Davis WLL station. The recorder must be connected to the rain port of a sensor transmitter and send one pulse for every 1/100th hour of sunshine recorded
- Fix locale formatting issues in the snowfall debug log
- Improvements to the ecowitt.net API retry handling and logging
- Changes to clearing of alarms from the dashboard, and improvements to logging
- Add support for Ecowitt WH52 EC Soil Moisture sensors - only soil humidity for now
- Fix AQ PM10 Average visibility settings being reset on CMX restart
- Change to the snowfall smoothing filter, the Delta value is now a "change per minute" value rather than a change between samples as before
- Fix for the snowfall minimum increment, MX now uses it as a >= value rather than a > as before
- Fix for the Ecowitt HTTP API Station live data task aborting when the station became unreachable
- Now sets the HTTP Referer to the upload site when using PHP Upload, and to https://cumulus.hosiene.co.uk/ for all other HTTP queries
RELEASE CANDIDATE v4.7.0 b4141
RC 4141 Changes from RC 4140
- The snow 24 hour accumulation is now reset to zero after the "snow hour" processing is complete and the extra log file written.
This means that the true final daily total will be available in the first record of the following snow day the same as the daily rainfall total in the monthly log file - Change in laser/snow depth logging to add extra details and to log on values changing as well as once a minute
- New snow depth filtering mechanism implemented. This is a three-stage filter...
-
Stage 1 applies a median filter to the raw values - you can specify the length of time in minutes for the median values. This is good for filtering out sudden spikes.
-
Stage 2 applies a clip to the output of the median filter. The clip limits the step size of the increase/decrease of the output of stage 1 to the value you specify
-
Stage 3 applies an Exponential Moving Average filter to the output of stage 2. This is essentially time based smoothing
-
The default values are:
Laser Units mm cm inch median (mins) 10 clip (laser units) 1.0 0.1 0.04 EMA time (mins) 12.0 -
Note you can effectively disable any stage by setting: median=1, or clip=10, or EMA=1
-
Increasing the filtering also delays the value being updated. The approximate delay is median/1.5 + EMA time/1.5. The defaults will give a 10-12 minute lag
-
You can edit the new smoothing filter values in the Calibration Settings screen
-
Suggested starting Minimum Increments for the new filter: 2-5 mm, 0.2-0.5 cm, 0.08-0.2 inches
-
- Adds Snowfall 24h charts to the Dashboard and default web site
- Fix for data gaps at the end of catch-up for stations using ecowitt.net as the catch-up data source
- The charts navigator selection minimum width is now set in chart pixels rather than data range percent
- The charts selection can now be moved a selection width at a time by clicking outside the selection area in the navigator
- Updated packages
- MQTTnet
- NLog
- NLog.Extensions.logging
RELEASE CANDIDATE v4.7.0 b4140
RC 4140 Changes from RC 4139
- Fix some issues in the Ecowitt Cloud Station decoding extra temp/hum sensors that only send temperature
- Suppress exception message getting WeatherServices from Ecowitt stations that do not support the HTTP API
- Fix extra sensor data input via the JSON Station MQTT topic (was using main station config values)
- Add a short delay between fetching Ecowitt SD card files to try and mitigate the zero length/oddly formated files being sent
- Switches Windy.com uploads to their new v2 API, this now allows upload of solar radiation values
- You can now use the station password instead of an API key to authenticate
- Existing users must add their Station ID to the settings, this is a requirement of the new API
- Fix JSON Extra Sensor Station CO₂ and Lightning values only being applied when run as the main station
- Fix for ecowitt.net historic data catch-up broken in b4139
- Fix endless loop fetching ecowitt.net historic data on certain errors
Important Notes
- First build using Visual Studio 2026, and transitioning to .NET 10.0
- The initial log conversion may take some time depending on the host computer. It is recommended to perform the initial run in a console so you can see the progress and any errors
- Required changes to Ambient Extra Sensor Stations: If you use an Ambient station as an Extra Sensors station, then after upgrading to this release you MUST check which sensors are enabled in the extra station configuration
- Required updated for MySQL users: If you use the standard MySQL uploads, then there are two additional columns in the Monthly table. Please run the table updater in the MySQL settings when you first run this release
- Required update for existing Windy.com upload users: This version of MX switches to using the new Windy v2 API, this API requires you to enter the full Station ID in the Windy Settings
RELEASE CANDIDATE v4.7.0 b4139
RC 4139 Changes from Beta 4137
Required changes to Ambient Extra Sensor Stations
If you use an Ambient station as an Extra Sensors station, then after upgrading to this release you MUST check which sensors are enabled in the extra station configuration
- More adjustments to real-time FTP error detection and reconnection
- Fix Ecowitt HTTP API and Cloud station types not calculating derived temperature values when an extra T/H sensor is mapped to be primary
- Fix IsRaining alarm being immediately cleared after each trigger when using the Ecowitt "Use Piezo IsRaining" setting
- Debug snow logging now controlled via the Program Settings > Logging Options
- Ecowitt HTTP Custom Server auto-configuration for main and extra stations now tries the HTTP Local API to access the station in addition to the TCP API
- Fix a major logic error when applying extra sensor data to the main station - affects most stations
- Web tags are now case insensitive, as are tag parameter keys. Simple parameter values are also case insensitive. Parameter values for date formats etc are obviously still case sensitive
- Fix MySQL error handling to prevent buffering of statements with syntax errors
- Add support for BGT and WBGT to Ecowitt HTTP Local API, HTTP (Ecowitt), and the JSON stations
- New web tags
<#BlackGlobeTemp>and<#WetBulbGlobeTemp> - Two new fields added to the monthly log files and the monthly MySQL table to support these new measurements
- New web tags
Notes
- First build using Visual Studio 2026, and transitioning to .NET 10.0
- The initial log conversion may take some time depending on the host computer. It is recommended to perform the initial run in a console so you can see the progress and any errors
- Required changes to Ambient Extra Sensor Stations: If you use an Ambient station as an Extra Sensors station, then after upgrading to this release you MUST check which sensors are enabled in the extra station configuration
- Required updated for MySQL users: If you use the standard MySQL uploads, then there are two additional columns in the Monthly table. Please run the table updater in the MySQL settings when you first run this release
Version 4.6.4 - Build 4128
Version 4.6.3 - Build 4127
New
- Adds support for Third Party WOW-BE reboot uploads
Changed
- If you have more than one Ecowitt web camera, the web tags
<#EcowittCameraUrl>and<#EcowittVideoUrl>now accept a parameter ofmac=1A:2B:3C:4D:5E:6F(eg.<#EcowittCameraUrl mac=3C:8A:1F:B3:2B:A2>) to return the matching camera from your account.
If omitted the parameter defaults to the first (or only camera) found on your account - HTTP Files now accepts the URL values
<ecowittcameraurl1>to<ecowittcameraurl8>in addition to the original<ecowittcameraurl>which downloads the first camera image.<ecowittcameraurl>and<ecowittcameraurl1>are equivalent
Fixed
- MQTT connection failures with "Invalid protocol"
- Fix the "navigator" not working correctly on the wind direction charts in the dashboard and default web site
- Ecowitt SD card catch-up re-coded to improve reliability on some systems
- MySQL settings not allowing you to create/update the tables on initial setup
- Tweaks to the Dashboard and default web site
- Fix forum URL being reset to default on Cumulus restarts. The fix requires you to resave the config once after installing this update
- The station TimeZone being reset to default on Cumulus restarts
- MySQL connection issues if you only upload the dayfile once a day and no other uploads
- Issue where Cumulus.ini says it needs to be rewritten at each start-up
- Missing navigation images at the bottom on the Extra Web Files settings page
Version 4.6.2 - Build 4122
New
- You can now clear alarms by clicking on them in the main dashboard screen
Fixed
- Fix Startup MySQL catch-up not working in v4.6.0 and v4.6.1
Package Updates
- Microsoft.Win32.SystemEvents
- NLog
- NLog.Extensions.Logging
- System.CodeDom
- System.IO.Ports
- System.ServiceProcess.ServiceController
Version 4.6.1 - Build 4121
Fixed
- Davis cloud station not decoding current data
Version 4.6.0 - Build 4120
New
- Adds support the Ecowitt WH45/46 CO₂ sensor values on the HTTP API
- Adds support for the Ecowitt WN20 battery status monitoring
- Adds RSSI value (if available) to the Ecowitt sensor list logging
- A new Alarm for Cumulus MX general errors, triggered every time something is written to the Recent Errors log, and cleared when the log is cleared
- Adds Soil Moisture upload to Met Office WOW for stations that report the moisture level as a percentage
- Snow values added to the websitedataT.json file
- Cumulus MX now handles Windows shutdown/restart and console window closure gracefully
- EARLY DAYS support for Cumulus MX general localisation of the Dashboard interface. The implementation details may change depending on feedback or tuning etc.
- AI2 is excluded for now
- The HTML and scripts strings are in
/locales/dashboard/- There is one strings file per language
- The settings strings are in
/locales/dashboard/json/{language}- There is a folder per language, and a language strings files for each settings file
- Change the display language in Program Settings > Culture Overrides > Display Language. Only those languages with translation files will be selectable
- New option to force the am/pm time designators to lower case. See Program Settings > Culture Overrides > AM/PM Format
- The MySQL settings now has an advanced section where you can force the SSL mode and the TLS versions to use for connections
- Month web tags
<#MonthTempAvg>,<#MonthRainfall>,<#MonthDryDays>,<#MonthWetDays>will now accept a relative month parameterr=-Norrelmon=-Nas an alternative to a specific year and month
Where: 0 = current month, -1 = last month etc. - Year web tags
<#YearTempAvg>and<#AnnualRainfall>will now accept a relative year parameterr=-Norrelyear=-Nas an alternative to a specific year - Add lightning data input to JSON Data Station
Changed
- All dashboard and default web site graph data files now use true UTC time stamps
-
Previously they were "pseudo-UTC" to force the graphs to display the station times rather the viewers time zone
-
Highcharts version used by the dashboard and default web site updated to v12.3.0 to support this
-
The charts will now render correctly at DST changes
-
IMPORTANT: You must upload the latest versions of the default web site pages and scripts files to support this change
-
IMPORTANT: If you have your own versions of Highcharts scripts, then the relevant change is from:
{ time: { useUTC: true } }To (substituting your stations time zone):
{ time: { timezone: 'Europe/London' } } -
You must also use a version of Highcharts later than v11.2.0 - Cumulus MX now uses v12.3.0
-
- There is a new option in Station Settings > General Settings > Location to manually change the time zone used in the charts
- Added Davis Cloud API UUID option to the Configuration Wizard
- Add a retry to downloading Ecowitt SD card files on error or if returned file is empty
- The FTP log files have changed naming convention (to work better with the new version of NLog)
- The latest file (if more than one), will be one with the highest value for NN for today:
ftp-<logtype>_YYYY-MM-DD_NN.log - You will need to manually delete any old log files that use the old naming convention of:
ftp-realtime-N.logorftp-interval-N.log
- The latest file (if more than one), will be one with the highest value for NN for today:
- CreateMissing updated to v2.1.0 to fix the daily rainfall calculation on rain counter reset at rollover, and add support for evapotranspiration calculation
- Improvements in the Cumulus MX shutdown process - it should now be much faster
- The JSON and Tempest stations now use the same Sea Level Pressure calculation as all other stations
- All logging to log files is now asynchronous. This means a change to log file naming scheme for the main MX diagnostics
- The latest log file will always have filename: MxDiags.log
- Archiving:
- Archived files will have the date/time appended: MxDiags-YYMMDD-HHMMSS.log eg. MxDiags-250726-115412.log
- Archiving occurs when log files have exceeded 12MB in size
- Archiving also occurs when you start Cumulus MX, the existing MxDiags.log will be renamed to a timestamped filename
- The timestamp on archived files is the time of the last entry in the file, not the first
- The maximum log file size has been decreased to 12MB, but the number of archives retained increased to 20
- You may notice the logged event times only increment every 16ms, this is an efficiency thing!
- Logging of JSON responses from the Ecowitt Local HTTP API now compacts the output by removing line feeds and tabs from the text
- Improvements to the dashboard Select-a-Period graphing
- This now uses the meteorological day you have defined, and the pm2.5/ pm10 values are now pulled from the log files rather than the time restricted recent data
- Adds a default User-Agent header to all HTTP requests of "CumulusMX/4.6.0.4107" - or whatever the current version/build is
- The dashboard charts now honour the time format setting in Program Settings > Culture Over-rides
- The new default for the charts is to display in the web browsers TZ settings format
- The system uptime is now obtained differently; this allows the removal of the System.Diagnostics.PerformanceCounter package
- The Dashboard screen now fully reflects your time presentation choices in Cumulus
- The MySQL updates now use a single persistent connection rather than reconnecting for each upload
- A minor change to an error message format in
upload.php - Ecowitt SD card catch-up data now has the timestamp for each interval rounded to the SD card logging interval (Ecowitt do not create the log entries according to clock time)
Fixed
- Bug in Ecowitt.API ApplyHistoricData: AQI = Nullable object must have a value
- AirLink log files being one comma short if only an indoor AirLink is in use
- Unlike the other log files, the monthly log file name generator did not have the check to remove "dots" from the yyyyMM date part of the filename
- Ecowitt HTTP API station not triggering the firmware alarm when new firmware available
- Handling of cached MySQL statements that are in error because of bad syntax or reference errors
- An error in the Ecowitt SD card log file handling that removed the corresponding Allsensors log file from the processing list if the primary file did not contain any dates in the required range
- Ecowitt historic catch-up from SD card was not setting the DataDateTime variable
- Ecowitt Cloud station decoding of CO₂ 24-hour PM values
- Ecowitt Cloud station 24-hour CO₂ PM values are now "kludged" from the 24-hour AQI values supplied by Ecowitt
- JSON Data Station not saving the MQTT server name
Version 4.5.2 - Build 4105
New
- Editing rainfall values in the dayfile now automatically updates the yesterday, week, month, year totals without restarting Cumulus MX
Changed
- FTP watchdog now creates its temp file using the path specified in the Internet Settings
Fixed
- Fix Davis AirLink badly formed URL when requesting health data for standalone sensors
- Fix Davis VP2 Extra T/H handling
- Fix and improvements to Ecowitt SD card file handling with timestamps
- Error starting v4.5.1 on Windows systems below version 10 - "Unable to find an entry point named 'PowerRegisterSuspendResumeNotification' in DLL 'Powrprof.dll'!"
- Fix Wunderground upload error - TimeSpan overflowed because the duration is too long