Version 4.0 is (finally) here!

220 views
Skip to first unread message

Tom Keffer

unread,
Apr 30, 2020, 1:09:44 PM4/30/20
to weewx-user, weewx-development
After months of waiting, Version 4 has finally arrived! The major new feature is that WeeWX will not run under either Python 2 or Python 3.

It took a long time to get the packaging right but now, thanks to Matthew Wall, WeeWX is easier than ever to install. Be sure to read the installation instructions for your specific operating system. As always, a setup.py install method is also supported.

Generally, the package installers will use Python 3, if its available. On older systems, the installers will use Python 2.


CHANGE LOG
Ported to Python 3. WeeWX should now run under Python 3.5 and greater, as well
as Python 2.7. Support for Python 2.5 and 2.6 has been dropped.

New facility for creating new user-defined derived types. See the Wiki article
https://github.com/weewx/weewx/wiki/WeeWX-V4-user-defined-types

WeeWX now uses the Python 'logging' facility. This means log, formats, and other
things can now be customized. Fixes issue #353.

Strings appearing in the data stream no longer cause a TypeError if they can be
converted to a number.

Strings can now be accumulated and extracted in the accumulators, making it
possible to include them in the database schemas.

The utility wee_reports now loads services, allowing it to use user-supplied
extensions. Fixes issue #95.

New default schema ("wview_extended") that offers many new types. The old schema
is still supported. Fixes issue #115.

Optional, more flexible, way of specifying schemas for the daily summaries. The
old way is still supported.

The install process now offers to register a user's station with weewx.com.

The package MySQL-python, which we used previously, is not always available on
Python 3. Ported the MySQL code to use the package mysqlclient as an
alternative.

The default for WOW no longer throttles posting frequency (the default used to
be no more than once every 15 minutes).

Added new aggregate types minsum, minsumtime, sum_le. PR #382.

Unit group group_distance is now a first-class group.

Added new tag $python_version.

Ported to Python2-PyMySQL package on OpenSUSE.

Added new aggregation types 'first' (similar to 'last'), 'diff' (the difference
between last and first value in the aggregation interval), and 'tderiv' (the
difference divided by the time difference).

Created new unit group 'group_energy2', defined as watt-seconds. Useful for high
resolution energy monitors.

An observation type known to the system, but not in a record, will now return a
proper ValueTuple, rather than UnknownType.

Type "stormStart" was added to the unit system. Fixes issue #380.

Added new aggregation type 'growdeg'. Similar to 'heatdeg', or 'cooldeg', it
measures growing degree-days. Basically, cooldeg, but with a different base.
Fixes issue #367. Thanks to user Clay Jackson for guidance!

Ported OS uptime to OpenBSD. Fixes issue #428. Thanks to user Jeff Ross!

Catch SSL certificate errors in uploaders. Retry after an hour. Fixes issue
#413.

Wunderfixer has been ported to the new WU API. This API requires an API key,
which you can get from the WU. Put it in weewx.conf. Added option --upload-only.
Thanks to user Leon Shaner! Fixes issues #414 and #445.

Wee_import can now import Weather Display monthly log files.

Fixed problem where sub-sections DegreeDays and Trend were located under the
wrong weewx.conf section. Fixes issue #432. Thanks to user mph for spotting
this!

Added new parameters to the Weather Underground uploader. Fixes issue #435.

Added new air quality types pm1_0, pm2_5, and pm10_0 to the unit system. Added
new unit microgram_per_meter_cubed. Added new unit group, group_concentration.

Plist for the Mac launcher now includes a log file for stderr.

Night-day transition in plots now uses shortest travel distance around color
wheel to minimize extra colors. Fixes issue #457. Thanks to user Alex Edwards!

Fixed bug that causes plots to fail when both min and max are zero. Fixes issue
#463.

Fixed problem with sqlite driver that can lead to memory growth. See PR #467.
Thanks to user Rich Bell!

Fixed bug that caused windrun to be calculated wrongly under METRICWX unit
system. Fixes issue #452.

If a bad value of 'interval' is encountered in a record, the program will simply
ignore it, rather than stopping. Address issue #375.

Change in how the archive timespan is calculated in the engine. This allows
oddball archive intervals. Fixes issue #469.

NOAA reports are now more tolerant of missing data. Fixes issue #300.

Use of strftime() date and time format codes in template file names is now
supported as an alternative to the legacy 'YYYY', 'MM' and 'DD'. The legacy
codes continue to be supported for backwards compatibility. Fixes issue #415.

New --calc-missing action added to wee_database to calculate and store derived
observations.

wee_import now calculates missing derived observations once all imported data
has been saved to archive. Fixes issue #443.

