Overview
wxncommon.conf - common to the server suite
wxnhostd.conf - wx station host
wxnaprd.conf - general APRS interface
wxnqueryd.conf - APRS query server
wxnsamed.conf - NWR SAME server
aprsqth - custom QTH resolver
nodes.deny - refuse data from these stations
Each server has it's own configuration file and also share a common configuration file. This provides for easier maintenance and is not dependent on the others except for the data used by the system.
All files are text based and only require using a simple text editor to make entries and changes. Note that parameter keywords are NOT case sensitive. Title case is used to make them easier to read.
Important! - Entries have a keyword followed by a space, an equal sign, a trailing space and then the value. Keywords do not contain spaces. Format:
<keyword> = <value>
If a default value for a parameter is '?' it means that a value must be supplied.
Also covered in this document is the postgreSQL server and AX.25 information.
Entries in this file are common to all four daemons: wxnhostd, wxnaprd, wxnqueryd, and wxnsamed.
ServerCall | ? | Text | The call-ssid of this server. |
Alias | ? | Text | Alias to be used by this node. This parameter will written to the nodes table for this station as the first entry in the table. Also can be used by the query server as alternative to the call-ssid for the 'To' in the APRS message format. |
AprsToCall | APRS | Text | APRS destination call-ssid. Don't change the default unless you really know what you are doing. |
AprsDigi | WIDE3-3 | Text | Although the default will work, this probably needs to be changed to fit the dynamics in your area. |
Ax25Port | ? | Text | AX.25 port to be used (ax0, ax1, etc.) as setup in AX.25. |
Latitude | ? | Numeric | Latitude of the server in decimal degrees. That means 38 degrees 30 minutes is entered as '38.5' (without the quotes). |
Longitude | ? | Numeric | Same as above except is longitude. |
Contains configuration information about the host weather station, it's location, external sensors and the Peet Brothers 'Weather Picture'.
General Setup | |||||||||||||||||||
City | ? | Text | City or place the node resides in (or is closest to). | ||||||||||||||||
County | ? | Text | County the node resides in. | ||||||||||||||||
State | ? | Text | Standard two letter state abbreviation. Must be upper-case. | ||||||||||||||||
StationType | ? | Text | Defines the type of weather station used by the system. Types are as follows:
|
||||||||||||||||
AnemometerHeight | ? | Number | Height of the anemometer assembly above ground (not the top of the structure!) | ||||||||||||||||
RainGaugeType | H | Text | Rain gauge type. Available options: T - tenths H - hundredths M - millimeters |
||||||||||||||||
WxPort | ? | Text | Serial port weather station is attached to. Do not prefix '/dev' in front of the device. e.g., use 'ttyS0' not '/dev/ttyS0'. Again, don't use the quotes. | ||||||||||||||||
WxBaud | see right | Number | Baud rate for the weather station. Only needs to be set if different than the
defaults listed below.
|
||||||||||||||||
WxStnTimeout | see right | Number | Timeout for weather station in seconds. Under normal conditions, this should
not be changed. Only if you keep getting log errors that the station is timing out and
you have determined the weather station is working normally should the default be increased.
If you do increase the default, only do so in five second increments.
|
||||||||||||||||
NullNoSensors | y | Boolean | Sets fields to NULL in nodes table if fields were previously present and sensor is not detected at startup. | ||||||||||||||||
OneWirePort | ? | Text | Serial port 1-Wire adaptor is attached to. Leave commented out if you are not using any of the 1-Wire add-ons. Do not prefix '/dev' in front of the device. e.g., use 'ttyS0' not '/dev/ttyS0'. Again, don't use the quotes. | ||||||||||||||||
WxPicPort | ? | Text | Serial port Peet Weather Picture is attached to. Leave commented out if you are not using the Weather Picture. Do not prefix '/dev' in front of the device. e.g., use 'ttyS0' not '/dev/ttyS0'. Again, don't use the quotes. | ||||||||||||||||
Data Alarm/Email Settings | |||||||||||||||||||
EmailAlertEnable | n | Boolean | Enable email alerts if alarm trip points are exceeded. See the section on the alarm table for information about how to set the trip point values and the default settings. | ||||||||||||||||
EmailHost | ? | Text | Enable email alerts if alarm trip points are exceeded. See the section on the alarm table for information about how to set the trip point values and the default settings. | ||||||||||||||||
EmailFromAcct | ? | Text | ISP mail account. Required. | ||||||||||||||||
EmailFromName | ? | Text | Name of email 'sender' (not the actual account). AKA alias. Optional. | ||||||||||||||||
EmailReplyTo | ? | Text | Full email address of the person to whom replies will be sent. Required. | ||||||||||||||||
Radiation Monitor - see add-on sensors for additional information | |||||||||||||||||||
Rad | n | Boolean | Enables background radiation monitor. Also see section on RM60/RM70/RM80 sensors. | ||||||||||||||||
Cesium137 | 1050 | Number | Cesium 137 correction factor. Values for Aware Electronics models are
given below.
|
||||||||||||||||
EMP (lightning) Sensor - see add-on sensors for additional information | |||||||||||||||||||
Emp | n | Boolean | Enables EMP (lightning) detector. Also see section on EMP sensors. | ||||||||||||||||
Rain Gauge Heater Control - see add-on sensors for additional information | |||||||||||||||||||
OwHeaterCtrl | n | Boolean | Enables the rain gauge heater control interface. | ||||||||||||||||
OwHeaterCtrlSN | ? | Text | If another sensor is used that also employs the DS2405 PIO, this field must be specified. The serial number can be determined using the 'tstfind' 1-Wire utility. If this is the only sensor using the DS2405, then it is recommended that this parameter be left commented out and allow the startup code identify the device. | ||||||||||||||||
1-Wire Barometer - see add-on sensors for additional information | |||||||||||||||||||
OwBarometer | n | Boolean | Enables 1-Wire Barometer. | ||||||||||||||||
OwBarometerOffset | 0 | Numeric | Integer offset in millibars for barometer. Used to make minor corrections without having to recalibrate. The offset is added to the reading. Can be positive or negative. | ||||||||||||||||
OwBarometerSN | ? | Text | If another sensor is used that also employs the DS2438 A/D converter, this field must be specified. The serial number can be determined using the 'tstfind' 1-Wire utility. If this is the only sensor using the DS2438, then it is recommended that this parameter be left commented out and allow the startup code identify the device. | ||||||||||||||||
1-Wire Humidity Sensors - see add-on sensors for additional information | |||||||||||||||||||
OwOutsideHumidity | n | Boolean | Enables 1-Wire outside humidity sensor. | ||||||||||||||||
OwOutsideHumiditySN | ? | Text | If another sensor is used that also employs the DS2438 A/D converter, this field must be specified. The serial number can be determined using the 'tstfind' 1-Wire utility. If this is the only sensor using the DS2438, then it is recommended that this parameter be left commented out and allow the startup code identify the device. | ||||||||||||||||
OwAspiratorCtrl | n | Boolean | Enables 1-Wire aspirator control interface for outside humidity sensor. | ||||||||||||||||
OwAspiratorCtrlSN | ? | Text | If another sensor is used that also employs the DS2405 PIO, this field must be specified. The serial number can be determined using the 'tstfind' 1-Wire utility. If this is the only sensor using the DS2405, then it is recommended that this parameter be left commented out and allow the startup code identify the device. | ||||||||||||||||
AspCtrlTrip | 80 | Numeric | When detected relative humidity exceeds the given value, the aspirator is turned on. When the RH falls below this trip point, the unit is shut off. | ||||||||||||||||
OwInsideHumidity | n | Boolean | Enables 1-Wire inside humidity sensor. | ||||||||||||||||
OwInsideHumiditySN | ? | Text | If another sensor is used that also employs the DS2438 A/D converter, this field must be specified. The serial number can be determined using the 'tstfind' 1-Wire utility. If this is the only sensor using the DS2438, then it is recommended that this parameter be left commented out and allow the startup code identify the device. | ||||||||||||||||
1-Wire Temperature Sensors - see add-on sensors for additional information | |||||||||||||||||||
OwInsideTemp | n | Boolean | Enables 1-Wire inside temperature sensor. | ||||||||||||||||
OwInsideTempSN | ? | Text | If another sensor is used that also employs the DS18S20 temperature sensor, this field must be specified. The serial number can be determined using the 'tstfind' 1-Wire utility. If this is the only sensor using the DS18S20, then it is recommended that this parameter be left commented out and allow the startup code identify the device. | ||||||||||||||||
OwSoilTemp | n | Boolean | Enables first 1-Wire soil temperature sensor. | ||||||||||||||||
OwSoilTempSN | ? | Text | If another sensor is used that also employs the DS18S20 temperature sensor, this field must be specified. The serial number can be determined using the 'tstfind' 1-Wire utility. If this is the only sensor using the DS18S20, then it is recommended that this parameter be left commented out and allow the startup code identify the device. | ||||||||||||||||
OwSoil2Temp | n | Boolean | Enables second 1-Wire soil temperature sensor. | ||||||||||||||||
OwSoil2TempSN | ? | Text | Since this is the second soil temperature sensor, the serial number will be required. Use the Dallas temp utility to determine which is the first and second sensors. Use your fingers to warm the second sensor. When the temperature changes while running the utility, note the serial number. The remaining device serial number will be the first sensor. Of course this assumes you only have the soil temperature sensors plugged in. | ||||||||||||||||
OwOutsideTemp | n | Boolean | Enables 1-Wire outside temperature sensor. When enabled, the outside temperature reading returned by the weather station is replaced with the value returned by this sensor. | ||||||||||||||||
OwOutsideTempSN | ? | Text | If another sensor is used that also employs the DS18S20 temperature sensor, this field must be specified. The serial number can be determined using the 'tstfind' 1-Wire utility. If this is the only sensor using the DS18S20, then it is recommended that this parameter be left commented out and allow the startup code identify the device. |
Configuration information about the APRS interface. That is, how the node processes and handles outgoing and incoming APRS packets.
General Setup | |||
AprsExtraText | ? | Text | Used typically to send PHG and some other
message (typically your email address) along with the position of the node. Example: AprsExtraText = PHG2130/n4xi@arrl.net |
AprsExtraTextInterval | 20 | Numeric | Interval in minutes between extra text and extended data transmissions. Value of 20 seems to be about right. You could go as short as 15 minutes or as much as 30. If you make it too short, your node will have a tendency to hog the channel. If too long, the extended data will not be timely at any other WXN nodes in the network. |
AprsDelayThreshold | 0 | Numeric | Experimental. See 'Handling Channel Congestion elsewhere for more information. |
AprsReceive | y | Boolean | Enables reception of other APRS weather nodes. An example of when the receive interface would be disabled would be for a remote installation where there are no local users at the console or over a TCP/IP network. |
ReceiveLocal | n | Boolean | Enables/disables monitoring of outgoing as well incoming packets. Used to monitor packets gated to RF by an IGATE. Don't enable unless you are running an IGATE and need to capture outgoing packets. |
Callsign Lookup: Note that the internal callbook and QRZ interface are mutually exclusive. That is, one or the other can be used but not both. | |||
QRZ Interface - see discussion elsewhere for additional information | |||
UseQrz | n | Boolean | Enables QRZ interface to resolve station location by city, county, state. |
QrzPath | /mnt/cdrom/callbk | Text | You can use the cdrom directly. However, most cdroms are very slow to spin up. As a result, the system will constantly be dropping packets for having to wait for the cdrom. The parameter allows copying the required files to the hard drive and then setting the path accordingly. Performance will dramatically improve. See discussion elsewhere on what files to copy, how to copy them and where to put them. |
Callbook Interface - the built-in callbook | |||
UseCallbook | n | Boolean | Enables internal callbook to resolve station location by city, county, state. |
Configuration information about the APRS query server.
UseAlias | n | Boolean | Query server responds to either the call-ssid or Alias parameters in wxnhostd.conf. Setting this paramter to 'y' (don't use quotes) will cause the server to respond only to the Alias. Otherwise the call-ssid will be used. |
Retries | 5 | Numeric | The number of times the server will attempt to send a reply to the query before giving up. |
FrAckTimer | 30 | Numeric | Time in seconds to wait for an acknowledgement to a transmitted packet. If you are in a congested environment, this value may need to be increased. |
DelayTime | 30 | Numeric | The maximum delay time after the FrAckTimer expires before a packet is re-transmitted. The delay is random in nature, but will exceed this parameter. If you have congested conditions, this may have to be increased. |
This server is still under development.
The file aprsqth is the most accurate means of resolving and retrieving the QTH information for an APRS station. Each entry in the text file is comma-delimited and has the following format:
<call-ssid>, <city>, <county>, <state>
Example:
wb9tlh-10, Kirksville, Monroe, IN
This file can be used to resolve entries that are not in the geographic database table, not in the QRZ database, and for stations using the same callsign but with different SSIDs.
Example:
n4xi-9, Owensboro, Daviess, KY
n4xi-5, Newburgh, Warrick, IN
Entries in this file are used to keep those call-ssid's out of the database. Each entry is simply 'callsign-ssid' (without the quotes). Examples:
n0call
nocall
n9lid-9
There are two files involved with getting PostgreSQL properly configured so that it will accept ethernet and local connections. This will be necessary in order to access data either using ODBC or for web access. In Red Hat 9 and Fedora Core, these files are found in /var/lib/pgsql/data. Although modifications for each is described below, the reader is advised to read and understand all related documentation on PostgreSQL. A good place to start is at http://www.postgresql.org.
pg_hba.conf - This file controls what network connections are allowed to connect to the database and associated permissions. Examples are given in the file fragment below.
#TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD local all all trust host wxn all 127.0.0.1 255.255.255.255 trust host wxn all 192.168.1.0 255.255.255.0 trust # Using sockets credentials for improved security. Not available everywhere, # but works on Linux, *BSD (and probably some others) local all all ident sameuser
In the example, the local loopback has been enabled as well as local access over an Ethernet connection. Note that this only an example. If you intend to allow access from the Internet, you will need at the very least firewall protection. You will also need to read about security configuration for the PostgreSQL server.
postgresql.conf - Only one entry needs to be changed in this file. By default TCP/IP connections are disabled. You will need to enable connections if you want to access the data on a network. How you do this depends on which version of PostgreSQL you are running.
If running versions 7.3.x or 7.4.x,, uncomment the line labeled tcpip_socket and change false to true. The example shows the lines in the file after it has been modified.
#
# Connection Parameters
#
tcpip_socket = true
#
If using version 8.x.x,, uncomment the line labeled listen_addresses and change the entry to something like the following:
#
listen_addresses = 'localhost, 192.168.1.10'
#
In the above you will need to replace the 192.168.1.10 with the IP address of the ethernet port on your machine that is connected to your network. This was about as clear as mud in the PostgreSQL documentation. Don't forget the single quotes either. That will make your life miserable too.
In either case, after making the changes, save and exit. You will now have to restart PostgreSQL for the changes to take effect. To do this, type the following at the command prompt:
[root@mynode data]# /etc/init.d/postgresql restart
The above assumes startup scripts are in the usual place. If the above does not work, you will need to locate the startup script for PostgreSQL and make adjustments accordingly.
The last step in configuration is to configure the OS so that PostgreSQL is started automatically when the system boots. If your particular flavor of OS supports chkconfig, then the following should work:
Check the current run-levels by entering:[root@mynode data]chkconfig --list postgresql
postgresql 0:off 1:off 2:off 3:on 4:off 5:on 6:off
If you do not see 3:on and 5:on as you see it above, change by entering:
[root@mynode data]chkconfig --level 35 postgresql on
Verify that the setting took by repeating the first step. If it shows as it is above, PostgreSQL will automatically start the next time you boot.
If your system does not support chkconfig, then you will most likely need to link the startup script into the appropriate rc startup directories by hand or use the appropriate utility.
The AX.25 protocol is built into the kernel. Therefore, you must be certain that your kernel build contains the required support. If it doesn't, then you will need to do a custom build. There are plenty of sources on the web that explain how to do this.
In addition to kernel support, you will also need to build libax25, ax25-tools and ax25-apps from the sources. These packages provide the necessary tools and apps to properly configure and test AX.25 on a Linux box. Follow the instructions given with those packages. They can be downloaded from Sourceforge. There is also plenty of information and help on the Internet for AX.25.
Very Important! Be sure to get AX.25 up and running correctly before trying to run the server.