[StdReport] - WeeWX 5.0
Author: Tom Keffer <tkeffer@gmail.com>

Skip to content

# [StdReport]

This section is for configuring the `StdReport` service, which controls what reports are to be generated. While it can be highly customized for your individual situation, this documentation describes the section as shipped in the standard distribution.

Each report is represented by a sub-section, marked with double brackets (e.g., `[[MyReport]]`). Any options for the report should be placed under it. The standard report service will go through the sub-sections, running each report in order.

WeeWX ships with the following sub-sections:

Sub-section | Description
--- | ---
[[SeasonsReport]] | A full-featured single-page skin. Statistics and plots are revealed by touch or button press.
[[SmartphoneReport]] | A skin formatted for smaller screens, with a look-and-feel reminiscent of first-generation Apple iPhone.
[[MobileReport]] | A static skin formatted for very small screens, with a look-and-feel reminiscent of WindowsCE or PalmOS.
[[StandardReport]] | The original skin that shipped for many years as the default report. It uses static HTML and images, and requires few resources to generate and display.
[[FTP]] | No presentation elements. Uses the reporting machinery to transfer files to a remote server using FTP.
[[RSYNC]] | No presentation elements. Uses the reporting machinery to transfer files to a remote server using rsync.

Order matters. The reports that generate HTML and images, that is, `SeasonsReport`, `SmartphoneReport`, `MobileReport`, and `StandardReport`, are run first, then the reports that move them to a webserver, `FTP` and `RSYNC`, are run. This insures that report generation is done before the results are sent off.

Details for how to customize reports are in the section Customizing reports, in the Customization Guide.

#### SKIN_ROOT

The directory where the skins live, relative to `WEEWX_ROOT`.

#### HTML_ROOT

The target directory for the generated files, relative to `WEEWX_ROOT`. Generated files and images will be put here.

#### log_success

If you set a value for `log_success` here, it will override the value set at the top-level and will apply only to reporting. In addition, `log_success` can be set for individual reports by putting them under the appropriate subsection (e.g., under `[[Seasons]]`).

#### log_failure

If you set a value for log_failure here, it will override the value set at the top-level and will apply only to reporting. In addition, `log_failure` can be set for individual reports by putting them under the appropriate subsection (e.g., under `[[Seasons]]`).

#### data_binding

The data source to be used for the reports. It should match a binding given in section `[DataBindings]` below. The binding can be overridden in individual reports. Optional. Default is `wx_binding`.

#### report_timing

This parameter uses a cron-like syntax that determines when a report will be run. The setting can be overridden in individual reports, so it is possible to run each report with a different schedule. Refer to the separate document Scheduling report generation for how to control when reports are run. Optional. By default, a value is missing, which causes each report to run on each archive interval.

## Standard WeeWX reports

These are the four reports that are included in the standard distribution of WeeWX, and which actually generate HTML files and plots. They all use US Customary units by default (but this can be changed by setting the option `unit_system`).

#### [[SeasonsReport]]

#### [[SmartphoneReport]]

#### [[MobileReport]]

#### [[StandardReport]]

They all have the following options in common:

#### lang

Which language the skin should be localized in. The value is a two-character language code as defined in ISO 639-1. This option only works with skins that have been internationalized. All skins that ship with WeeWX have been internationalized, but only a handful of languages are included. To see which language a skin supports, look in the subdirectory `lang` in the skin's directory. For example, if you see a file `fr.conf`, then the skin can be localized in French.

#### unit_system

Which unit system to use with the skin. Choices are `US`, `METRIC`, or `METRICWX`. See the Appendix Units in the Customization Guide for definitions of these unit systems. Individual units can be overridden. See the section Changing unit systems in the Customization Guide for more details.

#### enable

Set to `true` to enable the processing of this skin. Set to `false` to disable. If this option is missing, `true` is assumed.

#### skin

Where to find the skin. This should be a subdirectory under `SKIN_ROOT`. Inside the directory should be any templates used by the skin and a skin configuration file, `skin.conf`.

#### HTML_ROOT

If you put a value for `HTML_ROOT` here, it will override the value directly under `[StdReport]`.

## [[FTP]]

