diff --git a/bin/weeutil/test/expected/weewx27.conf b/bin/weeutil/test/expected/weewx27_expected.conf similarity index 100% rename from bin/weeutil/test/expected/weewx27.conf rename to bin/weeutil/test/expected/weewx27_expected.conf diff --git a/bin/weeutil/test/expected/weewx30_expected.conf b/bin/weeutil/test/expected/weewx30_expected.conf new file mode 100644 index 00000000..59932b1f --- /dev/null +++ b/bin/weeutil/test/expected/weewx30_expected.conf @@ -0,0 +1,581 @@ +############################################################################## +# # +# WEEWX CONFIGURATION FILE # +# # +# Copyright (c) 2009-2013 Tom Keffer # +# $Id$ +############################################################################## + +# This section is for general configuration information + +# Set to 1 for extra debug info, otherwise comment it out or set to zero. +debug = 0 + +# Root directory of the weewx data file hierarchy for this station. +WEEWX_ROOT = /home/weewx + +# How long to wait before timing out a socket (FTP, HTTP) connection: +socket_timeout = 20 + +# Do not modify this - it is used by setup.py when installing and updating. +version = 2.7.0 + +############################################################################## + +[Station] + # This section is for information about your station + + # Description of the station location. + location = Hood River, Oregon + + # Latitude, longitude in decimal degrees + latitude = 45.686 + longitude = -121.566 + + # Altitude of the station, with unit it is in. This is downloaded from + # from the station if the hardware supports it. + altitude = 700, foot # Choose 'foot' or 'meter' for unit + + # The start of the rain year (1=January; 10=October, etc.). This is + # downloaded from the station if the hardware supports it. + rain_year_start = 1 + + # Start of week (0=Monday, 6=Sunday) + week_start = 6 + + # If you have a website, you may optionally specify an URL for + # its HTML server. + #station_url = http://www.example.com + + # Set to type of station hardware. Supported stations include: + # Vantage FineOffsetUSB Ultimeter + # WMR100 WS28xx WS1 + # WMR200 WS23xx CC3000 + # WMR9x8 TE923 Simulator + station_type = Vantage + +############################################################################## + +[Vantage] + # This section is for a Davis VantagePro2, VantageVue or WeatherLinkIP + + # Connection type: serial or ethernet + # serial (the classic VantagePro) + # ethernet (the WeatherLinkIP) + type = serial + + # If the connection type is serial, a port must be specified: + # Debian, Ubuntu, Redhat, Fedora, and SuSE: + # /dev/ttyUSB0 is a common USB port name + # /dev/ttyS0 is a common serial port name + # BSD: + # /dev/cuaU0 is a common serial port name + port = /dev/ttyUSB0 + + # If the connection type is ethernet, an IP Address/hostname is required: + host = 1.2.3.4 + + ###################################################### + # The rest of this section rarely needs any attention. + # You can safely leave it "as is." + ###################################################### + + # Serial baud rate (usually 19200) + baudrate = 19200 + + # TCP port (when using the WeatherLinkIP) + tcp_port = 22222 + + # TCP send delay (when using the WeatherLinkIP): + tcp_send_delay = 1 + + # The id of your ISS station (usually 1) + iss_id = 1 + + # How long to wait for a response from the station before giving up (in + # seconds; must be greater than 2) + timeout = 5 + + # How long to wait before trying again (in seconds) + wait_before_retry = 1.2 + + # How many times to try before giving up: + max_tries = 4 + + # The driver to use: + driver = weewx.drivers.vantage + +############################################################################## + +[WMR100] + # This section is for the Oregon Scientific WMR100 + + # The station model, e.g., WMR100, WMR100N, WMRS200 + model = WMR100 + + # How long a wind record can be used to calculate wind chill (in seconds) + stale_wind = 30 + + # The driver to use: + driver = weewx.drivers.wmr100 + +############################################################################## + +[WMR200] + # This section is for the Oregon Scientific WMR200 + + # The station model, e.g., WMR200, WMR200A, Radio Shack W200 + model = WMR200 + + # The driver to use: + driver = weewx.drivers.wmr200 + +############################################################################## + +[WMR9x8] + # This section is for the Oregon Scientific WMR918/968 + + # Connection type. For now, 'serial' is the only option. + type = serial + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The station model, e.g., WMR918, Radio Shack 63-1016 + model = WMR968 + + # The driver to use: + driver = weewx.drivers.wmr9x8 + +############################################################################## + +[FineOffsetUSB] + # This section is for the Fine Offset series of weather stations. + + # The station model, e.g., WH1080, WS1090, WS2080, WH3081 + model = WS2080 + + # The polling mode can be PERIODIC or ADAPTIVE + polling_mode = PERIODIC + + # How often to poll the station for data, in seconds + polling_interval = 60 + + # The pressure calibration offset, in hPa (millibars) + pressure_offset = 0 + + # The driver to use: + driver = weewx.drivers.fousb + +############################################################################## + +[WS23xx] + # This section is for the La Crosse WS-2300 series of weather stations. + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The station model, e.g., 'LaCrosse WS2317' or 'TFA Primus' + model = LaCrosse WS23xx + + # The pressure calibration offset, in hPa (millibars) + pressure_offset = 0 + + # The driver to use: + driver = weewx.drivers.ws23xx + +############################################################################## + +[WS28xx] + # This section is for the La Crosse WS-2800 series of weather stations. + + # Radio frequency to use between USB transceiver and console: US or EU + # US uses 915 MHz, EU uses 868.3 MHz. Default is US. + transceiver_frequency = US + + # The station model, e.g., 'LaCrosse C86234' or 'TFA Primus' + model = LaCrosse WS28xx + + # The pressure calibration offset, in hPa (millibars) + pressure_offset = 0 + + # The driver to use: + driver = weewx.drivers.ws28xx + +############################################################################## + +[TE923] + # This section is for the Hideki TE923 series of weather stations. + + # The station model, e.g., 'Meade TE923W' or 'TFA Nexus' + model = TE923 + + # The driver to use: + driver = weewx.drivers.te923 + + # The default configuration associates the channel 1 sensor with outTemp + # and outHumidity. To change this, or to associate other channels with + # specific columns in the database schema, use the following maps. + [[sensor_map]] + # Map the remote sensors to columns in the database schema. + outTemp = t_1 + outHumidity = h_1 + extraTemp1 = t_2 + extraHumid1 = h_2 + extraTemp2 = t_3 + extraHumid2 = h_3 + extraTemp3 = t_4 + # WARNING: the following are not in the default schema + extraHumid3 = h_4 + extraTemp4 = t_5 + extraHumid4 = h_5 + + [[battery_map]] + txBatteryStatus = batteryUV + windBatteryStatus = batteryWind + rainBatteryStatus = batteryRain + outTempBatteryStatus = battery1 + # WARNING: the following are not in the default schema + extraBatteryStatus1 = battery2 + extraBatteryStatus2 = battery3 + extraBatteryStatus3 = battery4 + extraBatteryStatus4 = battery5 + +############################################################################## + +[Ultimeter] + # This section is for the PeetBros Ultimeter series of weather stations. + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The station model, e.g., Ultimeter 2000, Ultimeter 100 + model = Ultimeter + + # The driver to use: + driver = weewx.drivers.ultimeter + +############################################################################## + +[WS1] + # This section is for the ADS WS1 series of weather stations. + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The driver to use: + driver = weewx.drivers.ws1 + +############################################################################## + +[CC3000] + # This section is for RainWise MarkIII weather stations and CC3000 logger. + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The station model, e.g., CC3000 or CC3000R + model = CC3000 + + # The driver to use: + driver = weewx.drivers.cc3000 + +############################################################################## + +[Simulator] + # This section for the weewx weather station simulator + + # The time (in seconds) between LOOP packets. + loop_interval = 2.5 + + # The simulator mode can be either 'simulator' or 'generator'. + # Real-time simulator. Sleep between each LOOP packet. + mode = simulator + # Generator. Emit LOOP packets as fast as possible (useful for testing). + #mode = generator + + # The start time. If not specified, the default is to use the present time. + #start = 2011-01-01 00:00 + + # The driver to use: + driver = weewx.drivers.simulator + +############################################################################## + +[StdRESTful] + # This section is for uploading data to sites using RESTful protocols. + + [[StationRegistry]] + # To register this weather station, set this to True: + register_this_station = False + + [[Wunderground]] + # This section is for configuring posts to the Weather Underground + + # If you wish to do this, uncomment the following station and password + # lines and fill them with your station and password: + #station = your Weather Underground station ID (eg, KORHOODR3) + #password = your Weather Underground password + + # Set the following to True to have weewx use the WU "Rapidfire" + # protocol + rapidfire = False + + [[PWSweather]] + # This section is for configuring posts to PWSweather.com + + # If you wish to do this, uncomment the following station and password + # lines and fill them with your station and password: + #station = your PWSweather station ID (eg, KORHOODR3) + #password = your PWSweather password + + log_success = True + log_failure = True + + [[CWOP]] + # This section is for configuring posts to CWOP + + # If you wish to do this, make sure the following line is uncommented + # and filled out with your station ID: + #station = CW1234 + + # If you are an APRS (radio amateur) station, you will need a passcode + # as well: + #passcode = your passcode here eg, 12345 (APRS stations only) + + # How often we should post in seconds. 0=with every archive record + post_interval = 600 + + log_success = True + log_failure = True + + [[WOW]] + # This section is for configuring posts to WOW + + # If you wish to do this, uncomment the following station and password + # lines and fill them with your station and password: + #station = your WOW station ID + #password = your WOW password + + log_success = True + log_failure = True + + [[AWEKAS]] + # This section is for configuring posts to AWEKAS + + # If you wish to do this, uncomment the following username and password + # lines and fill them with your username and password: + #username = your AWEKAS username + #password = your AWEKAS password + + log_success = True + log_failure = True + +############################################################################## + +[StdReport] + # This section specifies what reports, using which skins, to generate. + + # Where the skins reside, relative to WEEWX_ROOT: + SKIN_ROOT = skins + + # Where the generated reports should go, relative to WEEWX_ROOT: + HTML_ROOT = public_html + + # Each subsection represents a report you wish to run: + [[StandardReport]] + + # What skin this report should be based on: + skin = Standard + + # You can override values in the skin configuration file here. For + # example, uncomment the following lines to display metric units + # throughout the report, regardless of what is defined in the skin. + # + #[[[Units]]] + # [[[[Groups]]]] + # group_altitude = meter + # group_degree_day = degree_C_day + # group_pressure = mbar + # group_radiation = watt_per_meter_squared + # group_rain = mm + # group_rainrate = mm_per_hour + # group_speed = meter_per_second + # group_speed2 = meter_per_second2 + # group_temperature = degree_C + + # Here is an example where we create a custom report, still using the + # standard skin, but where the image size is overridden, and the results + # are put in a separate subdirectory 'public_html/big' + # + #[[BigReport]] + # skin = Standard + # HTML_ROOT = public_html/big + # [[[ImageGenerator]]] + # image_width = 600 + # image_height = 360 + + [[FTP]] + skin = Ftp + + # FTP'ing the results to a webserver is treated as just another report, + # albeit one with an unusual report generator! + # + # If you wish to use FTP, uncomment and fill out the next four lines: + #user = replace with your username + #password = replace with your password + #server = replace with your server name, e.g, www.threefools.org + #path = replace with the destination directory (e.g., /weather) + + # If you wish to upload files from something other than what HTML_ROOT + # is set to above, then reset it here: + #HTML_ROOT = public_html + + # Most FTP servers use port 21, but if yours is different, you can + # change it here + port = 21 + + # Set to 1 to use passive mode, zero for active mode: + passive = 1 + + # How many times to try to transfer a file before giving up: + max_tries = 3 + + [[RSYNC]] + skin = Rsync + + # rsync'ing the results to a webserver is treated as just another + # report, much like the FTP report. + # + # If you wish to use rsync, you must configure passwordless ssh using + # public/private key authentication from the user account that weewx + # runs as to the user account on the remote machine where the files + # will be copied. + # + # The following configure what system and remote path the files are + # sent to: + #server = replace with your server name, e.g, www.threefools.org + #path = replace with the destination directory (e.g., /weather) + #user = replace with your username + + # Rsync can be configured to remove files from the remote server if + # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you + # make a mistake in the remote path, you could could unintentionally + # cause unrelated files to be deleted. Set to 1 to enable remote file + # deletion, zero to allow files to accumulate remotely. + delete = 0 + +############################################################################## + +[StdConvert] + + # This service acts as a filter, converting the unit system coming from + # the hardware to a target output unit system. + # + # The target_unit affects only the unit system in the database. Once + # chosen it cannot be changed without converting the entire database. + # Modification of target_unit after starting weewx will result in + # corrupt data - the database will contain a mix of US and METRIC data. + # + # The value of target_unit does not affect the unit system for + # reporting - reports can display US, Metric, or any combination of + # units. + # + # In most cases, target_unit should be left as the default: US + # + # In particular, those migrating from a standard wview installation + # should use US since that is what the wview database contains. + + # DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING! + target_unit = US # Options are 'US', 'METRICWX', or 'METRIC' + +############################################################################## + +[StdCalibrate] + # This section can adjust data using calibration expressions. + + [[Corrections]] +# For each type, an arbitrary calibration expression can be given. +# It should be in the native units of the weather station hardware. +# For example: +# outTemp = outTemp - 0.2 + +############################################################################## + +[StdQC] + # This section is for quality control checks. If units are not specified, + # values must be in the units defined in the StdConvert section. + + [[MinMax]] + barometer = 26, 32.5, inHg + outTemp = -40, 120, degree_F + inTemp = 10, 120, degree_F + outHumidity = 0, 100 + inHumidity = 0, 100 + rain = 0, 60, inch + windSpeed = 0, 120, mile_per_hour + +############################################################################## + +[StdArchive] + + # If your station hardware supports data logging then the archive interval + # will be downloaded from the station. + # Otherwise, you must specify it below (in seconds): + archive_interval = 300 + + # How long to wait (in seconds) before processing new archive data. Must + # be greater than zero. + archive_delay = 15 + + # Generally, if possible, new records are downloaded from the console + # hardware. If the console does not support this, then software record + # generation is done. + # Set the following to "software" to force software record generation: + record_generation = hardware + + # Whether to include LOOP data in hi/low statistics. + loop_hilo = True + +############################################################################## + +[StdTimeSynch] + + # How often to check the weather station clock for drift (in seconds) + clock_check = 14400 + + # How much it can drift before we will correct it (in seconds): + max_drift = 5 + +############################################################################## + +[Databases] + # This section lists possible databases. + + [[archive_sqlite]] + root = %(WEEWX_ROOT)s + database_name = archive/weewx.sdb + driver = weedb.sqlite + + # MySQL databases require setting an appropriate 'user' and 'password' + [[archive_mysql]] + host = localhost + user = weewx + password = weewx + database_name = weewx + driver = weedb.mysql + +############################################################################## + +[Engine] + # This section configures the internal weewx engines. + # It is for advanced customization. + + [[Services]] + + # The list of services the main weewx engine should run: + prep_services = weewx.engine.StdTimeSynch, + process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate + archive_services = weewx.engine.StdArchive, + restful_services = weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS + report_services = weewx.engine.StdPrint, weewx.engine.StdReport diff --git a/bin/weeutil/test/test_config.py b/bin/weeutil/test/test_config.py index e2d9d90c..e52b693e 100644 --- a/bin/weeutil/test/test_config.py +++ b/bin/weeutil/test/test_config.py @@ -25,14 +25,32 @@ class ConfigTest(unittest.TestCase): config20_dict.write(out_str) out_str.seek(0) - fd_expected = open('expected/weewx27.conf') + fd_expected = open('expected/weewx27_expected.conf') for expected in fd_expected: actual = out_str.readline() self.assertEqual(actual, expected) - # Now upgrade to V3.x: + out_str.close() + def test_upgrade_30(self): + # Start with the Version 2.7 weewx.conf file: + config27_dict = configobj.ConfigObj('weewx27.conf') + + # Upgrade to V3.0 + old_database = weeutil.config.update_to_v3(config27_dict) + self.assertEqual(old_database, 'archive_sqlite') + + out_str = StringIO.StringIO() + config27_dict.write(out_str) + + out_str.seek(0) + fd_expected = open('expected/weewx30_expected.conf') + for expected in fd_expected: + actual = out_str.readline() + self.assertEqual(actual, expected) + + out_str.close() if __name__ == '__main__': unittest.main() diff --git a/bin/weeutil/test/weewx27.conf b/bin/weeutil/test/weewx27.conf new file mode 100644 index 00000000..ca4bf013 --- /dev/null +++ b/bin/weeutil/test/weewx27.conf @@ -0,0 +1,612 @@ +############################################################################## +# # +# WEEWX CONFIGURATION FILE # +# # +# Copyright (c) 2009-2013 Tom Keffer # +# $Id$ +############################################################################## + +# This section is for general configuration information + +# Set to 1 for extra debug info, otherwise comment it out or set to zero. +debug = 0 + +# Root directory of the weewx data file hierarchy for this station. +WEEWX_ROOT = /home/weewx + +# How long to wait before timing out a socket (FTP, HTTP) connection: +socket_timeout = 20 + +# Do not modify this - it is used by setup.py when installing and updating. +version = 2.7.0 + +############################################################################## + +[Station] + # This section is for information about your station + + # Description of the station location. + location = Hood River, Oregon + + # Latitude, longitude in decimal degrees + latitude = 45.686 + longitude = -121.566 + + # Altitude of the station, with unit it is in. This is downloaded from + # from the station if the hardware supports it. + altitude = 700, foot # Choose 'foot' or 'meter' for unit + + # The start of the rain year (1=January; 10=October, etc.). This is + # downloaded from the station if the hardware supports it. + rain_year_start = 1 + + # Start of week (0=Monday, 6=Sunday) + week_start = 6 + + # If you have a website, you may optionally specify an URL for + # its HTML server. + #station_url = http://www.example.com + + # Set to type of station hardware. Supported stations include: + # Vantage FineOffsetUSB Ultimeter + # WMR100 WS28xx WS1 + # WMR200 WS23xx CC3000 + # WMR9x8 TE923 Simulator + station_type = Vantage + +############################################################################## + +[Vantage] + # This section is for a Davis VantagePro2, VantageVue or WeatherLinkIP + + # Connection type: serial or ethernet + # serial (the classic VantagePro) + # ethernet (the WeatherLinkIP) + type = serial + + # If the connection type is serial, a port must be specified: + # Debian, Ubuntu, Redhat, Fedora, and SuSE: + # /dev/ttyUSB0 is a common USB port name + # /dev/ttyS0 is a common serial port name + # BSD: + # /dev/cuaU0 is a common serial port name + port = /dev/ttyUSB0 + + # If the connection type is ethernet, an IP Address/hostname is required: + host = 1.2.3.4 + + ###################################################### + # The rest of this section rarely needs any attention. + # You can safely leave it "as is." + ###################################################### + + # Serial baud rate (usually 19200) + baudrate = 19200 + + # TCP port (when using the WeatherLinkIP) + tcp_port = 22222 + + # TCP send delay (when using the WeatherLinkIP): + tcp_send_delay = 1 + + # The id of your ISS station (usually 1) + iss_id = 1 + + # How long to wait for a response from the station before giving up (in + # seconds; must be greater than 2) + timeout = 5 + + # How long to wait before trying again (in seconds) + wait_before_retry = 1.2 + + # How many times to try before giving up: + max_tries = 4 + + # The driver to use: + driver = weewx.drivers.vantage + +############################################################################## + +[WMR100] + # This section is for the Oregon Scientific WMR100 + + # The station model, e.g., WMR100, WMR100N, WMRS200 + model = WMR100 + + # How long a wind record can be used to calculate wind chill (in seconds) + stale_wind = 30 + + # The driver to use: + driver = weewx.drivers.wmr100 + +############################################################################## + +[WMR200] + # This section is for the Oregon Scientific WMR200 + + # The station model, e.g., WMR200, WMR200A, Radio Shack W200 + model = WMR200 + + # The driver to use: + driver = weewx.drivers.wmr200 + +############################################################################## + +[WMR9x8] + # This section is for the Oregon Scientific WMR918/968 + + # Connection type. For now, 'serial' is the only option. + type = serial + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The station model, e.g., WMR918, Radio Shack 63-1016 + model = WMR968 + + # The driver to use: + driver = weewx.drivers.wmr9x8 + +############################################################################## + +[FineOffsetUSB] + # This section is for the Fine Offset series of weather stations. + + # The station model, e.g., WH1080, WS1090, WS2080, WH3081 + model = WS2080 + + # The polling mode can be PERIODIC or ADAPTIVE + polling_mode = PERIODIC + + # How often to poll the station for data, in seconds + polling_interval = 60 + + # The pressure calibration offset, in hPa (millibars) + pressure_offset = 0 + + # The driver to use: + driver = weewx.drivers.fousb + +############################################################################## + +[WS23xx] + # This section is for the La Crosse WS-2300 series of weather stations. + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The station model, e.g., 'LaCrosse WS2317' or 'TFA Primus' + model = LaCrosse WS23xx + + # The pressure calibration offset, in hPa (millibars) + pressure_offset = 0 + + # The driver to use: + driver = weewx.drivers.ws23xx + +############################################################################## + +[WS28xx] + # This section is for the La Crosse WS-2800 series of weather stations. + + # Radio frequency to use between USB transceiver and console: US or EU + # US uses 915 MHz, EU uses 868.3 MHz. Default is US. + transceiver_frequency = US + + # The station model, e.g., 'LaCrosse C86234' or 'TFA Primus' + model = LaCrosse WS28xx + + # The pressure calibration offset, in hPa (millibars) + pressure_offset = 0 + + # The driver to use: + driver = weewx.drivers.ws28xx + +############################################################################## + +[TE923] + # This section is for the Hideki TE923 series of weather stations. + + # The station model, e.g., 'Meade TE923W' or 'TFA Nexus' + model = TE923 + + # The driver to use: + driver = weewx.drivers.te923 + + # The default configuration associates the channel 1 sensor with outTemp + # and outHumidity. To change this, or to associate other channels with + # specific columns in the database schema, use the following maps. + [[sensor_map]] + # Map the remote sensors to columns in the database schema. + outTemp = t_1 + outHumidity = h_1 + extraTemp1 = t_2 + extraHumid1 = h_2 + extraTemp2 = t_3 + extraHumid2 = h_3 + extraTemp3 = t_4 + # WARNING: the following are not in the default schema + extraHumid3 = h_4 + extraTemp4 = t_5 + extraHumid4 = h_5 + + [[battery_map]] + txBatteryStatus = batteryUV + windBatteryStatus = batteryWind + rainBatteryStatus = batteryRain + outTempBatteryStatus = battery1 + # WARNING: the following are not in the default schema + extraBatteryStatus1 = battery2 + extraBatteryStatus2 = battery3 + extraBatteryStatus3 = battery4 + extraBatteryStatus4 = battery5 + +############################################################################## + +[Ultimeter] + # This section is for the PeetBros Ultimeter series of weather stations. + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The station model, e.g., Ultimeter 2000, Ultimeter 100 + model = Ultimeter + + # The driver to use: + driver = weewx.drivers.ultimeter + +############################################################################## + +[WS1] + # This section is for the ADS WS1 series of weather stations. + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The driver to use: + driver = weewx.drivers.ws1 + +############################################################################## + +[CC3000] + # This section is for RainWise MarkIII weather stations and CC3000 logger. + + # Serial port such as /dev/ttyS0, /dev/ttyUSB0, or /dev/cuaU0 + port = /dev/ttyUSB0 + + # The station model, e.g., CC3000 or CC3000R + model = CC3000 + + # The driver to use: + driver = weewx.drivers.cc3000 + +############################################################################## + +[Simulator] + # This section for the weewx weather station simulator + + # The time (in seconds) between LOOP packets. + loop_interval = 2.5 + + # The simulator mode can be either 'simulator' or 'generator'. + # Real-time simulator. Sleep between each LOOP packet. + mode = simulator + # Generator. Emit LOOP packets as fast as possible (useful for testing). + #mode = generator + + # The start time. If not specified, the default is to use the present time. + #start = 2011-01-01 00:00 + + # The driver to use: + driver = weewx.drivers.simulator + +############################################################################## + +[StdRESTful] + # This section is for uploading data to sites using RESTful protocols. + + [[StationRegistry]] + # To register this weather station, set this to True: + register_this_station = False + + [[Wunderground]] + # This section is for configuring posts to the Weather Underground + + # If you wish to do this, uncomment the following station and password + # lines and fill them with your station and password: + #station = your Weather Underground station ID (eg, KORHOODR3) + #password = your Weather Underground password + + # Set the following to True to have weewx use the WU "Rapidfire" + # protocol + rapidfire = False + + [[PWSweather]] + # This section is for configuring posts to PWSweather.com + + # If you wish to do this, uncomment the following station and password + # lines and fill them with your station and password: + #station = your PWSweather station ID (eg, KORHOODR3) + #password = your PWSweather password + + log_success = True + log_failure = True + + [[CWOP]] + # This section is for configuring posts to CWOP + + # If you wish to do this, make sure the following line is uncommented + # and filled out with your station ID: + #station = CW1234 + + # If you are an APRS (radio amateur) station, you will need a passcode + # as well: + #passcode = your passcode here eg, 12345 (APRS stations only) + + # How often we should post in seconds. 0=with every archive record + post_interval = 600 + + log_success = True + log_failure = True + + [[WOW]] + # This section is for configuring posts to WOW + + # If you wish to do this, uncomment the following station and password + # lines and fill them with your station and password: + #station = your WOW station ID + #password = your WOW password + + log_success = True + log_failure = True + + [[AWEKAS]] + # This section is for configuring posts to AWEKAS + + # If you wish to do this, uncomment the following username and password + # lines and fill them with your username and password: + #username = your AWEKAS username + #password = your AWEKAS password + + log_success = True + log_failure = True + +############################################################################## + +[StdReport] + # This section specifies what reports, using which skins, to generate. + + # Where the skins reside, relative to WEEWX_ROOT: + SKIN_ROOT = skins + + # Where the generated reports should go, relative to WEEWX_ROOT: + HTML_ROOT = public_html + + # Each subsection represents a report you wish to run: + [[StandardReport]] + + # What skin this report should be based on: + skin = Standard + + # You can override values in the skin configuration file here. For + # example, uncomment the following lines to display metric units + # throughout the report, regardless of what is defined in the skin. + # + #[[[Units]]] + # [[[[Groups]]]] + # group_altitude = meter + # group_degree_day = degree_C_day + # group_pressure = mbar + # group_radiation = watt_per_meter_squared + # group_rain = mm + # group_rainrate = mm_per_hour + # group_speed = meter_per_second + # group_speed2 = meter_per_second2 + # group_temperature = degree_C + + # Here is an example where we create a custom report, still using the + # standard skin, but where the image size is overridden, and the results + # are put in a separate subdirectory 'public_html/big' + # + #[[BigReport]] + # skin = Standard + # HTML_ROOT = public_html/big + # [[[ImageGenerator]]] + # image_width = 600 + # image_height = 360 + + [[FTP]] + skin = Ftp + + # FTP'ing the results to a webserver is treated as just another report, + # albeit one with an unusual report generator! + # + # If you wish to use FTP, uncomment and fill out the next four lines: + #user = replace with your username + #password = replace with your password + #server = replace with your server name, e.g, www.threefools.org + #path = replace with the destination directory (e.g., /weather) + + # If you wish to upload files from something other than what HTML_ROOT + # is set to above, then reset it here: + #HTML_ROOT = public_html + + # Most FTP servers use port 21, but if yours is different, you can + # change it here + port = 21 + + # Set to 1 to use passive mode, zero for active mode: + passive = 1 + + # How many times to try to transfer a file before giving up: + max_tries = 3 + + [[RSYNC]] + skin = Rsync + + # rsync'ing the results to a webserver is treated as just another + # report, much like the FTP report. + # + # If you wish to use rsync, you must configure passwordless ssh using + # public/private key authentication from the user account that weewx + # runs as to the user account on the remote machine where the files + # will be copied. + # + # The following configure what system and remote path the files are + # sent to: + #server = replace with your server name, e.g, www.threefools.org + #path = replace with the destination directory (e.g., /weather) + #user = replace with your username + + # Rsync can be configured to remove files from the remote server if + # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you + # make a mistake in the remote path, you could could unintentionally + # cause unrelated files to be deleted. Set to 1 to enable remote file + # deletion, zero to allow files to accumulate remotely. + delete = 0 + +############################################################################## + +[StdConvert] + + # This service acts as a filter, converting the unit system coming from + # the hardware to a target output unit system. + # + # The target_unit affects only the unit system in the database. Once + # chosen it cannot be changed without converting the entire database. + # Modification of target_unit after starting weewx will result in + # corrupt data - the database will contain a mix of US and METRIC data. + # + # The value of target_unit does not affect the unit system for + # reporting - reports can display US, Metric, or any combination of + # units. + # + # In most cases, target_unit should be left as the default: US + # + # In particular, those migrating from a standard wview installation + # should use US since that is what the wview database contains. + + # DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING! + target_unit = US # Options are 'US', 'METRICWX', or 'METRIC' + +############################################################################## + +[StdCalibrate] + # This section can adjust data using calibration expressions. + + [[Corrections]] + # For each type, an arbitrary calibration expression can be given. + # It should be in the native units of the weather station hardware. + # For example: + # outTemp = outTemp - 0.2 + +############################################################################## + +[StdQC] + # This section is for quality control checks. If units are not specified, + # values must be in the units defined in the StdConvert section. + + [[MinMax]] + barometer = 26, 32.5, inHg + outTemp = -40, 120, degree_F + inTemp = 10, 120, degree_F + outHumidity = 0, 100 + inHumidity = 0, 100 + rain = 0, 60, inch + windSpeed = 0, 120, mile_per_hour + +############################################################################## + +[StdArchive] + # This section is for configuring the archive databases. + + # The database to be used for archive data. + # This should match a section given in section [Databases] below. + archive_database = archive_sqlite + + # The database to be used for stats data. + # This should match a section given in section [Databases] below. + stats_database = stats_sqlite + + # If your station hardware supports data logging then the archive interval + # will be downloaded from the station. + # Otherwise, you must specify it below (in seconds): + archive_interval = 300 + + # How long to wait (in seconds) before processing new archive data. Must + # be greater than zero. + archive_delay = 15 + + # Generally, if possible, new records are downloaded from the console + # hardware. If the console does not support this, then software record + # generation is done. + # Set the following to "software" to force software record generation: + record_generation = hardware + + # Whether to include LOOP data in hi/low statistics. + loop_hilo = True + + # The schema to be used for the archive database. This is used only when + # it is initialized. + # Thereafter, the types are retrieved from the database. + archive_schema = user.schemas.defaultArchiveSchema + + # The schema to be used for the stats database. This is used only when + # it is initialized. + # Thereafter, the types are retrieved from the database. + stats_schema = user.schemas.defaultStatsSchema + +############################################################################## + +[StdTimeSynch] + + # How often to check the weather station clock for drift (in seconds) + clock_check = 14400 + + # How much it can drift before we will correct it (in seconds): + max_drift = 5 + +############################################################################## + +[Databases] + # This section lists possible databases. + + [[archive_sqlite]] + root = %(WEEWX_ROOT)s + database = archive/weewx.sdb + driver = weedb.sqlite + + [[stats_sqlite]] + root = %(WEEWX_ROOT)s + database = archive/stats.sdb + driver = weedb.sqlite + + # MySQL databases require setting an appropriate 'user' and 'password' + [[archive_mysql]] + host = localhost + user = weewx + password = weewx + database = weewx + driver = weedb.mysql + + [[stats_mysql]] + host = localhost + user = weewx + password = weewx + database = stats + driver = weedb.mysql + +############################################################################## + +[Engines] + # This section configures the internal weewx engines. + # It is for advanced customization. + + [[WxEngine]] + + # The list of services the main weewx engine should run: + prep_services = weewx.wxengine.StdTimeSynch + process_services = weewx.wxengine.StdConvert, weewx.wxengine.StdCalibrate, weewx.wxengine.StdQC + archive_services = weewx.wxengine.StdArchive + restful_services = weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS + report_services = weewx.wxengine.StdPrint, weewx.wxengine.StdReport