Release Notes

This page contains the complete release history of CumulusUtils as a reference. It is not meant to be a linear read but should be searchable.
 
__TOC__
==== Version 7.4.3 (12/02/25) ==== 
#ExtraSensors: Fix in errorhandling to accommodate the IgnoreDataErrors parameter (similar for Monthly Log reading, External Sensors, AirLink)
==== Version 7.4.3 (12/02/25) ==== 
#CustomLogs: In the table showing the webtags, the output qualifiers (like rc, nv etc... are removed)
#Top10: reordered first on dateTime and than on the attribute such that with equal values of the attribute the newest comes first.
#Diary: Now a parameter Diary exists (section Diary) which if false does not generate the module and removes the menu item. Default is true.
#CustomLogs: Webtags SnowAccum24h[1-4] added.
#CustomLogs: Webtags SnowAccumSeason[1-4] added.
#Updated all library dll's
Wrt the NOAA reports in CMX 4.4.0 the following:
#I will not put any effort in modifying CUtils to display the NOAA reports in HTML format, only the 'old' text format will be supported. The disadvantage is that some users use the same CMX instance to serve both the standard website and CUtils' website. If you wish to serve the standard CMX website as HTML you will have to find a solution or accept the result in CUtils as is. CUtils expects CMX to have the NOAA setting text for the reports. The HTML output is unpredictable.
#The only difference is that the CMX text setting uses the <pre></pre> tags to display the text.
#The CMX HTML setting removes those <pre></pre> tags but has no other arrangements. The rest of the formatting is yours.
#That's all.
==== Version 7.4.2 (05/02/25) ==== 
#Graphs: The miscellaneous charts 'Temperature Sum' and 'Growing Degree Days' now have a correct tooltip date (sorry, correction on 7.4.1)
#CustomLogs: Null values are now correctly handled. If webtags can have null values modify your definition wit nv="" or nv=0
#Diary: Colours in chart view are now configurable (See for parameters in section Diary in the inifile)
#ExtraSensors: The Laser sensors and Snow24h now can be read from the log - CMX b4073 now logs those values. The Compiler iis now fully functional to chart those values.
==== Version 7.4.1 (26/01/25) ==== 
#NOAA: Fixed: when generated with thrifty website, only the current year in the drop down list of the report viewer was generated.
#ChartsCompiler: Fixed: The UserTemp[1-8] sensors now have the correct axis (Was distance)
#CustomLogs: #Snow24hr webtag is now working correctly. Harmonisation of Compiler keyword (now: Snow24h) and webtag (now: Snow24hr) maybe done later. Currently system and documentation are in line.
#Graphs: The miscellaneous charts 'Temperature Sum' and 'Growing Degree Days' now have a correct tooltip date (it was one day less than it should be)
==== Version 7.4.0 (14/01/25) ==== 
#Diary: The max year is now correctly set after the new year i.e. for season 2024/2025 the max year remains 2024, after june the max year becomes 2025
#Diary: When looking at the chartview and changing the year, the view remains chartview. Note that the range does not yet follow the year setting.
#NOAA: Now generates correctly under thrifty in a year rollover.
#ExtraSensors: Added LaserDist[1-4] and LaserDepth[1-4] sensors
#Compiler: Added LaserDist[1-4] and LaserDepth[1-4] sensors (Extra) using Height axis
#Compiler: Added snow24h and snowdepth to the compiler (All/Daily) using Height Axis
#CustomLogs: Added webtags LaserDist[1-4], LaserDepth[1-4], snowdepth and snow24h using Height axis
#CustomLogs: Added temp9am series webtags
#CustomLogs: added webtag rweek
#Units: the Laser Sensors now use the snow unit definition of CMX (i.e. cm or in) on the Height axis
#Units: Snow24h and SnowDepth now correctly use the snow unit definition of CMX (i.e. cm or in) on the Height axis
#ExtraSensors: Fix for null values in logfile when running UserAskedData 
#Introduction of parameter Section: General, Parameter: ConnectNulls, default value: false. When false, gaps will be shown in the chart when null values are present. When true, a line is drawn between non-null. This parameter is in section General but at the moment only is valid for AirLink and Compiler modules (So all charts created by the compiler benefit).
NOTE: this has to do with the handling of the null values in the logfiles of CMX where some null checks in the final stages of JSON generation by CUtils were incorrect. This error also occurs in other places and so far has been corrected in AirLink and ExtraSensors module. The other places require some more study. Null value issues may not be uncommon for a while but I intend to now wait for the fixes in CMX. 
The error will occur with failing sensors e.g. end of battery life (or sensors switched off for some reason).
NOTE: The ExtraSensors chart may restart building its lines and not display the whole series for the nr of hrs you configured. For CustomLogs you just run the module command, that will generate the whole series and after that it will continue incrementally. ExtraSensors does not have such feature and you will have to see the lines grow for the hours configured. I will think about a redo of the full charts for ExtraSensors.
==== Version 7.3.2 (10/12/24) ==== 
#Diary: Fix Unit of snowDepth in chart axis (now: cm)
#Diary: Changed the reporting display of numbers. This way a '0' filled in field displays differently from an non-filled in field:
##both snowDepth and snow24h are filled in and a number (may be '0') => both are displayed
##only one of snowDepth and snow24h are filled in with a number (may be '0') => the number is displayed, the other has '---'
##both snowDepth and snow24h are not filled in => one column centred '---' is filled in for that date
#Default Cumulus Charts: fixed for current CMX
#Language: TableView and ChartView can now be translated (section Diary)
==== Version 7.3.1 (06/12/24) ==== 
#Diary: Fix for use of CumulusRealTimeLocation
#Diary: Fix for use of ModulePath
==== Version 7.3.0 (04/12/24) ==== 
#General: Adjusted to the technical changes for CMX v4.3 (null values, Diary database)
#Dashboard: The rain now also shows the new weekly rainfall (as configured in CMX)
#CUhelptexts.txt: now also has a text for the Seasons graph
#Snow / Diary: the yearly reporting is ready
NB: the changed Diary database makes this version not backwards compatible. Works only with CMX v4.3 and up
==== Version 7.2.0 (19/10/24) ==== 
No changes compared to beta 2
#CDL: User Defined Language definition (UDL) for Notepad++ by @Nossis (Barry) has been added to the distribution. See here.
#Graphs: The Frost Days Graph has been added in the Temp Graphs menu. It can be switched on/off through the parameter FrostDays (default is true) Thanks @MeteoSangonera for the motivation :D 
#Diary: A Diary module has been added. This module displays the content of the CMX Diary (version 1, this very likely may change at some point). Without content in the Diary, the menu does not display the choice otherwise it is found under Reports. This module will be functional when Mark finds the time to modify the database.
#CUhelptexts.txt: this file containing helptexts (the Info button in the right upper corner of some system charts), has been modified to contain text about the new Frost Days chart. This file needs to be copied to the utils directory manually, it is not a fixed part of the package because some users may wish to translate the texts. As such it may be seen as part of the language distribution.
#General: Unit Watt per square meter was written as W/M2. This is now W/m² (the UTF8 character ²). Note: this is visible in the Dashboard solar panel and in the Solar Graphs. The latter uses the translatable string YSESYaxis (yes I should have used comprehensible names in the first place). You can either remove your entry in your language file to regenerate the correct (English) string or you can change the text m2 to m² which will give you direct satisfaction with this version.
#Compiler: SoilMoisture (Plot Variable): now has its own axis and automatically uses the correct unit. Please note that you may need to change translation. The term dimensionless is no longer valid for this axis.
#Extra Sensors: Adjusted for mod in CMX for nullable Extra Sensor values.
#General: With PHP upload an adjustment has been made to support the Brotli compression. Don't forget to tick or not to tick the CMX setting Internet Settings=>Web/Upload Site=>Advanced Settings=>Brotli Compression. This is default off. If it works in CMX it will work in CUtils.
#Custom Logs: Added webtags MonthRainfall and AnnualRainfall (which is the 400th webtag value you can plot!)
#Packages have been updated (notably SQLite has been upped compared to beta 2)
NB: In earlier versions the technique for using the superscript 2 (²) was the HTML markup , however after remarks of Mark and Andy I opted for the UTF8 character ².
NB: The Diary report will not only have snow depth but will also have the Frost Days and Ice Days report on a per month basis i.e. the Frost Days chart displays the Frost Days on a per year basis, the report will do that monthly and text based. It will take some time as the Diary reporting depends on some changes in CMX. Comments and suggestions are welcome.
NB: CUtils now also has a runtimes directory which needs to be copied to the bin directory (like you do with CMX but the contents is different, do NOT mix)
==== Version 7.1.1 (08/07/24) ==== 
#Maps: CUtils version is now indicated in the position information on the map (only valid when you run 4.1.1 and up)
==== Version 7.1.0 (27/06/24) ==== 
#Home charts: Fixed show of first chart for the fallback charts (the original / old CMX charts i.e. when no CutilsCharts.def is present)
#Highcharts version: If the user does not specify the Highcharts version it now defaults to 11.2 (the last working version)
#CUlib: cumulusutils.js can now be generated independently as a module. It has its own wiki page explaining the functions users can access at runtime
#Supporting libraries: libs for FluentFTP and ServiceStack.Text have been upped to the latest version as of 19 june 2024.
#Rain Graphs: Fix: a year needs to have 350 valid registered days (was 364) to have a valid rain Station Average reference line.
#Highcharts: Modified the license statement in the website and in the LICENSE file
==== Version 7.0.3 (22/05/24) ==== 
Not a true release but just a non-optimised version which solved some issues
==== Version 7.0.2 (10/05/24) modified 22h50 ==== 
#CustomLogs: Update of the permitted webtag list. Added : #TempAvg24Hrs, CO2_pm1 and CO2_pm4 (and their _24 webtags)
#Added [i]#ByMonthTempAvg, #MonthTempAvg, #YearTempAvg[/i] as well
==== Version 7.0.1 (08/05/24) ==== 
#CustomLogs: Added parameter ExcludedCustomLogs (section CustomLogs). This may contain a comma separated list with names of CustomLogs which exist and are active, but should not be handled by CUtils
#CustomLogs: Fixed the JSON creation (UserAskedData and the CustomLogs commands)
==== Version 7.0.0 (12/04/24) ==== 
#Distribution: Removed CutilsMenu-example.txt from the distribution. This was the old config for menu System-1
#Graphs: Fix for a missing semicolon which prevented the Wind graphs to work properly
==== Version 7.0.0 public beta 2 (05/04/24) ==== 
#ExtraSensors: Fixed the CO2 sensor webtag format for the realtime values from CO2- format (old and invalidated) to CO2_ (see Webtag List)
==== Version 7.0.0 public beta 1 (17/03/24) ==== 
#General: The platform for CUtils version 7 will now be .NET 8. Instructions for installing .NET 8 (for Linux) will be supplied in the CMX forum. All dll libraries have been updated! It is suggested you renew the cumulusutils installation completely (so: remove the old one if you are not making a completely new CMX directory). 
#General: One major change for CUtils is that the CustomLogs require a comma field separator (it was advised to be a space). As a result the definition needs to be adjusted (replace the space between webtags with comma) and the existing data need to be edited. To do this (after the conversion): 
##shutdown CMX and stop your scheduler/crontab jobs (see for details the notes in the release post)
##take a customlog in the editor and check if the conversion added comma separators after the date and the hour field. Than do the following:
##find the space separator and replace with a comma. Make sure no multiple comma separators come into the file (this should be an easy automatic editor operation).
##repeat for all your CustomLog datafiles
##start CMX and restart your scheduler/crontab jobs
#General: Duplication and Order of the data : CUtils V7 is able to detect duplication and order errors of data. For some reason CMX sometimes has duplicate times in the logs, this may create errors in charts and definitely faults your statistics. This test is activated by default but if you wish to leave the errors (bad, but correcting it may be a lot of work) or when you are done correcting you can switch the test off by setting the parameter CheckDateOrder (section General) to false (default is true). It is a choice to act upon these warnings/errors but if you wish not to act, it is best to switch the feature off as it takes time. The errors are indicated in the logfile in the section reading the monthly logs.
#General: Extensive rewrite of all logfile reading because of the invariant write by CMX. Transparent for the user.
#General: The console output when run from the command line from now on has reduced informational (progress) and Error information. If you use a colour terminal the Error should jump out.
#Website: The URL now has the current report as parameter so if copied and pastes you can bypass the menu.
#Website: As a consequence of the URL parameters, the core of the runtime system was rewritten which as a spin off now has all charts generated by the ChartsCompiler being refreshed after the configured Interval nr of minutes.
#ChartsCompiler: To have more words in the drop down menu choice of a Charts class, make a chart-ID with underscores. Underscores will get replaced by spaces.
#ChartsCompiler: Added PERIOD for SMA stats line. If no period is given a default is given by the parameter SmaPeriod in section [Compiler]. See CDL Plot Specification
#ChartsCompiler: STATS is now also possible on equation results (which have a different name than the CMX plotvars). 
#ChartsCompiler: All axis will now be generated with min and max labels (min and max values will be shown), UV axis will now have soft max of 10.
#ChartsCompiler: Rewrite of the axis logic in the code generation. Should be transparant for the user.
#Graphs: If heatmap now has more than HeatmapNumberOfYearsPerPage (parameter) the chart starts now at the highest year.
#Sysinfo: Fixed : lines to be omitted from the systeminfo output on Windows
#Support: for the new CMX un/pw encryption
#Highcharts: there were two charts which did not work with HC 11.3 which had been accepted as bugs. The Heatmap is fixed but it is unknown when it propagates through the CDN. The Rain vs EVT chart has a workaround and should work. Advise: empty the parameter UseSpecificHighchartsVersion, if problems re-occur, use version 11.2
#HighCharts: There may be some cookie issues if you are working with Chrome. afawk other browsers are still working fine. No solution as yet. Please inform me when having issues.
#Monthfiles: Because of the logfile invariance you may remove the parameter MonthsOfMiracleAndWonder
==== Version 6.23.6 (30/01/24) ==== 
#CustomLogs: Addition of <#stationpressure>
==== Version 6.23.5 (17/01/24) ==== 
#General: Upgraded all libraries as shortly after the previous release it was found the no FTP variant did work anymore. Apparently nobody uses FTP anymore.
==== Version 6.23.4 (16/01/24) ==== 
#General: The limit of data only after 27 Januari 2004 (start of Cumulus) has been lifted (under the condition that the logfile records have the length of todays records). CUtils can now read whatever number of years (current record is 1 Januari 1979)
==== Version 6.23.3 (14/01/24) ==== 
#ChartsCompiler: Error messages improvement
#ChartsCompiler: If there is an error in the charts, a notification is now given in the terminal output
==== Version 6.23.2 (10/01/24) ==== 
#ExtraSensors: Fixed. The Lightning and CO2 sensors were incorrectly handled when both present
#SysInfo: If the parameter Tx (for WLL) is not filled in, the resulting SysInfo page will show an error: "A value for the Transmitter used is needed - please set parameter Tx"
==== Version 6.23.1 (05/01/24) ==== 
#Graphs: When creating the solar energy chart, the solar energy per day can be requested and will be written out to DailySolarEnergy.csv. The parameter involved is [General] NeedSolarEnergyDailyValuesInCSV=false (default)
#Language: Parameters LimitValues, Winter1, Spring, Summer, Autumn, Winter2 have been added to the language file to be translated.
#Charts: All axis involving Temperature will now - when using Fahrenheit scale - have a soft minimum of 32 F-degrees i.s.o. 0
#General: It is now possible to run CUtils from day one i.e. after having at least one rollover i.e. the dayfile has at least one record.
#ExtraSensors: Fixed a unreported issue with the lightning sensor
#Graphs: Fixed a minor issue with the normal and station reference lines in the Daily Rain chart
#SystemInfo: With the WLL device you now get a message if the Tx parameter is not filled in
==== Version 6.23.0 (06/12/23) ==== 
#Technical: A cleanup of the code wrt the JSON creation. Though this is not visible for the user it has impact and will require (international) regression testing.
#Technical: Redo the logfile reading along the line of the CustomLogs. This reduces complexity and unifies the method. Not visible for the user and will require (international) regression testing.
#Technical: Performance gain while reading the monthly logs as a result of the previous action.
#MeteoCam: Addition of EcowittHP10 as CamType (the original being the default CamType Manual)
#Language: parameters NormalYearlyRainfall, StationYearlyRainfall, DailyRain, DailyEVT have been added.
#Graphs: In Rain vs EVT chart the plotline Normal Yearly Rainfall has been moved to he front and colour set to blue. The default title has the addition "Cumulative". The user who already has this in the language file will need to change it manually.
#Technical: Deprecated the use of MySQL (i.e. the parameter UseSQL is no longer used and can be removed)
#CustomLogs: Webtag wchillH has been renamed wchillL from CMX b3264 and up.
==== Version 6.22.0 (23/11/23) ==== 
#Units: fix for Distance as that was always km and should be corresponding the windspeed (mph => mi, m/s => km etc...)
#CustomLogs: addition of the following webtags: RecentApparent, RecentIndoorTemp, RecentIndoorHumidity.
#Graphs: addition of Rain versus EVT graph (in the Rain section)
==== Version 6.21.5 (16/11/23) ==== 
#Sysinfo: Added reception status for Ecowitt devices
#Airlink and ChartsCompiler: WindBarbs is now a translatable word
#ChartsCompiler: added an Axis Height (ToDo: Wiki compiler spec.)
#Customlogs: Changed permitted webtag cloudbase to cloudbasevalue and attached axis Height
#Website: The pwsFWI button which in the past had been moved from the navbar to the header, has now been made configurable. If you add PwsfwiButtonInHeader=false to your [Website] section of cumulusutils.ini it will configure in the navbar just before the system led. The default for this parameter is true (placing the button in the header). Editing cumulusutils.ini yourself saves the labour of a second website run.
#CustomLogs: added the following webtags to the allowed webtag list: "windrunmonth", "StormRain", "RecentOutsideTemp", "RecentWindChill", "RecentDewPoint", "RecentHeatIndex", "RecentHumidity", "RecentWindSpeed", "RecentWindGust", "RecentWindLatest", "RecentWindDir", "RecentWindAvgDir", "RecentPressure", "RecentRainToday", "RecentSolarRad", "RecentUV", "RecentWindChill", "RecentFeelsLike", "RecentHumidex", "snowdepth", "snowlying", "snowfalling", "Tbeaufortnumber". 
#Customlogs: webtags in the realtime table in the left pane are now displayed including the brackets and the hash (<# >) to facilitate the showing of possible modifying parameters.
==== Version 6.21.4 (12/11/23) ==== 
#General: Fixed: Improved logging info when asking webtag values
#CustomLogs: made the realtime table animation slow
#ExtraSensors: Changed the realtime table height to 70vh
#Uploading file: Fixed: The CMX Host parameter is only for FTP protocols. When using PHP upload PHP-URL needs to checked for not empty
#CustomLogs: If the CustomLog Frequency in minutes modulo the Internet Interval in minutes has a value other than zero, a warning is logged when the end of the log is reached and the last record time does not match the endTime.
#ChartsCompiler: Introduction for a specific path on the website when making modular use of CUtils and wanting to separate CUtils from the webroot files. Introduction of the parameters DoModular (cannot be combined with the Website command) and ModularPath which contains the path to the CUtils modules, relative to Webroot e.g. CUtils/ (the closing slash is required as it is with CumulusRealtimeLocation). NOTE: Module and ModularPath does not hold for the AirLink module which is on the ToDo-list for Modular handling.
#CustomLogs: Added THWindex and THSWindex to the list of allowed webtags
==== Version 6.21.3 (07/11/23) ==== 
#CustomLogs: Fixed: The Ecowitt CO2 sensor has also an AirQuality sensor with four values which need an AQ axis.
#Website: Modification of website statistics parameters adding Matomo for a choice between Google and Matomo. Parameters have changed, see wiki. If you already use Google statistics, you will need to set the new parameter StatisticsType to the value Google (the default for this new parameter is empty).
#CustomLogs: Modified the layout and behaviour of the realtime values table in the left pane in relation to the chart chosen (length of table with overflow and a slideDown when change from RECENT to DAILY and vice versa.
==== Version 6.21.2 (04/11/23) ==== 
#CustomLogs: Fixed - When reading the logfiles over a month boundary the transition to the next month was incorrect Thus the charts were missing the days in the new month.
#CustomLogs: Modified the CustomLogs - using the units and charts axis.
#Chartscompiler: solved a few bugs while implementing the CustomLogs Units and chart Axis. Non-critical in pre-6.21 versions
==== Version 6.21.1 (31/10/23) ==== 
#CustomLogs: Fixed - When using CumulusRealTimeLocation the customlogs JSON's were not correctly located.
==== Version 6.21.0 (22/10/23) ==== 
All functionalities of the previous beta's
Main addition is the implementation of the CustomLogs module.
CustomLogs will:
#Make it easy to chart Lightning with the Ecowitt Lightning sensors (see below)
#Makes it possible to plot previously unavailable values (E.g. the Wet Bulb Temperature or 24 hour rain)
#... and whatever users may come up with - all webtags producing a value are available for plotting
The CustomLogs module is also accessible as a module for displaying the charts in other websites. The realtime table is generated but not compulsory to use (using it in an other website requires additional handling and its use becomes more complex). Data will be supplied daily by the CUtils USerAskedData call.
If a you create a CustomLog with the webtag <#LightningStrikesToday> - the Daily frequency is best as it is a daily total - automatically a chart with the daily number of strikes will be created when the module is activated. 
Default the CustomLogs are under the menu Extra. If the user chooses eventually a manual handling of those charts he can use that chart anywhere. 
Once configured, CustomLogs are a very powerful tool to chart any value available in CMX in any combination.
A picture - i.e. a chart - says more than a thousand words.
Checkout the ToDo list for version 6.22.0 and possibly propose a suggestion.
Additional modifications since last beta:
#No more crashes when adding a webtag to an existing log
#All file copies created while running the module are now correctly removed
#Incremental now works only for a UserAskedData run
#For an Ecowitt device added the firmware version in SysInfo (when available)
#Webtag #CPUTemp is added to the list
#Webtag name comparison to the reference list is now case dependent (as it should be). So a case spelling error now correctly fails the webtag!
==== Version 6.21.0 beta 1 to 4 (10/10/23) ==== 
#SysInfo: A distinction can be made for various Linux dialects when required. If needed contact me and we'll work it out.
#Sysinfo: openSUSE (Tumbleweed) has been implemented as Linux dialect.
#Forecast: SpotWx has been reinstated as default to prevent a crash while doing a new install.
#Units: When using m/s for speed, distance will be expressed in Km (distance in m is never used by CUtils).
#Graphs: Fixed the conversion of X-axis day number to date in the tooltip when applicable, when graphs used as module (not sure what happened here so report if not working!).
#General: Added the device types according to CMX v3.27.0 - b3250
#Gauges: Modified CUgauges.js to sync with gauges.js 2.7.7 of CMX 3.27.0 b3250
#CustomLogs: A first beta for a CustomLogs module. See the Wiki page and the forum post specifically for this beta.
==== Version 6.20.0 (21/7/23) ==== 
#Website: IMPORTANT => Files borrowed from CMX and (possibly) modified - notably: gauges.js, gauges-ss.css, language.js, RGraph.common.core.js, RGraph.rose.js, steelseries.min.js, tween.min.js - have been prefixed with CU. You need to do a full update i.e. with one run without thrifty. The reason for this is that some users started using the libraries from the CMX release and use all websites from the same directory. You should not do that and it will fail the system (For CumulusUtils or for your alternative website depending which is last placed in that location).
#Website: Please note that the CMX Default Website Development is developing fast and the new Alternate Default Website changed its index filename to index.html (it always was index.htm). index.html is the same name as for the CumulusUtils website so you can no longer have those two websites in the same directory! The advised setup is always to create separate directories on the server for any website you create (which btw most of you, but not all, do). The data access is relative through the parameter CumulusRealTimeLocation and the Alternate Default Website will have a similar feature as promised by Neil.
#Heatmap: The heatmap colour axis now has a range from 0 - 100 for the Fahrenheit scale for better resolution
==== Version 6.19.0 (29/06/23) ==== 
#General: some minor formatting corrections for use of imperial units
#General: Error correction and handling improved in case of an erroneous locale (in cumulusutils.ini)
#General: All dates displayed in the modules and website are now shown according to the locale defined in the language setting in cumulusutils.ini:
##Records: The Records, DayRecords and Top10 pages have been reworked to display the date/time in the local format used.
##pwsFWI: Adjusted for date formatting
##Graphs: Date in clock pane now follows local format. 
##Gauges: Corrected the Danish language code to da i.s.o. DK and did that also for the gauges, this should be transparent for the user (Note the Danish locale is: da-DK).
##General: With this version, the use of the locale has been formalised. Please make sure you use the locale for your language/country as defined in this Microsoft document.
#HighCharts: All charts in CUtils will now display short dates (i.e. dd/mm/yyyy) according to the locale. This only is seen in the tooltips (e.g. the heatmap and Temperature Sum)
#Charts Compiler: To accommodate the mix of scatter with other plots, only the main y-axis (the first in the definition) now generates its gridlines, and the ticks for the different y-axis are no longer aligned. This will give a slightly different experience for the charts. 
#General: Correction for the distance unit: meters is now possible (btw: not accessible for the user)
#Charts Compiler: The Distance Axis now works (Note: unit has to be reworked)
NOTE: It is understood that Norwegian, Danish and probably Swedish show different output for the C# compile time or for the javascript runtime.
==== Version 6.18.3 (10/06/23) ====
#Forecasts: Text around the Yourweather forecast table is now translatable (section: Forecasts)
#Forecasts: Default ForecastSystem is reset to YourWeather because SpotWX has an issue with cookies. If you have set SpotWX and want to change, please modify parameter ForecastSystem to YourWeather.
#Top10: Long Dry/Wet periods. Make sure the current period is taken into account when the period is not yet finished.
#Parameters: CMXport has been moved to section General. UseSpecificHighchartsVersion has been added to section General to facilitate the user who wishes to use a specific Highcharts version. If empty automaticly the last published version is used. If a specific version (e.g. 10.3.2) is entered then that one is used. No slashes, no spaces just <number>dot<number>dot<number>
#General: Some minor formatting changes for imperial units, this includes an axis boundaries change for the heatmap.
==== Version 6.18.2(05/05/23) ====
#Website: The value of MoonImageLocation was forced lowercase which was incorrect.
#Month files: While reading the month files it had internally a max number of errors (value 10) after which it stopped logging. That value is now parameterised inn section general. It has no influence on the processing of the files, just the logging of the errors.
#Month files: Fix for correct order of assignment in case of older logfiles where values may be missing (e.g. if EVT is not present, SolarRad is now read correctly).
#Top10: Removed a line which cause unexplained errors on an RPi. It is still unexplained what and why it happened so all RPi users are asked to check the logs once in a while and look for errors. Errors may appear as crashes or graphs not appearing at all. So far the cause seems to be in the environment but a true explanation has not been found.
==== Version 6.18.1(30/04/23) ====
#AirLink: The AirLink Help button now is upgraded to Bootstrap 5.2 (it did not open/close properly)
#Airlink Help: Corrected a broken link on the help page.
#pwsFWI: Fix for dry/wet periode: when a day rain amount is less than 0.2 it is not counted as rain so dry period continues
#Moon image: To avoid confusion when your site is used by more than one CMX instances and more than one CUtils sites, the moon image location is now always made explicit. Use: MoonImageLocation=<Full URL>. Include the image name in the URL! (best to manually add it to cumulusutils.ini and run website)
==== Version 6.18.0 (24/04/23) ====
#PHP upload: UTF8 header added. You need to use this CUtils version (and up) to use PHP upload with CMX 3.25.x and up
#Charts Compiler: Code generation creates a global for windbarbdata to prevent apparent issues.
#Top10: Fixed a bug for the wet/dry periods. Those are now correct.
#Airlink: Winddata are now fetched through the API for both incremental and full json data upload (requires 3.25 as well)
#DayRecords: The report is now independent of thrifty to have correct formatting and prevent out of date reports
#Helptexts: The titles of the Helptext modal screens for the Graphs module now have titles fitting the charts they belong to (and not "Daily Rain" as it was)
NOTE: It is required to use CMX version 3.25.0 (and up) with this version of CUtils (and up).
==== Version 6.17.3 (15/03/23) ====
#General: technical wrap up of the past quick successive releases
#General: Sync up to CMX 3.24.2
Although no functional changes it is advised to update. 
If any anomalies please report.
==== Version 6.17.2 (13/03/23) ====
#UserAskedData: Fix for duplicate CO2 sensor entries in the ExtraSensors JSON for Ecowitt CO2 sensor. Required for PHP upload (incremental uploads)
#General: Fix for a wrong DateTime format in RecordsBeganDate generating a crash. If format is not correct (must be dd/MM/yy) then the date is reset to first date in database and a warning is issued in the logfile.
#Upload: Fix for CUtils upload to other directories than the location of upload.php. The UploadDir in section FTP site is now taken into account
==== Version 6.17.1 (08/03/23) ====
#Parameter DoneToday: For both parameters DoneToday the format is now set as ISO to prevent an error caused by mono for some locales
#ExtraSensors: The module ExtraSensors now correctly translates the plotvariables, defaults come from strings.ini (see wiki)
==== Version 6.17.0 (05/03/23) ====
#Top10 & DailyRecords: parameter UseScrollableTables. When false no scrollbar or defined height is shown for modular use, when true otherwise. Released as patch 1 to version 6.16.0
#General: Introduction of parameter RecordsBeganDate in section General (independent of CMX parameter StartDate). When set to a date (format: dd/MM/yy) it will be used as the startdate of the data in charts and reports no matter the actual startdate in dayfile or monthfile.
#Uploads: Introduction of the PHP upload protocol present in CMX version 3.24.0 and up
#Menu: The menuitem Print is added (add to CutilsMenu.def (top level) if you want to use it). This provides the possibility to print what is in the ReportView.
==== Version 6.16.0 (12/02/23) ====
#ExtraSensors: Fix for Ecowitt AirQuality sensors typo (released as patch 1 to 6.15.6)
#Top10: records now has top 10 list of minimal rain per month added. Technical update of this module
#Top10: records now also has a scroll bar (on the containing div)
#YADR: Fix for nr of decimals for the Rain report when using inches
#Misc Graphs: Fix for the season chart which is now corrected with an addition of 10 days to winter 1 (counting not the start but the end of the 10 day temperature grace period)
#Fix gauges.js: The init was done at document ready which made the modifications ineffective. Init is now after the modifications.
NOTE: This is the first major update for the oldest module of CUtils ;)
==== Version 6.15.6 (30/01/23) ====
#Functionality of 6.15.6 but now working correctly
Additional modifications:
#ChartsCompiler: Fix for the units of the ExtraSensors
#ExtraSensors: Fix for realtime values for the ExtraSensors
#Lightning Sensor: Added the date to the time of last strike
#Lightning Sensor: Whichever unit the distance it is always presented rounded to the nearest integer
==== Version 6.15.5 (29/01/23) ====
#General: The number of solar hours has a non-translated unit hrs. This is removed as the description label is sufficient.
#ExtraSensors: Added the Lightning Sensor. Activate with parameter LightningSensor=true.
#ExtraSensors: Added coulour changeindicators (using the same colour as main dashboard: ColorDashboardTextAccent).
#StationMap: Reshuffled the code for the rotation of map objects. Now the map loads correctly after the User map (which it didn't, might you not have noticed it)
#Unit Pressure: Pressure in hPa is now in one decimal (to get better distinction in Records modules) and in inHg is now 2 decimals.
#Chartscompiler: Fix for pressure with a decimal comma (locale dependent) is now always converted to a decimal point for the Dashboard.
==== Version 6.15.4 (16/01/23) ====
#General: When a unit rate of change is displayed it was /hr or /h in all languages. Now it can be translated through the PerHour translation tag in section [General]
==== Version 6.15.3 (12/01/23) ====
#General: fix - forced some configuration parameter values to be lower case (so True is read as true)
#ChartsCompiler: When loading a charts collection (e.g. cumuluscharts.txt) the version of HighCharts is now displayed in the console
#Highcharts: fix - the version of Highcharts to version 10.3.2 to make the INFO keyword work again and because the colour bug has been fixed
#Highcharts: added thousandsSep = "" to the HighchartsLanguage.js (set the thousands separator to empty string)
#Graphs: The heatmap now has a normal date in the tooltip
#Graphs: changed the fourth default value for GraphColors to #ed9b00 (darker goldish) i.s.o #DDDF00 (hardly visible yellow)
#StationMap: Position of the Arrow now is fixed -0.02 degree longitude from the station marker, map is centred on the station marker.
#Wiki: added an explanation of the scaling of the charts on the CDL page.
==== Version 6.15.2 (04/12/22) ====
#ChartsCompiler: Fix - Keyword INVISIBLE can now also be used at the end of the PLOT definition line.
==== Version 6.15.1 (02/12/22) ====
#ChartsCompiler: Addition of the Keyword INVISIBLE to suppress a chart line at initialisation of the chart
==== Version 6.15.0 (27/11/22) ====
#ExtraSensors: Major rewrite. Configuration now through inifile parameters, strings.ini is now secundary. Thanks for the help while testing :D
#Website: Correction for the night image for the header (which was never selected)
#Website: The generation date in the version strings is now "g" i.e. the short format in the locale CUtils is running in. Note that the date in the clock can be different format because that comes from CMX.
#Website: Some minor corrections in spelling and messages for the console
#Pressure charts: The max and min values are now handled to accommodate the imperial units (inHg)
==== Version 6.14.4 (22/11/22) ====
#ChartsCompiler: The yAxis for pressure now displays the units according to the a new formatter (2 decimals for inHg and 0 decimals for mb and hPa)
#Website: When using inHg as pressure unit, the realtime dashboard not displays 'inHg' i.s.o. 'in' (just as everywhere else)
#Record: The records page now starts <AllYears>/<Current Month> similar to DayRecords (which starts in <Current Month>).
#Highcharts: Fixed the Highcharts release to 9.1.0 (in line with CMX) to prevent error regression with new releases (which appear to occur too often)
#Highcharts: The tooltip for the (average) bearing is now correct.
==== Version 6.14.3 (19/11/22) ====
#HTTP: For HTTPS sometimes the connection fails on the SSL layer for unknown reasons. This issue has now been circumvented.
#Website: Unit for Elevation was always in meters. Now, when given in feet, it shows the correct unit (ft)
#Graphs: The Temperature HeatMap now also works properly for Fahrenheit
#Units of Pressure: Internally the pressure unit was read from CMX through the wrong parameter name therefore it was always hPa. That is now corrected.
==== Version 6.14.2 (03/11/22) ====
#ChartsCompiler: The Windbarbs now have a tooltip which shows the wind unit used on the site (it was m/s).
#AirLink: As in ChartsCompiler.
==== Version 6.14.1 (31/10/22) ====
#ChartsCompiler: And in the process of the previous fixed a bug on EOF detection.
#Website: Drop down user menu's are now automatically adjusted in width to accommodate large width multiword menu choices
#Website: The Extra top menu is not generated if there is no AirLink and No Extra Sensors preventing erroneous formatting of the menu.
==== Version 6.14.0 (22/10/22) ====
#Website: Menu System 2 is released. See Wiki. 
#ExtraSensors: AirQuality sensors do have the current value and the 24 hr average value (two sensors in one). If the 24 hr average sensor has not been identified/named by the user in strings.ini, it will receive a default name to prevent corrupting the system.
#StationMap: activated the weather data below the arrow.
#Charts Compiler: The default CutilsCharts.def in the distribution has been updated to reflect Windbarbs and Zoom keywords.
==== Version 6.13.1 (10/10/22) ====
#General: (6.13 patch 1) Cutils now runs on MacOS too (detection of OS Darwin). NOTE: SysInfo needs to be worked on with the user)
#Website: (6.13 patch 2) Bugfix for display of the date when the date separator is a point.
#ExtraSensors: (6.13 patch 3) Bugfix for reading the double amount of data from the logfile (rounding down error for start/end time to 0 seconds)
#HelpSystem: Now all graphs work with the Info system (NOTE: Only the WindRose does not work is still problematic)
==== Version 6.13.0 (08/10/22) ====
#ExtraSensors: Bug fix for passing a month boundary when rollover time is other than midnight (9 or 10 am)
#Graphs: Addition of a help system for the Graphs (the climate charts) analog to the Info keyword of the ChartsCompiler. See the Wiki page.
#Language: The word Info has been moved to the section General of the CUstringsXX.ini. You can remove it from the section Compiler.
==== Version 6.12.2 (28/9/22) ====
#Extra Sensors: Bug fix for risk of duplicate Temperature chart under the English language
==== Version 6.12.1 (28/9/22) ====
#Addition of ZOOM keyword in CDL (see wiki)
#Clean up of the Chart block in the wiki
#Menu System2: The menu definition file now can contain blank lines (no further additions)
#ChartsCompiler: The word Info was erroneously placed in cumulusutils.ini and has been move to the language file (you may remove it from cumulusutils.ini)
#Logging: Several corrections and modifications in severity in the messages
#Extern Extra Sensors: A fix for a possible error condition during a month boundary transition.
#YADR: a fix for the windrun classes when dimension is other than km
==== Version 6.12.0 (22/9/22) ====
#ChartCompiler: The keyword Info on a chart was introduced. When used on a chart the word Info appears left of the chart exporting menu. When clicked, a modal popup is displayed with the user specified help text. See the Wiki for further specification.
#Website: System 2 for the user defined menu has been introduced (in beta, See wiki)
#Logging: Reduced the verbosity in the log while generating the rain and temperature graphs.
#Gauges: Contains the fix for the bug CumulusRealTimeLocation in 6.11.0 which previously was published as a patch
==== Version 6.11.0 (10/09/22) ====
#Website: Bugfix - The positioning of the odometer suddenly started to fail on some hardware/browser combination. A fix was released comprising of a change in gauges.js and gauges-ss.css adding the odo class. To facilitate those changes the website code had a minor change.
==== Version 6.10.0 (03/09/22) ====
#AirLink: Bugfix - a correction in the order of the CMX AQI formula's as used in CUtils (selectable in CMX: CA comes after EU and not before!)
#ExtraSensors: Bugfix - Corrected the unit in the tooltip of the CO2 temperature line (Ecowitt WH45)
#ChartsCompiler: Bugfix - Corrected an issue with the scatter charts which was highlighted with the v10 release of Highcharts and which also had an issue in Chrome (see previous post)
#Website: Corrected several HTML Markup Validation errors in the index.html
#AirLink: The Referenceline thickness is now configurable (default = 4) through parameter ReferenceLineThickness
#Website: Upgraded the website to Bootstrap 5.2 This has consequences for your CUsermenu.txt. The data-toggle='dropdown' must be replaced by data-bs-toggle='dropdown' and dropdown items are no longer but combinations. Checkout the CUsermenu-example.txt in the distribution for the changes.
#General: Upgraded the libraries: FluentFTP, ServiceStack.Text, MySqlConnector
==== Version 6.9.9 (10/08/22) ====
#Libraries: Updated FluentFTP.dll, ServiceStack.Text.dll and MySqlConnector.dll to their latest versions (38.0.0; 6.2.0 and 2.1.11)
#Website/General: Technical update for signature files
#InetSupport: Some minor changes in FTP/FTPS handling
#ChartsCompiler/Windbarbs: Windbarbs are now (almost) equidistant for any nr of days plotted.
#AirLink: The identification of the United Kingdom in the parameter CountrySelected (section AirLink) has changed to UK iso GB to make it analog to CMX.
==== Version 6.9.6 (08/07/22) ====
#Website/General: Allow for images as background to charts. Note that this does not necessarily work when used modular.
#ChartsCompiler: bug fix - allow for STATS function(s) to use EXTRA plotvars
#ChartsCompiler: Small experiment => Removed the limitation on scatter series to be combined with other types.
#General: some cleaning up of old code.
==== Version 6.9.5 patch 1 (02/07/22) ====
#ChartsCompiler: bug fix - related to (EXTERNAL) EXTRA sensors
#ChartsCompiler: bug fix - use CumulusRealTimeLocation when reading winddata for the WindBarbs
#ChartsCompiler: bug fix - have the colour of the WindBarbs configurable to stand out against any chart background colour (implemented in CDL)
==== Version 6.9.5 (01/07/22) ====
#Extra Sensors: Completed the External Extra Sensor functionality (see this post)
#ChartsCompiler: Completed the Windbarbs feature in CDL (see this post)
#General: Disabled the ALL commandline parameter to avoid the apparent confusion it being a partial website commandline parameter
==== Version 6.9.2 (26/06/22) ====
#Compiler: Added the optional language construct "Has WindBarbs [Below | Above]". See Wiki CDL. This feature is beta.
#Fix AirLink: Reading the AirLinkLog required an additional condition for preventing an infinite loop (and running out of memory/swap).
#Fix Airlink: The windbarb xAxis on top is now aligned with the xAxis below
#Fix MeteoCam: Corrected the Upload for the MeteoCam output when the user does not use it.
==== Version 6.9.1 (16/06/22) ====
#UserAskedData: DayEVT now correctly gets the data in the CUserdataALL.json
#SFTP: A workaround if the ECDSA cipher is asked is now implemented similar to CMX
==== Version 6.9.0 (14/06/22) ====
#Cutils runtime library: one minute UpdateInterval (see CMX FTP parameters) is now acceptableNOTE: this is meant for local webservers and not for internet transfers.
#ChartsCompiler: Changed keywords in the ALL/DAILY set of keywords to prevent conflicts with the RECENT keywords. Check the CDL Wiki (check your chart definitions!). The changed keywords are:
 "AvgWindChill" (was: "WindChill")
 "HighAvgWindSpeed" (was: "WindSpeed")
 "DayRain" (was: "RainFall")
 "DayEVT" (was: "EvapoTranspiration")
