Version: 4.2
WeeWX Hardware Guide

# Driver status

The following table enumerates many of the weather stations that are known to work with WeeWX. If your station is not in the table, check the pictures at the supported hardware page — it could be a variation of one of the supported models. You can also check the station comparison table — sometimes new models use the same communication protocols as older hardware.

The maturity column indicates the degree of confidence in the driver. For stations marked Tested, the station is routinely tested as part of the release process and should work as documented. For stations not marked at all, they are "known to work" using the indicated driver, but are not routinely tested. For stations marked Experimental, we are still working on the driver. There can be problems.

Weather hardware supported by WeeWX
Vendor | Model | Hardware Interface | Required Package | Station Driver | Maturity
AcuRite | 01025 | USB | pyusb | AcuRite13 |
01035 | USB | pyusb | AcuRite13 | Tested
01036 | USB | pyusb | AcuRite13 |
01525 | USB | pyusb | AcuRite13 |
02032 | USB | pyusb | AcuRite13 |
02064 | USB | pyusb | AcuRite13 |
06037 | USB | pyusb | AcuRite13 |
06039 | USB | pyusb | AcuRite13 |
Argent Data Systems | WS1 | Serial | pyusb | WS110 |
Aercus | WS2083 | USB | pyusb | FineOffsetUSB6 |
WS3083 | USB | pyusb | FineOffsetUSB6 |
Ambient Weather | WS1090 | USB | pyusb | FineOffsetUSB6 | Tested
WS2080 | USB | pyusb | FineOffsetUSB6 | Tested
WS2080A | USB | pyusb | FineOffsetUSB6 | Tested
WS2090 | USB | pyusb | FineOffsetUSB6 |
WS2095 | USB | pyusb | FineOffsetUSB6 |
Cresta | WRX815 | USB | pyusb | TE9239 |
PWS720 | USB | pyusb | TE9239 |
DAZA | DZ-WH1080 | USB | pyusb | FineOffsetUSB6 |
DZ-WS3101 | USB | pyusb | FineOffsetUSB6 |
DZ-WS3104 | USB | pyusb | FineOffsetUSB6 |
Davis | VantagePro2 | Serial or USB | pyserial | Vantage1 | Tested
VantagePro2 | WeatherLink IP |  | Vantage1 | Tested
VantageVue | Serial or USB | pyserial | Vantage1 | Tested
Elecsa | 6975 | USB | pyusb | FineOffsetUSB6 |
6976 | USB | pyusb | FineOffsetUSB6 |
Excelvan | Excelvan | USB | pyusb | FineOffsetUSB6 |
Fine Offset | WH1080 | USB | pyusb | FineOffsetUSB6 |
WH1081 | USB | pyusb | FineOffsetUSB6 |
WH1091 | USB | pyusb | FineOffsetUSB6 |
WH1090 | USB | pyusb | FineOffsetUSB6 |
WS1080 | USB | pyusb | FineOffsetUSB6 |
WA2080 | USB | pyusb | FineOffsetUSB6 |
WA2081 | USB | pyusb | FineOffsetUSB6 |
WH2080 | USB | pyusb | FineOffsetUSB6 |
WH2081 | USB | pyusb | FineOffsetUSB6 |
WH3080 | USB | pyusb | FineOffsetUSB6 |
WH3081 | USB | pyusb | FineOffsetUSB6 |
Froggit | WS8700 | USB | pyusb | TE9239 |
WH1080 | USB | pyusb | FineOffsetUSB6 |
WH3080 | USB | pyusb | FineOffsetUSB6 |
General Tools | WS831DL | USB | pyusb | TE9239 |
Hideki | DV928 | USB | pyusb | TE9239 |
TE821 | USB | pyusb | TE9239 |
TE827 | USB | pyusb | TE9239 |
TE831 | USB | pyusb | TE9239 |
TE838 | USB | pyusb | TE9239 |
TE923 | USB | pyusb | TE9239 |
Huger | WM918 | Serial | pyserial | WMR9x85 |
IROX | Pro X | USB | pyusb | TE9239 |
La Crosse | C86234 | USB | pyusb | WS28xx8 | Tested
WS-1640 | USB | pyusb | TE9239 |
WS-23XX | Serial | fcntl/select | WS23xx7 | Tested
WS-28XX | USB | pyusb | WS28xx8 |
Maplin | N96GY | USB | pyusb | FineOffsetUSB6 |
N96FY | USB | pyusb | FineOffsetUSB6 |
Meade | TE923W | USB | pyusb | TE9239 | Tested
TE923W-M | USB | pyusb | TE9239 |
TE924W | USB | pyusb | TE9239 |
Mebus | TE923 | USB | pyusb | TE9239 |
National Geographic | 265 | USB | pyusb | FineOffsetUSB6 |
Oregon Scientific | WMR88 | USB | pyusb | WMR1002 |
WMR88A | USB | pyusb | WMR1002 |
WMR100 | USB | pyusb | WMR1002 |
WMR100N | USB | pyusb | WMR1002 | Tested
WMR180 | USB | pyusb | WMR1002 |
WMR180A | USB | pyusb | WMR1002 |
WMRS200 | USB | pyusb | WMR1002 |
WMR200 | USB | pyusb | WMR2003 | Experimental
WMR200A | USB | pyusb | WMR2003 | Experimental
WMR300 | USB | pyusb | WMR3004 | Experimental
WMR300A | USB | pyusb | WMR3004 | Experimental
WMR918 | Serial | pyserial | WMR9x85 |
WMR928N | Serial | pyserial | WMR9x85 | Tested
WMR968 | Serial | pyserial | WMR9x85 | Tested
PeetBros | Ultimeter 100 | Serial | pyserial | Ultimeter11 |
Ultimeter 800 | Serial | pyserial | Ultimeter11 |
Ultimeter 2000 | Serial | pyserial | Ultimeter11 |
Ultimeter 2100 | Serial | pyserial | Ultimeter11 |
RainWise | Mark III | Serial | pyserial | CC300012 |
CC3000 | Serial | pyserial | CC300012 | Tested
Radio Shack | 63-256 | USB | pyusb | WMR1002 |
WX200 | USB | pyusb | WMR2003 | Experimental
63-1016 | Serial | pyserial | WMR9x85 |
Sinometer | WS1080 / WS1081 | USB | pyusb | FineOffsetUSB6 |
WS3100 / WS3101 | USB | pyusb | FineOffsetUSB6 |
TechnoLine | WS-2300 | Serial | fcntl/select | WS23xx7 |
WS-2350 | Serial | fcntl/select | WS23xx7 |
TFA | Matrix | Serial | fcntl/select | WS23xx7 |
Nexus | USB | pyusb | TE9239 |
Opus | USB | pyusb | WS28xx8 |
Primus | USB | pyusb | WS28xx8 |
Sinus | USB | pyusb | TE9239 |
Tycon | TP1080WC | USB | pyusb | FineOffsetUSB6 |
Watson | W-8681 | USB | pyusb | FineOffsetUSB6 |
WX-2008 | USB | pyusb | FineOffsetUSB6 |
Velleman | WS3080 | USB | pyusb | FineOffsetUSB6 |
Ventus | W831 | USB | pyusb | TE9239 |
W928 | USB | pyusb | TE9239 |

1. Davis "Vantage" series of weather stations, including the VantagePro2™ and VantageVue™, using serial, USB, or WeatherLinkIP™ connections. Both the "Rev A" (firmware dated before 22 April 2002) and "Rev B" versions are supported.
2. Oregon Scientific WMR-100 stations. Tested on the Oregon Scientific WMR100N.
3. Oregon Scientific WMR-200 stations. Tested on the Oregon Scientific WMR200.
4. Oregon Scientific WMR-300 stations. Tested on the Oregon Scientific WMR300A.
5. Oregon Scientific WMR-9x8 stations. Tested on the Oregon Scientific WMR968.
6. Fine Offset 10xx, 20xx, and 30xx stations. Tested on the Ambient Weather WS2080.
7. La Crosse WS-23xx stations. Tested on the La Crosse 2317.
8. La Crosse WS-28xx stations. Tested on the La Crosse C86234.
9. Hideki Professional Weather Stations. Tested on the Meade TE923.
10. ADS WS1 Stations. Tested on the WS1.
11. PeetBros Ultimeter Stations. Tested on the Ultimeter 2000.
12. RainWise Mark III Stations. Tested on the CC3000 (firmware "Rainwise CC-3000 Version: 1.3 Build 022 Dec 02 2016").
13. AcuRite Weather Stations. Tested on the 01036RX.

# AcuRite

According to Acurite, the wind speed updates every 18 seconds. The wind direction updates every 30 seconds. Other sensors update every 60 seconds.

In fact, because of the message structure and the data logging design, these are the actual update frequencies:

