About Cumulus

This page was written for the original (legacy) Cumulus software. Somebody needs to create a replacement page for MX, as described in posts here.
= What is Cumulus software =
Cumulus is free software for retrieving, storing and displaying data from an electronic Automatic Weather Station (AWS). 
Cumulus was born in 2003, when Steve Loft decided none of the weather software available suited his needs, so he wrote something that did do what he wanted.
It offers a lot of features, here, in case you are wondering about trying this software, are the key ones:
* Support for data loggers (no 24/7 running needed)
* Display of additional sensors
* Support for WMR-100 and WMR-200
* Direct support for Fine Offset stations (no need for EasyWeather)
* Support for LaCrosse stations (WS2300 etc)
* Support for Davis WMII
* Cumulus screens for viewing data and configuration
* Web pages
* Data stored in simple text files
* Supports Meteorological day
= Features of Cumulus Software =
If you have not used Cumulus before, and are wondering whether to explore it further, this article is for you,
If there is information that you would like to see added to this page, either add it yourself (you need to register), or put your suggestion in the correct Support Sub-Forum. Thank you.
== Key Features ==
#How much does Cumulus cost?
#*Cumulus is totally Free for personal and non-profit use,
#*(Steve Loft who was the original developer called it shareware and said "a donation would be appreciated if you continue to use Cumulus after trying it")
#*Please note: since Steve retired from developing Cumulus, the donation option for Cumulus has ended, but there is a donation option for Steelseries options used in MX.
#What devices does Cumulus run on?
#*Cumulus 1 runs on Windows XP, Windows Vista, Windows 7, Windows 8.1, and Windows 10.
#What weather stations does Cumulus work with?
#*Cumulus 1 Supports Davis Vantage Pro and Pro2; Oregon Scientific WM918, WMR-918, WMR-928, WMR-968 weather stations; EasyWeather stations (MyDEL, Nevada, Watson, Fine Offset, WH1080, WH1081, W8681, FWS-20 etc); La Crosse WS-2300, and other models in the WS23xx range.
#How can I view the weather derivatives calculated by Cumulus?
#*Whatever units your weather station uses for the weather readings it provides to Cumulus, Cumulus will derive values in your chosen units, and calculate other values derived from combining say temperature, humidity and wind speed.
#*Cumulus 1 has a simple main screen summarising all the current weather shown on PC running the software, from that various menu options give access to settings screens, graphs, screens to show extremes for any period, screens to correct errors in your extreme records, screens to view log files, and screens to edit log files and extreme files.
#A key feature of all Cumulus flavours is they give you a choice of meteorological day
#*The choice is between midnight to midnight or 0900 to 0900 (optionally during summertime only 1000 to 1000). This enables you to emulate official weather stations that work on days starting at 9am.
#*Where you do use a 9 am start, all weather observations are attributed to the calendar date when the meteorological day starts.
#*Cumulus will not automatically log minimum temperature against the date when the meteorological day ends as per official meteorological practice nor will it attribute some other parameters to the calendar date. But since Cumulus makes all the values it derives available, this processing can be done outside Cumulus to ensure your own web pages show correctly according to meteorological practice.
#How frequently does Cumulus update its outputs?
#*Cumulus can upload information at a default period of every 15 minutes, but this can be varied to suit you. There is also functionality to do some actions after a meteorological day has ended, in Cumulus 1 this is very basic.
#*You can optionally also use real-time uploading, set at a much more frequent interval to upload files relating to current conditions.
#*Cumulus 1 offered real time web display of wind speed and direction using Silverlight software that is no longer functional
#Can Cumulus upload to external home automation servers or other sites that accept weather records?
#*Yes, there is automatic generation of xAP home automation weather reports, and uploads to external web sites.
#*these include: Weather Underground, CWOP/APRS, PSW Weather/WeatherForYou/HAMweather, WOW, Twitter
#Can Cumulus upload to a personal web site?
#*Yes, there are ready-made web template files supplied that can create web pages. Plus all the information that Cumulus outputs is available in web tags that you can incorporate into your own web templates for Cumulus to upload for you as web pages.
#*Cumulus (legacy) can only upload by either doing a copy to a web server you host yourself, or via simple file transfer protocol (FTP) to a hosted web server, however few commercial hosting still permits FTP (so you may need to migrate to MX which allows FTPS or SFTP).
#Does Cumulus warn me if the temperature is very high or very low or other extremes happen?
#*Yes, configurable alarms for various conditions
#Does Cumulus provide any non-weather information for my web site?
#*Yes, Cumulus will provide times for sunrise, sunset, and a selection of parameters about the moon including an image to show current phase.
#*Cumulus also includes a Weather Diary, here you can any text you like to any day, and record whether snow is falling and what depth is lying.
#What help and support is available?
#*Comprehensive help file included in Cumulus 1
#*This wiki is an extensive documentation feature capturing all that people have said or asked about in the past
#*Free support available in the support forum.
== What does it look like ==
All the screen shots are shown on Cumulus_Screenshots page.
== Periodic Actions ==
Cumulus reads data on a frequent basis. As it reads data, it can express these readings in units you choose, it can calculate some derived values, and it can track daily totals, daily extremes. Monthly and yearly totals and extremes are also tracked. All-time extremes are also tracked, both for all months, plus for same month in all years.
 It can do actions at a standard interval, plus at end of day. Optionally, a real time interval can be enabled. 
