The intent of this document is to provide a gentle introduction to WeeWX and some basics to get you up and running, with pointers to more detailed information elsewhere in the rather large set of WeeWX documention available in the various guides, wiki, and frequently asked questions.
This document links to weewx-5.2 authoritative documents.
To see documentation for other versions, those are available HERE
WeeWX is python software that permits you to:
- connect to your weather station or other sources of sensor data
- save that data into a database
- generate a set of web pages and images to form a 'dashboard' of your data
- and (optionally) publish your weather data to other sites typically on Internet
WeeWX supports many dozens of weather station vendors and models, as well as a variety of external sources of data such as MQTT. It can also (optionally) upload your weather data to a variety of external sites such as Weather Underground.
WeeWX is extremely extensible, with many dozens of user-developed additions and integrations you may choose to add in order to ingest or present your data in a variety of ways. It can run on basically any hardware that can run a modern python version 3.7 or later and may be installed in multiple ways, including via pre-built packages installable onto the most common unix/linux platforms.
User support is done via the weewx-user Google Group you may choose the subscribe to. A Google account login is required for posting.
You may choose to register your station to make it findable on the WeeWX Station Map of registered stations. At this writing almost 2,000 stations have chosen to register themselves. This is completely 'optional'.
A typical WeeWX system consists of two parts, WeeWX itself and a web server.
WeeWX does 'not' come with a web server. It is expected that the user install and configure the web server of their choice.
WeeWX has some terminology you need to be aware of:
- a 'driver' interfaces with your weather station or other source of data
- a 'skin' presents your data into web pages and/or generated images
- a 'service' adds typically user-developed functionality to WeeWX core
- an 'extension' packages customizations for easy installation
- an 'uploader' sends data to an external site or service
There are literally dozens of each item available to optionally add to your WeeWX system. Consult the Wiki for a list.
You might see a few additional terms in the documentation and support forums:
- LOOP data is readings your station emits routinely from its sensors, sometimes every few seconds
- ARCHIVE data is that data summarized by WeeWX periodically, generally every few minutes
Archive data is what WeeWX periodically actually saves to its database, generally containing the high/low/average of all the LOOP sensor data during that period of time. For sensor readings that accumulate (such as rain), they contain the sum of the readings during that period of time.
For a typical WeeWX system you need to learn how do the following:
- install and configure WeeWX itself
- install and configure a web server to match
- learn how to monitor your system logs
- learn how to change your initial settings
- learn how to report a problem
WeeWX can be installed in a variety of ways. New users typically use their operating system's native packaging mechanism (apt, yum, rpm, zipper). Other more advanced installation mechanisms (pip, git) are available as well.
For details and procedures - start with the WeeWX Quick start.
WeeWX is set up via two main configuration files:
weewx.confconfigures WeeWX itselfskin.confconfigures each particular skin specifically
For an initial installation from a pre-built package, the installation will prompt you with a few top-level questions needed to define your system. For other installation mechanisms you will have to hand-edit weewx.conf to match. The provided weectl utility is used to add to, delete from, or tune your system, although some hand-editing of weewx.conf might be needed occasionally.
Initially simply running the defaults is recommended.
The usual WeeWX configuration periodically generates a set of web pages and images you can view via a web browser as a weather dashboard, so to speak.
This does not happen in realtime, it happens only periodically based on how you have the 'archive_interval' configuration item set in weewx.conf.
Caution
Setting the archive_interval value too low (fast) can interfere with weewx operation on slow systems.
Integrating WeeWX with a web server can be very frustrating for new users.
In short:
- WeeWX runs as an unprivileged user ('weewx' for a packaged installation)
- which needs to be able to write to a directory owned by the web server process
- which in turn runs as a 'different' unix user
This last item frequently causes new users to struggle with unix permissions misconfiguration issues. WeeWX needs to be able to write to the web server's HTML document tree. Unfortunately there are too many web server variants to provide a universal howto here. Typically, permission issues are straightforward to spot in both WeeWX and web server logs.
Tip
Initially it is helpful to set debug=1 in weewx.conf to make the WeeWX logging more verbose.
Check your system logs and web server error log for any issues you might see initially.
WeeWX does not require any particular web server package.
Users typically install 'nginx' or 'apache' although any web server package will work.
- For nginx on a debian(ish) system, one method to configure nginx is HERE
- Alternate configurations are discussed in detail in the WeeWX User's Guide.
For new users, finding and viewing log files is typically difficult to learn.
By default WeeWX logs via your operating system's default logging mechanism, which currently tends to be 'systemd'. This is the operating system's choice, unfortunately.
Systemd can be complicated for many users and its interface can be painful. For details on how to use systemd's 'systemctl' command, consult your operating system's manual pages, do a Google search, or see the WeeWX documentation HERE.
Tip
Alternately, many users choose to customize their operating system to add the legacy 'rsyslogd' type of logging which writes simple flat files. This also requires installing and configuring the legacy 'logrotate' tool to periodically rotate the logs.
Template files for both rsyslogd and logrotate are provided with WeeWX and it's only a few one-time steps to configure logging to work in a legacy rsyslogd type of mode. For details - see HERE.
WeeWX provides the weectl utility for configuring much of the system settings, as well as other operations. For details - see the documentation HERE.
In other cases, you might need to manually edit weewx.conf or a skin.conf file, or even a html .tmpl template file within a skin. If you edit weewx.conf, you will need to restart weewx to make the changes take effect. Changes to skin.conf or a skin's .tmpl HTML templates take effect when weewx runs its periodic reports when the next archive_interval rolls around.
By default, the Seasons 'skin' is enabled when your initial installation is complete, with many other possible dashboards provided as skins by WeeWX. To enable/disable a particular skin, simply set 'enable=true' or 'enable=false' in its section in weewx.conf, then restart WeeWX.
You may optionally install other skins via the weectl extension installer. There is a long list of some available user-developed skins in the WeeWX Wiki.
You can also create your own custom skin from scratch, which is a much more advanced topic. See the Customization Guide for details.
Many users choose to upload their data periodically to commonly used Internet sites such as Weather Underground. This is enabled by hand-editing weewx.conf and setting the required parameters in that site's section therein, setting 'enable=true', and restarting weewx.
Uploaders for a half-dozen well-known sites are included in WeeWX core, with several dozen more that can be added. See the Wiki for many user-provided uploaders and links to each item's installation and configuration steps.
When you need to report a problem or ask a HOWTO type question, the users in weewx-users typically need more information about your setup, what you did, and what you are seeing. It can take quite a few back+forth questions and answers to get enough information to try to help.
See HERE as one way to do a good problem report.
Please see the following:
- the weewx-user Google Group
- the WeeWX Wiki
- the WeeWX Frequently Asked Questions aka FAQ
- the very detailed WeeWX Documentation