#ChartsCompiler: fine tuned the rain and rainrate axis : the last label (highest number) is now shown and the rain/rate gridlines are only shown when not disturbing other gridlines.
#AirLink: AirLink charts now too works with 9 am (and 10 am) rollover hour (phew...)
#Map: If no link is given for the website it is now clearly indicated in the pop-up.
#Website: Multiple header image selection at runtime now actually works
#General: the software libraries have been upgraded
==== Version 6.8.3 (03/05/22) ====
#ChartsCompiler: Bug fix: when no or very little rain occurs over the whole selected period the max y-axis keeps too high value for e.g. inches.
#General: The usage message is now shown as a first action when no arguments are given (i.s.o. first initializing FTP and Dayfile)
#SysInfo: Added WLL statistics
#Sysinfo: Added inifile parameter ExtraStationInfo to enter free format information for non-Davis stations.
#Website: Multiple header images are now possible for each phase of the day: DAY, CIVIL twilight, NAUTICAL twilight, ASTRONOMICAL twilight and NIGHT. See the wiki.
#Day records table has now possibility to scroll (configure UseScrollableTables=true (default)), section [General]). DayRecords and pwsFWI modules now use thin scrollbar which does not work in chrome.
#Map: Users will now always appear on the map, the link to their site is no longer compulsory (but highly appreciated).
==== Version 6.8.2 (19/04/22) ====
#Fix: some glitches in the handling of the low limit of the rainfall
#Change: for a clean install take care the FTP/UploadDir gets in the inifile on the first run so it is easier for the user to continue.
#Change: Now the defaults for DoLibraryIncludes & GeneratejQueryInclude parameters is false; When using CUtils in a modular fashion set these to true.
#AirLink: Created the possibility to use the module as a standalone page (just a html page with the data in current directory, no other context required).
#Wiki: important modifications wrt Language in Utils / Trouble in Paradise and Dependency of the ExtraSensors on the use of the ChartsCompiler.
==== Version 6.8.1 (03/04/22) ====
#General: Overhaul of units and (internal) unit conversions because imperial units are being used now seriously (mi and inches). 
#graphs: Wind graphs / Windrun chart - adjusted the tooltip to clarify better.
#ExtraSensors: ExternalExtraSensors remains in beta until (probably) end of may. Notice will be given when usable.
#Please note that the modified Wind Chart Wiki is also part of this release wrt the legend.
==== Version 6.8.0 (29/03/22) ====
#UserReports: Introduction of Cutils dedicated webtags. Currently only <#CUversion>. Released as a patch for 6.7.14 on 28 march
#ExtraSensors: Bug fix to prevent reading the log for every sensor. Now read only once.
#Logging: Created the possibility to switch logging completely off. Parameter: LoggingOn.
#Logging: Console Messages are regulated by parameter NormalMessageToConsole which is independent of other settings.
#ExtraSensors: ExternalExtraSensors are still in beta
==== Version 6.7.13 (27/03/22) ====
#Graphs: Correction for the southern hemisphere for the temperature sum and seasons charts.
#Extra Sensors: Addition for External Extra Sensors in beta.
==== Version 6.7.12 (not released) ====
#Top10: Ecowitt registers rain with 0.1 mm precision. For the dry and wet period records in top10 a rainfall of 0.1 mm is ignored.
==== Version 6.7.11 (03/03/2022) ====
#ChartsCompiler: Bug fix: When using the ChartsCompiler, it now also initialises correctly when using the OUTPUT specifier or the ExtraSensors module.
#Graphs: Bug fix for Solar hours chart - the ratio between Solar Radiation and Max Radiation (determining the hours of sunshine) had a conversion error (integer to float)
==== Version 6.7.10 (26/02/2022) ====
#ChartsCompiler: Bug fix: When using the ChartsCompiler stand-alone (CompileOnly), the output can now be used in the CUtils website
==== Version 6.7.9 (26/02/2022) ====
#Charts (Home and ExtraSensors): Fixed a bug in the initialisation which in some cases showed a weird value for the last point plotted
#Changed the fourth default chart colour (see HighchartsDefaults.js) from #DDDF00 (yellow) to #ed9b00 (yellowish gold orange)
#ExtraSensors: Corrected a bug for LeafWetness sensor
#Sysinfo: Memory information now shows swap device too
#Some minor corrections
==== Version 6.7.8 (02/01/2022) ====
#Changed RECENT keyword 'SolarRadiation' to 'CurrentSolarRad' (see specification)
#An equation now requires an Axis spec or gets default Axis Free. If the Axis spec is missing only a warning appears in the log
#Bug fix for case independency which in equations sometimes was not correctly handled. Plotvariables are now really case independent, even in equations.
H/T AndyKF650 who did spend some serious time on testing all corners of the ChartsCompiler!
==== Version 6.7.7 (24/11/2021) ====
#Website: Fix for the initialisation of the gauges. Now the gauges init is called after the settings of the CumulusUtils user parameters.
#A total of three patches have been released with improvements as output of a day of testing by AndyKF650 (Thank you Andy for the effort!). The patches will be assembled into the next - and probably final release - of the version 6 series. Version 7 will be from a technological point of view a very different and non-compatible version.
==== Version 6.7.6 (23/11/2021) ====
#Forecast: Fix for new Norwegian forecast URL
==== Version 6.7.5 (22/11/2021) ====
#Website bugfix: Now you get the moon rise and set times with the CMX moon image as well (apologies for my release management recently)
==== Version 6.7.4 (22/11/2021) ====
#The moondisc now can be chosen to be the CMX moondisc (See the Wiki)
==== Version 6.7.3 (21/11/2021) ====
Equal to 6.7.2 but this time packaged correctly and also working under Windows 7.
Version 6.7.2 is withdrawn because of a packaging error affecting the libraries. This causes a problem on Windows, as fas as it is understood only on Windows 7.
==== Version 6.7.2 (20/11/2021) ====
A technical update related to ServiceStack.Text.dll (5.13.2) and Renci.SshNet.dll (2016.1.0.0)
Withdrawn.
==== Version 6.7.1 (25/10/2021) ====
#A patch version to get rid of a disturbing '>' above the index file in the website
==== Version 6.7.0 (25/10/2021) ====
#Infrastructure: Update to .NET Framework 4.8, Update of MySqlConnector (1.3.14), ServiceStack.Text (5.12.0) and SSH.NET (2020.0.1)
#Website: Upgrade to Bootstrap 4.6.0
#gauges.js: Added a console message 'Gauges Init Done... to have an anchor for debugging
#Dashboard: Added an empty header to an empty pane (configration of dashboars)
#Maps: Corrected some logic which made it possible for website users to evade the map. Now it is again obligatory (http address and Lat/Lon are compulsory)
#ExtraSensors: For the command line parameter ExtraSensors, now the CompileOnly parameter is implicit. This means that now the command utils/bin/cumulusutils.exe ExtraSensors is enough to create the resulting extrasensorscharts.txt
#ExtraSensors: The Extra Sensor identification string in strings.ini is now silently transferred directly to the [Compiler] section in the CUlangXX.ini file so that the legend display is immediately understandable without user interference. Any later change to that string has to be made through the language file. With a total reconfiguration of the Extra Sensors it is best to delete all Extra Sensor parameters in the language file compiler section.
==== Version 6.6.5 (14/10/2021) ====
#Technical: Upgrade of third party libraries (ServiceStack.Text; MySqlConnector; Renci.SshNet).
#Charts: Corrections on Daily Rain, Temp Sum, Growing Degree Days and Thermal Seasons charts for situations where not enough data exist to either create the moving average or the chart as a whole. As a work around you may simply switch the chart off until you have enough data, typically the Moving Average period (for the daily rain or EVT charts) or the first day of the year is valid start day (for the agricultural charts). This is only relevant if you are a new user of CMX and typically have less than a year of valid data.
#Charts: Code correction when data for a month does not exist in the statistical charts per month. Added a semicolon to make console logging possible (yes, semicolons are relevant in javascript).
#Technical: Initialisation of the gauge parameters was erroneously removed during the previous version 6.6 edits. Sorry for that.
#Dashboard: Now it is possible to move the Wind Gauges individually as well. See dashboard for an explanation. Note that to move events as well you need the ChartsCompiler, if you are a starter in CDL, please use the CutilsCharts.def from the distribution.
NOTE: this release requires to replace fully the contents of the utils and the utils/bin directory!
NOTE: this release definitely requires a full non-thrifty run to get the all generated code in line!
==== Version 6.6.1 (12/10/2021) ====
#Fix: If either CUsermenu.txt or CUserAbout.txt does not exist, the realtime.txt will not be read. You can either install this fix (only the executable is required) or create those (empty) files in the webroot.
==== Version 6.6.0 (11/10/2021) ====
#Compiler, AirLink, ExtraSensors: modules now behave properly under thrifty (meaning they will not update the code).Changes to the configuration as always will require a non-thrifty run.
#Internal: Finally unified all the ajax calls to the latest standards (users will not notice I hope but please report on any anomaly).
#Records: Fixed a bug for a translation tag for the Wind Run Distance. Now it shows correctly distance i.s.o. speed.
#General: Fixed an issue with certificates (Let's Encrypt) with the transition to OpenSSL 1.1.0. See also this thread on the forum and also this thread on Windy, note you land on a reply by Mark containing a clear action on how to deal with RPi (what is valid for Raspbian 8 you can also apply for Raspbian 9 & 10). If you don't, don't worry: CumulusUtils will still work.
The last point causes an additional requirement to use Mono 6 and up under Raspbian Linux. In itself this should not be a problem. If you update along these instructions you should have no problems. If Mono is on a lower version this is automatically detected and where required, specific access to https servers is avoided. This all is only required for the CumulusUtils user map so however unfortunate that you will be missing the map and won't be on it with Mono 5 and lower, all main functionality of CumulusUtils won't be touched.
==== Version 6.5.2 (16/9/2021) ====
#ExtraSensors: bug fix for the logic when extra sensor logging is off in CumulusMX and you're generating a website
#AirLink: bug fix in the filename for the ExtraSensors and AirLink logfile when chart period crosses a month boundary
==== Version 6.5.1 (16/9/2021) ====
#ExtraSensors: updated the layout of the table in the dashboard and text and background colour of the header now follow the general dashboard header settings
#ExtraSensors: Added some additional logging while writing the ExtraSensors Charts code
#ChartsCompiler: The Free axis (dimensionless) now has the "ChartsId + dimensionless" as axis title such that the user can give his own description (and unit) through the translation
==== Version 6.5.0 (13/9/2021) ====
#Release of the Extra Sensors module. For the functionality see the Wiki and the notes below, down to 6.1.2
==== Version 6.5.0 beta 3 (13/9/2021) ====
#Modified the text colour of the Extra Sensors table to follow the menu text (as the colouring follows the menu colouring)
#Revisited the reading of the ExtraSensors logfile to avoid double data (and an annoying horizontal line)
#Revisited the reading of the AirLink logfile to avoid double data (and an annoying horizontal line)
#Cleanup of the Airlink and ExtraSensors logfiles will not be on the basis of CreationTime but on the basis of LastWriteTime
==== Version 6.5.0 beta 2 (12/9/2021) ====
#Detection of a CO2 sensor falsly took the CO2 concentration as a double where it must be an integer => corrected, CO2 sensor should no longer be falsly detected (remember Ariane 5 :? ).
#The extrasensorsdata.json was searched in the CumulusRealTimeLocation which was not correct, cumulusutils specific datafiles are always in the webroot. => corrected.
#Extra sensors are now also detected as NOT PRESENT when their entry in strings.ini is EMPTY
==== Version 6.5.0 beta 1 (9/9/2021) ====
#AirLink: Clean-up AirLink logs can now be configured through parameter CleanupAirlinkLogs. Only two months of data will be kept when clean-up is active.
#Internal/AirLink: the airlinkrealtime.txt is now generated with the rc=y to create the decimal point. For an update you need cumulusutils.js library so do at least one non-thrifty run.
#ExtraSensors: Clean-up ExtraSensors logs can now be configured through parameter CleanupExtraSensorslog. Only two months of data will be kept when clean-up is active.
#ExtraSensors: Limited beta 1 release of ExtraSensors module.
==== Version 6.1.2 (2/9/2021) ====
#Bug fix: NOAA - On the first day of a month it does no longer try to display the NOAA report of that month (which caused a failure) but it displays the report of the previous month.
#Internal: Reading monthly logs gained roughly 20-30% speed by doing things differently, especially important for long time series and minute sampling stations
#Internal: Optimisation of AirlinkLog reader and Dayfile reader
#Extra Sensors: Created the possibility to show the Sensor Community map from the Extra menu. The map will be centred on the Latitude/Longitude of the station and displayed on a reasonable zoom level and without the wind layer (see my site for a demo). The user can then zoom in/out and possibly activate the wind layer. No other sensor.community processing is done, the user is repsonsible for actually uploading its sensor data to sensor.community outside CMX environment. 
Inifile parameters: 
 [ExtraSensors]
 ExtraSensors=false
 ParticipatesSensorCommunity=true
