WeeWX Frequently Asked Questions - weewx/weewx GitHub Wiki

This page provides answers to some of the most frequently-asked questions (FAQ) about WeeWX.

Getting started

Installing and upgrading

Registering your station

Using the command-line, Python, and WeeWX

Getting started

I need help - where do I go for support?

What weather station should I buy?

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.

Is my hardware supported by WeeWX?

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.

Is WeeWX hard to install and use?

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.

What skills do I need to run WeeWX?

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.

How do I learn the things I need to run WeeWX?

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.

Installing and upgrading

Which method should I use to install WeeWX?

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. 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.

Signature verification failed: NO_PUBKEY

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 using keys-old.html instead of keys.html.

How should I answer the questions from apt when I upgrade WeeWX?

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.

wget: command not found

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

gpg: command not found

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

gpg: no valid OpenPGP data found

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.

Should I edit the weewx config file version string

In short, no. The version string in weewx.conf indicates the version of weewx that you started with and 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. It can be returned via weewxd --version.

Registering your station

Should I register my station?

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.

Can I register without specifying an Internet-facing website?

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.

How do I unregister?

Simply disable the registration setting then restart WeeWX. Systems that do not refresh their data are dropped from the map in about a month.

Using the command-line, Python, and WeeWX

Why do I get "command not found" when I type WeeWX commands?

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

Why do I get "permission denied"?

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.

See the Wiki article understanding permissions.

SyntaxError: invalid syntax

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

ModuleNotFoundError: No module named xxx

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

How do I run weewxd directly in order to diagnose problems?

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

Where do I find the log?

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

Where are the web pages generated by WeeWX?

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

How do I fix obviously incorrect data from my station?

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 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](/weewx/weewx/wiki/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](/weewx/weewx/wiki/MinMax)
        outHumidity = 0, 100
        inHumidity = 0, 100