Skip to content

WeeWX

Home Automation

Python weather station software that collects data from various hardware types and generates plots, reports, and publishes to online services

Python Latest v5.3.1 · 3mo ago Security brief →

Features

  • Collects data from many weather station and sensor types
  • Generates plots, HTML pages, and monthly/yearly summary reports
  • Uploads to websites via FTP/FTPS/rsync and online weather services
  • Supports multiple databases (SQLite, MySQL) and skins
  • Internationalized with localized date/time and unit support

Recent releases

View all 3 releases →
v5.3.0 New feature
Notable features
  • weectl database rebuild-daily command
  • weectl station list-drivers command
  • Astronomical Units support
Full changelog

Distributions

ChangeLog

Set log-label in sysV init script to 'weewxd-XXX' instead of just 'XXX'

Added rsyslog config example for making logs visible to the group weewx
without having to use any privilege escalation.

Allow extra command line options to be passed to an extension installer.
Addresses Issue #1041.

Added Astronomical Units as a unit of length. Added local_djd as a unit of
local time. PR #998. Thanks to
user Karen!

Moved database-specific code into the weedb module. This is in anticipation
of allowing new databases to be installed as an extension.

New action weectl database rebuild-daily NAME was added to allow the selective
rebuilding of the daily summaries. Addresses Issue #1035.

New action weectl station list-drivers was added to allow the listing of all
available device drivers. Fixes Issue #1050.

Language subdirectory lang is now recursively searched for additional
translation files. This allows extensions to add any translations they might
need.

Converted test suites to use pytest.

New Finish translation for the Seasons skin. Thanks to user
iiseppi! PR #1059.

Remove unnecessary UNIQUE index on PRIMARY KEY columns in SQLite, achieving
size reduction of ~10%. Existing database schemas are not modified. Users
desiring size reduction are advised to consider manually migrating.

Fix problem that prevented weectl database reconfigure from working in cases
where a schema was specified.

Fix problem when importing data into a MySQL database. PR
#1025. Thanks to user Robert!

Fix problem that prevented weewxd from restarting reliably if a MySQL
connection was lost. Fixes Issue #1036.

Add support for kwargs when using .series() tags. PR
#1042.

Documentation now uses Zensical.

Fix problem that caused expanded substitutions to be saved when using
weectl station reconfigure. Fixes Issue #1068.

v5.2.0 Breaking risk
Breaking changes
  • Python 3.7 minimum requirement
  • schema module moved under weewx namespace
Notable features
  • Skyfield astronomy package integration support
  • WOW-BE service support
Full changelog

Distributions

ChangeLog

5.2.0 10/05/2025

Now require Python 3.7 or greater.

Added support for WOW-BE. PR #1014. Fixes issue #1013. Thanks to user John!

Module schema is now under module weewx. This lessens pollution of the Python namespace. Addresses Issue #993.

The WeeWX Almanac is now extensible, allowing other astronomy packages to be used besides pyephem. In particular, a WeeWX extension that uses the Skyfield package is available and can be installed. See Issue #981 and PR #988. Thanks to user Johanna!

Fix LOGNAME bug in the weewx-multi sysV script. Thanks to Glenn McKechnie.

Added illuminance to the wview_extended schema. See Issue #992 and PR #992. Thanks to user Jeremy!

Fix typo that causes phantom values of soilMoist3 to appear with VantageVue stations.

Fix bug that prevented relative paths to the config file from working.

Allow simple Python objects to be used as an argument to $jsonize().

Adjust exclusion of top-level files in wheel creation to meet poetry norms and to be consistent across poetry-core versions. Fixes issue #993, in part.

Fix problem that prevented cached values of first and last timestamp from being set. PR #999. Thanks to user Rich Bell!

Fix problem in Standard skin if Select Month was literally selected in drop down list. PR #1002. Thanks to user Ben Cotton!

In the Cumulus import code, the prefix cur_ is used to signify a current value for most observation types. However, there was one exception: curr_in_temp. The utility and documentation have been changed to use cur_in_temp (one 'r'), making all types consistent. Fixes Issue #1006.

Fix a problem caused by an assumption that delta times are always in seconds. Fixes issue Issue #1009.

Fix bug that prevented arbitrary types from being used with weectl database add-column. Fixes issue Issue
#1007
.

Fix bug that prevented MySQL and MariaDB versions greater than 10.0 from working. Fixes issue Issue #1010.

Wind direction plots in the Standard skin now use discrete marks, rather than continuous lines.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
1,165
Forks
318
Languages
Python Go Template HTML

Install & Platforms

Platforms
linux macos

Community & Support

Beta — feedback welcome: [email protected]