Of which ParticipatesSensorCommunity regulates the menu-item of the sensor.community map and ExtraSensors for the moment has no effect.
==== Version 6.1.1 (24/8/2021) ====
#Bug fix: Certain information was not in the logfile which made life quite difficult if an error occurred.
==== Version 6.1.0 (23/8/2021) ====
#All modules: Mentions of inspiration moved to the About/CumulusUtils section of the menu.
#All modules: preparatory work for Extra Sensors, only to decide hoew the userinterface will be.
#All Charts: The chart container now has a General parameter: ChartContainerHeight=650 giving it a standard height for all chart occurrences. For website users this does not really matter (the default value is what it was) but those who use Graphs and/or the ChartsCompiler as a module will see an effect and they will be able to set the height value to what is wanted for their site. You can remove other (old) occurrences of ChartContainerHeight (may be multiple in other sections) from the inifile.
#All Charts: All charts are now boxed with the thin line with curved corner for uniform appearance. This is also valid for modular use and may require slight adjustment of your site.
#WindCharts: Added a section to the Wiki on how to deal with the labels for an 8 section weatherstation (default is 16)
#RainCharts: Rewrote the calculation for the reference lines of Station Average Yearly Rainfall. Now incomplete years (less than 365 days) do not count.
#RainCharts: StdDev range for the station average now can not become less then zero
#Maps Wiki: The & (ampersand) character is forbidden in the LocDesc parameter in the section [Station] in Cumulus.ini because it breaks the cgi-bin perl procedure
#AirQuality: All references (and internal variable names and (output) file names) with AirQuality have been redone with AirLink to prevent future misunderstanding with Extra Sensors. So: I changed the output file to airlink.txt
#Inifle parameter: Changed the inifile section AirQuality to section AirLink. You may want to rename the section to prevent reconfiguration of the AirLink. 
#Language file: Changed the parameter AirQuality in the section Website to AirLink. NOTE: the section AirQuality in the language file remained the same because it is generic!
#Website: Added menu item Extra and moved AirLink (was: AirQuality) to it. This in preparation for Extra Sensor handling
==== Version 6.0.1 (07/08/2021) ====
#MeteoCam: Added labels for MeteoCam page radio buttons to the Language file (section Website) to be translated by the user
#Dashboard: Added Feels Like to the Dew-Gauge
#ChartsCompiler: The ALL Plot variable WindSpeed has been modified to HighAvgWindSpeed to prevent conflict with the RECENT WindSpeed variable (See CDL)
#ChartsCompiler: Corrected the equations for Psat[....] in the Equations section of the CutilsCharts.def (example in the distribution). 
#ChartsCompiler: Added the raw pwsFWI charts for RECENT and ALL in the CutilsCharts.def.
NOTE: gauges.js and language.js have changed so you need to copy all i.s.o just the executable and run at least once without thrifty! You may remove the js and css files from the utils directory after this first run to prevent successive redundant uploads.
NOTE: the feels like text(s) in language.js have not been translated for all languages. You may send missing translations by PM and they will be added in future distributions
==== Version 6.0.0 (21/07/2021) ====
#ChartsCompiler: Finalisation. 
#Website: Added SolarHours to the Solar text panel
#Website: Made the position of the panels user definable (See the new Dashboard Wiki page)
==== Version 5.6.2 (25/06/2021) ====
#Misc Charts: Fixed bug in counting days in thermal season chart.
#Misc Charts: Fixed bug in thermal season chart, it now works correctly on the southern hemisphere. (Tip: use modified thermal boundaries to see useful seasons for your latitude)
#Misc Charts: Set the default for Thermal Seasons chart to false 
#ChartsCompiler: Implemented the POW function (raise a double to some power: POW(number, power). Implemented as Math.pow javascript function
#ChartsCompiler: Implemented the SQRT function as Math.sqrt function
#ChartsCompiler: Added equations and charts to the CutilsCharts.def
#ChartsCompiler: Implemented multiple equation subtitutions e.g. (Avp stands for : Actual Vapour Pressure):
 Psat2008 EVAL [ 6.112 * EXP(17.62*Temperature/(243.12+Temperature)) ]
 Avp Eval [ Humidity / 100 * Psat2008 ]
 AppTemp Eval [ Temperature + 0.33 * Avp - 0.7 * WindSpeed / 3.6 - 4.0 ]
