Consistent use of name "WeeWX"

This commit is contained in:
Tom Keffer
2018-10-09 09:03:33 -07:00
parent 47630f6e6c
commit b80ac8c92b
2 changed files with 144 additions and 144 deletions

View File

@@ -4,4 +4,4 @@ Documentation needs to be updated.
- Change references to Standard skin to Seasons.
- Mention the Mobile and Smartphone skins.
Check whether we can support Python 2.6
Document the dropping of Python 2.5.

View File

@@ -2,7 +2,7 @@
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>weewx: User's Guide</title>
<title>WeeWX: User's Guide</title>
<meta http-equiv="Content-Language" content="en-us"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
@@ -43,7 +43,7 @@ Version: 3.9
</span>
</div>
<div class="title">
User's Guide to the weeWX Weather System
User's Guide to the WeeWX Weather System
</div>
</div>
@@ -51,10 +51,10 @@ Version: 3.9
<p>
This is the complete guide to installing, configuring, and
troubleshooting weeWX.
troubleshooting WeeWX.
</p>
<h1 id="about">About weeWX</h1>
<h1 id="about">About WeeWX</h1>
<p><a href="http://www.weewx.com">WeeWX</a> is
software, written in <a href="http://www.python.org">Python</a>, that
@@ -81,14 +81,14 @@ Version: 3.9
<p>WeeWX includes support for many types
of weather stations. In addition to hardware
support, weeWX comes with a software
support, WeeWX comes with a software
simulator, useful for testing and evaluation.
</p>
<p>The
<a href="hardware.htm#driver_status">driver compatibility table</a>
in the hardware guide has a detailed list of the manufacturers and
models supported by the drivers that come with
weeWX. If you do
WeeWX. If you do
not see your hardware in this table, check the list of
<a href="http://weewx.com/hardware.html">supported hardware</a>;
the pictures may help you identify the manufacturer and/or model.
@@ -111,7 +111,7 @@ Version: 3.9
language. Nevertheless, it is "fast enough" on just about any hardware. It
has been run on everything from an early MacBook to a router!</p>
<p>I run weeWX on a Fit-PC with a 500 MHz AMD
<p>I run WeeWX on a Fit-PC with a 500 MHz AMD
Geode processor and 512 MB of memory. Configured this way, it
consumes about 5% of the CPU, 100 MB of virtual memory,
and 20 MB of real memory. </p>
@@ -130,9 +130,9 @@ Version: 3.9
as the Weather Underground. </p>
<p>The time on some stations is automatically synchronized with the
weeWX server nominally every four hours.
WeeWX server nominally every four hours.
The synchronization frequency can be adjusted in the
weeWX configuration.</p>
WeeWX configuration.</p>
<h2>Python</h2>
@@ -142,7 +142,7 @@ Version: 3.9
<h2 id="permissions">Permissions</h2>
<p>There are a few places where permissions affect weeWX:
<p>There are a few places where permissions affect WeeWX:
</p>
<ul>
<li>Installation/Configuration. The user who does the installation
@@ -156,24 +156,24 @@ Version: 3.9
<li>Running. Most USB and serial devices require administrative
(root) access. Unless the device has been configured with a
udev rule or other mechanism that grants access to non-root
users, weeWX commands must be run as
users, WeeWX commands must be run as
root or must be prefaced with <span class="code">sudo</span>
for temporary administrative privileges.
</li>
</ul>
<p>Normally weeWX is installed and run with
<p>Normally WeeWX is installed and run with
administrative (root) permissions. However, it is not uncommon to
install and run weeWX as a generic
non-root user, or even as a user created specifically to run weeWX.
install and run WeeWX as a generic
non-root user, or even as a user created specifically to run WeeWX.
</p>
<h1 id="installing">Installing weeWX</h1>
<h1 id="installing">Installing WeeWX</h1>
<h2>Required skills</h2>
<p>
In the world of open-source hobbyist software,
weeWX is pretty easy to install and
WeeWX is pretty easy to install and
configure. There are not many package dependencies, the
configuration is simple, and this guide includes extensive
instructions.
@@ -191,7 +191,7 @@ Version: 3.9
permissions and running commands;
</li>
<li>No programming experience is necessary unless you wish
to extend weeWX. In this case, you should be comfortable
to extend WeeWX. In this case, you should be comfortable
programming in Python.
</li>
</ul>
@@ -203,14 +203,14 @@ Version: 3.9
<h2>Overview</h2>
<p>This is an outline of the process to install, configure, and run
weeWX:</p>
WeeWX:</p>
<ol>
<li>Read the <a href="hardware.htm">hardware notes</a>
for your weather station. This will let you know of any features,
limitations, or quirks of your hardware.
</li>
<li>Install weeWX. Use the step-by-step
<li>Install WeeWX. Use the step-by-step
instructions in one of the
<a href="#installation_methods">installation methods</a> below.
</li>
@@ -227,14 +227,14 @@ Version: 3.9
configuration file.
</li>
<li><a href="customizing.htm">Customize</a> the installation. This is an advanced topic, which allows you to
shape weeWX exactly to your liking!
shape WeeWX exactly to your liking!
</li>
</ol>
<h2 id="installation_methods">Installation methods</h2>
<p>
Weewx can be installed from a DEB (Debian) or RPM
WeeWX can be installed from a DEB (Debian) or RPM
(Redhat, SUSE) package, or it can be installed using the standard Python utility
<span class='code'>setup.py</span>.
</p>
@@ -242,7 +242,7 @@ Version: 3.9
<p>
The DEB or RPM package approach is simpler and is the recommended method for
beginners. However, it requires root privileges, and will install the
bits and pieces of weeWX in standard
bits and pieces of WeeWX in standard
operating system locations across the file system instead of in a
single directory. The net effect is that configuration files,
templates, and code will all be installed in separate locations, most
@@ -252,13 +252,13 @@ Version: 3.9
<p>
Installation using <span class="code">setup.py</span> is the
recommended method for those who plan to write custom services and
reports for weeWX. It will put everything
reports for WeeWX. It will put everything
in a single directory, specified by the parameter <span class='code'>home</span>
in the <span class='code'>setup.cfg</span> file, making it
easier to modify weeWX. This file is not
easier to modify WeeWX. This file is not
used by the other installation methods. If the user installing
weeWX has permission to write to the directory, root privileges
will not be required to install, run, or modify weeWX.
WeeWX has permission to write to the directory, root privileges
will not be required to install, run, or modify WeeWX.
</p>
<h2><a href='debian.htm'>Installing from DEB package</a></h2>
@@ -286,7 +286,7 @@ Version: 3.9
<p>For all other operating systems, follow the
<a href='setup.htm'><span class="code">setup.py</span> instructions</a>. This method
can also be used on Debian-, Redhat-, and SUSE-based operating systems as well,
and may be a better choice if you intend to heavily customize weeWX.
and may be a better choice if you intend to heavily customize WeeWX.
</p>
<h2 id="Where_to_find_things">Where to find things</h2>
@@ -328,7 +328,7 @@ Version: 3.9
<td>Nominal Location</td>
</tr>
<tr>
<td>weeWX root directory</td>
<td>WeeWX root directory</td>
<td class="symcode">WEEWX_ROOT</td>
<td class="tty">/</td>
</tr>
@@ -390,7 +390,7 @@ Version: 3.9
<td>Nominal Location</td>
</tr>
<tr>
<td>weeWX root directory</td>
<td>WeeWX root directory</td>
<td class="symcode">WEEWX_ROOT</td>
<td class="tty">/</td>
</tr>
@@ -453,7 +453,7 @@ Version: 3.9
<td>Nominal Location</td>
</tr>
<tr>
<td>weeWX root directory</td>
<td>WeeWX root directory</td>
<td class="symcode">WEEWX_ROOT</td>
<td class="tty">/Users/Shared/weewx/</td>
</tr>
@@ -517,7 +517,7 @@ Version: 3.9
<td>Nominal Location</td>
</tr>
<tr>
<td>weeWX root directory</td>
<td>WeeWX root directory</td>
<td class="symcode">WEEWX_ROOT</td>
<td class="tty">/home/weewx/</td>
</tr>
@@ -574,18 +574,18 @@ Version: 3.9
<!-- Moved wee_config description to utilities.htm-->
<h1 id="running">Running weeWX</h1>
<h1 id="running">Running WeeWX</h1>
<p>WeeWX can be run either directly,
or as a daemon. When first trying
weeWX, it is best to run it directly
WeeWX, it is best to run it directly
because you will be able to see sensor output and diagnostics, as well
as log messages. Once everything is working properly, run it as a
daemon.</p>
<h2 id="Running_directly">Running directly</h2>
<p>To run weeWX directly, invoke
<p>To run WeeWX directly, invoke
the main program, <span class="code">weewxd</span>, giving
the configuration file as its only parameter: </p>
<pre class="tty cmd">sudo weewxd weewx.conf</pre>
@@ -601,7 +601,7 @@ Version: 3.9
once every two seconds for a Vantage station, or considerably longer
for some other stations. </p>
<p>You can tell a running instance of weeWX to
<p>You can tell a running instance of WeeWX to
reread its configuration file by sending it the
<span class="code">HUP</span> signal.
First run <span class="code">ps</span> to find out the Process ID (PID)
@@ -613,7 +613,7 @@ Version: 3.9
<h2 id="Running_as_a_daemon">Running as a daemon</h2>
<p>For unattended operations it is best to have weeWX
<p>For unattended operations it is best to have WeeWX
run as a daemon, started automatically when the server is rebooted. </p>
<p>If you use a packaged install from a DEB or RPM distribution, this is
@@ -638,7 +638,7 @@ Version: 3.9
</table>
<p>Check the chosen script to make sure the variable <span class="code">WEEWX_ROOT</span>
has been set to the proper root directory for your
weeWX installation (it should have been set to the correct value automatically
WeeWX installation (it should have been set to the correct value automatically
by the install process, but it is worth checking). </p>
<p>Copy it to the proper location for your system: </p>
@@ -687,12 +687,12 @@ Version: 3.9
</tr>
</table>
<p>WeeWX will now start automatically whenever your system is booted.
You can also manually start, stop, and restart the weeWX daemon:
You can also manually start, stop, and restart the WeeWX daemon:
</p>
<pre class="tty cmd">sudo /etc/init.d/weewx start
sudo /etc/init.d/weewx stop
sudo /etc/init.d/weewx restart</pre>
<p>By default, the scripts are designed to have weeWX
<p>By default, the scripts are designed to have WeeWX
run at run levels 2, 3, 4 and 5. Incidentally, a nice tool for setting run levels
with Debian (Ubuntu, Mint) systems is
<a href="http://sysv-rc-conf.sourceforge.net/">sysv-rc-conf</a>. It uses a curses
@@ -701,12 +701,12 @@ sudo /etc/init.d/weewx restart</pre>
Center, then look for Systems Services (Runlevel). Pick &quot;Expert&quot; mode
to see the run levels. </p>
<p>You can also tell weeWX to reread its configuration
<p>You can also tell WeeWX to reread its configuration
file without stopping by using the &#39;reload&#39; option: </p>
<pre class="tty cmd">sudo /etc/init.d/weewx reload </pre>
<h1 id="monitoring">Monitoring weeWX</h1>
<h1 id="monitoring">Monitoring WeeWX</h1>
<p>WeeWX logs many events to the system log.
On Debian systems, this is <span class="code">/var/log/syslog</span>,
@@ -729,10 +729,10 @@ sudo /etc/init.d/weewx restart</pre>
<h2>If the server is on the same machine</h2>
<p>The reports generated by weeWX can be
<p>The reports generated by WeeWX can be
served by a web server running on the same computer as
weeWX. These are instructions for making
weeWX reports available via the Apache
WeeWX. These are instructions for making
WeeWX reports available via the Apache
web server. The process is similar for other web servers such as
<span class='code'>nginx</span> or
<span class='code'>lighthttpd</span>.</p>
@@ -740,16 +740,16 @@ sudo /etc/init.d/weewx restart</pre>
<ol>
<li>
<p>Install the Apache web server on the computer on which
weeWX is running. For example, on Debian systems:</p>
WeeWX is running. For example, on Debian systems:</p>
<p class='tty cmd'>sudo apt-get install apache2</p>
</li>
<li>
<p>Configure Apache to see the weeWX reports.</p>
<p>Configure Apache to see the WeeWX reports.</p>
<ul>
<li>
<p>If weeWX was installed from DEB or RPM package, no
<p>If WeeWX was installed from DEB or RPM package, no
configuration should be necessary since the reports
are placed in the directory
<span class='code'>/var/www/html/weewx</span>,
@@ -757,9 +757,9 @@ sudo /etc/init.d/weewx restart</pre>
<span class='code'>/var/www/html</span></p>
</li>
<li>
<p>If weeWX was installed using
<p>If WeeWX was installed using
<span class='code'>setup.py</span>, you must tell
Apache where to find the weeWX reports.
Apache where to find the WeeWX reports.
One method is to install an Apache
configuration snippet:</p>
@@ -768,7 +768,7 @@ sudo /etc/init.d/weewx restart</pre>
<p>Be sure that the path in the Apache configuration
snippet matches the
<span class='code'>HTML_ROOT</span> defined in the
weeWX configuration file. For example,
WeeWX configuration file. For example,
the path for a default
<span class='code'>setup.py</span> installation
would look like this:</p>
@@ -786,18 +786,18 @@ sudo /etc/init.d/weewx restart</pre>
</li>
<li>
<p>Open the weeWX URL in a web browser:</p>
<p>Open the WeeWX URL in a web browser:</p>
<p class='tty'>http://localhost/weewx</p>
</li>
</ol>
<h2>If the server is on a different machine</h2>
<p>Use FTP or RSYNC to transfer the files generated by weeWX to your
remote server. In weeWX, FTP and RSYNC
<p>Use FTP or RSYNC to transfer the files generated by WeeWX to your
remote server. In WeeWX, FTP and RSYNC
are implemented as reports. They are configured in the
<span class="code">[StdReport]</span> section of the
weeWX configuration file.</p>
WeeWX configuration file.</p>
<p>For example, the following configuration would use RSYNC to copy
the html and images files from the standard report to a folder
<span class="code">/var/www/html/weewx</span> on the server
@@ -829,17 +829,17 @@ sudo /etc/init.d/weewx restart</pre>
<h1 id="backup">Making backups</h1>
<p>
To backup a weeWX installation, you will need to make a copy of
To backup a WeeWX installation, you will need to make a copy of
</p>
<ul>
<li>configuration information;</li>
<li>skins and templates;</li>
<li>any custom code or extensions you have installed;</li>
<li>the weeWX database.</li>
<li>the WeeWX database.</li>
</ul>
<p>
It is not necessary to backup the generated images, HTML files, or
NOAA reports since weeWX will easily
NOAA reports since WeeWX will easily
create these again.
</p>
@@ -921,8 +921,8 @@ sudo /etc/init.d/weewx restart</pre>
Do not make the copy of the SQLite database while in the middle of
a transaction! Schedule the backup for immediately after an
archive record is written, and then make sure the backup completes
before the next archive record arrives. Alternatively, stop weeWX,
perform the backup, then restart weeWX.
before the next archive record arrives. Alternatively, stop WeeWX,
perform the backup, then restart WeeWX.
</p>
<p>
@@ -933,8 +933,8 @@ sudo /etc/init.d/weewx restart</pre>
<p>
To restore from backup, do a fresh install of
weeWX, replace the default files with
those from a backup, then start weeWX.
WeeWX, replace the default files with
those from a backup, then start WeeWX.
</p>
@@ -956,8 +956,8 @@ sudo /etc/init.d/weewx restart</pre>
<pre class="tty">sudo apt-get install python-mysqldb</pre>
<p>Next, change the weeWX configuration to use MySQL instead of
SQLite. In the weeWX configuration file, change the
<p>Next, change the WeeWX configuration to use MySQL instead of
SQLite. In the WeeWX configuration file, change the
<a href="#wx_binding"><span class="code">[[wx_binding]]</span></a>
section to point to the MySQL database,
<span class="code">archive_mysql</span>,
@@ -1002,7 +1002,7 @@ mysql&gt; <span class="cmd">GRANT select, update, create, delete, insert, drop O
<h2>sqlite3</h2>
<p>The SQLite archive database used by weeWX
<p>The SQLite archive database used by WeeWX
(nominally, <span class="code">weewx.sdb</span>) is completely
compatible with the database used by
<a href="http://www.wviewweather.com">wview</a> (usually called
@@ -1011,7 +1011,7 @@ mysql&gt; <span class="cmd">GRANT select, update, create, delete, insert, drop O
</p>
<p>If you have data from <span class='code'>wview</span>, you can
'import' them into weeWX by simply copying the
'import' them into WeeWX by simply copying the
SQLite database file. Assuming that the <span class='code'>wview</span>
data are in file
<span class='code'>/var/wview/archive/wview-archive.sdb</span>,</p>
@@ -1024,7 +1024,7 @@ sudo /etc/init.d/weewx start</pre>
<p>
Internally, within the <span class="code">weewx.sdb</span> database,
weeWX also maintains a "daily summary" of all the statistics. This
WeeWX also maintains a "daily summary" of all the statistics. This
is done for performance reasons. The daily summary will
automatically be built on the first startup. This could take
a few minutes if the <span class='code'>wview</span> archive contains
@@ -1040,13 +1040,13 @@ sudo /etc/init.d/weewx start</pre>
<h2>MySQL</h2>
<p>The MySQL archive database used by wview is "almost" compatible with
weeWX. The one difference is that in wview, the column <span
WeeWX. The one difference is that in wview, the column <span
class="code">interval</span>
is named <span class="code">arcInt</span> (presumably because
<span class="code">interval</span> is a keyword in MySQL, although it can
still be used by surrounding the word with backquotes). </p>
<p>To change the column name to what weeWX uses, namely <span
<p>To change the column name to what WeeWX uses, namely <span
class="code">interval</span>,
use the utility <span class="code">mysql</span> and issue the command:</p>
<pre class="tty">mysql> <span class="cmd">ALTER TABLE <em>your-wview-archive-name</em> CHANGE arcInt `interval` INTEGER NOT NULL;</span> </pre>
@@ -1067,7 +1067,7 @@ sudo /etc/init.d/weewx start</pre>
<p>The configuration file <span class="code">weewx.conf</span> is a big
text file that holds the configuration information about your
installation of weeWX. This includes things such as:</p>
installation of WeeWX. This includes things such as:</p>
<ul>
<li>The type of hardware you have;</li>
<li>The name of your station;</li>
@@ -1100,7 +1100,7 @@ sudo /etc/init.d/weewx start</pre>
<p>Default values are provided for many options, meaning that if they are
not listed in the configuration file <em>at all</em>,
weeWX will pick sensible values. When the
WeeWX will pick sensible values. When the
documentation below gives a &quot;default value&quot; this is what it
means.</p>
@@ -1121,7 +1121,7 @@ sudo /etc/init.d/weewx start</pre>
<p class="config_option">WEEWX_ROOT </p>
<p>Set to the root directory of the weeWX file hierarchy for this
<p>Set to the root directory of the WeeWX file hierarchy for this
station. Normally, this is set automatically by the
installation process. Required. No default.
</p>
@@ -1140,11 +1140,11 @@ sudo /etc/init.d/weewx start</pre>
<p class="config_option">loop_on_init</p>
<p>Normally, if the hardware driver fails to load, weewx will exit. The assumption
<p>Normally, if the hardware driver fails to load, WeeWX will exit. The assumption
is that there is a configuration problem and so retries are useless.
However, in some cases, drivers can fail to load for intermittent reasons,
such as a network failure. In these cases, it may be useful to have
weewx do a retry. Setting this option to 1 will cause weewx to keep retrying indefinitely.
WeeWX do a retry. Setting this option to 1 will cause WeeWX to keep retrying indefinitely.
</p>
<h2 class="config_section">[Station]</h2>
@@ -1257,9 +1257,9 @@ longitude = -77.0366</pre>
<p>If you have a website, you may optionally specify an URL for
its HTML server. It will be included in the RSS file generated
by weeWX and, if you choose to opt into the <a href="#station_registry">station
by WeeWX and, if you choose to opt into the <a href="#station_registry">station
registry</a>, it will also be included in the
<a href="http://weewx.com/stations.html">map of weewx stations</a>.</p>
<a href="http://weewx.com/stations.html">map of WeeWX stations</a>.</p>
<p>Example:</p>
<pre class="tty">station_url = http://www.mywebsite.com</pre>
@@ -1280,7 +1280,7 @@ longitude = -77.0366</pre>
<h3 class="config_section">[Simulator]</h3>
<p>This section is for options relating to the software weather
station simulator that comes with weeWX.</p>
station simulator that comes with WeeWX.</p>
<p class="config_option">loop_interval</p>
@@ -1346,7 +1346,7 @@ longitude = -77.0366</pre>
<p class='config_option'>polling_interval</p>
<p>The <span class="code">polling_interval</span> determines how often
weeWX will query the station for data. The default is 1 second.
WeeWX will query the station for data. The default is 1 second.
</p>
<p class="config_option">sensor_map</p>
@@ -1394,10 +1394,10 @@ longitude = -77.0366</pre>
<p>One of <span class='code'>PERIODIC</span> or
<span class='code'>ADAPTIVE</span>. In
<span class='code'>PERIODIC</span> mode,
weeWX queries the console at regular intervals
WeeWX queries the console at regular intervals
determined by the <span class='code'>polling_interval</span>.
In <span class='code'>ADAPTIVE</span> mode,
weeWX attempts to query the
WeeWX attempts to query the
console at times when it is not reading data from the sensors or writing
data to memory. See the section <a
href="hardware.htm#polling_mode_and_the_polling_interval">
@@ -1406,7 +1406,7 @@ longitude = -77.0366</pre>
<p class='config_option'>polling_interval</p>
<p>The frequency, in seconds, at which weeWX will
<p>The frequency, in seconds, at which WeeWX will
poll the console for data. Default is 60. This setting applies only
when the <span class='code'>polling_mode</span> is
<span class='code'>PERIODIC</span>.</p>
@@ -1585,9 +1585,9 @@ longitude = -77.0366</pre>
seconds.</p>
<p>The wmr200 hardware records archive data at an immutable rate of 60
seconds. This field may be set to a higher value enabling the weeWX
seconds. This field may be set to a higher value enabling the WeeWX
engine to coalesce live data packets. However, when the wmr200 is not
connected to a system via USB or if the weeWX software is not running,
connected to a system via USB or if the WeeWX software is not running,
the wmr200 console will continue to store weather data in onboard
console memory at a fixed rate of 60 seconds.</p>
@@ -1724,7 +1724,7 @@ longitude = -77.0366</pre>
<p class='config_option'>polling_interval</p>
<p>The <span class="code">polling_interval</span> determines how often
weeWX will query the station for data. The
WeeWX will query the station for data. The
default is 1 second.
</p>
@@ -1748,9 +1748,9 @@ longitude = -77.0366</pre>
<p class='config_option'>polling_interval</p>
<p>The <span class="code">polling_interval</span> determines how often
weeWX will query the station for data. If no
WeeWX will query the station for data. If no
<span class="code">polling_interval</span> is specified (the default),
weeWX will automatically use a polling interval
WeeWX will automatically use a polling interval
based on the type of connection between the station and the sensors
(wired or wireless). When connected with a wire, the console updates
sensor data every 8 seconds. When connected wirelessly, the console
@@ -1784,7 +1784,7 @@ longitude = -77.0366</pre>
<h3 class="config_section" id="station_registry">[[StationRegistry]]</h3>
<p> A registry of weeWX weather stations
<p> A registry of WeeWX weather stations
is maintained at <span class="code">weewx.com</span>. Stations are
displayed on a map and a list at
<a href="http://weewx.com/stations.html">http://weewx.com/stations.html</a>
@@ -1793,7 +1793,7 @@ longitude = -77.0366</pre>
<p>How does the registry work? Individual weather stations
periodically contact the registry. Each station provides a URL to
identify itself, plus other information such as the station type
and weeWX version. No personal information, nor
and WeeWX version. No personal information, nor
any meteorological data, is sent.</p>
<p>To add your station to this list, you must do two things:</p>
@@ -1937,7 +1937,7 @@ longitude = -77.0366</pre>
<p>How old a record can be before it will not be used for a catch up. CWOP
does not use the timestamp on a posted record. Instead, they use the wall
clock time that it came in. This means that if your station is off the
air for a long period of time, then when weeWX
air for a long period of time, then when WeeWX
attempts a catch up, old data could be interpreted as the current
conditions. Optional. Default is 600 seconds.</p>
@@ -2077,7 +2077,7 @@ longitude = -77.0366</pre>
<p class="config_option">rapidfire</p>
<p>
Set to <span class="code">True</span> to have weeWX
Set to <span class="code">True</span> to have WeeWX
post using the <a href="https://www.wunderground.com/weatherstation/rapidfirehelp.asp">Weather Underground's
"Rapidfire" protocol</a>.
This will send a post to the
@@ -2094,7 +2094,7 @@ longitude = -77.0366</pre>
<p class="config_option">archive_post</p>
<p>
This option tells weeWX to post on every
This option tells WeeWX to post on every
archive record, which is the normal "PWS" mode for the Weather
Underground. Because they prefer that you either use their
"Rapidfire" protocol, or their PWS mode, but not both, the default
@@ -2105,7 +2105,7 @@ longitude = -77.0366</pre>
</p>
<p class='config_option'>post_indoor_observations</p>
<p>In the interest of respecting your privacy, weeWX does not
<p>In the interest of respecting your privacy, WeeWX does not
post indoor temperature or humidity to the Weather Underground unless you
set this option to <span class="code">True</span>. Default is
<span class="code">False</span>.
@@ -2352,7 +2352,7 @@ longitude = -77.0366</pre>
<p>
If you wish to use rsync, you must configure passwordless ssh using
public/private key authentication from the user account that weewx
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.
@@ -2632,7 +2632,7 @@ longitude = -77.0366</pre>
</table>
<p>For example, if your weather station calculates windchill using the
pre-2001 algorithm, and you prefer to have
weeWX calculate it using a current algorithm,
WeeWX calculate it using a current algorithm,
specify the following:</p>
<pre class="tty">[StdWXCalculate]
@@ -2665,9 +2665,9 @@ longitude = -77.0366</pre>
<p>Set to whether records should be downloaded off the hardware (recommended),
or generated in software. If set to <span class="code">hardware</span>, then
weeWX tries to download archive records from your
WeeWX tries to download archive records from your
station. However, not all types of stations support this, in which case
weeWX falls back to software generation. A setting
WeeWX falls back to software generation. A setting
of <span class="code">hardware</span> will work for most users. A notable
exception is <a href="http://www.wxforum.net/index.php?topic=10315.0">users
who have cobbled together homebrew serial interfaces</a> for the Vantage stations
@@ -2901,9 +2901,9 @@ longitude = -77.0366</pre>
<p>
This section is used to configure the internal service engine in
weeWX. It is for advanced customization. Details
WeeWX. It is for advanced customization. Details
on how to do this can be found in the section
<em> <a href="customizing.htm#service_engine">Customizing the weeWX
<em> <a href="customizing.htm#service_engine">Customizing the WeeWX
service engine</a></em> of the
<a href="customizing.htm">Customization Guide</a>.
</p>
@@ -2912,14 +2912,14 @@ longitude = -77.0366</pre>
<h3 class="config_section">[[Services]]</h3>
<p>
Internally, weeWX consists of many <em>services</em>,
Internally, WeeWX consists of many <em>services</em>,
each responsible for some aspect of the program's functionality.
After an event happens, such as
the arrival of a new LOOP packet, any interested service gets a
chance to do some useful work on the event. For example, a service
might manipulate the packet, print it out, store it in a database,
etc. This section controls which services are loaded and in what
order they get their opportunity to do that work. Before weeWX
order they get their opportunity to do that work. Before WeeWX
v2.6, this section held one, looong
option called <span class="code">service_list</span>, which held
the names of all the services that should be run. Since then, this
@@ -2980,7 +2980,7 @@ report_services = weewx.engine.StdPrint, weewx.engine.StdReport
<h1 id="troubleshooting">Troubleshooting</h1>
<p>This section lists some common problems installing and running
weeWX. If you are stuck, be sure to: </p>
WeeWX. If you are stuck, be sure to: </p>
<ul>
<li style="margin-bottom: 1em">Set the option <span
class="code">debug</span> to <span class="code">1</span> in <span
@@ -2996,7 +2996,7 @@ report_services = weewx.engine.StdPrint, weewx.engine.StdReport
</li>
<li style="margin-bottom: 1em">Run <span class="code">weewxd</span>
directly from the command line, rather than as a
daemon. Generally, weeWX will catch
daemon. Generally, WeeWX will catch
and log any unrecoverable exceptions. But if you are getting
strange results, it is worth running directly and looking for
any clues.
@@ -3058,7 +3058,7 @@ report_services = weewx.engine.StdPrint, weewx.engine.StdReport
<h3>Establishing connectivity</h3>
<p>If you are unable to get anything out of weeWX
<p>If you are unable to get anything out of WeeWX
first check that you have connectivity to your weather station. For the
Davis stations, you can use a terminal emulator to run a simple test.
Set it up to communicate using the appropriate port and baudrate. I
@@ -3081,7 +3081,7 @@ report_services = weewx.engine.StdPrint, weewx.engine.StdReport
<p>The USB converter used in the Davis VantagePro is known to have some &quot;noise&quot;
problems. The symptom is that the Linux kernel will disconnect from your old
USB port claiming &quot;EMI noise&quot;, and reconnect to a new and different
port, where weeWX cannot find it. Here is a
port, where WeeWX cannot find it. Here is a
typical log output: </p>
<pre class='tty'>Nov 29 10:40:21 hummingbird kernel: [6661624.786792] hub 2-0:1.0: port 3 disabled by hub (EMI?) re-enabling...
@@ -3165,7 +3165,7 @@ ACTION=="add",ATTRS{idVendor}=="05ad",ATTRS{idProduct}=="0fba",MODE="0666",SYMLI
<p>I have tested this system many times. You can yank the USB port out of the
machine and then plug it back in while also pulling out the network connection
in the middle of an FTP upload: weeWX will recover.
in the middle of an FTP upload: WeeWX will recover.
</p>
<p>Or, at least, it should! </p>
@@ -3184,7 +3184,7 @@ ACTION=="add",ATTRS{idVendor}=="05ad",ATTRS{idProduct}=="0fba",MODE="0666",SYMLI
in the future, then records from the station that are older than that
future date will be ignored. How can the database contain records from
the future? Sometimes the computer clock is not set correctly. For
example, the raspberry pi has no clock, so if weeWX saves data before
example, the raspberry pi has no clock, so if WeeWX saves data before
the pi has synchronized its clock with internet time servers, the
records will have incorrect time stamps, some of which might be in the
future.</p>
@@ -3204,7 +3204,7 @@ sqlite> <span class="cmd">.exit</span></pre>
<h4>Corrupt station memory</h4>
<p>If you have a Vantage station, the problem might be because the data on
board your console has become garbled. The way the Davis Vantage series
works is that the software (weeWX in this case)
works is that the software (WeeWX in this case)
asks the console for all archive data &quot;since&quot; some time. The
console then downloads the records one at a time. After it gets to the
very last one, the memory wraps around, and the timestamp will suddenly
@@ -3213,7 +3213,7 @@ sqlite> <span class="cmd">.exit</span></pre>
<p>However, if the internal memory gets garbled, the console will immediately
return archives in the past, and so it looks like the timestamps have decreased
in value and so weeWX figures that is it: there is
in value and so WeeWX figures that is it: there is
no more data. Here is what the log typically looks like (with <span class="code">debug=1</span>):</p>
<pre class="tty">Nov 26 14:20:15 raspberrypi weewx[3849]: vantage: Getting archive packets since 2016-11-25 19:55:00 CET (1480100100)
@@ -3233,11 +3233,11 @@ Nov 26 14:20:20 raspberrypi weewx[3849]: reportengine: copied 9 files to /var/ww
Nov 26 14:20:20 raspberrypi weewx[3849]: reportengine: Running report FTP
Nov 26 14:20:20 raspberrypi weewx[3849]: reportengine: Found configuration file /etc/weewx/skins/Ftp/skin.conf for report FTP
</pre>
<p>Note how weeWX did a <span class="code">DMPAFT</span> command
<p>Note how WeeWX did a <span class="code">DMPAFT</span> command
("<span class="code">Getting archive packets since 2016-11-25 19:55:00</span>"). The console responded
that it has lots of records after that time ("<span class="code">Retrieving 45 page(s);
starting index= 1</span>"),
but when weeWX actually tries to retrieve them, they are all before the requested time.
but when WeeWX actually tries to retrieve them, they are all before the requested time.
</p>
<p>There seems to be two fixes:</p>
<ol>
@@ -3264,7 +3264,7 @@ Nov 26 14:20:20 raspberrypi weewx[3849]: reportengine: Found configuration file
</p>
<p>For these interfaces, you must set record generation to <em>software</em>.
Without this information, weeWX is unable to detect
Without this information, WeeWX is unable to detect
the absence of onboard memory. If you do not do this, you will get errors that
look like the following in your syslog:</p>
<pre class="tty">Nov 27 20:30:21 rpi weewx[5607]: reportengine: Caught unrecoverable exception in generator weewx.filegenerator.FileGenerator
@@ -3301,7 +3301,7 @@ Nov 27 20:30:23 rpi weewx[5607]: genimages: Generated 11 images in 2.53 seconds<
See the <a href="https://github.com/weewx/weewx/wiki">Wiki</a>
for up-to-date information on
<a href="https://github.com/weewx/weewx/wiki/Raspberry%20Pi">
<em>Running weeWX on a Raspberry Pi</em></a>.
<em>Running WeeWX on a Raspberry Pi</em></a>.
</p>
<h3>Fine Offset USB lockups</h3>
@@ -3319,7 +3319,7 @@ Nov 27 20:30:23 rpi weewx[5607]: genimages: Generated 11 images in 2.53 seconds<
message. Unfortunately, we have not found a software cure for
this. Instead, you must power cycle the unit. Remove the
batteries and unplug the USB, then put it back together. No
need to restart weeWX.</p>
need to restart WeeWX.</p>
<p>More details about <a href="https://github.com/weewx/weewx/wiki/FineOffset%20USB%20lockup"><em>Fine Offset lockups</em></a>
can be found in the
@@ -3329,9 +3329,9 @@ Nov 27 20:30:23 rpi weewx[5607]: genimages: Generated 11 images in 2.53 seconds<
<p>Most hardware with data-logging includes a parameter to specify
the archive interval used by the logger. If the hardware and driver
support it, weeWX will use this interval
support it, WeeWX will use this interval
as the <span class='code'><em>archive_interval</em></span>. If not,
weeWX will fall back to the
WeeWX will fall back to the
<span class='code'>archive_interval</span> specified in
<a href='#StdArchive'><span class='code'>[StdArchive]</span></a>.
The default fallback value is 300 seconds (5 minutes).
@@ -3339,10 +3339,10 @@ Nov 27 20:30:23 rpi weewx[5607]: genimages: Generated 11 images in 2.53 seconds<
<p>If the hardware archive interval is large, it will take a
long time before anything shows up in the
weeWX reports. For example, WS23xx stations
WeeWX reports. For example, WS23xx stations
ship with an archive interval of 60 minutes, and Fine Offset stations
ship with an archive interval of 30 minutes.
If you run weeWX with a WS23xx station in
If you run WeeWX with a WS23xx station in
its factory default configuration, it will take 60 minutes before the
first data point shows up, then another 60 minutes until the next one,
and so on.
@@ -3365,7 +3365,7 @@ Nov 27 20:30:23 rpi weewx[5607]: genimages: Generated 11 images in 2.53 seconds<
<h3>Nothing in the log file</h3>
<p>As it is running, weeWX periodically sends
<p>As it is running, WeeWX periodically sends
status information, failures, and other things to your system's logging
facility. They typically look something like this:</p>
<pre class='tty'>-DATE- --TIME-- HOST weewx[-PID-]: LOG_MESSAGE
@@ -3381,7 +3381,7 @@ Jan 1 09:46:32 saga weewx[15292]: wxengine: pid file is /var/run/weewx.pid</pre
<p>However, some systems default to saving only warning or
critical information, so the <span class="code">info</span>
messages from weeWX may not appear.
messages from WeeWX may not appear.
If this happens to you, check your system logging configuration.
On Debian systems, look
in <span class="code">/etc/rsyslog.conf</span>. On Redhat
@@ -3391,7 +3391,7 @@ Jan 1 09:46:32 saga weewx[15292]: wxengine: pid file is /var/run/weewx.pid</pre
<p>These are errors in the configuration file. Two are very common.
Incidentally, these errors are far easier to diagnose when
weeWX is run directly than when it is run
WeeWX is run directly than when it is run
as a daemon. </p>
<h4><span class="code">configobj.DuplicateError</span> exception</h4>
@@ -3467,7 +3467,7 @@ Apr 24 12:09:15 raven weewx[11480]: **** Exiting. </pre>
Apr 12 05:12:32 raven reportengine[3074]: **** Message: &quot;cannot find &#39;fubar&#39; in template /home/weewx/skins/Standard/index.html.tmpl&quot;
Apr 12 05:12:32 raven reportengine[3074]: **** Ignoring template and continuing.</pre>
<p>you have a tag in your template that weeWX
<p>you have a tag in your template that WeeWX
does not recognize. In this example, it is the tag
<span class="code">$fubar</span> in the template
<span class="code">/home/weewx/skins/Standard/index.html.tmpl</span>.
@@ -3494,14 +3494,14 @@ Jan 18 20:39:09 rpi weewx[5977]: **** Expected to read 99 chars; got 2 in
Jan 18 20:39:14 rpi weewx[5977]: VantagePro: LOOP #15; read error. Try #4
Jan 18 20:39:14 rpi weewx[5977]: **** Expected to read 99 chars; got 2 instead</pre>
<p>If you look closely at the log above, you'll see that there are
multiple instances of weeWX running
multiple instances of WeeWX running
simultaneously (process IDs 5977, 6024, and 7543). They are
contending with each other for control of the console, resulting
in missed packets and records.
</p>
<p>The cure is simple: kill all but one of them. Or, better yet,
kill them all, then start weeWX.</p>
kill them all, then start WeeWX.</p>
<h3 id='dots_in_plots'>Dots in the plots</h3>
@@ -3518,7 +3518,7 @@ Jan 18 20:39:14 rpi weewx[5977]: **** Expected to read 99 chars; got 2 in
to control how much time is considered a break in data.</p>
<p>As for the archive interval, check the log file for an entry like this
soon after weeWX starts up:</p>
soon after WeeWX starts up:</p>
<pre class='tty'>Dec 30 10:54:17 saga weewx[10035]: wxengine: The archive interval in the configuration file (300) does not match the station hardware interval (1800).
Dec 30 10:54:17 saga weewx[10035]: wxengine: Using archive interval of 1800</pre>
@@ -3526,7 +3526,7 @@ Dec 30 10:54:17 saga weewx[10035]: wxengine: Using archive interval of 1800</pre
<p>In this example, interval in <span class="code">weewx.conf</span> is 5
minutes, but the station interval is 30 minutes. When the interval
in <span class="code">weewx.conf</span> does not match the station's
hardware interval, weeWX defers to the
hardware interval, WeeWX defers to the
station's interval.</p>
<p>Use the <a href="utilities.htm#wee_device_utility"><span class="code">wee_device</span></a> utility to change
@@ -3557,7 +3557,7 @@ Dec 30 10:54:17 saga weewx[10035]: wxengine: Using archive interval of 1800</pre
high temperatures and wind speeds for one or two readings. This is
how to remove them:</p>
<ol>
<li>stop weeWX</li>
<li>stop WeeWX</li>
<li>Make a copy of the archive database
<pre class='tty cmd'>cp weewx.sdb weewx-YYMMDD.sdb</pre>
</li>
@@ -3572,11 +3572,11 @@ sqlite&gt; <span class="cmd">select dateTime,outTemp from archive where outTemp
<pre class='tty'>sqlite&gt; <span class="cmd">update archive set windSpeed=NULL where outTemp &gt; 1000;</span>
sqlite&gt; <span class="cmd">update archive set outTemp=NULL where outTemp &gt; 1000;</span></pre>
</li>
<li>Delete the aggregate statistics so that weeWX can regenerate them without the
<li>Delete the aggregate statistics so that WeeWX can regenerate them without the
anomalies
<pre class='tty cmd'>sudo wee_database --drop-daily</pre>
</li>
<li>start weeWX</li>
<li>start WeeWX</li>
</ol>
<h3>'Database is locked' error</h3>
@@ -3617,7 +3617,7 @@ Feb 12 07:11:06 rpi weewx[20930]: **** raise weedb.OperationalError(e)
<p>If you modify the SQLite archive database using an editing tool,
occasionally strings will get embedded in it, causing
weeWX to raise
WeeWX to raise
an exception. <strong>This is only a problem with SQLite</strong>.
There is no analogous problem with MySQL databases. You will see errors in the system log that
look something like this:</p>
@@ -3648,7 +3648,7 @@ Dec 31 17:01:06 arm weewx[18141]: **** Exiting.</pre>
<p>WeeWX should work with Python version 2.5, but it will take some fiddling.</p>
<p>The version of pysqlite that comes with Python 2.5 does not support the "with"
statement, which is required by weeWX. Unfortunately, the most modern version
statement, which is required by WeeWX. Unfortunately, the most modern version
of pysqlite no longer supports Python 2.5, so you will have to install an
"intermediate" version. I found that <a href="https://pypi.python.org/pypi/pysqlite/2.5.6">version 2.5.6</a>,
which can be downloaded from PyPI, works well. Download it, unpack the tarball, then use the included
@@ -3671,7 +3671,7 @@ Dec 31 17:01:06 arm weewx[18141]: **** Exiting.</pre>
apt-get install libsqlite3-dev</pre>
Then rerun the installation of <span class='code'>pysqlite</span>.
</li>
<li>When you run weeWX, you may get an error that looks like this
<li>When you run WeeWX, you may get an error that looks like this
<pre class="tty">
File "/usr/lib/python2.5/site-packages/PIL-1.1.7-py2.5-linux-x86_64.egg/ImageFont.py", line 218, in truetype
return FreeTypeFont(filename, size, index, encoding)
@@ -3733,7 +3733,7 @@ port = /dev/cuaU0</pre>
specified for the option
<span class="code">unit_label_font_path</span> in your
<span class="code">skin.conf</span> file and, instead,
weeWX is substituting a default font, which does not
WeeWX is substituting a default font, which does not
support the Unicode character necessary to make a degree sign. Look in
section <span class="code">[ImageGenerator]</span> for a line
that looks like:</p>
@@ -3786,7 +3786,7 @@ May 14 13:35:23 web weewx[5633]: **** Generator terminated...</pre>
<h3>Data is archived but some/all reports do not run</h3>
<p>If weeWX appears to be running normally but
<p>If WeeWX appears to be running normally but
some or all reports are not being run, either all the time or
periodically, the problem could be the inadvertant use or incorrect
setting of the <span class="code">report_timing</span> option in
@@ -3838,7 +3838,7 @@ May 14 13:35:23 web weewx[5633]: **** Generator terminated...</pre>
<h2>Meteorological problems</h2>
<h3 id='pressure_mismatch'>The pressure reported by weeWX does not match the pressure
<h3 id='pressure_mismatch'>The pressure reported by WeeWX does not match the pressure
on the console</h3>
<p>
@@ -3850,21 +3850,21 @@ May 14 13:35:23 web weewx[5633]: **** Generator terminated...</pre>
The <em>Station Pressure</em> (SP), which is the raw, absolute
pressure measured by the station.
This is <span class='code'>pressure</span> in
weeWX packets and archive records.
WeeWX packets and archive records.
</dd>
<dt>Sea Level Pressure</dt>
<dd>
The <em>Sea Level Pressure</em> (SLP) is obtained by correcting
the <em>Station Pressure</em> for altitude and local temperature.
This is <span class='code'>barometer</span> in
weeWX packets and archive records.
WeeWX packets and archive records.
</dd>
<dt>Altimeter</dt>
<dd>
The <em>Altimeter Setting</em> (AS) is obtained by correcting the
<em>Station Pressure</em> for altitude.
This is <span class='code'>altimeter</span> in
weeWX packets and archive records.
WeeWX packets and archive records.
</dd>
</dl>
@@ -3882,7 +3882,7 @@ May 14 13:35:23 web weewx[5633]: **** Generator terminated...</pre>
</p>
<h3 id='pressure_calibration'>Calibrating <span class='code'>barometer</span> does not change the pressure
displayed by weeWX</h3>
displayed by WeeWX</h3>
<p>
Be sure that the calibration is applied to the correct quantity.
@@ -3901,16 +3901,16 @@ May 14 13:35:23 web weewx[5633]: **** Generator terminated...</pre>
if the hardware is a Vantage station, the correction must be applied
to <span class='code'>barometer</span> since the Vantage station
reports <span class='code'>barometer</span> and
weeWX calculates
WeeWX calculates
<span class='code'>pressure</span>. However, if the hardware
is a FineOffset station, the correction must be applied to
<span class='code'>pressure</span> since the FineOffset stations
report <span class='code'>pressure</span> and
weeWX calculates
WeeWX calculates
<span class='code'>barometer</span>.
</p>
<h3 id='rain_mismatch'>The rainfall and/or rain rate reported by weeWX
<h3 id='rain_mismatch'>The rainfall and/or rain rate reported by WeeWX
do not match the console</h3>
<p>
@@ -3927,7 +3927,7 @@ May 14 13:35:23 web weewx[5633]: **** Generator terminated...</pre>
<p>
The rain rate is a derived quantity. Some stations report a rain
rate, but for those that do not, weeWX will calculate the rain
rate, but for those that do not, WeeWX will calculate the rain
rate.
</p>
@@ -3945,9 +3945,9 @@ May 14 13:35:23 web weewx[5633]: **** Generator terminated...</pre>
</p>
<p>
To diagnose rain issues, run weeWX directly so that you can see
To diagnose rain issues, run WeeWX directly so that you can see
each LOOP packet and REC archive record. Tip the bucket to verify
that each bucket tip is detected and reported by weeWX. Verify
that each bucket tip is detected and reported by WeeWX. Verify
that each bucket tip is converted to the correct rainfall amount.
Then check the database to verify that the values are properly
added and recorded.