AcuRite transmission periods
sensor | period
--- | ---
Wind speed | 18 seconds
Outdoor temperature, outdoor humidity | 36 seconds
Wind direction, rain total | 36 seconds
Indoor temperature, pressure | 60 seconds
Indoor humidity | 12 minutes (only when in USB mode 3)

The station emits partial packets, which may confuse some online services.

The AcuRite stations do not record wind gusts.

Some consoles have a small internal logger. Data in the logger are erased when power is removed from the station.

The console has a sensor for inside humidity, but the values from that sensor are available only by reading from the console logger. Due to instability of the console firmware, the WeeWX driver does not read the console logger.

## USB Mode

Some AcuRite consoles have a setting called "USB Mode" that controls how data are saved and communicated:

AcuRite USB mode
Mode | Show data in display | Store data in logger | Send data over USB
--- | --- | --- | ---
1 | yes | yes |
2 | yes |  |
3 | yes | yes | yes
4 | yes |  | yes

If the AcuRite console has multiple USB modes, it must be set to USB mode 3 or 4 in order to work with the WeeWX driver.

Communication via USB is disabled in modes 1 and 2. Mode 4 is more reliable than mode 3; mode 3 enables logging of data, mode 4 does not. When the console is logging it frequently causes USB communication problems.

The default mode is 2, so after a power failure one must use the console controls to change the mode before WeeWX can resume data collection.

The 01025, 01035, 01036, 01525, and 02032 consoles have a USB mode setting.

The 02064 and 01536 consoles do not have a mode setting; these consoles are always in USB mode 4.

## Configuring with wee_device

The wee_device utility cannot be used to configure AcuRite stations.

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

AcuRite station data
Database Field | Observation | Loop | Archive
barometer |  | S |
pressure | pressure | H |
altimeter |  | S |
inTemp | temperature_in | H |
outTemp | temperature_out | H |
inHumidity | humidity_in |  |
outHumidity | humidity_out | H |
windSpeed | wind_speed | H |
windDir | wind_dir | H |
rain | rain | D |
| rain_total | H |
rainRate |  | S |
dewpoint |  | S |
windchill |  | S |
heatindex |  | S |
rxCheckPercent | rssi | H |
outTempBatteryStatus | battery | H |

Each packet contains a subset of all possible readings. For example, one type of packet contains windSpeed, windDir and rain. A different type of packet contains windSpeed, outTemp and outHumidity.

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# CC3000

The CC3000 data logger stores 2MB of records.

When the logger fills up, it stops recording.

When WeeWX starts up it will attempt to download all records from the logger since the last record in the archive database.

The driver does not support hardware record generation.

The CC3000 data logger may be configured to return data in METRIC or ENGLISH units. These are then mapped to the WeeWX unit groups METRICWX or US, respectively.

## Configuring with wee_device

Make sure you stop weewxd before running wee_device.

### Action --help

Invoking wee_device with the --help option

    wee_device --help

will produce something like this:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    Usage: wee_device [config_file] [options] [-y] [--debug] [--help]

    Configuration utility for weewx devices.

    Options:
      -h, --help            show this help message and exit
      --debug               display diagnostic information while running
      -y                    answer yes to every prompt
      --info                display weather station configuration
      --current             display current weather readings
      --history=N           display N records (0 for all records)
      --history-since=N     display records since N minutes ago
      --clear-memory        clear station memory
      --get-header          display data header
      --get-rain            get the rain counter
      --reset-rain          reset the rain counter
      --get-max             get the max values observed
      --reset-max           reset the max counters
      --get-min             get the min values observed
      --reset-min           reset the min counters
      --get-clock           display station clock
      --set-clock           set station clock to computer time
      --get-interval        display logger archive interval, in seconds
      --set-interval=N      set logging interval to N seconds
      --get-units           show units of logger
      --set-units=UNITS     set units to METRIC or ENGLISH
      --get-dst             display daylight savings settings
      --set-dst=mm/dd HH:MM,mm/dd HH:MM,[MM]M
                            set daylight savings start, end, and amount
      --get-channel         display the station channel
      --set-channel=CHANNEL
                            set the station channel

### Action --info