==== Version 5.6.1 (17/06/2021) ====
#ChartsCompiler: Fixed bug in counting brackets in equations under some conditions.
==== Version 5.6.0 (13/06/2021) ====
#MeteoCam: First release of a simple MeteoCam (Webcam) module. See Wiki.
#ChartsCompiler: Lines starting with a semicolon [;] are now treated as comment.
#ChartsCompiler: Equations section added (see wiki for CDL) and they can be substituted in other EVAL equations
#ChartsCompiler: EVAL and STATS now work for both the ALL and the RECENT ranges
NOTE: The combination of the EQUATIONS block and the EVAL of PLOT makes it possible to evaluate more complex (as in meteorological) Equations. The Possibility of combining Plotvariables and calculations makes it possible to evaluate different approximations for e.g. Dewpoint. Both clarified by the example below. The release contains as usual a complete set of test charts. Sometimes with meaning, sometimes just for testing. This set of test charts is an example and a test. Nothing more.
 Equations
 test1 EVAL [ Humidity/100 * 6.112 ]
 test2 EVAL [ EXP(17.62*Temperature/(243.12+Temperature)) ]
 ; Documentation:
 ; https://iridl.ldeo.columbia.edu/dochelp/QA/Basic/dewpoint.html
 ; Compare the Dewpoint from Cumulus with a calculated approximation
 ; Later I will enter the Cumulus Calculation and have the Dewpoint be produced by the Davis station
 ; Nice comparison
 ;
 Chart MyDewpoint Title Dewpoint Calculations in CDL
 Plot RECENT Dewpoint
 Plot RECENT CalcDewpoint EVAL [ Temperature - ((100 - Humidity)/5) ] Axis Temp
 ; STATS Dewpoint SMA colour green
 EndChart
 Chart MyPressure Title Vapour pressure calculations in CDL
 Plot RECENT Pressure
 Plot RECENT MyActualVapourPressure Eval [ test1 * test2 ] Axis Free
 EndChart
==== Version 5.5.2 (06/06/2021) ====
#pwsFWI: the Current pwsFWI button now has forced text colour (not inherited by the background)
==== Version 5.5.1 (03/06/2021) ====
#Compiler: Value arrays need to be reinitialised when the chart remains open and has its periodic (ftp upload frequency) refresh.
#pwsFWI: the Current pwsFWI button moved to the Left Header Text position to improve handling on a portrait held tablet
#General: Provided for non-contiguous data series (missing years and/or months).
==== Version 5.5.0 (29/05/2021) ====
#Distribution: file CUabout.txt has a name change: CUserAbout-example.txt. CUserAbout.txt - if it exists - will be automatically uploaded with the package
#Distribution: file CUsermenu.txt will be automatically uploaded if it exists
#Distribution: file CUlicense.txt has been removed and replaced by the file LICENSE (with identical content to the website menu choice)
#Compiler: Errorhandling of Expression in case of error, now gives an error in the definition of the charts and fallback to the default charts (it was a warning)
#Compiler: STATS and PLOT are now handled as equal entry points of the PLOT section of the CHART (see prev version of CDL image to appreciate the difference)
#Compiler: a PLOT variable may now have a non-keyword name but if so, it MUST be followed by an equation which contains a valid Plotvariable, if not an error is generated. 
#Compiler: And if a PLOT has an Eval equation it MUST now have a non-keyword name to prevent confusion and make a unique legend entry (useful for modification or translation)
#Compiler: Added the function LN (being the natural logarithm of its argument) 
#Compiler: Added the function EXP (being the power function with base e)
#Compiler: All Plotvariables can be used in one single equation to be combined with operators and functions NOTE: this must be seen as beta function as it is impossible to check all combinations of variables, operators and functions. I don't expect this to work flawlessly although confident. Just play with it and provide me with observations and questions for functionality.
#Compiler: The SUM function can only be used once per chart
#Wiki: Updates conform development (please notify voids or unclarities)
NOTE: 
#Because meteo-equations can reach a certain complexity (definitely when written on a single line) a change is considered which should make it possible to use Plotvariables as intermediate calculations or have a definition of partial equations (not plotted) which you might use in Plot. As an example (see the last chart below) One might consider calculating a dewpoint with the Actual Vapour pressure as an intermediate equation. 
#A second change which is considered is making the EVAL and STATS available for the RECENT parameters as well
However, the side effects of the above may be larger than expected, so it requires some study. In the mean time : have fun!
NOTE: 
All calculations and array handling in the generated code are totally unsophisticated and non-optimised. This will only change slowly as performance is astonishingly good, beyond expectations, even on my old tablet and phone. Performance reports are welcome.
Below you find three test charts as examples to show what is now possible (the full testset is as always in CutilsCharts-example.def in the distribution and viewable on my site):
 CHART DailyTemp TITLE Temp with statistics offset 5
 PLOT ALL AverageTemp colour pink
 PLOT ALL sumAverageTemp EVAL [ ln(Sum(AverageTemp-5)) ] COLOUR green AXIS DegreeDays
 STATS AverageTemp SMA COLOUR crimson
 EndChart Output Statistics.txt
 CHART DailyRain TITLE Rain with statistics
 PLOT ALL RainFall colour CornflowerBlue as column 
 PLOT ALL sumRainFall EVAL [ exp(ln(SUM( RainFall))) ] COLOUR crimson AXIS Free
 STATS RainFall SMA colour green
 EndChart 
 Chart MyDewPoint Title Dewpoint calculations in CDL
 Plot all minBarometer 
 Plot all maxBarometer
 Plot All ActualVapourPressure Eval [ MinHumidity/100 * 6.112 * EXP(17.62*AverageTemp/(243.12+AverageTemp)) ] Axis Pressure
 EndChart
==== Version 5.4.0 (21/05/2021)) ====
#Language: Create a distinguishable legend in the chart for the columnrange variable (section [Compiler] in CUstringsXX).
#Compiler: Implementation of keyword EVAL(uation) of an expression for a PLOT with any weather variable.
#Compiler: Implementation of the STATS keyword which will plot a statistic on any weather variable
#Compiler: Implementation of the SUM function for the EVAL keyword
#Compiler: Implementation of the SMA (Simple Moving Average) statistic as first statistic function.
#Compiler: Elaboration of Error messages.
Example code for the EVAL and STATS keywords:
 CHART DailyRain TITLE Rain with statistics
 PLOT ALL RainFall colour CornflowerBlue as column 
 PLOT ALL RainFall EVAL [ SUM( RainFall ) ] COLOUR crimson AXIS Free
 STATS RainFall SMA colour green
 EndChart OUTPUT Statistics.txt
Which results in:
==== Version 5.3.8 (18/5/2021) ====
#Fix : A fix in errorhandling for a condition which occurs only on Win7 and has been introduced in 5.3.0 or a bit later, h/t @meteo19.
Update is advised!
==== Version 5.3.7 (15/5/2021) ====
#Misc Charts: Fixed a bug in the titles for the agricultural charts, where the parameters data in the Title were showing fixed values
#Maps: Send signature file only once per day (parameter [Maps] DoneToday added)
#ChartsCompiler: Added DAILY range specifier (See CDL)
#ChartsCompiler: DAILY or ALL charts now have different initial rangeselector: DAILY has 1 month, ALL has 1 year
#ChartsCompiler: added columnrange as type for variables which have max and min values (see CDL Graph Types for some implicit semantics)
#Added MySQL as a data source alternative to the original datafiles (usage: disadvised and undocumented)
NOTE: In the search for performance improvement and efficiency the MySQL usage has been implemented and experimented with. The conclusion was that MySQL will not serve a better performance in the context of CumulusUtils. I decided to take another route to stay within the the design goals of CumulusUtils.
NOTE: The ColumnRange type specifier was already on the roll and was implemented in the compiler after an idea by @buffaloseven and a technical hint by @beteljuice: H/T!
Example code for the ColumnRange:
 CHART DailyTemp TITLE Daily Temperature with ColumnRange
 PLOT DAILY AverageTemp colour green As ColumnRange
 PLOT DAILY AverageTemp colour black As spline
 EndChart OUTPUT ColumnRange.txt
