-
Notifications
You must be signed in to change notification settings - Fork 301
WeeWX Frequently Asked Questions
This page provides answers to some of the most frequently-asked questions (FAQ) about WeeWX.
- I need help - where do I go for support?
- What weather station should I buy?
- Is my hardware supported by WeeWX?
- Is WeeWX hard to install and use?
- What skills do I need to run WeeWX?
- How do I learn the things I need to run WeeWX?
- Which method should I use to install WeeWX?
- Signatures could not be verified: NO_PUBKEY
- How should I answer the questions from apt when I upgrade WeeWX?
- wget: command not found
- gpg: command not found
- gpg: no valid OpenPGP data found
- Should I edit the weewx config file version string
- Should I register my station?
- Can I register without specifying an Internet-facing website?
- How do I unregister?
- Why do I get "command not found" when I type WeeWX commands?
- Why do I get "permission denied"?
- SyntaxError: invalid syntax
- ModuleNotFoundError: No module named xxx
- How do I run weewxd directly in order to diagnose problems?
- Where do I find the log?
- Where are the web pages generated by WeeWX?
- How do I fix obviously incorrect data from my station?
- read the rest of the questions in this page!
- read the WeeWX documentation (https://weewx.com/docs)
- read the guides in the WeeWX wiki (https://github.com/weewx/weewx/wiki)
- read the instructions about posting to the
weewx-user
group - post your question(s) to the
weewx-user
group (https://groups.google.com/group/weewx-user) - if you find any of this confusing, please let us know so that we can make it better!
This depends on your needs. How much can you spend? How much can you spend each year? How much time are you willing to spend on maintenance? What do you want to measure? Will the station be located in a harsh environment (e.g., maritime conditions, extreme heat, extreme cold)? Will the station be located remotely, or somewhere you can service it easily? Do you need a completely off-grid solution, a station tied to the internet, or some combination of these? What power source is available? What network and computer resources are available? How often do you need to see the data?
Take a look at the 'hardware' section of the WeeWX station map to see what other WeeWX users are using.
For a lengthy read with many examples and opinions, see the wxforum board dedicated to this question.
WeeWX itself includes support for a small number of weather station models. However, many, many more weather stations, as well as other types of hardware, are supported by user-supplied drivers
- extensions to the WeeWX core.
The stations supported in WeeWX core are listed in the hardware guide.
Many more weather stations are listed at the supported hardware page. There you will see pictures and model numbers. As you browse the devices on that page, remember that many devices are sold under different model numbers, by different vendors. Support for these are provided through drivers that you must add after you install WeeWX.
To see many of the additional drivers, browse the Drivers section of the WeeWX wiki.
The answer to this depends on you. Many tens of thousands of people have installed WeeWX. Some of those people have years of computer experience, but many of them have little or no experience with computers, or command-line programs.
WeeWX is a command-line application, which means that people used to 'point-and-click' interfaces frequently have some growing pains. Using a command-line application requires some investment of your time and energy to reach a minimal level of expertise. However, the skills you learn to install and run WeeWX are applicable to many other systems.
At a minimum you must:
- be willing to type
- understand what files and directories are, as well as how to navigate and view them
- be able to open, edit, and save a text file
- understand how to start and stop processes
- have a basic understanding of permissions, and when/if to use 'sudo'
There are many instructions and guides that will help you, but you must still think.
There are dozens of free Linux introductory courses available on Internet. The Introduction to Linux is a free, self-paced course on edx.org, which has been taken by hundreds of thousands of people. Or try the Linux Journey
There are many os-specific forums on Reddit that are Linux, Linux administration, and operating system specific.
A few minutes of searching will turn up tutorials specific to your operating system of choice, whether that is MacOS, FreeBSD, Rocky, Debian, Mint, Ubuntu, Redhat, SUSE, etc.
There are three ways to install WeeWX: the packaged approach, the Python approach, and the run-from-source approach.
The packaged approach (DEB/RPM packages using apt
, yum/dnf
, or zypper
) is the fastest, easiest way to get started with WeeWX. However, this will work only if you use one of the operating systems for which these packages have been created.
The Python approach (pip
in WeeWX V5, or setup.py
in WeeWX V4) will work on every operating system. However, this approach requires you to install additional pieces to integrate WeeWX completely into your system. This approach is typically used by those who want to do a lot of customization, or by those who use an operating system for which there is no DEB/RPM package.
The run-from-source approach (using git
) works on every operating system. However, this approach requires the most work to integrate WeeWX into your system &mdash you will have to install all its dependencies by hand. This approach is typically used by developers, or by those who need to fit WeeWX into systems with little memory or storage.
The Installation section of the User's Guide has more details.
During an installation using the DEB/RPM method, you might encounter a message about NO_PUBKEY
such as one of these:
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY B7D370EC17FC079E
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY E788768B9CB16E10
This is because your system does not trust the GPG keys from weewx.com
. The keys were updated in 2023, so be sure that you have the latest keys before you try to install WeeWX.
# debian systems
wget -qO - https://weewx.com/keys.html | \
sudo gpg --dearmor --output /etc/apt/trusted.gpg.d/weewx.gpg
# redhat systems
sudo rpm --import https://weewx.com/keys.html
# suse systems
sudo rpm --import https://weewx.com/keys.html
If you somehow have an older DEB or RPM that was signed with the older keys, you might see a message with one of these public key hashes:
A0CB255B75BF977C
ED444FCCF0E2B09E
If so, you can add those keys by running the appropriate command above, but download from https://weewx.com/keys-old.html
instead of https://weewx.com/keys.html
.
When you upgrade WeeWX on a Debian-like system, the installer will ask you whether you want to keep your existing configuration, or use the latest configuration. In most cases, you should choose to keep your existing configuration; the WeeWX developers work hard to ensure that new versions of WeeWX are backward-compatible with configurations and skins.
Whether you choose to keep your configuration or the new one, both options will be saved. So if you change your mind later, or if you want to compare, you can do so.
More detail can be found in the apt update guide.
The wget
program is used to download the keys needed when you first configure a computer to trust weewx.com
. If your system does not have wget
, install it like this:
# debian systems
sudo apt install wget
# redhat systems
sudo yum install wget
Another option is to use curl
instead of wget
The gpg
program is used to download the keys needed when you first configure a computer to trust weewx.com
. If your system does not have gpg
, install it like this:
# debian systems
sudo apt install gnupg
# redhat systems
sudo yum install gnupg
If it has been awhile since you updated your Debian-like system, then the keys that it uses to trust other systems might be out of date. You can upgrade your system, including the keys, like this:
sudo apt-get update
sudo apt-get upgrade -y
For details, see problems downloading the apt repo key.
In short, no. The version string in weewx.conf
indicates the version of weewx that created the config file (not the current version). The version may be used internally during certain upgrades to identify if the file content needs to be changed. The actual version string weewx uses in its reports and logs is within the actual code, not the config file. It can be returned via weewxd --version
.
WeeWX has an optional capability to register your station with the weewx.com
server. Registered stations appear on the map. The registration includes only basic information about a station, including the location, hardware type, driver, WeeWX version, and Python version. We use this information to answer questions like "how many sites use this driver" and "how many sites are on the current weewx version" and the like, and to consider which configurations are used so much (or little) to merit higher or lower support levels.
Registration is not required. In fact, registration is disabled by default; you must take action to register your station.
To register your station, see the instructions in the station_registry
section of the User's Guide.
Yes, but... While you have to specify something for the station_url
, it does not need to actually resolve to a real, public-facing URL. If you use a private URL, this will result in you providing your registration data (thank you), put your station on the map, but the link to your station on the map will be broken.
Simply disable the registration setting then restart WeeWX. Systems that do not refresh their data are dropped from the map in about a month.
If you type a WeeWX command and you see command not found
, that probably means that the command is not in your PATH
.
$ weectl extension list
weectl: command not found
If you installed WeeWX using pip
, be sure to activate the Python virtual environment before you invoke a WeeWX command.
$ source ~/weewx-venv/bin/activate
$ weectl extension list
A successful run will look something like:
$ weectl extension list
Extension Name Version Description
windy 0.7 Upload weather data to Windy.
See the Wiki article understanding paths.
There are a few situations where you might encounter "permission denied", including:
- starting/stopping
weewxd
when it is running as a system daemon - viewing the system log
- modifying a configuration file or skin
- installing an extension
- reading/writing data to the database
- reading/writing data to a USB or serial device
- upgrading to V5 from an earlier version of WeeWX
To read the system logs and to start/stop WeeWX as a daemon, you can get the permissions that you need by putting a sudo
at the beginning of the command. Invoking sudo
executes the command as the root
user. This process is called "privilege escalation".
# run the `systemctl` program as the logged-in user:
systemctl start weewx
# run the `systemctl` program as the `root` user:
sudo systemctl start weewx
If you see messages from WeeWX that it does not have permissions to read data from the weather station, then you should ensure that the WeeWX user has read (and write) permissions for the USB or serial device. If you use Linux, you might want to install a udev rule, or if a udev rule already exists, just add the WeeWX user to the group specified in the udev rule.
If you see messages from WeeWX that it does not have permission to save images or other files in the reports, then you should ensure that the WeeWX user has write permissions on the report directory HMTL_ROOT
.
If you installed WeeWX using a DEB/RPM package, then the configuration files, skins, and database are owned by the user weewx
. If you are not in the weewx
group, you will not be able to modify those files, although you should be able to read them. If you need to edit the files or database, put yourself into the weewx
group:
sudo usermod -aG weewx your-user-name
See the Wiki article understanding permissions.
There are many things that could cause this Python error. It might be as simple as a typographic error in code, or it could result from attempting to run Python2 code with a Python3 interpreter.
See the Wiki article python errors
This is a Python error that arises when Python is unable to find code (a Python 'module'). Perhaps the most common reason for this is if a Python module has not been installed. If this is the case, all you have to do is install the missing module.
The error might also arise if the Python code is not invoked as the author intended it. If this is the case, you might be able to fix it by setting the PYTHONPATH
so that it includes the missing module.
See the Wiki article about Python module not found.
In many cases you can simply type weewxd
to start WeeWX. This will run weewxd
in the foreground, and it will print data from the weather station to the screen. To stop it, type ctrl-c
(press the c
key while you hold down the control
key).
weewxd
If you used pip
to install WeeWX, then you must activate the Python virtual environment before you start weewxd
, something like this:
source ~/weewx-env/bin/activate
weewxd
In some cases you might have to run weewxd
with root permissions in order to read data from the station, write data to the database, or write the reports. If so, the use sudo
:
sudo weewxd
Whether you run it directly or in the background, weewxd
emits log messages to indicate what it is doing. These messages go to the system logger, which you can then view using tools that come with your operating system.
On Linux systems, the system logger saves messages in either /var/log/syslog
(Debian, Ubuntu, etc) or /var/log/messages
(Redhat, Fedora, etc). On MacOS and most BSD systems, the system logger saves messages in /var/log/syslog
.
To view the log messages, use the tools that come with your system. On most systems, you can use head
or tail
to look at the first or last messages, respectively. On some systems, use journalctl
to view the log messages. You might have to preface the commands with sudo
, since many systems make the log readable only by admin users.
For more details and examples, see the guide about logging
WeeWX does not generate any reports until it has received data, so you might just have to wait. A typical station will emit an "archive record" every 5 minutes, but if your station is configured for a 30 minute archive interval, you will have a considerably longer wait. Or you can shorten the archive interval.
The location of the pages depends on the configuration:
configuration | location |
---|---|
DEB/RPM | /var/www/html/weewx |
pip | ~/weewx-data/public_html |
setup.py | /home/weewx/public_html |
You can see the web pages by navigating to the directory above.
To see the web pages from a different computer, you might want to install a web server. See the Wiki article about web servers
For existing data, use a database tool, possibly with the WeeWX database tool, to manipulate values in the database. See the Wiki article Cleaning up old 'bad' data.
For new data, use StdCalibrate
to apply a correction, or use StdQC
to filter the values from your station.
Here is an example. In this case the station can emit a lightning distance reading yet show a lightning strike count of zero. The example below ensures that lightning distance is not recorded unless there is a corresponding strike count during that interval.
[StdCalibrate]
[[Corrections]]
lightning_distance = lightning_distance if Atlas_stike_count > 0 else None
Here is an example that is included in the default WeeWX configuration. In this case, the values for humidity are limited to 0-100, even if the sensor emits values outside that range.
[StdQC]
[[MinMax]]
outHumidity = 0, 100
inHumidity = 0, 100