Python 2.7 is no longer supported. You must have Python 3.6 (introduced
December 2016) or greater. WeeWX 5 uses the module `importlib.resources`,
which was introduced in Python 3.7. So those using Python 3.6 must install
the backport, either using the system's package manager, or pip.
WeeWX can now be installed using [pip](https://pip.pypa.io).
With pip installs, station data is stored in `~/weewx-data` by default,
instead of `/home/weewx`. This allows pip installs to be done without
root privileges. However, `/home/weewx` can still be used.
The new utility [`weectl`](utilities/weectl-about.md) replaces `wee_database`,
`wee_debug`, `wee_device`, `wee_extension`, `wee_import`, `wee_reports`,
and `wee_config`. Try `weectl --help` to see how to use it.
Individual reports can now be run using `weectl report run`. For example,
`weectl report run MobileReport`.
The extension installer can now install from an `http` address, not just a
file or directory.
When using `weectl database` with action `calc-missing`, the tranche size can
now be set.
Documentation now uses [MkDocs](https://www.mkdocs.org/). It is no longer included in the
distribution, but can always be accessed online at https://weewx.com/docs.
Package installs now use `systemd` instead of the old System V `/etc/init.d`.
Allow `StdCalibrate` to operate only on LOOP packets, or only on archive
records. Addresses [issue 895](https://github.com/weewx/weewx/issues/895).
Removed all references to the deprecated package `distutils`, which is due to
be removed in Python v3.12.
Removed the utility `wunderfixer`. The Weather Underground no longer
allows posting past-dated records.
Method `ImageDraw.textsize()` and constants `ImageFont.LAYOUT_BASIC`, and
`Image.ANTIALIAS` were deprecated in Pillow 9.2 (1-Jul-2022), then removed in
Pillow 10.0 (1-Jul-2023). V5.0 replaces them with alternatives. Fixes
issue [884](https://github.com/weewx/weewx/issues/884).
Fix bug when using Pillow v9.5.0. Fixes issue
[862](https://github.com/weewx/weewx/issues/862).
The *Standard* skin now uses the font `DejaVuSansMono-Bold` and includes a
copy. Before, it had to rely on hardwired font paths, which were less reliable.
If the uploaders get a response code of 429 ("TOO MANY REQUESTS"), they no
longer bother trying again.
Limit station registration to once a day, max.
Station registration now uses HTTP POST, instead of HTTP GET.
Station registration is delayed by a random length of time to avoid everyone
hitting the server at the same time.
Fix problem where aggregation of null wind directions returns 90° instead of
null. Fixes issue [849](https://github.com/weewx/weewx/issues/849).
Fix wrong station type for Vantage `weectl device --info` query.
Add retransmit information for Vantage `weectl device --info` query.
Fix problem when setting Vantage repeater. Fixes issue
[863](https://github.com/weewx/weewx/issues/863).
Detect "dash" values for rain-related measurements on Vantage stations.
Change aggregations `minsumtime` and `maxsumtime` to return start-of-day,
rather than the time of max rainfall during the day.
Relax requirement that column `dateTime` be the first column in the database.
Fixes issue [855](https://github.com/weewx/weewx/issues/855).
Allow aggregation of xtypes that are not in the database schema.
Fixes issue [864](https://github.com/weewx/weewx/issues/864).
Tag suffix `has_data()` now works for xtypes. Fixes issue
[877](https://github.com/weewx/weewx/issues/877).
Additional shorthand notations for aggregation and trend intervals. For
example, `3h` for three hours.
Accumulator `firstlast` no longer coerces values to a string. Thanks to user
"Karen" for spotting this!
Fix problem that caused crashes with `firstlast` accumulator type.
Fixes issue [876](https://github.com/weewx/weewx/issues/876).
Fixed problem that prevented the astrometric heliocentric longitude of a body
from being calculated properly.
Default format for azimuth properties (such as wind direction) is now zero
padded 3 digits. E.g., `005°` instead of `5°`.
Most almanac properties are now returned as `ValueHelpers`, so they will
obey local formatting conventions (in particular, decimal separators). To
avoid breaking old skins, these properties now have new names. For example,
use `$almanac.venus.altitude` instead of `$almanac.venus.alt`.
Fix problem that prevented database from getting hit when calculating
`pressure`. Fixes issue [875](https://github.com/weewx/weewx/issues/875).
Fix problem that prevented option
[`stale_age`](reference/skin-options/imagegenerator.mdstale_age) from being
honored in image generation. Thanks to user Ian for
[PR 879](https://github.com/weewx/weewx/pull/879)!
Fix problem that prevented complex aggregates such as `max_ge` from being used
in plots. Fixes issue [881](https://github.com/weewx/weewx/issues/881).
Updated humidex formula and reference. Fixes issue
[883](https://github.com/weewx/weewx/issues/883).
Fix bugs in the "basic" skin example.
Fix bug that prevented calculating `$trend` when one of the two records is
missing.
Fix bug that caused the extension installer to crash if one of the service
groups was missing in the configuration file. Fixes issue
[886](https://github.com/weewx/weewx/issues/886).
New option [`retry_wait`](reference/weewx-options/general.mdretry_wait). If
`weewxd` encounters a critical error, it will sleep this long before doing a
restart.
Change from old Google Analytics UA code to the GA4 tag system in the Standard
and Seasons skins. Fixes issue [892](https://github.com/weewx/weewx/issues/892).
All `weectl import` sources now include support for a field map meaning any
source field can be imported to any WeeWX archive field.
Units for `weectl import` sources that require user specified source data
units are now specified in the `[[FieldMap]]` stanza.
Fixed problem when plotting wind vectors from a database that does not include
daily summaries.
Fixed a long-standing bug in the log message format that made 'python' or
'journal' appear as the process name instead of 'weewx'.
The process name for weewxd is now 'weewxd'. In V4 it was 'weewx'.
The rc script and configuration for FreeBSD/OpenBSD has been updated and now
uses standard BSD conventions.
The DEB/RPM packaging now detect whether systemd is running, so on systems that
use SysV, the rc scripts will be installed, and on systems such as docker that
do not use systemd, no systemd dependencies will be introduced.