Which results in:
==== Version 5.3.6 (06/05/2021) ====
#Maps: Some users run Cutils output in iframes. Some recent modifications in Maps were not correctly handled in iframes. That has been corrected.
#ChartsCompiler: The runtime system now handles click events only for the Home page charts (the click event system will need a bigger overhaul in future)
#ChartsCompiler: OUTPUT is now out of beta
Unknown issue: the NOAA reports are not shown on a Samsung tablet but do work elsewhere. Other observations are welcome. An unknown additional click event is generated. Currently looking into.
==== Version 5.3.5 (02/05/2021) ====
#Charts: bug fix: Agricultural charts now handle few data and no start on January (or July first) correctly
#Charts: Agricultural/Seasonal charts now start correctly on July 1 in the southern hemisphere (H/T @mcrossley)
#Charts: graphs which are switched off now not only won't be present in the menu but they won't be generated either (reduction of size of the output, time gain)
#ChartsCompiler: Output can be defined separately for each chart. See Charts Definition Language and the ChartsCompiler. (bêta for the OUTPUT specifier only)
==== Version 5.3.3 (27/04/2021) ====
#Charts: added the third Agricultural chart showing the proportional distribution of the thermal seasons over the year (H/T @Pes for the idea).
#Website: Added the Wiki-link to the About menu
#pwsFWII: Changed the reference for the scientific background to the Wiki
#FTP issue: lack of TLS session resumption support in FluenFTP.
#The previous point led to a major overhaul of the FTP / Map situation:
# => no more regular FTP in the Map module, use is made of a HTTP POST / CGI handling of the signature file
# => everybody wanting to use the map can download https://meteo-wagenborgen.nl/maps.txt and include that the normal way in their website (it is done automatically through the software)
# => For the normal internal FTP usage, FTP and FTPS protocols remain supported but in case of server issues the only option is to go to SFTP
# => Unfortunately the logfile does not accept UTF8 characters so you may get confused, but be assured they are handled well in the Map context
==== version 5.3.0 (17/04/2021) ====
#Manual: Replaced the README with the Wiki (https://cumuluswiki.org/a/Category:CumulusUtils). All articles are in place. In some foreseeable future the README will get different contents, this is the last release of the manual.
#Several review quality modifications as a result of the writing of the Wiki.
#Infile parameters: added DoLibraryIncludes to have an unambiguous parameter to determine whether or not to include the highcharts libraries and/or Leaflet library when using e.g. Graphs, Maps and the compiler as a module outside the Website Generator. NOTE: for module users this may have effect on you: CHECK!
#ChartsCompiler: Corrected an error in the document load of the compiler output for modular use.
#Inet: Changed logging around the FTP connection for all protocols
#Enabled the Thrifty qualifier for individual module runs.
#AirQuality: removed the helpbutton text when used as a module.
#Removed the use of Thrifty for the Map module. Parameter MapsPeriod has no more use (can be removed).
==== version 5.2.0 (08/04/2021) ====
#Added two growing season graphs (specific for Agriculture): Temperature Sum and Growing Degree Days in the miscellaneous graphs menu. Translations as usual. (suggestion h/t : @Pes)
#Unification of the maximum number of visible series when year-series are in a chart (e.g. Monthly Rain). Inifile parameter MaxNrOfSeriesVisibileInGraph is now valid for all charts of this type.
#FTPS now uses automatic choosing between Passive and Extended Passive (default when available) mode.
#FTPS protocol now accepts SSL 3.0 and TLS 1.0 as well. If any problems arise please let me know.
#Some minor bugs and typos.
==== version 5.1.2 (31/03/2021) ====
#Website: UserAskedData did not serve the AirQuality data under certain conditions
#Errorhandling: Added InnerException info in Map for the Upload of the signaturefile
#Website: Determine Daylights Saving Time for the station clock no longer requires a non-thrifty run of CumulusUtils.
#Map: FTP connection now uses Automatic passive mode (Extended or Standard depending on the server)
==== version 5.1.1 (23/03/2021) ====
# Website: Fixed a bug for double loading of the first chart
# Website: Finished the optimisation of library loading (defer)
# Heatmap: Fixed a bug with the All button for larger series
==== version 5.1.0 (22/03/2021) ====
# Heatmap: Added two more colours for a more dynamic display.
# Heatmap: For long series the display is split in pages of 10 years (default but configurable) with buttons Prev/Next and All to walk through the pages.
# ChartsCompiler: The Solar axis when used for only the radiation now has a scale fixed to the current theoretical solar maximum. The image therefore does not easily change.
# ChartsCompiler: added RECENT and ALL qualifiers for the Plot variables. Updated the definition specification. Option for the legacy DAILY charts is available but not now implemented.
# ChartsCompiler: Added HeatingDegreeDays, CoolingDegreeDays and EvapoTranspiration as Plot variables.
# ChartsCompiler: Added yAxis for DegreeDays and Evapotranspiration.
# ChartsCompiler: Added the infrastructure to add JSON data if CMX does not provide (like e.g. the Evapotranspiration). 
# UserAskedData: Commandline parameter UserAskedData provides the JSONs for non provided data and encompasses missing weather data and AQ data (the old AirQuality Thrifty handling is now obsolete).
# Dayfile: Modified for additional parameters and global handling of the list.
# Monthfiles: Modified to read only one or two files to create a list for the subselection for the RECENT graphs (evapotranspiration and maybe other possibilities).
# Monthfiles: Addition of inifile parameter MonthsOfMiracleAndWonder. If CumulusUtils uses a Locale other than that of CMX the filenames for the monthly logfiles are formed differently. In case of trouble edit this string to create CMX matching filenames. 
# Website: Moved to jQuery 3.6.0 
# 
==== version 5.0.4 (09/03/2021) ====
# AirQuality: patch release to account for a build error.
 