Display the station settings with --info

    wee_device --info

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    Firmware: Rainwise CC-3000 Version: 1.3 Build 022 Dec 02 2016
    Time: 2020/01/04 15:38:14
    DST: 03/08 02:00,11/01 02:00,060
    Units: ENGLISH
    Memory: 252242 bytes, 4349 records, 12%
    Interval: 300
    Channel: 0
    Charger: CHARGER=OFF,BATTERIES=5.26V
    Baro: 30.37
    Rain: 3.31
    HEADER: ['HDR', '"TIMESTAMP"', '"TEMP OUT"', '"HUMIDITY"', '"PRESSURE"', '"WIND DIRECTION"', '"WIND SPEED"',~
    MAX: ['MAX', '11:59  61.1', '02:47  99', '09:51 30.42', '13:32 337', '13:32  13.3', '00:00   0.00', '09:20  ~
    MIN: ['MIN', '02:19  40.6', '14:42  66', '00:34 30.24', '00:00  67', '00:00   0.0', '00:00   0.00', '06:48  ~

### Action --current

Returns the current values in a comma-delimited format. The order of the data values corresponds to the output of the --get-header command. NO DATA is returned if the unit has not received a transmission from the weather station.

    wee_device --current

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    {'dateTime': 1578175453.0, 'outTemp': 58.6, 'outHumidity': 71.0, 'pressure': 30.36, 'windDir': 315.0, ~

### Action --history=N

Display the latest N records from the CC3000 logger memory. Use a value of 0 to display all records. Note: because there may be other records mixed in with the archive records, this command will display an extra seven records per day (or partial day).

    wee_device --history=2

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    ['REC', '2020/01/04 13:25', ' 58.9', ' 71', '30.36', '344', '  4.9', ' 10.7', '  0.00', ' 7.44', ' 5.26', ~
    ['REC', '2020/01/04 13:30', ' 59.0', ' 71', '30.36', '327', '  3.6', ' 10.0', '  0.00', ' 7.32', ' 5.26', ~
    ['REC', '2020/01/04 13:35', ' 59.1', ' 70', '30.36', '305', '  5.5', ' 13.3', '  0.00', ' 7.44', ' 5.26', ~
    ['REC', '2020/01/04 13:40', ' 59.1', ' 70', '30.36', '330', '  3.4', '  8.9', '  0.00', ' 7.08', ' 5.26', ~
    ['REC', '2020/01/04 13:45', ' 58.9', ' 70', '30.36', '318', '  2.6', '  7.2', '  0.00', ' 7.17', ' 5.26', ~
    ['REC', '2020/01/04 13:50', ' 58.8', ' 71', '30.36', '312', '  3.6', '  7.9', '  0.00', ' 7.14', ' 5.26', ~
    ['REC', '2020/01/04 13:55', ' 58.9', ' 71', '30.36', '330', '  4.5', ' 10.0', '  0.00', ' 7.20', ' 5.26', ~
    ['REC', '2020/01/04 14:00', ' 58.8', ' 71', '30.36', '331', '  4.6', '  9.6', '  0.00', ' 7.38', ' 5.26', ~
    ['REC', '2020/01/04 14:05', ' 58.6', ' 71', '30.36', '331', '  4.0', '  9.3', '  0.00', ' 7.29', ' 5.26', ~

### Action --history-since=N

Display all CC3000 logger memory records created in the last N minutes.

    wee_device --history-since=10

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    {'dateTime': 1578175800.0, 'outTemp': 58.6, 'outHumidity': 70.0, 'pressure': 30.36, 'windDir': 316.0, ~
    {'dateTime': 1578176100.0, 'outTemp': 58.7, 'outHumidity': 70.0, 'pressure': 30.36, 'windDir': 317.0, ~

### Action --clear-memory

Use --clear-memory to erase all records from the logger memory.

    wee_device --clear-memory

### Action --get-header

Returns a series of comma delimited text descriptions. These descriptions are used to identify the type and order of the returned data in both --get-current, --download=N and --download-since=N commands.

    wee_device --get-header

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    ['HDR', '"TIMESTAMP"', '"TEMP OUT"', '"HUMIDITY"', '"PRESSURE"', '"WIND DIRECTION"', '"WIND SPEED"', ~

### Action --get-rain

Display the raing counter.

The CC-3000 maintains a rainfall counter that is only reset by a reboot or by issuing the reset command. The counter counts in 0.01” in- crements and rolls over at 65536 counts. Issuing the rainfall reset command will clear all rainfall counters including the current daily rainfall.

    wee_device --get-rain

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    3.31

### Action --reset-rain

Reset the rain counter to zero.

    wee_device --reset-rain

### Action --get-max

Get the maximum values observed since the last time

Output parameter order: Outside temperature, humidity, pressure, wind direction, wind speed, rainfall (daily total), station voltage, inside temperature. If any optional sensors have been enabled they will also be displayed.

    wee_device --get-max

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    ['MAX', '11:59  61.1', '02:47  99', '09:51 30.42', '13:32 337', '13:32  13.3', '00:00   0.00', '09:20 ~

### Action --reset-max

Reset the maximum values.

    wee_device --reset-max

### Action --get-min

Get the minimum values observed since the last time

Output parameter order: Outside temperature, humidity, pressure, wind direction, wind speed, rainfall (ignore), station voltage, inside temperature. If any optional sensors have been enabled they will also be displayed.

    wee_device --get-min

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    ['MIN', '02:19  40.6', '14:42  66', '00:34 30.24', '00:00  67', '00:00   0.0', '00:00   0.00', '06:48 ~

### Action --reset-min

Reset the minimum values.

    wee_device --reset-min

### Action --get-clock

Get the time.

    wee_device --get-clock

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    2020/01/04 15:01:34

### Action --set-clock

Set the station clock to match the date/time of the computer.

    wee_device --set-clock

### Action --get-interval

Returns the current logging interval (in seconds).

    wee_device --get-interval

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    300

### Action --set-interval=N

Set the archive interval. CC3000 loggers ship from the factory with an archive interval of 1 minutes (60 seconds). To change the station's interval to 300 seconds (5 minutes), do the following:

    wee_device --set-interval=5

### Action --get-units

Returns the current measurement units.

    wee_device --get-units

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    ENGLISH

### Action --set-units

The CC3000 can display data in either ENGLISH or METRIC unit systems. Use --set-units to specify one or the other.

The CC3000 driver automatically converts the units to maintain consistency with the units in WeeWX.

    wee_device --set-units=ENGLISH

### Action --get-dst

Return the dates and times when the clock will change due to daylight saving and the number of minutes that the clock will change.

This will result in something like:

    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    03/08 02:00,11/01 02:00,060

### Action --set-dst

Set the station start, end, and amount of daylight savings.

The schedule can be set by adding the three parameters, forward date and time, back date and time and number of minutes to change (120 max). Daylight saving can be disabled by setting the daylight-saving to zero.

    wee_device --set-dst="03/08 02:00,11/01 02:00,060"

    wee_device --set-dst=0

### Action --get-channel

Displays the station channel (0-3).

This will result in something like:

    Using configuration file /home/weewx/weewx.conf
    Using CC3000 driver version 0.30 (weewx.drivers.cc3000)
    0

### Action --set-channel=N

Rainwise stations transmit on one of four channels. If you have multiple instrument clusters within a kilometer or so of each other, you should configure each to use a different channel. In the instrument cluster, remove the cover and set the DIP switches 0 and 1. Use --set-channel to a value of 0-3 to match that of the instrument cluster.

    wee_device --set-channel=0

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

CC3000 station data
Database Field | Observation | Loop | Archive
barometer |  | S | S
pressure | PRESSURE | H | H
altimeter |  | S | S
inTemp | TEMP IN | H | H
outTemp | TEMP OUT | H | H
outHumidity | HUMIDITY | H | H
windSpeed | WIND SPEED | H | H
windDir | WIND DIRECTION | H | H
windGust | WIND GUST | H | H
rain | rain_delta | D | D
| RAIN | H | H
rainRate |  | S | S
dewpoint |  | S | S
windchill |  | S | S
heatindex |  | S | S
radiation1 | SOLAR RADIATION | H | H
UV1 | UV INDEX | H | H
supplyVoltage | STATION BATTERY | H |
consBatteryVoltage | BATTERY BACKUP | H |
extraTemp12 | TEMP 1 | H | H
extraTemp22 | TEMP 2 | H | H

1 The radiation and UV data are available only with the optional solar radiation sensor.

2 The extraTemp1 and extraTemp2 data are available only with the optional additional temperature sensors.

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# FineOffsetUSB

The station clock can only be set manually via buttons on the console, or (if the station supports it) by WWVB radio. The FineOffsetUSB driver ignores the station clock since it cannot be trusted.

The station reads data from the sensors every 48 seconds. The 30xx stations read UV data every 60 seconds.

The 10xx and 20xx stations can save up to 4080 historical readings. That is about 85 days of data with the default recording interval of 30 minutes, or about 14 days with a recording interval of 5 minutes. The 30xx stations can save up to 3264 historical readings.

When WeeWX starts up it will attempt to download all records from the console since the last record in the archive database.

## Polling mode and interval

When reading 'live' data, WeeWX can read as fast as possible, or at a user-defined period. This is controlled by the option polling_mode in weewx.conf.

Polling modes for Fine Offset stations
Mode | Configuration | Notes
ADAPTIVE |
    [FineOffsetUSB]
        polling_mode = ADAPTIVE
| In this mode, WeeWX reads data from the station as often as possible, but at intervals that avoid communication between the console and the sensors. Nominally this results in reading data every 48 seconds.
PERIODIC |
    [FineOffsetUSB]
        polling_mode = PERIODIC
        polling_interval = 60
| In this mode, WeeWX reads data from the station every polling_interval seconds. The console reads the sensors every 48 seconds (60 seconds for UV), so setting the polling_interval to a value less than 48 will result in duplicate readings.

## Data format

The 10xx/20xx consoles have a data format that is different from the 30xx consoles. All of the consoles recognize wind, rain, temperature, and humidity from the same instrument clusters. However, some instrument clusters also include a luminosity sensor. Only the 30xx consoles recognize the luminosity and UV output from these sensors. As a consequence, the 30xx consoles also have a different data format.

Since WeeWX cannot reliably determine the data format by communicating with the station, the data_format configuration option indicates the station type. Possible values are 1080 and 3080. Use 1080 for the 10xx and 20xx consoles. The default value is 1080.

For example, this would indicate that the station is a 30xx console:

    [FineOffsetUSB]
        ...
        data_format = 3080

## Configuring with wee_device

Make sure you stop weewxd before running wee_device.

### Action --help

Invoking wee_device with the --help option

    wee_device /home/weewx/weewx.conf --help

will produce something like this:

    FineOffsetUSB driver version 1.7
    Usage: wee_device [config_file] [options] [--debug] [--help]

    Configuration utility for weewx devices.

    Options:
    -h, --help           show this help message and exit
    --debug              display diagnostic information while running
    -y                   answer yes to every prompt
    --info               display weather station configuration
    --current            get the current weather conditions
    --history=N          display N records
    --history-since=N    display records since N minutes ago
    --clear-memory       clear station memory
    --set-time           set station clock to computer time
    --set-interval=N     set logging interval to N minutes
    --live               display live readings from the station
    --logged             display logged readings from the station
    --fixed-block        display the contents of the fixed block
    --check-usb          test the quality of the USB connection
    --check-fixed-block  monitor the contents of the fixed block
    --format=FORMAT      format for output, one of raw, table, or dict

    Mutating actions will request confirmation before proceeding.

### Action --info

Display the station settings with the --info option.

    wee_device --info

This will result in something like:

    Fine Offset station settings:
                        local time: 2013.02.11 18:34:28 CET
                      polling_mode: ADAPTIVE

                      abs_pressure: 933.3
                       current_pos: 592
                      data_changed: 0
                        data_count: 22
                         date_time: 2007-01-01 22:49
                     hum_in_offset: 18722
                    hum_out_offset: 257
                                id: None
                     lux_wm2_coeff: 0
                           magic_1: 0x55
                           magic_2: 0xaa
                             model: None
                         rain_coef: None
                       read_period: 30
                      rel_pressure: 1014.8
                    temp_in_offset: 1792
                   temp_out_offset: 0
                          timezone: 0
                        unknown_01: 0
                        unknown_18: 0
                           version: 255
                         wind_coef: None
                         wind_mult: 0

Highlighted values can be modified.

### Action --set-interval

Set the archive interval. Fine Offset stations ship from the factory with an archive interval (read_period) of 30 minutes (1800 seconds). To change the station's interval to 5 minutes, do the following:

wee_device --set-interval=5

### Action --history

Fine Offset stations store records in a circular buffer — once the buffer fills, the oldest records are replaced by newer records. The 1080 and 2080 consoles store up to 4080 records. The 3080 consoles store up to 3264 records. The data_count indicates how many records are in memory. The read_period indicates the number of minutes between records. wee_device can display these records in space-delimited, raw bytes, or dictionary format.

For example, to display the most recent 30 records from the console memory:

    wee_device --history=30

### Action --clear-memory

To clear the console memory:

    wee_device --clear-memory

### Action --check-usb

This command can test the quality of the USB connection between the computer and console. Poor quality USB cables, under-powered USB hubs, and other devices on the bus can interfere with communication.

To test the quality of the USB connection to the console:

    wee_device --check-usb

Let the utility run for at least a few minutes, or possibly an hour or two. It is not unusual to see a few bad reads in an hour, but if you see many bad reads within a few minutes, consider replacing the USB cable, USB hub, or removing other devices from the bus.

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

Fine Offset station data
Database Field | Observation | Loop | Archive
barometer |  | S | S
pressure | pressure | H | H
altimeter |  | S | S
inTemp | temperature_in | H | H
outTemp | temperature_out | H | H
inHumidity | humidity_in | H | H
outHumidity | humidity_out | H | H
windSpeed | wind_speed | H | H
windDir | wind_dir | H | H
windGust | wind_gust | H | H
rain | rain | D | D
| rain_total | H | H
rainRate |  | S | S
dewpoint | dewpoint | H | S
windchill | windchill | H | S
heatindex | heatindex | H | S
radiation1 | radiation | D | D
luminosity1 | luminosity | H | H
rxCheckPercent | signal | H |
outTempBatteryStatus | battery | H |

1 The radiation data are available only from 30xx stations. These stations include a luminosity sensor, from which the radiation is approximated.

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# TE923

Some station models will recognize up to 5 remote temperature/humidity sensor units. Use the hardware switch in each sensor unit to identify sensors. Use the sensor_map in weewx.conf to associate each sensor with a database field.

The station has either 208 or 3442 history records, depending on the model. That is just over a day (208 records) or about 23 days (3442 records) with an archive interval of 5 minutes.

The TE923 driver will read history records from the station when WeeWX starts up, but it does not support hardware record generation.

## Configuring with wee_device

Make sure you stop weewxd before running wee_device.

### Action --help

Invoking wee_device with the --help option

    wee_device /home/weewx/weewx.conf --help

will produce something like this:

    Using configuration file /home/weewx/weewx.conf
    Using TE923 driver version 0.21 (weewx.drivers.te923)
    Usage: wee_device [config_file] [options] [--debug] [--help]

    Configuration utility for weewx devices.

    Options:
      -h, --help            show this help message and exit
      --debug               display diagnostic information while running
      -y                    answer yes to every prompt
      --info                display weather station configuration
      --current             get the current weather conditions
      --history=N           display N history records
      --history-since=N     display history records since N minutes ago
      --minmax              display historical min/max data
      --get-date            display station date
      --set-date=YEAR,MONTH,DAY
                            set station date
      --sync-date           set station date using system clock
      --get-location-local  display local location and timezone
      --set-location-local=CITY|USR,LONG_DEG,LONG_MIN,E|W,LAT_DEG,LAT_MIN,N|S,TZ,DST
                            set local location and timezone
      --get-location-alt    display alternate location and timezone
      --set-location-alt=CITY|USR,LONG_DEG,LONG_MIN,E|W,LAT_DEG,LAT_MIN,N|S,TZ,DST
                            set alternate location and timezone
      --get-altitude        display altitude
      --set-altitude=ALT    set altitude (meters)
      --get-alarms          display alarms
      --set-alarms=WEEKDAY,SINGLE,PRE_ALARM,SNOOZE,MAXTEMP,MINTEMP,RAIN,WIND,GUST
                            set alarm state
      --get-interval        display archive interval
      --set-interval=INTERVAL
                            set archive interval (minutes)
      --format=FORMAT       formats include: table, dict

    Be sure to stop weewx first before using. Mutating actions will request
    confirmation before proceeding.

### Action --info

Use --info to display the station configuration:

    wee_device --info

This will result in something like:

    Querying the station for the configuration...
            altitude: 16
               bat_1: True
               bat_2: True
               bat_3: True
               bat_4: True
               bat_5: True
            bat_rain: True
              bat_uv: False
            bat_wind: True
            latitude: 43.35
           longitude: -72.0
         version_bar: 23
         version_rcc: 16
         version_sys: 41
          version_uv: 20
        version_wind: 38

### Action --current

Use --current to display the current status of each sensor:

    wee_device --current

This will result in something like:

    Querying the station for current weather data...
            dateTime: 1454615168
            forecast: 5
                 h_1: 41
           h_1_state: ok
                 h_2: 48
           h_2_state: ok
                 h_3: None
           h_3_state: no_link
                 h_4: None
           h_4_state: no_link
                 h_5: None
           h_5_state: no_link
                h_in: 44
          h_in_state: ok
                rain: 2723
          rain_state: ok
                 slp: 1012.4375
           slp_state: ok
               storm: 0
                 t_1: 13.9
           t_1_state: ok
                 t_2: 21.5
           t_2_state: ok
                 t_3: None
           t_3_state: no_link
                 t_4: None
           t_4_state: no_link
                 t_5: None
           t_5_state: no_link
                t_in: 22.85
          t_in_state: ok
                  uv: None
            uv_state: no_link
           windchill: None
     windchill_state: invalid
             winddir: 12
       winddir_state: invalid
            windgust: None
      windgust_state: invalid
           windspeed: None
     windspeed_state: invalid

### Action --set-interval

TE923 stations ship from the factory with an archive interval of 1 hour (3600 seconds). To change the station's interval to 5 minutes (300 seconds), do the following:

wee_device --set-interval=300

### Action --history

Use the --history action to display records from the logger in tabular or dictionary format.

For example, to display the most recent 30 records in dictionary format:

    wee_device --history=30 --format=dict

### Action --clear-memory

Use --clear-memory to erase all records from the logger memory.

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

TE923 station data
Database Field | Observation | Loop | Archive
barometer | barometer | H | H
pressure |  | S | S
altimeter |  | S | S
inTemp | t_in | H | H
inHumidity | h_in | H | H
outTemp | t_1 | H | H
outHumidity | h_1 | H | H
outTempBatteryStatus | bat_1 | H |
outLinkStatus | link_1 | H |
windSpeed | windspeed | H | H
windDir | winddir | H | H
windGust | windgust | H | H
windBatteryStatus | bat_wind | H |
windLinkStatus | link_wind | H |
rain | rain | D | D
| rain_total | H | H
rainBatteryStatus | bat_rain | H |
rainLinkStatus | link_rain | H |
rainRate |  | S | S
dewpoint |  | S | S
windchill | windchill | H | H
heatindex |  | S | S
UV1 | uv | H | H
uvBatteryStatus | bat_uv | H |
uvLinkStatus | link_uv | H |
extraTemp1 | t_2 | H | H
extraHumid1 | h_2 | H | H
extraBatteryStatus1 | bat_2 | H |
extraLinkStatus1 | link_2 | H |
extraTemp2 | t_3 | H | H
extraHumid2 | h_3 | H | H
extraBatteryStatus2 | bat_3 | H |
extraLinkStatus2 | link_3 | H |
extraTemp3 | t_4 | H | H
extraHumid3 | h_4 | H | H
extraBatteryStatus3 | bat_4 | H |
extraLinkStatus3 | link_4 | H |
extraTemp4 | t_5 | H | H
extraHumid4 | h_5 | H | H
extraBatteryStatus4 | bat_5 | H |
extraLinkStatus4 | link_5 | H |

Some stations support up to 5 remote temperature/humidity sensors.

1 The UV data are available only with the optional solar radiation sensor.

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# Ultimeter

The Ultimeter driver operates the Ultimeter in Data Logger Mode, which results in sensor readings every 1/2 second or so.

The Ultimeter driver ignores the maximum, minimum, and average values recorded by the station.

## Configuring with wee_device

The wee_device utility cannot be used to configure Ultimeter stations.

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

Ultimeter station data
Database Field | Observation | Loop | Archive
barometer2 | barometer | H |
pressure2 |  | S |
altimeter2 |  | S |
inTemp2 | temperature_in | H |
outTemp | temperature_out | H |
inHumidity2 | humidity_in | H |
outHumidity | humidity_out | H |
windSpeed | wind_speed | H |
windDir | wind_dir | H |
rain1 | rain | D |
| rain_total | H |
rainRate1 |  | S |
dewpoint |  | S |
windchill |  | S |
heatindex |  | S |

1 The rain and rainRate are available only on stations with the optional rain sensor.

2 Pressure, inside temperature, and inside humidity data are not available on all types of Ultimeter stations.

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# Vantage

The Davis Vantage stations include a variety of models and configurations. The WeeWX driver can communicate with a console or envoy using serial, USB, or TCP/IP interface.

## Configuring with wee_device

Make sure you stop weewxd before running wee_device.

### Action --help

Invoking wee_device with the --help option

    wee_device /home/weewx/weewx.conf --help

will produce something like this:

    Using configuration file /home/weewx/weewx.conf
    Using Vantage driver version 3.0.10 (weewx.drivers.vantage)
    Usage: wee_device [config_file] [--help] [--info] [--clear-memory]
        [--set-interval=MINUTES]
        [--set-latitude=DEGREE] [--set-longitude=DEGREE]
        [--set-altitude=FEET] [--set-barometer=inHg]
        [--set-wind-cup=CODE] [--set-bucket=CODE]
        [--set-rain-year-start=MM]
        [--set-offset=VARIABLE,OFFSET]
        [--set-transmitter-type=CHANNEL,TYPE,TEMP,HUM,REPEATER_ID]
        [--set-retransmit=[OFF|ON|ON,CHANNEL]]
        [--set-temperature-logging=[LAST|AVERAGE]]
        [--set-time] [--set-dst=[AUTO|ON|OFF]]
        [--set-tz-code=TZCODE] [--set-tz-offset=HHMM]
        [--set-lamp=[ON|OFF]] [--dump] [--logger-summary=FILE]
        [--start | --stop]

    Configures the Davis Vantage weather station.

    Options:
      -h, --help            show this help message and exit
      --debug               display diagnostic information while running
      -y                    answer yes to every prompt
      --info                To print configuration, reception, and barometer
                            calibration information about your weather station.
      --clear-memory        To clear the memory of your weather station.
      --set-interval=MINUTES
                            Sets the archive interval to the specified number of
                            minutes. Valid values are 1, 5, 10, 15, 30, 60, or
                            120.
      --set-latitude=DEGREE
                            Sets the latitude of the station to the specified
                            number of tenth degree.
      --set-longitude=DEGREE
                            Sets the longitude of the station to the specified
                            number of tenth degree.
      --set-altitude=FEET   Sets the altitude of the station to the specified
                            number of feet.
      --set-barometer=inHg  Sets the barometer reading of the station to a known
                            correct value in inches of mercury. Specify 0 (zero)
                            to have the console pick a sensible value.
      --set-bucket=CODE     Set the type of rain bucket. Specify '0' for 0.01
                            inches; '1' for 0.2 mm; '2' for 0.1 mm
      --set-rain-year-start=MM
                            Set the rain year start (1=Jan, 2=Feb, etc.).
      --set-offset=VARIABLE,OFFSET
                            Set the onboard offset for VARIABLE inTemp, outTemp,
                            extraTemp[1-7], inHumid, outHumid, extraHumid[1-7],
                            soilTemp[1-4], leafTemp[1-4], windDir) to OFFSET
                            (Fahrenheit, %, degrees)
      --set-transmitter-type=CHANNEL,TYPE,TEMP,HUM,REPEATER_ID
                            Set the transmitter type for CHANNEL (1-8), TYPE
                            (0=iss, 1=temp, 2=hum, 3=temp_hum, 4=wind, 5=rain,
                            6=leaf, 7=soil, 8=leaf_soil, 9=sensorlink, 10=none),
                            as extra TEMP station and extra HUM station (both 1-7,
                            if applicable), REPEATER_ID ('A'-'H', if used)
      --set-retransmit=[OFF|ON|ON,CHANNEL]
                            Turn console retransmit function 'ON' or 'OFF'.
      --set-temperature-logging=LAST|AVERAGE
                            Set console temperature logging to either 'LAST' or
                            'AVERAGE'.
      --set-time            Set the onboard clock to the current time.
      --set-dst=AUTO|ON|OFF
                            Set DST to 'ON', 'OFF', or 'AUTO'
      --set-tz-code=TZCODE  Set timezone code to TZCODE. See your Vantage manual
                            for valid codes.
      --set-tz-offset=HHMM  Set timezone offset to HHMM. E.g. '-0800' for U.S.
                            Pacific Time.
      --set-lamp=ON|OFF     Turn the console lamp 'ON' or 'OFF'.
      --start               Start the logger.
      --stop                Stop the logger.
      --dump                Dump all data to the archive. NB: This may result in
                            many duplicate primary key errors.
      --logger-summary=FILE
                            Save diagnostic summary to FILE (for debugging the
                            logger).

    Be sure to stop weewx first before using. Mutating actions will request
    confirmation before proceeding.

### Action --info

Use the --info option to display the current EEPROM settings:

    wee_device --info

This will result in something like:

    Davis Vantage EEPROM settings:

        CONSOLE TYPE:                   Vantage Pro2

        CONSOLE FIRMWARE:
          Date:                         Jun  3 2013
          Version:                      3.15

        CONSOLE SETTINGS:
          Archive interval:             300 (seconds)
          Altitude:                     700 (foot)
          Wind cup type:                large
          Rain bucket type:             0.01 inches
          Rain year start:              10
          Onboard time:                 2014-09-25 07:41:14

        CONSOLE DISPLAY UNITS:
          Barometer:                    inHg
          Temperature:                  degree_F
          Rain:                         inch
          Wind:                         mile_per_hour

        CONSOLE STATION INFO:
          Latitude (onboard):           45.7°
          Longitude (onboard):          -121.6°
          Use manual or auto DST?       AUTO
          DST setting:                  N/A
          Use GMT offset or zone code?  ZONE_CODE
          Time zone code:               4
          GMT offset:                   N/A
          Retransmit channel:           0 (OFF)

        TRANSMITTERS:
          Channel   Receive   Repeater  Type
             1      active      A       iss
             2      active      none    temp_hum (as extra temperature 1 and extra humidity 1)
             3      active      none    leaf_soil
             4      inactive    none    (N/A)
             5      inactive    none    (N/A)
             6      inactive    none    (N/A)
             7      inactive    none    (N/A)
             8      inactive    none    (N/A)

        RECEPTION STATS:
          Total packets received:       10670
          Total packets missed:         128
          Number of resynchronizations: 0
          Longest good stretch:         934
          Number of CRC errors:         651

        BAROMETER CALIBRATION DATA:
          Current barometer reading:    29.834 inHg
          Altitude:                     700 feet
          Dew point:                    55 F
          Virtual temperature:          59 F
          Humidity correction factor:   2.7
          Correction ratio:             1.025
          Correction constant:          +0.000 inHg
          Gain:                         0.000
          Offset:                       -47.000

        OFFSETS:
          Wind direction:               +0 deg
          Inside Temperature:           +0.0 F
          Inside Humidity:              +0 %
          Outside Temperature:          +0.0 F
          Outside Humidity:             +0 %
          Extra Temperature 1:          +0.0 F

The console version number is available only on consoles with firmware dates after about 2006.

Highlighted values can be modified using the various wee_device commands below.

### Action --clear-memory

This command will clear the logger memory after asking for confirmation.

### Action --set-interval

Use this command to change the archive interval of the internal logger. Valid intervals are 1, 5, 10, 15, 30, 60, or 120 minutes. However, if you are ftp'ing lots of files to a server, setting it to one minute may not give enough time to have them all uploaded before the next archive record is due. If this is the case, you should pick a longer archive interval, or trim the number of files you are using.

An archive interval of five minutes works well for the Vantage stations. Because of the large amount of onboard memory they carry, going to a larger interval does not have any real advantages.

Example: to change the archive interval to 10 minutes:

    wee_device --set-interval=10

### Action --set-altitude

Use this command to set the console's stored altitude. The altitude must be in feet. Example:

    wee_device --set-altitude=700

### Action --set-barometer

Use this command to calibrate the barometer in your Vantage weather station. To use it, you must have a known correct barometer reading for your altitude. In practice, you will either have to move your console to a known-correct station (perhaps a nearby airport) and perform the calibration there, or reduce the barometer reading to your altitude. Otherwise, specify the value zero and the station will pick a sensible value.

### Action --set-bucket

Normally, this is set by Davis, but if you have replaced your bucket with a different kind, you might want to reconfigure. For example, to change to a 0.1 mm bucket (bucket code "2"), use the following:

    wee_device --set-bucket=2

### Action --set-rain-year-start

The Davis Vantage series allows the start of the rain year to be something other than 1 January. For example, to set it to 1 October:

    wee_device --set-rain-year-start=10

### Action --set-offset

The Davis instruments can correct sensor errors by adding an offset to their emitted values. This is particularly useful for Southern Hemisphere users. Davis fits the wind vane to the Integrated Sensor Suite (ISS) in a position optimized for Northern Hemisphere users, who face the solar panel to the south. Users south of the equator must orient the ISS's solar panel to the north to get maximal insolation, resulting in a 180° error in the wind direction. The solution is to add a 180° offset correction. You can do this with the following command:

    wee_device --set-offset=windDir,180

### Action --set-transmitter-type

If you have additional sensors and/or repeaters for your Vantage station, you can configure them using your console. However, if you have a Davis Weather Envoy receiver, it will not have a console! As an alternative, wee_device can do this using the command --set-transmitter-type.

For example, to add an extra temperature sensor to channel 3 and no repeater is used, do the following:

    wee_device --set-transmitter-type=3,1,2

This says to turn on channel 3, set its type to 1 ("Temperature only"), without repeater use and it will show up in the database as extraTemp2.

If you omit the repeater id, repeater id will be: 'no repeater'.

Here's another example, this time for a combined temperature / humidity sensor retransmitted via repeater A:

    wee_device --set-transmitter-type=5,3,2,4,a

This will add the combined sensor to channel 5, set its type to 3 ("Temperature and humidity"), via Repeater A and it will show up in the database as extraTemp2 and extraHumid4.

The --help option will give you the code for each sensor type and repeater id.

If you have to use repeaters with your Vantage Pro2 station, please take a look at Installing Repeater Networks for Vantage Pro2 how to setup.

You can only use channels not actively used for retransmission. The command checks for this and will not accept channel numbers actively used for retransmission.

### Action --set-retransmit

Use this command to tell your console whether or not to act as a retransmitter.

Example: Tell your console to turn retransmission 'ON' and let the software select the first available channel:

    wee_device --set-retransmit=on

Another example: Tell your console to turn retransmission 'OFF':

    wee_device --set-retransmit=off

Last example: Tell your console to turn retransmission 'ON' at channel 4:

    wee_device --set-retransmit=on,4

You only can use channels not actively used for reception. The command checks for this and will not accept channel numbers actively used for reception of senor stations.

### Action --set-dst

Use the command to tell your console whether or not daylight savings time is in effect, or to have it set automatically based on the time zone.

### Action --set-tz-code

This command can be used to change the time zone. Consult the Vantage manual for the code that corresponds to your time zone.

You can set either the time zone code or the time zone offset, but not both.

For example, to set the time zone code to Central European Time (code 20):

    wee_device --set-tz-code=20

### Action --set-tz-offset

If you live in an odd time zone that is perhaps not covered by the "canned" Davis time zones, you can set the offset from UTC using this command.

You can set either the time zone code or the time zone offset, but not both.

For example, to set the time zone offset for Newfoundland Standard Time (UTC-03:30), use the following:

    wee_device --set-tz-offset=-0330

### Action --set-lamp

Use this command to turn the console lamp on or off.

### Action --start

Use this command to start the logger. There are occasions when an out-of-the-box logger needs this command.

### Action --stop

Use this command to stop the logger. I can't think of a good reason why you would need to do this, but the command is included for completeness.

### Action --dump

Generally, WeeWX downloads only new archive records from the on-board logger in the Vantage. However, occasionally the memory in the Vantage will get corrupted, making this impossible. See the troubleshooting section WeeWX generates HTML pages, but it does not update them. The fix involves clearing the memory but, unfortunately, this means you may lose any data which might have accumulated in the logger memory, but not yet downloaded. By using the --dump command before clearing the memory, you might be able to save these data. Stop WeeWX first, then

    wee_device --dump

This will dump all data archived in the Vantage memory directly to the database, without regard to whether or not they have been seen before. Because the command dumps all data, it may result in many duplicate primary key errors. These can be ignored.

### Action --logger-summary FILE

This command is useful for debugging the console logger. It will scan the logger memory, recording the timestamp in each page and index slot to the file FILE.

Example:

    wee_device --logger-summary=/var/tmp/summary.txt

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

Vantage station data
Database Field | Observation | Loop | Archive
barometer | barometer | H | H
pressure |  | S | S
altimeter |  | S | S
inTemp | inTemp | H | H
outTemp | outTemp | H | H
inHumidity | inHumidity | H | H
outHumidity | outHumidity | H | H
windSpeed | windSpeed | H | H
windDir | windDir | H | H
windGust | windGust | H | H
windGustDir | windGustDir | H | H
rain | rain | D | H
| monthRain | H | H
rainRate | rainRate | H | H
dewpoint |  | S | S
windchill |  | S | S
heatindex |  | S | S
radiation | radiation | H | H
UV | UV | H | H
extraTemp1 | extraTemp1 | H | H
extraTemp2 | extraTemp2 | H | H
extraTemp3 | extraTemp3 | H | H
extraTemp4 | extraTemp4 | H |
extraTemp5 | extraTemp5 | H |
extraTemp6 | extraTemp6 | H |
extraTemp7 | extraTemp7 | H |
soilTemp1 | soilTemp1 | H | H
soilTemp2 | soilTemp2 | H | H
soilTemp3 | soilTemp3 | H | H
soilTemp4 | soilTemp4 | H | H
leafTemp1 | leafTemp1 | H | H
leafTemp2 | leafTemp2 | H | H
leafTemp3 | leafTemp3 | H | H
leafTemp4 | leafTemp4 | H | H
extraHumid1 | extraHumid1 | H | H
extraHumid2 | extraHumid2 | H | H
extraHumid3 | extraHumid3 | H |
extraHumid4 | extraHumid4 | H |
extraHumid5 | extraHumid5 | H |
extraHumid6 | extraHumid6 | H |
extraHumid7 | extraHumid7 | H |
soilMoist1 | soilMoist1 | H | H
soilMoist2 | soilMoist2 | H | H
soilMoist3 | soilMoist3 | H | H
soilMoist4 | soilMoist4 | H | H
leafWet1 | leafWet1 | H | H
leafWet2 | leafWet2 | H | H
leafWet3 | leafWet3 | H | H
leafWet4 | leafWet4 | H | H
txBatteryStatus | txBatteryStatus | H | H
consBatteryVoltage | consBatteryVoltage | H | H
| wind_samples |  | H

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# WMR100

The station emits partial packets, which may confuse some online services.

## Configuring with wee_device

The wee_device utility cannot be used to configure WMR100 stations.

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

WMR100 station data
Database Field | Observation | Loop | Archive
barometer |  | S |
pressure | pressure | H |
altimeter |  | S |
inTemp | temperature_0 | H |
outTemp | temperature_1 | H |
inHumidity | humidity_0 | H |
outHumidity | humidity_1 | H |
windSpeed | wind_speed | H |
windDir | wind_dir | H |
windGust | wind_gust | H |
rain | rain | D |
| rain_total | H |
rainRate | rain_rate | H |
dewpoint |  | S |
windchill |  | S |
heatindex |  | S |
extraTemp1 | temperature_2 | H |
extraTemp2 | temperature_3 | H |
extraTemp3 | temperature_4 | H |
extraTemp4 | temperature_5 | H |
extraTemp5 | temperature_6 | H |
extraTemp6 | temperature_7 | H |
extraTemp7 | temperature_8 | H |
extraHumid1 | humidity_2 | H |
extraHumid2 | humidity_3 | H |
extraHumid3 | humidity_4 | H |
extraHumid4 | humidity_5 | H |
extraHumid5 | humidity_6 | H |
extraHumid6 | humidity_7 | H |
extraHumid7 | humidity_8 | H |
UV | uv | H |
inTempBatteryStatus | battery_status_0 | H |
outTempBatteryStatus | battery_status_1 | H |
rainBatteryStatus | rain_battery_status | H |
windBatteryStatus | wind_battery_status | H |
uvBatteryStatus | uv_battery_status | H |
extraBatteryStatus1 | battery_status_2 | H |
extraBatteryStatus2 | battery_status_3 | H |
extraBatteryStatus3 | battery_status_4 | H |
extraBatteryStatus4 | battery_status_5 | H |
extraBatteryStatus5 | battery_status_6 | H |
extraBatteryStatus6 | battery_status_7 | H |
extraBatteryStatus7 | battery_status_8 | H |

Each packet contains a subset of all possible readings. For example, a temperature packet contains temperature_N and battery_status_N, a rain packet contains rain_total and rain_rate.

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# WMR200

The station emits partial packets, which may confuse some online services.

When WeeWX starts up it will attempt to download all records from the console since the last record in the archive database.

## Configuring with wee_device

The wee_device utility cannot be used to configure WMR200 stations.

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

WMR200 station data
Database Field | Observation | Loop | Archive
barometer |  | S | S
pressure | pressure | H | H
altimeter | altimeter | H | H
inTemp | temperature_0 | H | H
outTemp | temperature_1 | H | H
inHumidity | humidity_0 | H | H
outHumidity | humidity_1 | H | H
windSpeed | wind_speed | H | H
windDir | wind_dir | H | H
windGust | wind_gust | H | H
rain | rain | D | D
| rain_total | H | H
rainRate | rain_rate | H | H
dewpoint |  | S | S
windchill | windchill | H | H
heatindex | heatindex | H | H
UV | uv | H | H
extraTemp1 | temperature_2 | H | H
extraTemp2 | temperature_3 | H | H
extraTemp3 | temperature_4 | H | H
extraTemp4 | temperature_5 | H | H
extraTemp5 | temperature_6 | H | H
extraTemp6 | temperature_7 | H | H
extraTemp7 | temperature_8 | H | H
extraHumid1 | humidity_2 | H | H
extraHumid2 | humidity_3 | H | H
extraHumid3 | humidity_4 | H | H
extraHumid4 | humidity_5 | H | H
extraHumid5 | humidity_6 | H | H
extraHumid6 | humidity_7 | H | H
extraHumid7 | humidity_8 | H | H
outTempBatteryStatus | battery_status_out | H |
rainBatteryStatus | rain_battery_status | H |
windBatteryStatus | wind_battery_status | H |
uvBatteryStatus | uv_battery_status | H |

Each packet contains a subset of all possible readings. For example, a temperature packet contains temperature_N and battery_status_N, a rain packet contains rain_total and rain_rate.

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# WMR300

A single WMR300 console supports 1 wind, 1 rain, 1 UV, and up to 8 temperature/humidity sensors.

The WMR300 sensors send at different rates:

WMR300 transmission periods
sensor | period
--- | ---
Wind | 2.5 to 3 seconds
T/H | 10 to 12 seconds
Rain | 20 to 24 seconds

The console contains the pressure sensor. The console reports pressure every 15 minutes.

The station emits partial packets, which may confuse some online services.

The rain counter has a limit of 400 inches (10160 mm). The counter does not wrap around; it must be reset when it hits the limit, otherwise additional rain data will not be recorded.

The logger stores about 50,000 records. When the logger fills up, it stops recording data.

When WeeWX starts up it will attempt to download all records from the console since the last record in the archive database. This can take as much as couple of hours, depending on the number of records in the logger and the speed of the computer and disk.

## Configuring with wee_device

The wee_device utility cannot be used to configure WMR300 stations.

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

WMR300 station data
Database Field | Observation | Loop | Archive
barometer | barometer | H | H
pressure | pressure | H | S
altimeter |  | S | S
inTemp | temperature_0 | H | H
inHumidity | humidity_0 | H | H
windSpeed | wind_avg | H | H
windDir | wind_dir | H | H
windGust | wind_gust | H | H
windGustDir | wind_gust_dir | H | H
rain | rain | D | D
| rain_total | H | H
rainRate | rain_rate | H | H
outTemp | temperature_1 | H | H
outHumidity | humidity_1 | H | H
dewpoint | dewpoint_1 | H | H
heatindex | heatindex_1 | H | H
windchill | windchill | H | H
extraTemp1 | temperature_2 | H | H
extraHumid1 | humidity_2 | H | H
extraDewpoint1 | dewpoint_2 | H | H
extraHeatindex1 | heatindex_2 | H | H
extraTemp2 | temperature_3 | H | H
extraHumid2 | humidity_3 | H | H
extraDewpoint2 | dewpoint_3 | H | H
extraHeatindex2 | heatindex_3 | H | H
extraTemp3 | temperature_4 | H | H
extraHumid3 | humidity_4 | H | H
extraDewpoint3 | dewpoint_4 | H | H
extraHeatindex3 | heatindex_4 | H | H
extraTemp4 | temperature_5 | H | H
extraHumid4 | humidity_5 | H | H
extraDewpoint4 | dewpoint_5 | H | H
extraHeatindex4 | heatindex_5 | H | H
extraTemp5 | temperature_6 | H | H
extraHumid5 | humidity_6 | H | H
extraDewpoint5 | dewpoint_6 | H | H
extraHeatindex5 | heatindex_6 | H | H
extraTemp6 | temperature_7 | H | H
extraHumid6 | humidity_7 | H | H
extraDewpoint6 | dewpoint_7 | H | H
extraHeatindex6 | heatindex_7 | H | H
extraTemp7 | temperature_8 | H | H
extraHumid7 | humidity_8 | H | H
extraDewpoint7 | dewpoint_8 | H | H
extraHeatindex7 | heatindex_8 | H | H

Each packet contains a subset of all possible readings.

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# WMR9x8

The station includes a data logger, but the driver does not read records from the station.

The station emits partial packets, which may confuse some online services.

## Configuring with wee_device

The wee_device utility cannot be used to configure WMR9x8 stations.

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

WMR9x8 station data
Database Field | Observation | Loop | Archive
barometer | barometer | H |
pressure | pressure | H |
altimeter |  | S |
inTemp | temperature_in | H |
outTemp | temperature_out | H |
inHumidity | humidity_in | H |
outHumidity | humidity_out | H |
windSpeed | wind_speed | H |
windDir | wind_dir | H |
windGust | wind_gust | H |
windGustDir | wind_gust_dir | H |
rain | rain | D |
| rain_total | H |
rainRate | rain_rate | H |
inDewpoint | dewpoint_in | H |
dewpoint | dewpoint_out | H |
windchill | windchill | H |
heatindex |  | S |
UV | uv | H |
extraTemp1 | temperature_1 | H |
extraTemp2 | temperature_2 | H |
extraTemp3 | temperature_3 | H |
extraTemp4 | temperature_4 | H |
extraTemp5 | temperature_5 | H |
extraTemp6 | temperature_6 | H |
extraTemp7 | temperature_7 | H |
extraTemp8 | temperature_8 | H |
extraHumid1 | humidity_1 | H |
extraHumid2 | humidity_3 | H |
extraHumid3 | humidity_3 | H |
extraHumid4 | humidity_4 | H |
extraHumid5 | humidity_5 | H |
extraHumid6 | humidity_6 | H |
extraHumid7 | humidity_7 | H |
extraHumid8 | humidity_8 | H |
inTempBatteryStatus | battery_status_in | H |
outTempBatteryStatus | battery_status_out | H |
rainBatteryStatus | rain_battery_status | H |
windBatteryStatus | wind_battery_status | H |
extraBatteryStatus1 | battery_status_1 | H |
extraBatteryStatus2 | battery_status_2 | H |
extraBatteryStatus3 | battery_status_3 | H |
extraBatteryStatus4 | battery_status_4 | H |
extraBatteryStatus5 | battery_status_5 | H |
extraBatteryStatus6 | battery_status_6 | H |
extraBatteryStatus7 | battery_status_7 | H |
extraBatteryStatus8 | battery_status_8 | H |

Each packet contains a subset of all possible readings. For example, a temperature packet contains temperature_N and battery_status_N, a rain packet contains rain_total and rain_rate.

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# WS1

The WS1 stations produce data every 1/2 second or so.

## Configuring with wee_device

The wee_device utility cannot be used to configure WS1 stations.

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

WS1 station data
Database Field | Observation | Loop | Archive
barometer |  | S |
pressure | pressure | H |
altimeter |  | S |
inTemp | temperature_in | H |
outTemp | temperature_out | H |
inHumidity | humidity_in | H |
outHumidity | humidity_out | H |
windSpeed | wind_speed | H |
windDir | wind_dir | H |
rain | rain | D |
| rain_total | H |
rainRate |  | S |
dewpoint |  | S |
windchill |  | S |
heatindex |  | S |

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# WS23xx

The hardware interface is a serial port, but USB-serial converters can be used with computers that have no serial port. Beware that not every type of USB-serial converter will work. Converters based on ATEN UC-232A chipset are known to work.

The station does not record wind gust or wind gust direction.

The hardware calculates windchill and dewpoint.

Sensors can be connected to the console with a wire. If not wired, the sensors will communicate via a wireless interface. When connected by wire, some sensor data are transmitted every 8 seconds. With wireless, data are transmitted every 16 to 128 seconds, depending on wind speed and rain activity.

WS23xx transmission periods
sensor | period
--- | ---
Wind | 32 seconds when wind > 22.36 mph (wireless) 128 seconds when wind > 22.36 mph (wireless) 10 minutes (wireless after 5 failed attempts) 8 seconds (wired)
Temperature | 15 seconds
Humidity | 20 seconds
Pressure | 15 seconds

The station has 175 history records. That is just over 7 days of data with the factory default history recording interval of 60 minutes, or about 14 hours with a recording interval of 5 minutes.

When WeeWX starts up it will attempt to download all records from the console since the last record in the archive database.

## Configuring with wee_device

Make sure you stop weewxd before running wee_device.

### Action --help

Invoking wee_device with the --help option

    wee_device /home/weewx/weewx.conf --help

will produce something like this:

    WS23xx driver version 0.21
    Usage: wee_device [config_file] [options] [--debug] [--help]

    Configuration utility for weewx devices.

    Options:
      -h, --help         show this help message and exit
      --debug            display diagnostic information while running
      -y                 answer yes to every prompt
      --info             display weather station configuration
      --current          get the current weather conditions
      --history=N        display N history records
      --history-since=N  display history records since N minutes ago
      --clear-memory     clear station memory
      --set-time         set the station clock to the current time
      --set-interval=N   set the station archive interval to N minutes

    Mutating actions will request confirmation before proceeding.

### Action --info

Display the station settings with the --info option.

    wee_device --info

This will result in something like:

    buzzer: 0
    connection time till connect: 1.5
    connection type: 15
    dew point: 8.88
    dew point max: 18.26
    dew point max alarm: 20.0
    dew point max alarm active: 0
    dew point max alarm set: 0
    dew point max when: 978565200.0
    dew point min: -2.88
    dew point min alarm: 0.0
    dew point min alarm active: 0
    dew point min alarm set: 0
    dew point min when: 978757260.0
    forecast: 0
    history interval: 5.0
    history last record pointer: 8.0
    history last sample when: 1385564760.0
    history number of records: 175.0
    history time till sample: 5.0
    icon alarm active: 0
    in humidity: 48.0
    ...

The line history number of records indicates how many records are in memory. The line history interval indicates the number of minutes between records.

### Action --set-interval

WS23xx stations ship from the factory with an archive interval of 60 minutes (3600 seconds). To change the station's interval to 5 minutes, do the following:

wee_device --set-interval=5

Warning!
Changing the archive interval will clear the station memory.

### Action --history

WS23xx stations store records in a circular buffer — once the buffer fills, the oldest records are replaced by newer records. The console stores up to 175 records.

For example, to display the latest 30 records from the console memory:

    wee_device --history=30

### Action --clear-memory

To clear the console memory:

    wee_device --clear-memory

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

WS23xx station data
Database Field | Observation | Loop | Archive
barometer |  | S | S
pressure | pressure | H | H
altimeter |  | S | S
inTemp | temperature_in | H | H
outTemp | temperature_out | H | H
inHumidity | humidity_in | H | H
outHumidity | humidity_out | H | H
windSpeed | wind_speed | H | H
windDir | wind_dir | H | H
rain | rain | D | D
| rain_total | H | H
rainRate | rain_rate | H | H
dewpoint | dewpoint | H | H
windchill | windchill | H | H
heatindex |  | S | S

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service

# WS28xx

WeeWX communicates with a USB transceiver, which communicates with the station console, which in turn communicates with the sensors. The transceiver and console must be paired and synchronized.

The sensors send data at different rates:

WS28xx transmission periods
sensor | period
--- | ---
Wind | 17 seconds
T/H | 13 seconds
Rain | 19 seconds
Pressure | 15 seconds

The wind and rain sensors transmit to the temperature/humidity device, then the temperature/humidity device retransmits to the weather station console. Pressure is measured by a sensor in the console.

The station has 1797 history records. That is just over 6 days of data with an archive interval of 5 minutes.

When WeeWX starts up it will attempt to download all records from the console since the last record in the archive database.

The WS28xx driver sets the station archive interval to 5 minutes.

The WS28xx driver does not support hardware archive record generation.

## Pairing

The console and transceiver must be paired. Pairing ensures that your transceiver is talking to your console, not your neighbor's console. Pairing should only have to be done once, although you might have to pair again after power cycling the console, for example after you replace the batteries.

There are two ways to pair the console and the transceiver:

1. The WeeWX way. Be sure that WeeWX is not running. Run the configuration utility, press and hold the [v] button on the console until you see 'PC' in the display, then release the button. If the console pairs with the transceiver, 'PC' will go away within a second or two.

       wee_device --pair

       Pairing transceiver with console...
       Press and hold the [v] key until "PC" appears (attempt 1 of 3)
       Transceiver is paired to console

2. The HeavyWeather way. Follow the pairing instructions that came with the station. You will have to run HeavyWeather on a windows computer with the USB transceiver. After HeavyWeather indicates the devices are paired, put the USB transceiver in your WeeWX computer and start WeeWX. Do not power cycle the station console or you will have to start over.

If the console does not pair, you will see messages in the log such as this:

    ws28xx: RFComm: message from console contains unknown device ID (id=165a resp=80 req=6)

Either approach to pairing may require multiple attempts.

## Synchronizing

After pairing, the transceiver and console must be synchronized in order to communicate. Synchronization will happen automatically at the top of each hour, or you can force synchronization by pressing the [SET] button momentarily. Do not press and hold the [SET] button — that modifies the console alarms.

When the transceiver and console are synchronized, you will see lots of 'ws28xx: RFComm' messages in the log when debug=1. When the devices are not synchronized, you will see messages like this about every 10 minutes:

    Nov  7 19:12:17 raspi weewx[2335]: ws28xx: MainThread: no contact with console

If you see this, or if you see an extended gap in the weather data in the WeeWX plots, press momentarily the [SET] button, or wait until the top of the hour.

When the transceiver has not received new data for awhile, you will see messages like this in the log:

    Nov  7 19:12:17 raspi weewx[2335]: ws28xx: MainThread: no new weather data

If you see 'no new weather data' messages with the 'no contact with console' messages, it simply means that the transceiver has not been able to synchronize with the console. If you see only the 'no new weather data' messages, then the sensors are not communicating with the console, or the console may be defective.

## Alarms

When an alarm goes off, communication with the transceiver stops. The WS28xx driver clears all alarms in the station. It is better to create alarms in WeeWX, and the WeeWX alarms can do much more than the console alarms anyway.

## Configuring with wee_device

Make sure you stop weewxd before running wee_device.

### Action --help

Invoking wee_device with the --help option

    wee_device /home/weewx/weewx.conf --help

will produce something like this:

    WS28xx driver version 0.33
    Usage: wee_device [config_file] [options] [--debug] [--help]

    Configuration utility for weewx devices.

    Options:
      -h, --help           show this help message and exit
      --debug              display diagnostic information while running
      -y                   answer yes to every prompt
      --check-transceiver  check USB transceiver
      --pair               pair the USB transceiver with station console
      --info               display weather station configuration
      --set-interval=N     set logging interval to N minutes
      --current            get the current weather conditions
      --history=N          display N history records
      --history-since=N    display history records since N minutes ago
      --maxtries=MAXTRIES  maximum number of retries, 0 indicates no max

    Mutating actions will request confirmation before proceeding.

### Action --pair

The console and transceiver must be paired. This can be done either by using this command, or by running the program HeavyWeather on a Windows PC.

Be sure that WeeWX is not running. Run the command:

    wee_device --pair

    Pairing transceiver with console...
    Press and hold the [v] key until "PC" appears (attempt 1 of 3)
    Transceiver is paired to console

Press and hold the [v] button on the console until you see 'PC' in the display, then release the button. If the console pairs with the transceiver, 'PC' will go away within a second or two.

If the console does not pair, you will see messages in the log such as this:

    ws28xx: RFComm: message from console contains unknown device ID (id=165a resp=80 req=6)

Pairing may require multiple attempts.

After pairing, the transceiver and console must be synchronized in order to communicate. This should happen automatically.

### Action --info

Display the station settings with the --info option.

wee_device --info

This will result in something like:

    alarm_flags_other: 0
    alarm_flags_wind_dir: 0
    checksum_in: 1327
    checksum_out: 1327
    format_clock: 1
    format_pressure: 0
    format_rain: 1
    format_temperature: 0
    format_windspeed: 4
    history_interval: 1
    indoor_humidity_max: 70
    indoor_humidity_max_time: None
    indoor_humidity_min: 45
    indoor_humidity_min_time: None
    indoor_temp_max: 40.0
    indoor_temp_max_time: None
    indoor_temp_min: 0.0
    indoor_temp_min_time: None
    lcd_contrast: 4
    low_battery_flags: 0
    outdoor_humidity_max: 70
    outdoor_humidity_max_time: None
    outdoor_humidity_min: 45
    outdoor_humidity_min_time: None
    outdoor_temp_max: 40.0
    outdoor_temp_max_time: None
    outdoor_temp_min: 0.0
    outdoor_temp_min_time: None
    pressure_max: 1040.0
    pressure_max_time: None
    pressure_min: 960.0
    pressure_min_time: None
    rain_24h_max: 50.0
    rain_24h_max_time: None
    threshold_storm: 5
    threshold_weather: 3
    wind_gust_max: 12.874765625
    wind_gust_max_time: None

## Station data

The following table shows which data are provided by the station hardware and which are calculated by WeeWX.

WS28xx station data
Database Field | Observation | Loop | Archive
barometer |  | S | S
pressure | pressure | H | H
altimeter |  | S | S
inTemp | temperature_in | H | H
outTemp | temperature_out | H | H
inHumidity | humidity_in | H | H
outHumidity | humidity_out | H | H
windSpeed | wind_speed | H | H
windDir | wind_dir | H | H
windGust | wind_gust | H | H
windGustDir | wind_gust_dir | H | H
rain | rain | D | D
| rain_total | H | H
rainRate | rain_rate | H |
dewpoint |  | S | S
windchill | windchill | H | H
heatindex | heatindex | H | H
rxCheckPercent | rssi | H |
windBatteryStatus | wind_battery_status | H |
rainBatteryStatus | rain_battery_status | H |
outTempBatteryStatus | battery_status_out | H |
inTempBatteryStatus | battery_status_in | H |

H indicates data provided by Hardware
D indicates data calculated by the Driver
S indicates data calculated by the StdWXCalculate Service