=== Reading Weather Station ===
When Cumulus software (of any flavour) interrogates the weather station for more readings, (which is done very frequently) it compares the readings against those read earlier, so it can maintain a whole series of extremes (maximum and minimum in each day, each month, that month in all years, each year, and all-time).
Given that weather stations are prone to having hiccups in their output:
*Cumulus can (for some weather station types only) compare the latest reading with the previous. If the discrepancy is large (and this can be configured), then the new reading is rejected
*If Cumulus is reading a item that should not suddenly decrease (such as a rain counter) then Cumulus can detect whether that is a new starting value or a faulty value
*If a particular reading is not valid, then for up to 6 reads, Cumulus can substitute the last good reading for the invalid one. After those 6 rejections, Cumulus will normally stop work properly and the output value will remain at zero (as Cumulus does not have ability to use "nulls).
*Because temperature, humidity, wind speed, and pressure, are used for calculating derived values, a failure in any of these source sensors will result in incorrect derived values, and may cause Cumulus to stop some processes.
=== Real Time Interval ===
These actions are optional:
*you need to enable the various possible actions at a real time interval, as well as selecting the time interval between the end of one set of actions and the start of the next set of actions. 
#Cumulus 1 and MX can produce a realtime file for external systems to use:
#* Cumulus 1 uses it for the optional wind graphics on its gauges pages
#* MX does not use this file for any functionality it offers.
#Cumulus 1 and MX can upload files to a web server at this interval
#*Cumulus MX (only) can upload a new row for a database table at this interval, the default content resembles the realtime file
=== Standard Upload Interval actions ===
At this interval, and you can change the time between these actions, Cumulus (of all flavours) will process templates that create web pages, upload other files, and (MX only) run SQL to update a database for you.
=== Logging Interval ===
This is when Cumulus stores, the set of readings it has processed, in a detailed log created specially for each individual month. It does NOT record the maximum and minimum since the last log entry, it just a snapshot of the readings at that logging time, so it is unlikely to capture extremes.
You need to have an external processing system looking at any real-time output to have a better chance of capturing the true extremes.
== Special Features ==
#A key feature of Cumulus software, although only a minority of users utilise this feature, is its ability to mimic what many professional meteorologists do by starting a new meteorological day at 9am GMT (or your local time) with the option of either still using 9am in summer time (Daylight Saving Time - DST) or keeping to 9am GMT in summer by changing at 10am DST. This latter option preserves 24 hour long days even when the clocks change. Alternatively it can start each new day at midnight, and have shorter or longer days when the clocks change, this is the option that is slightly more popular.
#Another feature of Cumulus is that it can work with a number of different AWS, see suitable AWS list, most of these connect by a wire to the device that you are running Cumulus on. A side-effect of this is that it it tries to use as much common code that will work with various makes as possible, and is not specifically designed for, nor ideally suited to, any one make.
#Another key feature is that Cumulus reads the basic temperature, humidity, pressure, rain, and wind, readings from the AWS, but its outputs include many derived weather values. 
#*Regardless of whether the AWS can calculate the highest and lowest values, Cumulus can (and for 9am to 9am if required), 
#*it can combine the temperature it reads and the wind strength it reads to calculate current wind chill and also calculate the greatest wind chill in a day, month, year, or all-time, 
#*it can also take into account humidity to calculate apparent temperature, Heat Index, Humidex, and feels like values 
#*Cumulus can count the time when the temperature is above or below configurable temperatures:
#**The total number of hours below a set values (default 7 Celsius) is output as a total for a season and named Chill Hours, you can tailor which month the count restarts each year. 
#**Taking into account the number of degrees away from the threshold the temperature is on each reading, Cumulus will calculate "Heat_Degree_Days" and "Cool_Degree_Days".
#*It can track the duration for each observed wind speed and calculate wind run for each day, it can report the day each month (or year, or all-time) with the highest daily wind run
#*Cumulus also tracks the actual rainfall over each 5 minutes and uses that to calculate a rain rate; it can report the highest hourly rainfall in a day, a month, a year or all-time; and it can report the wettest day in a month, year or all-time.
#From 1.9.1 beta builds, Cumulus introduced tracking of highest/lowest extreme records in current month Month.ini, and year Year.ini.
# Cumulus also includes a weather diary where you can record (in free text) any aspect of the weather for a day that your AWS does not capture, this diary includes ability to record for each day if snow is falling, if snow is lying, the snow depth, and from the last it can calculate a snow index for a month or for a winter.
# Cumulus also produces monthly climatological reports summarising the weather each day of that month, and a yearly climatological report summarising the weather each month of that year.
# Cumulus includes some templates that it processes to generate web pages, and provides hundreds of web tags that you can incorporate into templates of your own that Cumulus will process into scripts or web pages for you; there is a choice of how frequently this processing happens
#Cumulus also has the ability to launch external processes, at its "real-time" processing interval, its "normal updating" interval or as it is processing the daily "rollover" to a new meteorological day.
== Outputs to external web sites ==
Cumulus will store full weather records, along with daily and all-time records, and graphical data. Cumulus can upload its data to a web server and comes packaged with template web pages for this purpose. Cumulus also supports automatic uploads to Weather Underground, PWS weather, Weatherbug, WOW, CWOP/APRS, Windy.COM, Awekas and Weathercloud.
==Supported Devices==
There is a full list of Supported Devices
==Web pages==
Steve Loft once described the web pages his wife designed and he provided with Cumulus with these words: "They exist because they're our web pages, and they're really only included with Cumulus as examples of how the web tags work. It never occurred to me that most people would simply use the supplied examples instead of creating their own pages!" 
Web pages included:
*Current Conditions
*Gauges (in Cumulus 1 with real time wind display, in MX using Steel Series dial representations)
*Current Meteorological Day: Maxima and Minima
*Previous Meteorological Day: Maxima and Minima
*This month and this year: Maxima and Minima
*Monthly Records: Maxima and Minima
*Monthly-all-time Records: Maxima and Minima
*All Time Records: Maxima and Minima
*Trend Graphs (in Cumulus 1 the graphs shown are generated by the software as images; in MX the software generates the figures for plotting in Json files, the graphs are then drawn from those figures)
The standard menu navigation allows for inclusion of both a support forum link and a link to a webcam. Both of these links go to a URL that is defined in the settings. There is nothing to stop you putting a URL for some other web page on your site or to another external web page in these settings so you can use existing links in the provided web pages (although it would be less muddling if you changed the text for the links on the web pages. 
Be aware that in the supplied web pages, where there is a table (as on all web pages other than gauges and trend graphs) the standard menu is placed within the table and stops the table resizing to fit the screen width of device you are viewing those web pages on.
Custom web pages can be achieved through the use of web tags added to any HTML/CSS layout.
==Help and Support==
Cumulus 1 includes a comprehensive Help File, this can be downloaded from here if you are using MX, but the format used can only be read on windows operating system.
To read more about this Wiki see About Cumulus Wiki.
There are pages within this Wiki contents page that discuss:
*Frequently Asked Questions for Cumulus 1 (although it has some applicability to MX and does discuss weather station positioning; and a new one for Cumulus MX (only rough outline at present)
* each of the configuration and log files, 
* list the web tags available, and how to use input and output parameters with them
* give guidance for setting up a web site whether using the provided template pages, or ones you have edited/created, plus other "web tips"
* some 3rd party apps and tools that can be run on your web site
* weather terminology, explaining the various terms that Cumulus uses, the way that derivatives are calculated, and the ways that your weather station can measure what it reports to Cumulus
Further help, support, and discussion is available on our Forum. Anyone can read the forum. You will need to register to be able to see attachments or post to the forum. Please submit bug reports and requests for enhancements there. You will find a guide to how to capture a what is on your screen in this wiki, as that can be useful when requesting support. You may also be asked to supply various files to help diagnose your problem. Do that by using Zip to compress all the requested files, then below the window where you post your response click on the tab labelled attachments for further instructions.
==Donations & Sandaysoft==
Since Steve Loft stopped developing Cumulus, there has been no mechanism for donating.
a note from the original developer...
Sandaysoft was the home of Cumulus, software to help you make the most of your weather station. When I wrote it I was located on the island of Sanday, in Orkney, off the north coast of Scotland in the UK. Cumulus is donationware. If you like the software and find it useful, please make a contribution towards the continuing development of Cumulus. 
I rely on your donations to allow me to buy the software that I need to continue improving Cumulus. 100% of any donation received goes towards software development, either towards the cost of new development tools or the cost of hosting this site. I and my wife didn’t make a profit from Sandaysoft - when I was writing Cumulus 1, 2, and 3, I had a full-time job and Sandaysoft was one thing we did in our spare time.
Donate via PayPal THIS LINK MAY NO LONGER WORK
Steve Loft
= Flavours =
== Cumulus 1 ==
This is no longer developed and runs only on a device using the Windows operating system. 
There are large numbers of web sites (both private and public) using Cumulus 1 and it is probably the simplest version to install. However, there is no source available, and no author knowledge available (other than what appears at FAQ for Cumulus 1 and other pages in this Wiki. 
The current stable version is 1.9.4 (28 November 2014). This is an installer, run it and it will install all the functionality and files that you need.
If you want to use Cumulus 1, after you have installed the above download, download patch 2 (28 Jan 2020) as that patch will changedthe drop down year selectors to allow selection of future years (to 2030) as well as past years. The non-patched version will accept you typing in any dates, but the drop-down selectors can only display 2000 to 2020.
== Cumulus 2 ==
This is no longer available as it never worked satisfactorily. The final release was launched at https://cumulus.hosiene.co.uk/viewtopic.php?f=2&t=3266.
While Cumulus 1 uses a "rain counter" and derives everything it reports from that (with some problems and complex code to cope with odd changes in the counter), Cumulus 2 used directly what each weather station was reporting for rain, and tried to adjust that into daily (e.g. 9am to 9am) rainfall; this was not as easy as Steve Loft expected.
While Cumulus 1 used local time, (with some oddities when daylight saving time started and finished), Cumulus 2 logged everything in UTC, the idea was to avoid issues with time zones, but actually implementing that for Cumulus users all round the world was not as easy as Steve Loft expected. 
Steve Loft designed Cumulus 2, so the units you selected effected how a value was shown, but not how the value was stored. Consequently in Cumulus 2, as all values were stored exactly as output by weather station, you could easily change units for display at any time. You can read more at https://cumulus.hosiene.co.uk/viewforum.php?f=17.
Steve Loft felt he wasted a lot of time working on Cumulus 2, as he found using C# code a real struggle. He stopped, and restarted, its development a few times, before finally giving up. In the end, only a small number of users did use it. There was documentation in this Wiki, but Steve Loft deleted all the pages that related just to Cumulus 2.
Some of its features (you can read more in old Support Forum posts) were incorporated into Cumulus 1.9.1 onwards, and from there into Cumulus MX.
Some other ideas; formed the basis for his Cumulus 3 beta including:
*standardising on ISO format for dates; 
*separating the engine and admin interface; 
*and a few more.
The design of Cumulus 3 (MX) is much more robust, because it has learnt from the pitfalls of Cumulus 2
== Cumulus 3 aka MX ==
Cumulus MX is still being actively developed, it will run on a number of operating systems and has the advantage that it consists of an engine that reads the Automatic Weather Station, does the calculations, and creates a web server. There is then a separate administrative interface that runs in this web server, and lets you see a number of dashboard type web pages and edit settings; it can run on any device connected to your local network (LAN) or wifi, as it just just needs a private link to the device running MX. 
== Should I use Cumulus 1 or Cumulus 2 or Cumulus 3 (MX)? ==
Steve Loft (who originated all 3 versions) had no recommendations one way or the other. However, since he focussed on enjoying retirement and withdrew from involvement in Cumulus, a lot has changed.
Now newcomers should probably choose Cumulus MX, but read on if you are not sure.
Cumulus 1 is a finished version, with very few bugs, but because the development environment is obsolete no further changes are possible. That said there have been two recent patches to the screen interface, allowing dates from 2021 to 2030 to be selected in drop downs, but the core code will never change. Although there remains some expertise with Cumulus 1 established users, any newcomer may prefer to choose a MX as that has more technical support available. Cumulus 1 is reliable, it has in-built functionality to cope with problems if your weather station set-up experiences problems. However, you may not be able to use this (legacy) Cumulus software:
#If you use one of the new weather station models, as the legacy Cumulus does not support these (you would need to find a way to make your station output to a format it does understand)
#If you want to upload to a web server using a secure file transfer protocol, as the legacy Cumulus does not support SFTP or FTPS directly (you can get it to run external scripts)
#If you want to run Cumulus on a Linux computer, the legacy Cumulus will only run on a Microsoft Windows device
Cumulus 2 explored an improved data approach using UTC and having better handling of rainfall. Although it was hoped it would make enhancement easier, and allow use of alternative languages possible, it proved too complicated. and has been abandoned and is no longer available, so (if you don't already have it) hard luck. Subsequently, some of the developments in Cumulus 2 were ported into new version 1.9.0, and remain in final Cumulus 1.9.4 from where they were in turn ported to Cumulus 3. Also having learnt lessons from the failure of Cumulus 2, Cumulus 3 has gone back to the rainfall counter method of deducing all rainfall reported, and has adopted local time (not UTC) for logging data. So whichever of the two versions still available you choose, you are benefiting from work done for Cumulus 2.
Cumulus 3 was released by Steve Loft as MX beta. It is using a different architecture (partly inspired by Cumulus 2). The MX beta (version 3.0.0) lacked much of the functionality in the legacy Cumulus, consequently it was only suitable for very reliable weather stations, and people who did not need editing functionality.
The development of Cumulus MX, by Mark Crossley, has completely transformed the product (see below). Somebody who uses the new features in MX needs to produce a functionality guide for MX that provides similar information to that appearing here for the legacy software.
=Cumulus MX=
As noted at start of page, this page was written for the legacy Cumulus software. Since Mark Crossley has taken over development of MX:
*He has taken it out of beta
*He had added code to cope with weather station problems
*He has added code to cope with new weather stations
*He has added code to allow editing of log files and extreme records
*He has added much new functionality
*MX has some bugs, there is more development to do
*MX is however now the supported flavour and newcomers now install it (and experienced legacy Cumulus users migrate to MX)
Here are some of the MX differences.
== MX Key Features ==
Despite MX being more complicated to get to know, it does offer more features and can connect to more AWS than Cumulus 1. This is not the place to list all extra features, but it can output to a database, it maintains its file of extremes for a month and year beyond the end of those periods, and adds the ability to process a file only at end of each day.
#*Cumulus 3 (normally known as MX) runs on Microsoft Windows 10 Operating System, plus all devices running a Unix type environment (such as Linux and Mac OS X)
#*Commercial use of Cumulus MX is not permitted due to library software used with it
#*Cumulus MX adds further modern stations to the list see Supported Devices page for up-to-date details.
#* Cumulus MX generates an admin interface that is viewed (on your local network) using a browser. Tabs in that interface give access to settings, charts, a summary dashboard, a tabular current conditions, a tabular today/yesterday summary, and the extremes for various fixed periods
#*The screens in the MX admin interface use ajax to interrogate application programming interfaces that will show updates as frequently as your weather station can provide them.
#* For MX, MQTT is added for home automation and windy is added to external web sites.
== What does MX look like? ==
MX also provides an admin interface, that is used for 3 main purposes:
#Entering all the settings
#Editing the extreme records, and viewing/editing the log files
#Looking at the weather readings and derivatives, there is a summary dashboard (a replacement for Cumulus 1 main screen, this is where alarms are heard), and screens for current conditions, today/yesterday, this month/this year/monthly all years, monthly reports, yearly reports.
Building up a library of screen shots for MX is planned, when development slows down (so it is not a moving target). Meanwhile, a number of the MX screenshots, as they used to be, is currently still available at CumulusMX-with-a-home-weather-station
== Outputs to external web sites ==
Cumulus will store full weather records, along with daily and all-time records, and graphical data. Cumulus can upload its data to a web server and comes packaged with template web pages for this purpose. Cumulus also supports automatic uploads to Weather Underground, PWS weather, Weatherbug, WOW, CWOP/APRS, Windy.COM, Awekas and Weathercloud. 
Releases after 3072 include an interface to MQTT which allows users to feed data to their home automation systems (e.g. you can feed internal temperatures from your weather station to your home automation system to control your central heating).
== End of Day Actions ==
Cumulus software of all flavours as already mentioned can support various times when the meteorological days end. As the new day starts, Cumulus does a lot of actions, here is the list for MX:
Entering Day Reset (message about current day of month)
Day Reset (message about date ending, time shown as 00:00:00 because time not defined, not because it is midnight, it might be 9am or 10am)
Run EOD standard or custom SQL (the SQl is updated every time readings are updated)
Custom Http EOD call
Create line to append to dayfile.txt (this does hold extremes for each day)
Open dayfile.txt
Update dayfile.txt
Read Rain Counter
Update today.ini with yesterday's rain
Write yesterday.ini
Create NOAA monthly
Save NOAA monthly
Create NOAA yearly
Save NOAA yearly
Run EOD External Program
Processs any Extra Files with EOD option selected
Day reset complete
Read readings from weather station to assign to start of new day
Create daily backup folder to hold files as at start of new day
Copy all files from data folder (plus Cumulus.ini_(Cumulus_1)) into new daily folder
Resume normal operation of reading station, processing real-time and standard time interval functions
In the first Extra Files with standard interval FTP upload, add upload of NOAA files and Extra Files processed at end of day
You will see that if you set your standard logging interval to 10 minutes, and this end of day action was triggered at 10am, it would not finish until after 10:10am, so it is crucial not to have a power cut or anything else affecting the running of Cumulus throughout that period. Do not stop Cumulus after it starts processing end of day. For early versions of Cumulus 1, there was extra processing in the same interval before roll-over, so you could not restart Cumulus just before rollover was due.