==== version 5.0.3 (07/03/2021) ====
# AirQuality: bug fix concerning the windbarbs in relation to the renewed unit handling (as introduced in 4.10.5).
# Graphs: Fixed a bug in the heatmap where a zigzag blue line was visible (sometimes in front, sometimes in back). 
# Graphs: Added the HighchartsDefaults and HighchartsLanguage as the includes when graphs used as modules. NOTE: this will modify the look and feel of the graphs slightly, especially the axis.
# Internal: Review of all ajax calls.
# NOTE: when using graphs as a module, users can modify the height of the Graphs container by specifying in a style section of their template: #chartcontainer {min-height: 620px;}
==== version 5.0.2 (04/03/2021) ====
# WindGraphs: Acceleration of the WindRose creation by 35%
# WindGraphs: For 8 sector wind direction stations (e.g. Fine Offset) this is now also reflected in the WindRose.
# HTML: Added deblocking and deferring actions to speed up index.HTML
# Charts: bug fix for the Home charts: the default chart and the fall back every 10 minutes are now correct.
# Charts: Click events defined in the user definitions of the charts are now handled correctly.
==== version 5.0.1 (01/03/2021) ====
# Bug fix in Charts Compiler: Numbers in the Charts definitions are obligatory with a decimal point and not a free to use decimal locale separator. So the whole compiler and code generation now function under the Invariant Locale having the point as decimal separator.
# Barometer scales are now set to the stations min/max records to get the effect of a real barometer without you requiring to adapt for the ever changing scale. 
==== version 5.0.0 (28/02/2021) ====
# FTPS: Release
# Graphs: Added the Charts Compiler - Release. 
# See the separate document in the distribution.
# General: bug fix - unit for mile is mi and not mph
# General: Upgraded the Bootstrap base version to 4.5.2
==== version 4.10.6 (20/02/2021) ====
# FTPS: Fixed a bug where the port was not assigned when using FTPS
# Added SFTP access.
# Internal: Added the Pressure in the Month file List and made the list sorted on date (no direct effect for user). 
# Internal: Made first steps to use MySQL/MariaDB as data source.
# Graphs: Added the Charts Compiler in zeta release (meaning it is there but you won't notice unless you really want to look at it). See my separate post.
==== version 4.10.5 (14/01/2021) ====
# Map: when using the map as a module it was lacking the jQuery library include. That is fixed now. Has been published before as 4.10.3 patch1
# Internal: Redesign and rewrite of the unit handling and conversion possibilities (when required). One of the first foundations of CumulusUtils I wrote at the start of Top10 and pwsFWI. However I got more and more annoyed by the way I handled it so I changed it from an aesthetic and a technical point of view. It has been tested but as you can imagine not all permutations have been handled, so keep an eye open and please report bugs. Especially when you use units other than km/h, °C, hPa and mm. 
# Several smaller changes internal and in UI.
==== version 4.10.2 (05/01/2021) ====
# Website: Added some runtime logging for verification purposes only.
# AirQuality: fixed a bug where the realtime values contained a comma because of the locale, which was not changed to a point when required.
# AirQuality: Added optional Windbarbs to the Air Quality graphs (really great :D See meteo-wagenborgen for demo).
==== version 4.10.1 (01/01/2021) ====
AirQuality: xy zooming now works on a tablet too.
# Map: applied some 'beteljuice changes' to the map.
# General: made the first run for First Time Users more accessible and easier to understand. Console output is now default true at first run.
# Fixed a fatal bug in formatting the filename of the AirLink logfile.
==== version 4.10.0 (28/12/2020) ====
# Map: Reintroduced the Map module in CumulusUtils. Completely overhauled and rewritten. No command but an inifile parameter (Participant) governs a station to be on/off the map.
# AirQuality: Decided on the reference lines / Help button. EU-CAQI one hour series will act as reference line for all as explained in the text under the help button.
# AirQuality: Graphs now have xy scaling.
# FTP: Modified the FTP module such that if a user does not use FTP and even does not have it defined on its system, CumulusUtils will always continue and generate the output.
# Technical: various clean-ups and modifications in the Javascript runtime system.
==== version 4.9.0 (18/12/2020) ====
# AirQuality: Modified CA and AU AQI translation to the table view in the path to perfection.
# Removed the Map module completely from CumulusUtils.
==== version 4.8.4 (16/12/2020) ====
# Website: Added Day length at solar info.
# Website: fixed erroneous 'correction' of time and date separators in the javascript runtime for the dashboard.
# AirQuality: graphs are now drawn with spline.
# General: Now parameter NormalMessageToConsole also works on Windows.
# General: changed the level of several messages (INFO became ERROR; WARNING became INFO and INFO became VERBOSE etc...). In general will the visual appearance of the logging have changed so don't be surprised.
# General: If a timeout occurs in the FTP Upload procedure a stackdump originated. That has been corrected and should now be just an error.
# General: Improved error handling to prevent stackdumps (especially around FTP). This will be an ongoing exercise no doubt. The new FTP lib apparently demands different handling. 
I can use feedback on messaging.
==== version 4.8.3 (9/12/2020) ====
# Patch for repair of fixed IP for development to localhost for communications with CMX.
==== version 4.8.2 (9/12/2020) ====
# General/Technical: Logging has been rewritten. Verbosity level can be controlled (None, Error, Warning, Info and Verbose) and messages are subdivided in those types.
# General/Technical: Progress messages can be written to the console.
# Technical: Age of the FTP lock file is now correctly determined outside the CET time zone. 
==== version 4.8.1 (4/12/2020) ====
# AirQuality: Bugfix in JSON datafile creation when the CMX parameter DataLogInterval is larger than one minute.
# PwsFWI: On request of a lot of users the Current Value now has the possibility to be set to Today's value (when using prediction). See the parameter section of pwsFWI for CurrentIndexDay (possible values: Yesterday (default), Today) 
==== version 4.8.0 (1/12/2020) ====
# Added graphing for the two AirLink sensors.
==== version 4.7.2 (24/11/2020) ====
# Parameter SslFtp did not exist in Cumulus 1; Made sure the default is correct on C1 / Win7 machines.
# Made sure FTP logging works on Win7 machines.
# Made sure Maps works on Win7 machines
==== version 4.7.1 (20/11/2020) ====
# Manual: Further fine tuning info UploadDir and CumulusRealTimeLocation.
# Technical: Reported issue to FluentFTP with respect to FTPS. Waiting for feedback/Solution. As a workaround downgrading the FluentFTP library to 32.3.1.0. works. It will remain so until certain upgrade is safe.
# Technical: Optimised some parts of the CumulusUtils javascript runtime.
# Technical: resolved a naming conflict between CumulusUtils and a library. The effect of this conflict is unknown, but it may account for some weird effects some users encountered.
# AirQuality: Bug fix adjustment decimal separator.
# AirQuality: When using thrifty, the module is not uploaded (not necessary because the info seen is realtime, no history data so far, this may change in future).
# AirQuality: The calculation of the AQI has been fine tuned and should be OK now both in CMX (build 3097) and CumulusUtils. 
# AirQuality: The table width of AirQuality report must fit within its frame.
# Maps: The lockfile mechanisme has now been rewritten to take advantage of the FluentFTP library. The algorithm did not change, the use of FTP did. Keep an eye open for anomalies.
==== Version 4.7.0 (15/11/2020)(Withdrawn) ====
# Run: the executable and dlls have been removed from the CumulusMX directory to the utils\bin directory. You have to call CumulusUtils with the following command (being in the cumulus directory) utils\bin\cumulusutils.exe. This avoids conflict and synchronisation of version of dlls. Cumulusutils has now evolved into technical independency.
# Internal FTP: Made FTPS available (SFTP will follow);
# Internal FTP: Made FTP logging optional (section [FTP site], parameter FtpLog, default off)
# Map: Internal working has changed because the Map database stationswithutils.xml underwent a provider change because of the FTP changes.
# Technical: CumulusUtils is now using ServiceStack.Text.dll i.s.o. NewtonSoft.Json.dll (You may now remove Newtonsoft dll from the CumulusMX directory is you are on CMX version 3.9.1 and higher)
# Added a NOTE at the start of the manual to focus on the parameters CumulusRealTimeLocation and UploadDir to avoid confusion.
==== version 4.6.3 (11/11/2020) ====
# Maps: Reverted to old FTP system (only plain FTP supported) and corrected for provider change of Map database.
==== version 4.6.2 (6/11/2020) ====
# Website/AirQuality: Realtime files and general report files (like pwsFWI or YADR) are now read with the cache=false qualifier in the ajax call. This should improve user experience.
# AirQuality: reworked the interface for the order of the first columns.
# AirQuality: Fixed a bug concerning the normalisation of the AQI to the position of the indicator on the right panel of the table.
# AirQuality: Changed default country to US.
==== version 4.6.1 (4/11/2020) ====
# Website/AirQuality: If no sensor is present, the menu choice 'AirQuality' will not appear in the menu.
# AirQuality: The CA handling of the AQI is debatable and in my view incorrect. The AQI display will for the time being be like the US en needs to be set accordingly in CMX.
# AirQuality: Fixed a bug when generating the outside sensor. Both in the sensor code as in the airlinkrealtime.txt file (a space too many was generated).
==== version 4.6.0 (3/11/2020) ====
# Sysinfo: For the Raspberry Pi the CPU temp is now available.
# Air Quality: The first release of the Air Quality module, support for the Davis AirLink sensor and my own FakeAirLink system. Version 4.6 may be regarded as a beta to the AirQuality system as many things have to be optimised and maybe even rewritten. It is working fine though.
==== version 4.5.5 (26/10/2020) ====
# Website: Fixed bug for DST switch. Station time now is correct.
# Monthly logfiles: Fixed bug for existence of AirLink logfiles. Now they are ignored.
==== version 4.5.4 (4/10/2020) ====
# PwsFWI: Fixed bug for Current PwsFWI value on the menu bar.
==== version 4.5.3 (3/10/2020) ====
# Now all HTML of the individual modules are W3C Validator compatible (which includes some technical changes which I think have no impact |) ).
# Added the start of observation date to the record pages.
==== version 4.5.2 (2/10/2020) ====
# NOAA: Fixed a bug which generated a new file only the 2 day of the year i.s.o. the second day of the month when under thrifty.
# Website: Fixed the last HTML errors on the main site but you won't notice. The website generator is now W3C Validator compatible and should not generate errors.
# Website: If Google-Analytics is enabled (an ID is defined in GoogleStatsId) it is now possible to give the user (or just yourself) an opt-out possibility (PermitGoogleOptout=true), see the manual.
# Solar and UV are now separately configurable both for both dashboards.
# It is now a requirement for use of cutils as a module provider, to use UTF8 character encoding of the page the module is used in. Specifically for the character for degrees and other characters outside the standard range like all language specific characters (the website generator has this standard automatically).
==== version 4.5.1 (24/9/2020) ====
# Solar Graphs: Y-axis description changed from “Daily kilo Watt hour” to “Daily kilo Watt hour per m2”. Note that this is only the default, you have to change your translation yourself.
# Website: Finally fixed some HTML errors on the main site but you won't notice.
# Maps: Both the user map and the Station map now will always fit within the report view and will be responsive on other devices. The height of both maps is fixed to 750px.
# Stationmap: the zoomControl has been removed and scrollWheelZoom has been disabled. Effectively it has become a station map with zoom fixed to the setup used at generation time.
# Forecast SpotWx, Wxsim forecast both now have a 100% width and should be responsive. This does not work well on the Norwegian forecast so that one remains fixed 1000px. Wxsim has not been tested because I don't have it. Please be aware and report back if you need change to keep the result within the report view.
# UserMenu: If you wish to use an iframe to start up more complex URLs in the report view, I would advise to use “width='100%' frameborder='0' style='border: 0; height: 75vh;'”. 
# This should keep this within report view limits on all devices (not saying it is useful on all devices). I could not get it to work on Effis though. Wxcharts does not do well on the multi plot view. For images please use “width='100%' height='100%'”
==== version 4.5.0 (23/9/2020) ====
# No functional changes just the version number and some additional code optimisations.
==== version 4.5.0 beta2 (22/9/2020) ====
# Bug fix for correct reading of older records (Solar radiation was introduced in version 1.8.5 and Current theoretical max solar radiation in version 1.9.1. Old logfiles do exist in the wild.
# Bug fix for variable interval.
# Additional logging for solar graphs wrt the variable interval.
# Performance improvement on the creation of the solar graphs wrt the determination of the variable interval.
# Number of error messages per datafile are maximised, currently at 10.
# Some minor changes to texts and default values of texts.
==== version 4.5.0 beta (20/9/2020) ====
# Addition of Solar graphs (Solar Hours and Solar Energy).
==== version 4.4.1 (13/9/2020) ====
# Station Map: bug fix for initialisation.
# Station Map: Added Beaufort in text below the wind arrow.
# Station Map: Map now centres between wind arrow and station marker.
# Three compass roses are now in distribution, no 1 being the default.
# One arrow now in distribution, no 1 being the default.
# Users can add compass roses and arrows at will. Naming convention in the manual.
# Manual – continuous work in progress - is reworked for the parameters which are now part of their functional section. All parameters should now be documented.
==== version 4.4.0 (11/9/2020) ====
# pwsFWI: removed “NOTE: Behavioural testing still under way!”. De module is now seen as correct and finished after a year of testing against field observations and EFFIS. Thanks to all who participated as early adopters (the first 15 you find here).
# Website: If all graphs of a group are switched off the corresponding menu won't appear in the main page.
# Station Map module is introduced (though not a real module because it can't function without the 'realtime' system). Run 'cumulusutils.exe website' without thrifty. See manual.
# Menu choice for Station Map is configurable
# Graphs: The colours contained a bug where it was not possible to empty the parameters GraphColors and WindRoseColors.
# Graphs: minor changes/improvements
# Thrifty: minor changes/improvements
# Prepared the monthfile records for use in other graph modules.
# Manual – continuous work in progress - is reworked for the thrifty system with focus on graphs.
==== version 4.3.1 (7/9/2020) ====
# GraphWind: Windrun Graph title now has AllTime (section General) text i.s.o. Year 0.
# Where distance is used as unit with the WindRun display (graph, YADR etc...), now the correct distance unit is displayed: km for km/h; km for m/s; mi for Mph; nm for Kts (as the Wiki says)
# GraphsWind and YADR: The class width for WindRun is now configurable (default 75) through inifile parameter: WindrunClassWidth (section: Graphs).
# NOAA: the report page may now start in the current month or in the current year. This can be configured therough parameter StartInCurrentMonth in section [NOAA].
# All modules: Checked for UTF8 output and corrected if necessary. Now all files are guaranteed UTF8 written.
# Restored the double quotes in the language string for CompasSectors which had been erroneously modified in version 4.1.0. This is only important for new users where the inifile parameters are initialised.
# Modified/added some logging messages.
# Some [minor] code corrections/cleanup.
==== version 4.3.0 (3/9/2020) ====
# Website: Modified the menu to accommodate separation of graphs from reports.
# Top10: Added total wind run per day.
# YADR: Added total wind run per day.
# YADR: Pression now give high and low values of the barometer
# Graphs: Changed the default colour scheme for the graphs with configurable colours (within the application). The HighchartsDefaults remains untouched. To try, comment out or remove the parameter GraphColors (take care if you modified colours yourself!).
# Graphs: Modified the module construction such that Wind graphing was added, currently consisting of the WindRose (which was deleted from Miscellaneous Menu) and a WindRun statistics graph.
# WindRose: the WindRose is no longer a separate module but belongs to the WindGraphs.
# Graphs: now partitioned into four submodules (which cannot be separately generated but which graphs can be switched off)
# Graphs: Thrifty component for Windrose has been removed. The WindRose now follows the Windgraph thrifty periodicity. If you wish to speed up generation for experimentation you can still set WindRose to false.
# Bug fix: Forecast – The Latitude and Longitude do not have a consistent format in Cumulus.ini. Sometimes it is three or four digits, sometimes it is 8 digits or more. Handling the coordinates as a string to be used directly to the URL of SpotWx with four digits failed causing a crash. 
# This has been fixed.
# NOTE: The Windrun and other modules work for the units as defined in CumulusMX. Only for in some situations conversions must be applied. If you encounter such situation please let me know. So far no imperial unit installations have been tried. For the Windrun I don't know what the run distance is taken in if the windspeed is m/s. I assume km. 
# Continued work on research of this Mono Error. So far no result. I appreciate any observation report. If it occurs on your system you will find files with a name like mono_crash.0.0.json in your cumulus directory. So far it does not seem to be damaging and everything seems to function as it should.
==== version 4.2.4 (26/8/2020) ====
# Adjusted the file read procedures to accommodate the new internal data format of CMX (to be released later).
# Forecast: The SpotWx has a Timezone component. The naming is different on Windows and Unix/Linux which is not understood by SpotWx. I therefore changed the timezone to the simple numeric representation of hours. It should now work everywhere.
==== version 4.2.3 (24/8/2020) ====
# Forecast: Added SpotWx as default Forecast system.
# Language: Added a language tag for WindRose – PeriodInWindRose (section Graphs) which is for the title of the period legend added in v 4.1.0. Note that I repeat the related release note of v 4.1.0: Language: Moved the words Year and Month from section Website to the General section (so in your language file make the same move and you're good).
# PwsFWI/Website: Made the pwsFWI current file configurable for the Betel-Kocher gadget (see manual pwsFWI).
==== version 4.2.2 (21/8/2020) ====
# Graphs: Fix for a HighCharts [library] modification which takes care of negative values on logarithmic scales (used in the Rain Graphs). This stopped working some days ago, with this version it is repaired.
# Tech: await now used on Forecasts.
# Some minor code corrections.
==== version 4.2.1 (18/8/2020) ====
# Fix for a bug which failed under some conditions to get Webtags for SysInfo and for Inifile parameters.
==== version 4.2.0 (18/8/2020) ====
# The module UserReports is now alpha.
# Graphs: Rain and Temperature Year/Month statistics graphs now start in the current month (that is the month in which the graphs were generated)
# NOAA: Adjusted NOAA report Width to 700 to avoid horizontal scroll bar.
# Language: Swedish sv-SE made available.
# Improved Usage message.
# Tech: Finalised / cleanup code changes for async/await and HttpClient.
==== version 4.2.0 beta (13/8/2020) ====
# Changed Norwegian from NO (which is not a language code, but a country code) to NB (Norsk bokmål) and NN (Nynorsk). This had already been effective in 4.0.0, but with the completion of language.js for the gauges and the publication of the translations on the Forum on 10/8 it is now a formal change (by sutne/Steinar, thnx)
# Added Webtag processing for inifile parameters.
# Added UserReports with Webtag processing, see the manual.
# Tech: reshuffle the HttpClient/internet code. This introduced also async/await processing and more or less threw some thing upside down. Therefore this release is done as a beta. If you experience issues, please notify me and fall back to the 4.1.0 release which you no doubt saved.
# Having said that I think the release is good enough and you are invited to play with the added webtag features.
==== version 4.1.0 (8/8/2020) ====
# Fix for some minor glitches, the first of it was released as version 4.0.1 (unregistered version).
# Website: Complete overhaul of the Skin/Theming options and system for the CMXgraphs to facilitate modification of the Dark theme (and probably also other themes) of Highcharts.
## Themes (included the principal default) added in distribution for the user to start modifying. 
## Manual: complete and extensive rewrite of the chapter on Skin/Theme and HowTo. NOTE: any legal color format can be given in both the cumulusutils.ini and the HighchartsDefaults.js. This includes the transparency field.
## For the normal reporting in the ReportView, the colours are basically ruled by the parameters ColorReportviewText, ColorReportviewBackground, ColorReportviewTableData. This hold too for report subscripts. For possible links, format is taken from the footer: ColorFooterLink, ColorFooterLinkHover.
## Some changes in behaviour of the graphs for the default theme.
# PwsFWI: changed the color of the text Legend. It now obeys ColorReportviewText.
# Website/All: Fixed a bug where the graphs module was always generated under Thrifty condition (meaning sometimes they were not generated when that was intended even when CU was run only with graphs as argument).
# Website: The header is split in three parts. Center is the title and the location for 60%. Right and left have 20% and is governed by the inifile parameters HeaderRightText and HeaderLeftText.
# WindRose: As the WindRose has no time axis, the graph itself needed an indicator so a print would have a period indicator on it. The text colour of the period legend (let's give it a name) will always be the same as the Title color of the graph (which is rules by the theme)
# Language: Moved the words Year and Month from section Website to the General section (so in your language file make the same move and your good).
# PwsFWI: fixed a bug where, with less than 35 records in dayfile; Analysis on 30; and without prediction, the module crashed.
# Graphs: fixed a bug where, when the nr of periods for the moving average is less then the figure defined in the inifile, the data-section of the Highcharts graph code for the moving average, missed an opening '['.
==== version 4.0.0 (29/7/2020) ====
# This update touches most core files so please run a full update and upload all delivered files (to the lib and css library).
# General: Adapted CumulusUtils to take advantage of CMX 3.7.0.
# General: The consequences of the technical rift are described in the chapter Before and after version 4.0.0 of this manual. 
# General: The biggest difference is that CMX MUST be running when CumulusUtils is activated. If not, Utils will run to completion but some information will not be available. 
# SysInfo: The systeminfoTable.txt file no longer needs to be processed by Cumulus and its entry in 'Extra Webfiles' can be removed. It is now a module like any other.
# Website : The version information in the footer now shows information when a new CMX version is available.
# Website/Home : The CMX graphs are upgraded to the level of CMX 3.7.0 and now display conform the technique offered by CMX. This means that the lines displayed are defined in CMX and no longer in CumulusUtils causing the data not to be send if the parameter is switched off.
# Website/Home : If the inside Temp/Hum is activated in CMX, it still can be deactivated in CumulusUtils (though the data will be send)
# Website/Home: Daily temperatures now are smooth lines.
# Website/Home: The user can choose between lineWidth 1 or 2 through parameter HomeGraphLineWidth. The value holds for all graphs.
==== version 3.9.11 (26/7/2020) ====
# Website: Modified colouring of the ReportView to accommodate the Dark Themes:
## NOAA now have their own colour parameters – ColorNOAAText (def: Black) and ColorNOAABackground (def: #f9f8EB)
## To make the YADR table data independent because of the intrinsic colouring a new parameter has been introduced – ColorReportviewTableData
## To make the Beteljuice format for pwsFWI workable in the dark theme, the website now uses the text colour of the ReportView as text colour for the legend and the key
## The System Info now adheres to the ReportView background and text colours.
## Any subscript to reports (as HTML paragraphs) now adhere to the ReportView background and text colours. The links and hover definitions adheres to those of the footer.
# Map : A lockfile will expire after three minutes after which it will be regarded as orphaned and removed. Deadlocks because of orphaned lockfiles should no longer occur.
# Checked against CMX 3.7.0 – minor glitches, no issues.
==== version 3.9.10 (22/7/2020) ====
# Technical: Modification of the function for reading of XML data to counter a technical issue.
# Technical: Preparation for version 3.7.0 of CMX.
# Website: Added inifile parameter SiteTitleAddition in section [Website], default: empty string.
# Thrifty : If yesterday rain detected, graphs are always generated. 
# Thrifty : Finalised and perfected the logic.
# General : For the Norwegian language the code NO is removed as accepted language and nn-NO and nb-NO are added.
# General : language.js (for the gauges) has now been adapted for the two official Norwegian languages: Nynorsk (nn) and Bokmål (nb).
==== version 3.9.7 (12/7/2020) ====
# Website / All: First step - optimized the Thrifty logic.
# Maps: Fixed bug in clean-up segment where an empty map was produced.
==== version 3.9.5 (4/7/2020) ====
# Website: The HTML LANG now really contains the locale.
# Map: In the battle against the random errors in the stationswithutils.xml data file, an FTP lockfile mechanism has been implemented. Now one and only one station gets access to that file. Other stations wait at most 8 seconds, if they don't get the lock, the Map generation is abandoned for this run (and if that happens often, the user is advised to use a less occupied time slot).
# Sysinfo: The report width is now configurable (Default is 700px)
# Sysinfo: Windows users can configure lines not to display. Run the command systeminfo and count the lines. Host Name is line nr 1. Fill in the section [SysInfo], for parameter SystemInfoLinesToSkip with comma separated line numbers e.g.: 7,10,11,20 That's it.
# Dashboard: Slightly tidied up in the sense that line breaks between the figure and the unit are prevented.
==== version 3.9.3 (27/6/2020) ====
# SysInfo: On windows the listing now stops when the line with pagefile.sys (excluded) is found. This should be valid for all languages. The listing now is left aligned with width: 700px, centered in the ReportView.
# Website: To increase consistency, the HTML LANG will contain the locale from the inifile (Read this and this). This will better satisfy search engines.
# Website: Clicking a gauge or text block in the dashboards, loads the corresponding graph into the ReportView. 
# Made a message on the forum and an entry in the manual to draw attention to the possibility of changing the graphs appearance through a theme to complete user modification of CumulusUtils. (using this technique btw also holds for the modules and for CumulusMX itself).
==== version 3.9.2 (23/6/2020) ====
# Graphs/Website: Implemented the UseHighchartsBoostModule inifile parameter to enable/disable the Highcharts boost module. This to bypass a problem with Google Chrome and/or certain graphics cards. Note: You can also switching off the hardware acceleration of Chrome iso setting this to false!
# Small correction in Maps for Lat/Lon with comma in it (they will now show on the map)
==== version 3.9.1 (22/6/2020) ====
# Maps: Made Name, Website and Latitude/Longitude compulsory for website registration (and therefore for use of Website generator). 
# Maps: If an entry is not updated within 7 days it is removed from the map (Cleanup). 
# Graphs: Changed to the latest stable, made some minor corrections. 
# Graphs: Included the boost module as a result of this discussion. This dramatically increases performance.
# General: Fix for a possible interference with the Cumulus inifile read/write.
==== version 3.9.0 (20/6/2020) ====
# WindRose: inverse of stacked display/legend now ruled by parameter WindRoseInversed: true/false, default false.
# Website: Overhauled the switching system of the dashboard. Although no functional change and even small technical change, this is a major improvement (with a little help from Mark).
# Dashboard: Instead of the ledVisible parameter which was removed in version 3.8.3, there are now thresholds which – if activated - trigger the led for that specific gauge. See the manual for description. Run once to make the parameters appear, fill in and run again.
# Any error in the locale/language given in the inifile now no longer aborts CumulusUtils, but sets it default to en-GB.
# Manual: NOTE – just below the TOC – on performance during update because of WindRose.
# General: Cumulus.ini is no longer read directly but a copy is made and afterwards deleted because of some suspected interference.
# Known issues: Several anomalies – Causes unknown and will be researched. This will be addressed later.
# if the threshold value is higher than the max value shown on the gauge, it is unpredictable which value it takes (specifically relevant for the wind gauge). 
# For the rain gauge there is no indicator which value is set. If the value is higer than set, the led should start flashing. The ThresholdRainVisible parameter is used to enable the led.
==== version 3.8.4 (15/6/2020) ====
# YADR: Nr of rain days in the rain summary table now actually displays the nr of rain days.
==== version 3.8.3 (15/6/2020) ====
# NOAA: corrected the Thrifty generation method for the 2d day of the month iso 2d day of the year.
# Dashboard: Moved UTC down in Clock section.
# WindRose: Reversed the legend for the WindRose: low to high wind speeds will be listed top/down.
# Website: If the site remains open in the Home situation (The Cumulus Graphs reportview) it will refresh the graphs on the interval the user has defined in the CumulusMX inifile [FTP site] section, for parameter UpdateInterval. The timer for this action restarts if within the priod another report is viewed.
# Dashboard: Because of oscillations of the gauge needle around old and new values, the inifile parameter SteelseriesLedVisible now defaults to false and has been removed from the CumulusUtils parameter set. You may remove it from the inifile. If, in future, the problems around this parameter have been resolved, it may be reintroduced for use within CumulusUtils.
# DayRecords: Changed selection for formatting. Only noticable for users with less than two years of data (but you never know).
# DayRecords: Fixed the formatting for the HighGust column (which was missing, nobody noticed :) ).
# YADR: changed table fonts to 80% and normal (not bold) to accommodate smaller PC and tablet screens. Comments are welcome.
# Some code optimizations.
==== version 3.8.2 (6/6/2020) ====
# DayRecords: improved/corrected the Thrifty generation method.
# Top10Records: improved/corrected the Thrifty generation method.
# Site Stats: For the google statistics, now for the ReportViews event-statistics are gathered as well. More useful than page stats because it is only one page :)
# Some code optimizations.
==== version 3.8.1 (4/6/2020) ====
# Records: improved/corrected the Thrifty generation method.
# Logging: improved messages.
# General: using locale definitions for the two letter ISO language code (if it were only for the differences between en_GB, en_AU and en_US). IMPORTANT: Please read the NOTE on locales and Language parameter at the start of the manual!
# General: Language must exist as gauges translation. If not CumulusUtils exits.
==== version 3.8.0 (02/6/2020) ====
# Dashboard/Website: full parameter checking and verification before using the user settings. Messages are created when errors are detected. In case of invalid, setting parameter defaults.
==== version 3.7.5 (01/6/2020) ====
# Move log-directory to utils directory to prevent pollution of the CMX directory.
# Several minor code optimizations and changes which should go unnoticed. Some changes in logging for clarification, removal of erroneous messages.
# Manual: Updated the manual on the thrifty system general.
# Manual: Updated the manual on the thrifty system specifically for Yadr, NOAA, Records and DayRecords.
# Manual: added the modifying parameter values for the gauges. 
# Manual: added the WindRose (had already been done partially in previous versions) and updated/corrected the whole thing a bit.
# Thrifty: Yadr now only generates and uploads the data files for the current year, the menu file only on 2 January of the current year (so the generation is now omitted as well).
# Thrifty: NOAA reader now only generated and uploaded on 2 January (Note: the data files are generated by CMX itself).
# Thrifty: Records is now only generated when a Yesterday record occurred.
# Thrifty: Graphs are now generated every 7th day from January 1 (so actually (DayOfYear MOD 7 == 0). Looking for a more sophisticated decision.
# Advise: For the website generator: run daily under Thrifty system. 
# pwsFWI: Relative Humidity in the table is again displayed with an accuracy of two digits.
==== version 3.7.3 (30/5/2020) ====
# Dashboard: Added some configuration parameters for the gauges
# Thrifty system: fine tuned the top10 thrifty system
# Thrifty system: DayRecords dirty-bit system is now working so under the thrifty system, if – and only if – yesterday had a record, the file is written and uploaded.
# Modified manual (I would appreciate feedback if erroneous or incomplete).
==== Version 3.7.2 (29/5/2020 – not public) ====
# Dashboard: Added some configuration parameters for the gauges
==== version 3.7.1 (29/5/2020) ====
# pwsFWI: If both the Title and the SubTitle entries in the Language file are empty then no (empty) lines are produced.
# All logfiles are now to be found in the directory utilslog and they will have the name: yyMMddHHmmcumulusutils.log (sorts easily alphabetically) So that would be e.g. 2005271332cumulusutils.log. Logs will be kept for 2 days. This gives the possibility to run CumulusUtils many times per day (e.g. every 10 minutes for SystemInfo) and if you find a problem later in one of the major runs at midnight, you still have that log.
# Dashboard: changing the appearance of the gauges should now work.
==== version 3.7.0 (27/5/2020) ====
# Forecast: Added WXSIM as forecast system, see manual how to do it, please notify if additional possibilities exist.
# CheckOnly: increased performance by removing redundant writing to logfile. Now only markings and real error situations are logged.
# Dashboard: Colour of Up/Down-indicators for Temperature and Pressure now have their own parameters: ColorDashboardUpIndicator and ColorDashboardDownIndicator.
# NOAA: Year selection through drop down now adjusts months selectable.
# Dashboard Gauges: Gauges are now modifiable through the inifile parameters. See website inifile parameters.
==== version 3.6.9 (25/5/2020) ====
# Bugfixes for WindRose (accommodate a single quote in the subtitle, add a semicolon, remove comma at end of data)
# Changed Dashboard 1, Wind to better accommodate Latest winds, Average and Beaufort. Beaufort is now related to Average wind, not Latest measurement.
# pwsFWI: put a title on the report page to provide more clarity for newcomers to what they are actually seeing.
==== Version 3.6.8 (24/5/2020) – patch release for debugging. ====
==== version 3.6.7 (24/5/2020) ====
# Dashboard: In dashboard 1, now the Beaufort scale is shown in the Wind block with same background colour as defined in the YADR Wind module. Note that the wind speed / Beaufort shown is the latest wind speed reading (equivalent webtag: #wlatest)
# Thrifty: Under the thrifty system, the WindRose is only generated when upload is scheduled (second day of the month).
# Thrifty: Under the thrifty system, top10 is only generated (!) and uploaded when there is actually a new record (the file is 'dirty'). Only Yesterday is checked so a daily run is assumed.
# Thrifty: Under the Thrifty system, YADR only uploads the current year.
# PwsFWI: Added pwsFWI to the NAV-bar, just beside the LED. Click leads to the report. In the process, moved the current value to the ini-file as well. The pwsFWIcurrent.txt remains (same contents).
# pwsFWI: changed nr of decimals from 2 to 1. For the Beteljuice interface, made the borders round corners again under the Bootstrap system.
# CheckOnly: Added Monthly Logs to the CheckOnly command.
==== version 3.6.6 (22/5/2020) ====
# WindRose: the ZeroWind percentage is now shown for each period selected.
# WindRose: added footer when used as module.
# Monthly Logs: added extensive Exception handling to accommodate historical increasing record length (in relation to fields required)
==== version 3.6.5 (19/5/2020) ====
# General: Added the Thrifty qualifier for Website and All commandline parameters to economize on bandwidth (for subscription and mobile users). Description in the manual.
# WindRose: Added a check for data consistency concerning the internal data separators (governed by the locale). If any inconsistency is found an error message is written to the logfile, CumulusUtils exits and the user has to clean up the data directory.
# WindRose: Bugfix concerning the filelist of the monthly log files.
# WindRose: changed the Y-scale from fractions to percentage.
# Made some modifications to the manual for clarity. 
# Created a section [General] in the CUstrings[xx].ini files. Some strings may move there requiring you to move the translation as well. I will try to minimize the translation effects but while in development phase it may be inevitable. I apologize beforehand.
==== version 3.6.2 (19/5/2020) ====
# WindRose: Added a check for data consistency concerning the internal data separators (governed by the locale). If any inconsistency is found an error message is written to the logfile, CumulusUtils exits and the user has to clean up the data directory.
# General: Added the Thrifty qualifier for Website and All commandline parameters to economize on bandwidth.
==== version 3.6.1 (18/5/2020) ====
# Maps: Added more exception handling to Maps, more specific for Internet Timeouts. If a Timeout occurs Maps cannot complete and returns iso stopping CumulusUtils.
# WindRose: Older Monthly logfiles miss the current windbearing and caused a crash. This has been corrected (see note under Calculation of the WindRose).
# WindRose: Now the month of March is also displayed.
# WindRose: Improved error handling and minor HTML correction.
# Records: Now the month of March is also displayed (yes there was a relation with the WindRose: I copied the menu code).
==== version 3.6.0 (17/5/2020) ====
# DayRecords: Numbers changed from 2 decimal positions to one.
# ShowSolar=false now also removed the solar pane on the first dashboard.
# Moved NextYear, NextMonth etc... Text tags to a section called [General]. Move your translation. You can delete the old tags (leaving them won't hurt)
# Beta release WindRose. See Readme and release post.
==== version 3.5.7 (16/5/2020) ====
# Manual: Correction on the handling of Norwegian forecast wrt hourly shift. 
# Language: Forgotten strings added (See at end of sections)
# Language: Moved parameters Prev and Next Year from Website section to Yadr section. Please re-translate. This may happen once in a while because it is seen as an error for modular generation.
# Language: Modified gauges Language.js
==== version 3.5.6 (13/5/2020) ====
# Language handling: correction for single quotes outside javascript.
# Language handling: Dashboard now shows correct (according to language) decimal, time and date separators. 
# Known issue: sometimes a separator works well on PC but gives a different result on the RPi under Mono. That is beyond control. (may occur in other languages as well so time separator has been fixed to ':' for everybody).
==== version 3.5.5 (12/5/2020) ====
# Last bit of language handling: the two letter code is used as locale for CumulsuUtils and for HighCharts for specific language handling.
# Bugfix: you can now use a single quote in a word in the translation system.
==== version 3.5.4 (11/5/2020) ====
# Finalized the language handling of CumulusUtils. The two letter ISO language code now sets the language independent of the locale of the machine where Cumulus/CumulusUtils runs. See the manual.
==== version 3.5.4 (11/5/2020) ====
# Added the third and last phase of the translation system for CumulusUtils.
==== version 3.5.3 (10/5/2020) ====
# Added the second phase of the translation system for CumulusUtils (third phase, translation of the Cumulus Graphs has yet to be done).
# Website: Sundisc has major corrections and will now work above (below) the polar circles.
# Added a second Forecast possibility: the Norwegian Meteorological Organisation (https://www.yr.no/) See README on howto.
# README: Some corrections
# Website known issue: if the moon is up for more than 24 hours, it is sometimes indicated it is down for 24 hrs and the other way around. Notified the author.
==== version 3.5.0 (7/5/2020) ====
# Added the first phase of the translation system for CumulusUtils.
==== version 3.4.1 (7/5/2020) ====
# Changed the Cumulus Graphs (the opening graph) to accommodate 'Feels Like'.
# Introduced ini parameters for Apparent, Feels Like, Wind Chill and Heat Index for the user to select show or no show of these temperature derivatives for human perception of the weather.
==== version 3.4.0 (5/5/2020) ====
# New module Forecast.
==== version 3.3.9 (1/5/2020) ====
# Graphs: bug fix for Daily Rain graphs. The max Yearly Rain Y-scale value: when the yearly value is (much) higher than the Normal or Station value it might get off the scale. A correction has been implemented.
==== version 3.3.8 (30/4/2020) ====
# Graphs: bug fix for the max Yearly Rain Y-scale value: the value is now correct.
# Graphs: bug fix for the reference lines for the total yearly rain: they now work.
# Website: Color can now be set for the menu toggler (parameter: ColorToggler).
==== version 3.3.7 (29/4/2020) ====
# Added ColorTitleBackGroundImage ini parameter to create more personalisation. The size of the Title header won't change though.
# Synchronize displayed version number with the distribution.
==== version 3.3.6 (28/4/2020) ====
# Website Color iniparameter bugfix for Menu Background. 
==== version 3.3.5 (27/4/2020) ====
# Website Personalisation of colours now possible. 
==== version 3.3.0 (25/4/2020) ====
# Website: The menu changed to a responsive Bootstrap 4 default Nav/Dropdown menu.
# Graphs: implemented the Rain statistics per month. Again this is in fact only interesting if you have a data series of at least 3 years.
# If there is no website in the entry for the Map, CumulusUtils aborts. This is specifically annoying if you want to generate a website.
# Major update for the README concerning the graphs and the inifile parameters.
==== version 3.2.0 (23/4/2020) ====
# The moon had another bug.
# And there are 60 minutes in an hour, not 24
# Graphs: implemented Temperature statistics per month. This is in fact only interesting if you have a data series of at least 3 years.
==== version 3.1.1 (22/4/2020) ====
# The moon now shows correctly on the Southern Hemisphere.
# Reference lines for Average rainfall are added to the daily rainfall graph.
# Changed the text Barometer to Pressure (see here)
# Website Gen. : Changed the menu layout a bit
# Changes the graphs into three separate .txt files: graphsrain, graphstemp and graphsmisc to prepare for the future with the year statistics per month for temperature and rain. 
==== version 3.1.0 (18/4/2020) ====
# Created a special version of gauges.js to accommodate the switching of the dashboard. No user action required, the library will be installed during an update overwriting the old version of gauges.js.
# Added latitude, longitude and altitude information to the header.
# Added a green LED indication station status to the left side of the menu bar.
# Added the following ini parameters ShowInsideMeasurements and CumulusRealTimeInterval.
# Maps: entries are now required to have a website entry
# Known Issue:
# at startup some non-inhibiting errors appear in the console.
# ShowInsideMeasurement does work for the graphs, but not for the gauges
==== version 3.0.6 (14/4/2020) ====
# Bug fix release to solve an issue with includes of jQuery, Highcharts and Leaflet.
==== version 3.0.5 (13/4/2020) ====
# Bug fix release to accommodate an issue with sync/async Ajax reads of the new cumuluscharts code.
==== version 3.0.4 (13/4/2020) ====
# cumuluscharts partly rewritten, now as .txt file similar to other reporting. The effect is that the json datafile can now be handled like the realtime files, it uses also CumulusRealTimeLocation for the location. The buttons are replaced by a dropdown, the graphs are the same.
# Prepared for the ini parameter ShowInsideMeasurements (default false) for yes/no showing the inside temperature and humidity in the graphs (rest to be done later).
# Added 'Browser time' to the clocks and internally reworked the clocks such that now from ANY timezone (well, some aberration maybe), you see the times of sun/moon in local time of the station. Yes, Beteljuice had warned me that time in javascript is kind of a nuisance. He was right.
# Known issue: time of moonset is appr. One hr off when seen from west of UTC. 
==== version 3.0.3 (11/4/2020) ====
# Times, sun, moon are OK now in all timezones. DST might disturb somewhere on the southern hemisphere, but I think it is OK.
# Moon phases are now [probably] correct. Respect for Keppler and Copernicus and anybody who ever set his mind to celestial bodies, programmer or not.
# Responsiveness is satisfactory now for the time being.
# Maps show directly when clicked and to correct zoom level.
# About and License adjusted to wish of community (comment welcome).
# Known issues: 
# Cumuluscharts needs to be rewritten because of the hardcoded location of the json data files.
==== version 3.0.1 (8/4/2020) ====
# Added the ini parameter CumulusRealTimeLocation to provide for a user who uses more than one website. See my notes in the README!
# Known issues: 
# the times are wrong in another timezone
# The moonphases do not show correct.
# Cumuluscharts needs to be rewritten because of the hardcoded location of the json data files.
==== version 3.0.0 (6/4/2020) ====
# Added the website generator. See the README for how to use that.
# Added Wind Run to the records page
==== version 2.4.6 (25/3/2020) ====
# Added the command CheckOnly, to only check the dayfile.txt for errors. Any detected error can be found in the logfile. The default for the iniparameter IgnoreDataErrors has been changed to TRUE. ToDo-list: add range checks on dayfile values.
# Added ini parameter GeneratejQueryInclude in the section General. Current default value is true.
# The ini-section [Data] has been moved to [General] (see the README) (you can remove the [Data] section manually).
# Maps: Added try/catch error handling for an irregular occurrence of a fault while looping through the XML data structure. At a failure in the XML file, CumulusUtils aborts so other modules in the same command won't be executed. You may rerun without the Mapson command to accomplish other modules. If you run Maps and it fails, please report in a PM and send the logfile with the report.
# WIP: the above points concerning the ini-file are related to the construction of a new website which will become part of CumulusUtils but also as a module. CumulusUtils will always exist as a module generator for other websites, but in the end a standard website will become part of it. Some minor changes may occur in the near future in preparation, but before the website will be available. A preview of the website can be seen.
==== version 2.4.5 (16/3/2020) ====
# Graphs: Optimised the Monthly Temperature and Monthly Rain graphs for speed and coding efficiency.
# Graphs: For the same graphs, the user can choose between the Normal reference curve and the Station Average reference curve. The choice is made in the ini file with the parameters:
# UseNormalTempReference
# UseNormalRainReference
# Please see section of ini-parameters 
# Graphs: for the same graphs, if the Station Reference curve is chosen, automatically the area of the standard deviation which comes with the calculation of the average is depicted in light gray in the graph.
# NOTE: Normal is reserved for the reference mean for the last 30 years (which normally moves up 10 years per decade) as published by the national Meteorology agencies. As Rain and Temperature are the only measurements for which there exists a Normal curve in Cumulus these will be the only curves with this feature. See further the README.
==== Version 2.4.1 – 2.4.2 (12/3/2020) ====
# A bug fix on 2.4.0 (inclusion of jQuery library) and addition of a Clash of Average graph (non supported, may be removed later)
==== version 2.4.0 (12/3/2020) ====
# Addition of the 'All' command to generate all modules which use the dayfile (so excluding Maps and SystemInfo).
# Cleaned up the log generation from redundant entries.
# Modified the selection interfaces where necessary, addition of prev/next buttons (and moved it all to jQuery in the process). 
# Added 'total yearly rain to date' as an entity and published it on the Records, Dayrecords pages and Daily Rain graph as cumulative amount.
# Reviewed tables (records, dayrecords, top10 and yadr), such that iframe should not be necessary. Settings are now width=100% (of the enclosing div) and max-width=1000px (to prevent stretching the whole width of large monitors). Please check.
# Removed the Climate module and integrated it with the Graphs module. Sorry, that was short lived. Please be prepared that this Graphs reporting part is Work In Progress and changes because of requests, thoughts and philosophies may have some effect in future.
# All graphs have become optional with the possibility to switch on/off through ini-file parameters in the Graphs section (I assume this self evident). NOTE: the graphs are generated, it is only the HTML menu choice which is off.
==== version 2.3.0 (8/3/2020) ====
# YADR: Fixed a bug where temperature of exactly -1 degree (C/F) was seen as invalid and no low temperature in the month summary was filled in.
# DayRecords/Records: Added and improved parametrization of the header texts. Please find in strings section in ini file to translate.
# Records: Applied colouring of header and record text analogue to top10 module using the top10 format from the ini file (30 day record retention time).
# Started a climate graphing module.
# Implemented temperature HeatMap for Climate Graphs.
# Implemented Climate statistics on temperature and Rain (to be possibly modified and or expanded to other measurements). Comment is welcome.
==== version 2.2.6 (5/3/2020) ====
# Corrected the relation between the header and the values for the wind measurements
# Fixed bug in drop down selection menu for records, dayrecords and noaa modules generation, where a crash occurred if there were no months to disable (pretty elementary error, sorry).
==== version 2.2.5 (4/3/2020) ====
# Addition of NOAA reports display (nothing new there, just part of CumulusUtils required for the future)
# The year/month selection where months must have data. So e.g. future months in the current year are greyed out and cannot be selected. Similar in the first year, or all years when just starting (for both NOAA and records module).
# Addition of Day Records module.
==== version 2.2.2 (27/2/2020) ====
# Optimisation of records module
==== version 2.2.1 (27/2/2020) ====
# Optimisation of records module
# Fixed a bug for display of month of March (all years)
==== version 2.2.0 (25/2/2020) ====
# Another minor legend correction in YADR
# Addition of the CumulusUtils version of a records page including some corresponding ini parameters (Strings section).
==== version 2.1.7 (28/1/2020) ====
# Correction on 2.1.6 for different units in YADR
==== version 2.1.6 (28/1/2020) ====
# Corrected the README where necessary
# Dayfile reading: Finalized the error handling of skipping the line containing the error. All info for each error will now be in the logfile.
# YADR: changed wind value format to one (1) decimal accuracy
# YADR: changed humidity values to zero (0) decimal accuracy
# YADR NOTE: Title of barometric values should contain ‘Average’. This has been added to the default but it won’t change automatically if it is already in your ini-file.
# YADR: the legends now also are correct for all units available (the only site where this can be seen/checked is “‘t Zandt”).
# Addition of Phil’s EasterEgg. Hint: check the cumulusutils.ini after run of 2.1.6 and read this thread backwards. Can’t be too difficult if you’re a regular follower.
==== version 2.1.0 (22/1/2020) ====
# Maps: Technical correction concerning refresh of station
# Reading Dayfile: Complete overhaul and creation of internal datalist
# Added: possibility to continue reading the data file in case of data errors (see README on cumulusutils.ini, section: Data)
# YADR: Correction for legend of Humidity and Pression
# Top10: Overhaul of selection/sorting mechanism (incomplete but working, three more items to go but these may be difficult to do in LINQ with just a few queries so... maybe not)
# Top10: Corrected an error in the output table and at the same time slightly modified the <Style>
==== version 2.0.3 (5/1/2020) ====
# Some code optimisation
# Graphs: Daily rain graph now has right Y-axis cross x-axis at 0
# pwsFWI: Number of records shown is now conform Analysis figure from the inifile or 30 otherwise. The number is including predictive days.
# pwsFWI: Unit for RH in pwsFWI webtable: % is removed in header
# YADR: Unit for RH changed to % (was deg. Celsius/Fahrenheit).
# All modules: Correction of effect of prediction in pwsFWI (had not been noticed by anybody so far ;)
==== version 2.0.2 (5/12/2019) ====
# Yadr: Corrected the colour key for rain table
# Corrected code in the inifile handling so Mono v4 can be used (see here, will not be permanent I hope). 
==== version 2.0.1 (2/12/2019) ====
# Yadr: some bug fixes, removed the reference to Yadr.css
# Yadr: changed to white for the numbers in some cases to account for better readability of the numbers against darker colours.
# Yadr: Added Humidity.
# Yadr: Titles and fixed translatable texts are parameterized in the inifile in the section [Strings]. Parameter names start with Yadr.
# Graphs: changed the ‘Daily Rain’-graph to a stock-type graph to account for easier handling and zooming.
==== version 2.0.0 (29/11/2019) ====
# Yadr – Yet Another Dayfile Reader added as standard functionality. Read the README concerning the use (amount of datafiles and the use of the internal FTP)
==== version 1.9.7 (21/11/2019) ====
# Addition of Internal FTP upload. Read the README for explanation
# Fix for kocher (intermediate version 1.9.6).
==== version 1.9.5 (18/11/2019) ====
# Maps: Website will now be opened in a new tab (or window, depending on the configuration of your Browser)
# Code optimisation and error handling changes.
==== version 1.9.4 (17/11/2019) ====
# Maps: Added a last alive date to the marker popup, preparation for eventually a validity cleanup.
# Optimized the XML/Linq code. 
# Added some error handling (e.g. for duplicate names). May not be complete yet but it requires the live run to evaluate.
# Removed MapBox libraries/reference and prepared for OpenStreetMap only. Waiting for response from OSM in relation to using the tile server.
==== version 1.9.3 (16/11/2019) ====
# Maps: if comma decimal separator in lat/lon then set it to point to have lat/lon handled correctly by the map java.
# pwsFWI: fix for colour of the pointer of 1.9.0 was refixed.
# Maps: Website entry for the popup is created in cumulusutils.ini
==== version 1.9.2 (15/11/2019) ====
# Maps: bug fix: now all stations show on map, not just the first one.
# pwsFWI: credit for the prediction must be in the correct 
==== version 1.9.0 (15/11/2019) ====
# pwsFWI: Bug fix for the flashing of the pointer which takes the colour of the fifth prediction day but must have colour of the last calculated day (Current value).
# Introduction of module Maps.
==== version 1.8.4 (5/11/2019) ====
# pwsFWI: The prediction module can now be used with all units available in Cumulus. Although the interface always (unchangable) uses km/h, mbar, deg C and mm, it does no longer interfere with the normal readings of the user settings for the units.
==== version 1.8.3 (2/11/2019) ====
# Graphs: TempvsNOAA and RainvsNOAA now both work correctly at the first of month (they used to display Nul (0) as a first day value).
# The table of pwsFWI displays the numbers in CurrentCulture format (e.g. a comma as decimal separator in NL, a point probably in a lot of other places). This makes it easier to cut/paste to Excel or Google Sheets. Same holds for the Analysis csv file.
==== version 1.8.2 (2/11/2019) ====
# Graphs/pwsFWI: the degree symbol (again) is now OK everywhere.
# This is not a functional release but a maintenance release concerning a problem which occurred in Poland and France where the prediction in pwsFWI was aborted.
==== version 1.8.1 (31/10/2019) ====
# Graphs/pwsFWI: the degree symbol before Celsius or Fahrenheit is now encoded as Unicode 00B0 for javascript/Highcharts and as ° for HTML and should display always and everywhere it is required. Yes, it now truly is... (I hope)
# The observation about minimum humidity was correct and has been fixed. Now the lowest prediction of all three hour blocks is entered in the calculations and the prediction table (thanks to meteosangonera for looking deep into the system!)
==== version 1.8.0 (30/10/2019) ====
# Graphs/pwsFWI: the degree symbol before Celsius or Fahrenheit is now encoded as Unicode 00B0 and should display always and everywhere it is required.
# In Graphs, the Go button has been moved to the right side of the graph selector.
# In SysInfo, The Linux rPi OS now has a description e.g. Raspbian GNU/Linux 10 (buster) besides only the numerical version.
# pwsFWI: A predictive system - 5 days - has been created for pwsFWI. This is a relatively complex and major change. Please read the ReadMe on how to activate and use it. 
==== version 1.7.2 (27/10/2019) ====
# In the Monthly Temp and Monthly Rain graphs, the MaxNrOfSeriesVisibileInGraph, now is valid for the most recent years iso the first years.
==== version 1.7.1 (25/10/2019) ====
# Initially in the Monthly Rain and Monthly Temp graphs only MaxNrOfSeriesVisibileInGraph series are shown. This ini-parameter defaults to 2. If you set it to a number greater than the number of series you have, all series are displayed;
# Created a new colour set to avoid conflict with the black normal series and create more contrast. Currently 13 colours are defined, more than 13 series start reusing the colours.
# The colour series are added to the Graphs section in the inifile so every user can change the defaults. If a graph does not use the default colours, it's colours will be hard coded and no users interference can be made.
# NOTE: comments are allowed in the inifile: first character on the line must be ";". Empty lines remain as does a sorting done by the user.
==== version 1.7.0 (22/10/2019) ====
# The Normal series in the Graphs now always have the colour black;
# All zero-valued series points were not printed. That has been changed to: zero-valued series points outside the series (incomplete years) are not plotted, zero-valued series data are plotted;
# The inifile handling has been greatly revised to facilitate the strings (see next bullet point). Most notably: an empty or nonexistent ini will be reinitialised. User values remain valid until deleted which resets default. A deleted or non existent key will be created when needed. Limited space for strings will need to be determined by trial and error. Sorting and replacing sections and keys remain in tact, empty lines disappear;
# Strings are added to the inifile to facilitate CumulusUtils to show a different language. CumulusUtils will not have the possibility to switch languages at runtime. The tags are - I think - self explanatory. If anybody has a problem, please let me know;
# Units are added to the graphs and will show what is used by Cumulus. Note: in pwsFWI all imperial values are converted implicitly to metric because the meteorological formula's are metric. Therefore the table in pwsFWI only metric values are shown and not the imperial values.
==== version 1.6.7 (19/10/2019) ====
# My bad: I noticed that every installation used a 30 day period for the daily rain graph and could not change it. That has been corrected.
# The 'Normal' values in the NOAA settings apparently are written under the regime of the locale which means the decimal separator can be either comma or point. Cumulus 1 and 3 seem different in this respect (I could not be 100% sure) so I created a workaround to always read it correctly, whichever format. The decimal separator is assumed to be only point or comma.
==== version 1.6.5 (18/10/2019) ====
# Formal release of the Graphs module.
# Added ini parameter for MovingAveragePeriod (default 180)
# Changed title of graph Daily Rainfall and added period to x-axis title;
# Changed some minor things in layout of graphs;
# Added new graph: rain per month (With Normal Value line);
# Top10: Removed the output top10TableStyle.txt (please remove the corresponding include from your website). Only one files exists for top10: top10Table.txt. There should be no difference.
==== version 1.6.2 (16/10/2019) ====
# Bug fix for the position of the credits under the pwsFWI and top10 tables;
# Some minor spaces/CSS fixes;
# Major fix for Graphs, which inhibited it to run correctly when top10 would be demanded in the same run;
# Major fix for Graphs which did not show the graph when an apostrophe was in the LocDesc string in Cumulus.ini. The apostrophe is now permitted.
# Added the Monthly Temperature graph. See above.
==== version 1.6.0 (14/10/2019) ====
# Because some of you put all their data online with the pwsFWI module, the interface has been adapted by beteljuice, to account for a better handling of some 4000 lines. It now uses a small window of roughly 22 lines and a scrollbar. The headers remain locked.
# As a kind of giveaway Easter Egg, you will also find a first version of the graphs module (commandline parameter 'graphs'). Two graphs have been implemented so far. There is a drop down choice which graph you want to see. Feedback with comments and wishes is appreciated. So far this is not a release and no options for the graphs have been implemented yet.
==== version 1.5.1 (12/10/2019) ====
# Some finetuning of the web interface pwsFWI (also known as bug fixing): 1)border spacing of table now correct; 2)Legend now also in Standard; 3)pwsFWIcurrent now has a beteljuice approved styling;
# Check for a minimum nr of lines (currently 35) in dayfile.txt for useful results.
==== version 1.5.0 (9/10/2019) ====
# A sixth warning level has been added to pwsFWI, named: Catastrophic, colour purple. The parameter in the inifile is WarningLevel, possible values : 5 or 6. Read the ABC article below.
# Some bug fixes around the red warning level where it was changed to green or where the indicator was supposed to be in the green zone but remaind red.
# The process of the Smoothing and Quenching has been slightly changed to better process single rain shower events. (See blog: "Behaviour of pwsFWI with first rain").
# For pwsFWI and extra output has been created: pwsFWIcurrent.txt, containing an HTML -tag, for the required colour. To use wherever the use wants the dayvalue, e.g. on the frontpage dashboard (see my site for an example).
# All output now will be written to a subdirectory utils/ one level below the Cumulus main directory. Only cumulusutils.exe (and possible libraries) and the cumulusutils.ini remain in the Cumulus directory.
# Fixed an algorithmic bug in pwsFWI, not yet exposed, which caused a problem when analysis would be exactly the amount of days in dayfile.
==== version 1.0.1 (3/10/2019) ====
# In top10, unit 'percentage' has changed to '%'
==== version 1.0.0 (30/9/2019) ====
# Good enough for version 1.0.0
# The Analysis csv file is now governed by the locale which means date, separators and decimal point are written conform the locale on the machine where cumulusutils runs. This should make it easier to open it with excel.
# Changed copyright notice / text under the tables.
# Fixed scaling when pwsFWI value surpassed value outside scale
==== version 0.9.1 (26/9/2019) ====
# Changes to the meteorological equations used for Vapour Deficit (see my blog of 26 sep 2019).
# Closed a call on SysInfo: Windows 8 really needs to have its updates.
# Several minor bugfixed/tunings in the Beteljuice-format.
# Code cleanup and minor fixes.
==== version 0.9.0 (24/9/2019) ====
# Bug fix: sysinfo under Windows (any version) now breaks off if resultstrings are unexpected. Message displayed in logfile, please send. However, errorhandling before that happens has been improved (again). 
# Two pwsFWI result formats are now available: Standard and Beteljuice. The latter of course the better. (Thanks to Beteljuice, takes a lot of time iteration and testing though). Note the corresponding ini-parameters!
==== version 0.8.8 (22/9/2019) ====
# Bug fix: monthly rainfall did not show in top10 if the station was running ten or more months.
# Changed header of pwsFWI table: "Drought" was changed to "Consecutive days without rain" 
# Ran spellchecker on this file
==== version 0.8.7 (21/9/2019) ====
# Functional change/Bug fix: The pwsFWI CSV-file now has a slightly different format. All figures are now floating point with max. two decimal accuracy (except for the drought period which are in days). This is generated without CultureInfo so, I assume the decimal period (or comma) is according to your machine setting (which is why I changed the comma separation to the semicolon). Let me know if this functions the wrong way.
==== version 0.8.6 (21/9/2019) ====
# Bug fix: During the updating of cumulusutils.ini erroneously Analysis was always reset to its default value.
==== version 0.8.5 (20/9/2019) ====
# Bug fix: high monthly rainfall in top10 table fixed if station runs less than 10 month. Top10 table now contains no entries for months without data. 
# Dry period added to the pwsFWI table.
# Changed some table width.
# Exception handling now should be generic. IF(!) an exception occurs, the exceptions should always be handled such that the application recovers or ends with a graceful exit with enough info in the log file. The exception message is always printed in the log including a possible stackdump.
# The stations should have at least 30 days of days of data for top10. Otherwise this application will not run correctly. That has been taken care of.
# Analysis possibility for pwsFWI. See above in functionality.
# SysInfo page has now elaborate try/catch errorhandling on all system accesses, looking for information. If no information is found or in case of error, 'unknown' is written on the webpage. The variety within Linux/Unix is troublesome. Since there is no generic command to find the temperature of the processor, only for Raspberry it is known. Therefore I left that out.
==== version 0.7.5 (19/9/2019) ====
# All dayfile's can be used now, metric or imperial units will be handled and for the calculations of pwsFWI the conversions are automatically made. Let me know if you spot an anomaly.
# Headers of the top10 table now include the unit of measurement
# Headers of the top10 table now can be translated via the cumulusutils.ini
# some corrections and code cleanup
==== version 0.7.0 (18/9/2019) ====
# Made a ReadMe
# Finished the implementation of the ini-handling
# some corrections and code cleanup
==== version 0.6.5 (17/9/2019) ====
# Completed the System Info page which is now also available for Windows 10 (maybe also lower versions, if not, let me know).
# Reading of the Cumulus.ini is now complete. This means that a lot of information can now be used and the preparations for a cumulusutils.ini are finished.
# Minor changes everywhere. Cleaning up.
==== version 0.6.0 (16/9/2019) ====
# Added a System Info page for Unix/Linux. Run with command line parameter -ftp.
==== version 0.5.3 (16/9/2019) ====
# Solved a technical problem in pwsFWI which had a big functional effect.
# Added a factor to pwsFWI to account for the duration of a drought period. In future the weight of this factor may change slightly.
==== version 0.5.1 ====
# Currently version 0.5.1 and the pwsFWI has now info with links and info. If you disagree and would like to see changes, please let me know.
# The executable now creates a cumulusutils.log. If any problems occur, please send it when you contact me, this may help out.
# I solved a rPi problem in converting the numbers from ascii to floats and doubles etc. C# is pretty tricky on this issue and there's a steep learning curve on my side. Hope I got it all right by now, but it is not impossible you see something strange on different machines.
Category:CumulusUtils