I've uploaded build 3025.
Fixes:
<#tomorrowdaylength> calculation is wrong
High min temp date is wrong
Monthly alltime record broken on 1st of month before 0900/1000 gets assigned to wrong month, if using 0900/1000 rollover
Davis Extra Temp 7 value incorrect
Easyweather.dat input not working
Stops working after WMR88/100 UV packet received
Enhancements:
Debug logging, diagnostic data logging, and ftp logging can now be set in the UI
Davis archive data is now downloaded twice, in case first download took a long time and later entries have since been logged. When enabled, stats are now read every 15 minutes (approx).
Reading of Davis reception stats is now optional and off by default (enable via station settings screen)
Improved checking for invalid Davis loop packets, and resynchronisation should be quicker
Changed Fine Offset 'synchronise reads' code to avoid problems
Improved console messages at start up to indicate whether station has been connected successfully
Make sure dayfile.txt entry is always logged to diags in case of problems writing file
'Stop second instance' option now implemented
Graph periods can now be configured
Cumulus can now update a MySQL database. There are six options - the first three are for realtime.txt data, monthly logfile data, and dayfile.txt data. Each time Cumulus creates the realtime.txt file, or adds an entry to a monthly log or dayfile.txt, it will execute the appropriate SQL upload, if enabled. The schema are taken from the
ImportCumulusFile script. The MySQL settings screen has buttons for creating the tables, once you have submitted the configuration details. The last three options are for 'custom' MySQL uploads. For these, you need to supply the SQL insert statement, using webtags for the data, and you need to have created the table yourself. For example, say you have created a table using the following SQL:
CREATE TABLE MyMonthlyTable (LogDateTime DATETIME NOT NULL,Temp decimal(4,1) NOT NULL,Wind decimal(4,1) NOT NULL,PRIMARY KEY (LogDateTime))
You can then get Cumulus to periodically add entries to this table by specifying the following SQL string:
INSERT IGNORE INTO test (logdate,temp,wind) Values('<#time format="yy-MM-dd HH:mm:ss">',<#temp>,<#wspeed>)
You can configure three SQL updates; one at an interval in seconds, one at an interval in minutes (the interval is constrained to be a factor of 60, so takes place at fixed minutes past the hour), and one at rollover time (just before the rollover takes place).
Note that your SQL hosting may require you to specify a hostname or address range which is allowed to access your database remotely.
The distribution also includes a command-line utility called ExportMySQL (which will also run under mono). This allows you to upload your dayfile.txt and monthly logs to the database. It takes one parameter, and this can be "dayfile" (i.e "ExportMySQL dayfile", in which case it will upload your dayfile.txt, or "monthly", in which case it will upload all of your monthly log files (i.e "ExportMySQL monthly" - this could take a very long time), or you can supply the name of one monthly log file, including the path, and it will upload just that file (e.g. ExportMySQL data\Apr15log.txt). If you want to upload the current monthly log, it may be advisable to stop Cumulus first. Note that the utility expects tp be in the Cumulus MX installation directory, and reads the MySQL configuration details from Cumulus.ini, so you will need to have configured that first, and created the database tables.
The realtime.txt upload has an optional 'retention' setting, which will cause entries older than the value specified to be deleted from the database after each upload. It should be specified as a MySQL 'interval', e.g. 24 HOUR or 1 DAY or 1 WEEK etc.
Cumulus now offers custom HTTP uploads - rather like the way that Weather Underground is updated, but you specify a custom HTTP URL. Typically this will invoke a PHP script, and you can supply parameters using webtags for the data. For example:
http://mydomain.com/MyScript.php?temp=< ... =<#wspeed>
Or you could use the ImportCumulusFile script, and get Cumulus to invoke it thus:
http://mydomain.com/ImportCumulusFile.p ... nUnit=hour
As with the custom MySQL uploads, three intervals can be used - seconds, minutes, and daily.
I hope the new MySQL and HTTP facilities will be useful, please report any problems in the forum, and suggest any improvements that could be made to them.