wee_import now tolerates periods that contain no source data. Fixes issue #499.

wee_import now accepts strings representing cardinal, intercardinal and
secondary intercardinal directions in CSV imports. Partially fixes issue #238.

The field delimiter character may now be defined for wee_import CSV imports.

Ignore historical records if the timestamp is in the future.

Can now recover from MariaDB-specific database connection error 1927.

Changed the name of the unit "litre" to "liter", making its spelling more
consistent with "meter". The spelling "litre" is still accepted.

Systemd type changed from "simple" to "forking". Thanks to user Jaap de Munck
for figuring this one out!

The configuration file is now an optional argument when running weewxd directly.
This means most users will be able to use the simple command line 'sudo weewxd'.

Use correct log path for netbsd and openbsd in logger setup.

StdWXCalculate no longer calculates anything by default. Instead, types to be
calculated must be listed in weewx.conf. See the Upgrade Guide.

setup.py install no longer saves the old 'bin' subdirectory. Instead, it simply
overwrites it.

Chris Alemany

unread,
Apr 30, 2020, 1:39:44 PM4/30/20
to Tom Keffer, weewx-user, weewx-development
Having watched the threads on weewx-dev for months now I just want to say great work and thank you to Tom and Matt and *all* of the amazing people who contribute to this excellent software.
Congratulations on the release.
Really looking forward to trying it out!

Cheers
Chris

--
You received this message because you are subscribed to the Google Groups "weewx-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-developm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-development/CAPq0zECyaH0t8F-2CvnBp0ew_ZYM-G1uBA_sTX1y%3DRsLGzH27Q%40mail.gmail.com.

Bob Weber

unread,
May 2, 2020, 8:25:38 PM5/2/20
to weewx-development
Tom

I have been trying out the betas of 4.0 for a while running the simulator driver in a separate qemu/kvm VM.  I was pleased to see that you finally released 4.0.  I had 3.7 installed from a Debian package so I had some moving around to do!  Having it all under /home/weewx is a lot easier to understand and work on.  

I run weewx under a Debian/testing install in a seperate VM.  I removed as much of the old python 2.x as I could ... most of the stuff was from an install of spyder for v 2.x.  V 4.0 has been running for about a day now and all seems ok.  I have a Davis Vantage Pro2 with an envoy connected to a wetherlink ip data logger (with the function turned off to contact Davis's servers). 

Thanks for all the work you put in along with the other contributors.  

...Bob

Tom Keffer

unread,
May 2, 2020, 8:42:56 PM5/2/20
to Bob Weber, weewx-development
Thanks, Bob!

--
You received this message because you are subscribed to the Google Groups "weewx-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-developm...@googlegroups.com.

Alex Edwards

unread,
May 9, 2020, 8:35:46 PM5/9/20
to weewx-development
Just to add - congratulations on the release!  I've been following for a while, since my little commits, and it seems like you've been through a lot.  I will try out v4 and maybe finally update and tidy up my solar power 'driver' for release :)

radio...@gmail.com

unread,
Jul 1, 2020, 2:39:31 PM7/1/20
to weewx-development

Yes, congratulations on the new release!    I implemented the .deb version a few weeks ago, and it’s been great.

 

I’m trying to figure out the “wview_extended” schema.  I’m using the wview.py schema now that I’ve modified (the “old” way, make a  copy, add the type, use wee_database to create a new schema, rename the new_schema).    Is there a “cookbook” to convert to the extended schema?

 

Thanks!

 

Clay Jackson

 

Tom Keffer

unread,
Jul 2, 2020, 8:37:32 AM7/2/20
to weewx-development
If you have all the types you need in your schema, there is no reason to 'convert'. 

However, if you want to switch, follow the usual directions in the section Adding a new type to the database, except skip step #1 and in step #2, specify schemas.wview_extended.schema as the schema.



--
You received this message because you are subscribed to the Google Groups "weewx-development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to weewx-developm...@googlegroups.com.

radio...@gmail.com

unread,
Jul 2, 2020, 10:11:56 AM7/2/20
to Tom Keffer, weewx-development

Thanks!   Just wasn’t sure it was that simple – I have a whole bunch of sensors I want to add, mostly extra temp/humidity.

 

I also have a PMS5003 (the same sensor that the PurpleAir devices use). I have a PMS5003 driver (based on the PurpleAir driver) that grabs the particulate data and puts it in a separate SQLLITE database; I’d like to move those to the “main” database.  I’m also using the “aqi” extension, to get the AQI index, and my eventual goal is to move THAT into the “main” database as well.

 

Clay

Reply all
Reply to author
Forward
0 new messages