While this "report" does not actually generate anything, it uses the report machinery to upload files from directory `HTML_ROOT` to a remote webserver. It does an incremental update, that is, it only FTPs any files that have changed, saving the outgoing bandwidth of your Internet connection.

#### enable

Set to `true` (the default) to enable FTP. Set to `false` to disable.

#### user

Set to the username you use for your FTP connection to your web server. Required. No default.

#### password

Set to the password you use for your FTP connection to your web server. Required. No default.

#### server

Set to the name of your web server (e.g., `www.acme.com`). Required. No default

#### path

Set to the path where the weather data will be stored on your webserver (e.g., `/weather`). NB: some FTP servers require a leading slash ('`/`'), some do not. Required. No default.

#### secure_ftp

Set to `true` to use FTP (FTPS) over TLS. This is an extension to the FTP protocol that uses a Secure Socket Layer (SSL) protocol, not to be confused with SFTP, which uses a Secure Socket Shell protocol. Not all FTP servers support this. In particular, the Microsoft FTP server seems to do a poor job of it. Optional. Default is `false`

#### secure_data

If a secure session is requested (option `secure_ftp=true`), should we attempt a secure data connection as well? This option is useful due to a bug in the Python FTP client library. See WeeWx GitHub Issue #284. Optional. Default is `true`.

#### reuse_ssl

Some FTP servers (notably PureFTP) reuse ssl connections with FTPS. Unfortunately, the Python library has a bug that prematurely closes such connections. See https://bit.ly/2Lrywla. Symptom is an exception OSError: [Errno 0]. This option activates a workaround for Python versions greater than 3.6. It won't work for earlier versions. Optional. Default is `false`.

#### port

Set to the port ID of your FTP server. Default is `21`.

#### passive

Set to `1` if you wish to use the more modern, FTP passive mode, `0` if you wish to use active mode. Passive mode generally works better through firewalls, but not all FTP servers do a good job of supporting it. See Active FTP vs. Passive FTP, a Definitive Explanation for a good explanation of the difference. Default is `1` (passive mode).

#### max_tries

WeeWX will try up to this many times to FTP a file up to your server before giving up. Default is `3`.

#### ftp_encoding

The vast majority of FTP servers send their responses back using UTF-8 encoding. However, there are a few oddballs that respond using Latin-1. This option allows you to specify an alternative encoding.

#### ciphers

Some clients require a higher cipher level than the FTP server is capable of delivering. The symptom is an error something like `ssl.SSLError: [SSL: DH_KEY_TOO_SMALL] dh key too small (_ssl.c:997)`. This option allows you to specify a custom level. For example, in this case, you might want to specify:

    ciphers='DEFAULT@SECLEVEL=1'

However, if possible, you are always better off upgrading the FTP server.

## [[RSYNC]]

While this "report" does not actually generate anything, it uses the report machinery to upload files from directory `HTML_ROOT` to a remote webserver using rsync. Fast, efficient, and secure, it does an incremental update, that is, it only synchronizes those parts of a file that have changed, saving the outgoing bandwidth of your Internet connection.

If you wish to use rsync, you must configure passwordless ssh using public/private key authentication from the user account that WeeWX runs, to the user account on the remote machine where the files will be copied.

#### enable

Set to `true` (the default) to enable rsync. Set to `false` to disable.

#### server

Set to the name of your server. This name should appear in your `.ssh/config` file. Required. No default

#### user

Set to the ssh username you use for your rsync connection to your web server. The local user that WeeWX runs as must have passwordless ssh configured for user@server. Required. No default.

#### path

Set to the path where the weather data will be stored on your webserver (e.g., `/var/www/html/weather`). Make sure user has write privileges in this directory. Required. No default.

#### port

The port to use for the ssh connection. Default is to use the default port for the `ssh` command (generally 22).

#### delete

Files that don't exist in the local report are removed from the remote location.

Warning

USE WITH CAUTION! If you make a mistake in setting the path, this can cause unexpected files to be deleted on the remote server.

Valid values are `1` to enable and `0` to disable. Required. Default is `0`.

## [[Defaults]]

This section defines default values for all reports. You can set:

- The unit system to be used
- Overrides for individual units
- Which language to be used
- Number and time formats
- Labels to be used
- Calculation options for some derived values.

See the section Processing order in the Customization Guide for more details.