my graph for outdoors variables temp, humidity, are plotting dots not lines. the gap_fraction = 0.3 which is very large. the archive interval = 300 which could be more. my driver is based on the rtl_433/rtl-sdr driver. the weewx server is on a raspberry pi connected to a hub which is connected both to an arduino with a temp/humidity/pressure sensor for indoors and the hub is also connected to the RTL-SDR radio receiver which receives packets from device 40 (Acurite Atlas). The modified driver has three AsyncInput threads reading stdin/stdout from rtl_433 and also the ttyACM0 (serial over USB) from the arduino. It all works but the AsyncInput class is much slower when there are three streams being read by the raspberry pi. I am getting packets in debug mode of weewx somewhat slower than the respective streams.
So to make a long story short (1) should I divide the driver into two separate drivers and run one as a service like the example in the "adding a new variable to weewx". (2) I get a lot of nulls in the database. the atlas sends three separate packets for a complete set of data. does this cause the gaps / separate points not lines in plots? -- You received this message because you are subscribed to the Google Groups "weewx-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-development/05550ea3-3201-40df-b8f9-5903a9d81502n%40googlegroups.com.
# WEEWX CONFIGURATION FILE # # Copyright (c) 2009-2022 Tom Keffer <[email protected]> # See the file LICENSE.txt for your rights. ############################################################################## # This section is for general configuration information. # Set to 1 for extra debug info, otherwise comment it out or set to zero # garberw fixme turned debugging on debug = 0 # debug = 1 # Root directory of the weewx data file hierarchy for this station WEEWX_ROOT = / # Whether to log successful operations. May get overridden below. # garberw # log_success = True log_success = False # Whether to log unsuccessful operations. May get overridden below. log_failure = True # log_failure = False # How long to wait before timing out a socket (FTP, HTTP) connection (note this is from version 4.6.1 may not apply here garberw) socket_timeout = 20 # Do not modify this. It is used when installing and updating weewx. version = 4.7.0 ############################################################################## # This section is for information about the station. [Station] # Description of the station location # garberw # location = "My Little Town, Oregon" location = USA; CA; San Rafael; Lucas Valley; Creekside Dr.; Atlas; # Latitude in decimal degrees. Negative for southern hemisphere # garberw # latitude = 0.00 latitude = 38.03511971394813 # Longitude in decimal degrees. Negative for western hemisphere. # garberw # longitude = 0.00 longitude = -122.5868406517824 # Altitude of the station, with the unit it is in. This is used only # if the hardware cannot supply a value. # garberw # altitude = 700, foot # Choose 'foot' or 'meter' for unit # garberw ground # altitude = 192, foot # Choose 'foot' or 'meter' for unit # garberw ground fixme add 13' or so for pole acurite atlas is on # 63 meters altitude = 207, foot # Choose 'foot' or 'meter' for unit # Set to type of station hardware. There must be a corresponding stanza # in this file, which includes a value for the 'driver' option. # garberw # station_type = Simulator station_type = SDR # If you have a website, you may specify an URL. This is required if you # intend to register your station. #station_url = http://www.example.com # 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) # garberw # week_start = 6 week_start = 0 ############################################################################## [SDR] # This section is for the software-defined radio driver. # The driver to use # /usr/share/weewx/user/sdr.py --OR-- # /usr/share/weewx/user/weewx_atlas_adafruit.py # driver = user.sdr driver = user.weewx_atlas_adafruit # garberw default # this is configured in /etc/rtl_433/rtl_433.conf # cmd = rtl_433 -M utc -F json # garberw added because # lacrosse uses freq -f 433.92M protocol -R 73 (can be listed twice -R 73 -R 73) # acurite uses freq -f 433.92M protocol -R 40 # ambient uses freq -f 915.??M protocol -R 78 (same as fine offset) # -H 30 means hop freq every 30 seconds # cmd = rtl_433 -f 433.92M -f 915M -H 30 -M utc -F json -R 40 -R 78 # garberw default # filename of usb port to read indoor temperature; humidity; pressure; # weewx server usb port /dev/ttyACMwa connected to arduino with program # /home/garberw/Atlas/weather_atlas/weather_atlas.ino # fname_thpusb = /dev/ttyACMwa # garberw # fixme # log_unknown_sensors = False log_unknown_sensors = True # garberw # fixme # log_unmapped_sensors = False log_unmapped_sensors = True # garberw added sensor_map [[sensor_map]] # calculated begin ====================================== from [StdWXCalculate] # shown based on /usr/share/weewx/weewx/wxformulas.py # shown based on /usr/share/weewx/weewx/wxxtypes.py # which can be derived from (inTemp inHumidity outTemp outHumidity altitude); # not anything else like rain or wind; ###### T = temperature ###### H = relative humidity ###### V = wind speed ###### A = altitude ###### P = pressure ## basic or derived from B ###### B = barometer ## basic or derived from P ###### W = rain ###### LA= latitude ###### LO= longitude ### pressure (T,H,B) ## either P or B; ### altimeter (P) ### appTemp (T,H,V) ### barometer (P,A) ## either P or B; ### cloudbase (T,H,A) ### dewpoint (T,H) ### ET (many) ## ???? ### heatindex (T,H) ### humidex (T,H) ### inDewpoint (T,H) ### maxSolarRad(LA,LO,A) ### rainRate (W) ### windchill (T,V) ### windrun (V) # calculated end ====================================== # driver weewx-sdr and rtl_433 output begin ====================================== # assign to fields of database in /usr/share/weewx/user/garberw_schema.py # Fine Offset WH32B ============================ INSIDE; has pressure P; # Ambient Weather WH32B = Fine Offset WH32B # fixme changed 80.FOWH32BPacket to 202.FOWH32BPacket # switching from WH25 to WH32B 2022.08.09 # inTempBatteryStatus = battery.202.FOWH32BPacket # inTemp = temperature.202.FOWH32BPacket # inHumidity = humidity.202.FOWH32BPacket ## fixme check this is actually pressure and not barometer # pressure = pressure.202.FOWH32BPacket ## inRssi = rssi.202.FOWH32BPacket ## inSnr = snr.202.FOWH32BPacket ## inNoise = noise.202.FOWH32BPacket # AcuRite Atlas ============================ OUTSIDE # this id was 0229; can use wildcard *; outTempBatteryStatus = battery.*.AcuriteAtlasPacket outTemp = temperature.*.AcuriteAtlasPacket outHumidity = humidity.*.AcuriteAtlasPacket luminosity = lux.*.AcuriteAtlasPacket # fixme need conversion; this is made-up; # radiation = lux.*.AcuriteAtlasPacket rain_total = rain_total.*.AcuriteAtlasPacket UV = uv.*.AcuriteAtlasPacket windSpeed = wind_speed.*.AcuriteAtlasPacket windDir = wind_dir.*.AcuriteAtlasPacket # outRssi = rssi.*.AcuriteAtlasPacket # outSnr = snr.*.AcuriteAtlasPacket # outNoise = noise.*.AcuriteAtlasPacket rxCheckPercent = snr.*.AcuriteAtlasPacket # AcuriteAtlas with Adafruit extension ==================== INSIDE inTemp = inTemp.*.AcuriteAtlasPacket inHumidity = inHumidity.*.AcuriteAtlasPacket # fixme check this is actually pressure and not barometer pressure = pressure.*.AcuriteAtlasPacket altitude = altitude.*.AcuriteAtlasPacket gas_resistance = gas_resistance.*.AcuriteAtlasPacket iaq = iaq.*.AcuriteAtlasPacket # driver weewx-sdr and rtl_433 output end ====================================== [[deltas]] rain = rain_total ############################################################################## [Simulator] # This section is 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. Format is YYYY-mm-ddTHH:MM. If not specified, the default # is to use the present time. #start = 2011-01-01T00:00 # The driver to use: driver = weewx.drivers.simulator ############################################################################## # This section is for uploading data to Internet sites [StdRESTful] # Uncomment and change to override logging for uploading services. # log_success = True # log_failure = True log_success = False log_failure = True [[StationRegistry]] # To register this weather station with weewx, set this to true, # then fill out option 'station_url' above. register_this_station = false [[AWEKAS]] # This section is for configuring posts to AWEKAS. # If you wish to post to AWEKAS, set the option 'enable' to true, then specify a username # and password. To guard against parsing errors, put the password in quotes. enable = false username = replace_me password = replace_me [[CWOP]] # This section is for configuring posts to CWOP. # If you wish to post to CWOP, set the option 'enable' to true, # then specify the station ID (e.g., CW1234). enable = false station = replace_me # If this is an APRS (radio amateur) station, specify the # passcode (e.g., 12345). Otherwise, ignore. passcode = replace_me [[PWSweather]] # This section is for configuring posts to PWSweather.com. # If you wish to post to PWSweather.com, set the option 'enable' to true, then specify a # station and password. To guard against parsing errors, put the password in quotes. enable = false station = replace_me password = replace_me [[WOW]] # This section is for configuring posts to WOW. # If you wish to post to WOW, set the option 'enable' to true, then specify a station and # password. To guard against parsing errors, put the password in quotes. enable = false station = replace_me password = replace_me [[Wunderground]] # This section is for configuring posts to the Weather Underground. # If you wish to post to the Weather Underground, set the option 'enable' to true, then # specify a station (e.g., 'KORHOODR3') and password. To guard against parsing errors, put # the password in quotes. enable = false station = replace_me password = replace_me # If you plan on using wunderfixer, set the following # to your API key: api_key = replace_me # Set the following to True to have weewx use the WU "Rapidfire" # protocol. Not all hardware can support it. See the User's Guide. rapidfire = False ############################################################################## # This section specifies what reports, using which skins, to generate. [StdReport] # Where the skins reside, relative to WEEWX_ROOT # SKIN_ROOT = /etc/weewx/skins SKIN_ROOT = /usr/share/weewx/user/skins # Where the generated reports should go, relative to WEEWX_ROOT # fixme HTML_ROOT = /var/www/html/weewx/weewx_atlas # Uncomment and change to override logging for reports # garberw # log_success = True # log_failure = True log_success = False log_failure = True # The database binding indicates which data should be used in reports. data_binding = wx_binding # Each of the following subsections defines a report that will be run. # See the customizing guide to change the units, plot types and line # colors, modify the fonts, display additional sensor data, and other # customizations. Many of those changes can be made here by overriding # parameters, or by modifying templates within the skin itself. [[SeasonsReport]] # The SeasonsReport uses the 'Seasons' skin, which contains the # images, templates and plots for the report. skin = Seasons enable = true # garberw added next two sections ========> # names for plot groups are from plot names defined in ImageGenerator section of # skin.conf e.g. daytempdew; weektempdew; monthtempdew; yeartempdew; [[[DisplayOptions]]] plot_groups = tempdew, hum, tempfeel, tempin, humin, barometer, wind, winddir, windvec, UV, radiation, ET, gas_resistance, iaq, rain, tempext, humext, tempext2, humext2, lightning, templeaf, wetleaf, tempsoil, moistsoil, pm [[[ImageGenerator]]] # garberw default # vector_rotate = 90 vector_rotate = 0 # garberw do not plot gaps >= 0.05 * 24hr # garberw default # line_gap_fraction = 0.05 line_gap_fraction = 0.3 # default # top_label_font_size = 14 top_label_font_size = 12 [[[[day_images]]]] # garberw undocumented; not sure if this does anything xscale = None, None, 1 # garberw x_label_format = %H:%M # x_label_format = %H # garberw undocumented; must be > 0 x_label_spacing = 1 # garberw undocumented; not sure if this does anything # x_nticks = 16 x_interval = 7200 color = "#66CDAA" [[[[[daytempdew]]]]] [[[[[[dewpoint]]]]]] color = DarkGreen [[[[[daytempfeel]]]]] [[[[[[heatindex]]]]]] color = DarkGreen [[[[[dayrain]]]]] # Make sure the y-axis increment is at least 0.02 for the rain plot yscale = None, None, 0.02 [[[[[[rain]]]]]] fill_color = "#000000" label = AT Rain (hourly total) [[[[[daywind]]]]] [[[[[[windGust]]]]]] color = DarkGreen [[[[[dayET]]]]] # Make sure the y-axis increment is at least 0.02 for the ET plot yscale = None, None, 0.02 [[[[[[ET]]]]]] label = AT Evapotranspiration (hourly total) [[[[[dayUV]]]]] # If your radiation sensor has a bounded scale, enforce that here. # yscale = 0, 16, 1 [[[[week_images]]]] color = "#66CDAA" [[[[[weektempdew]]]]] [[[[[[dewpoint]]]]]] color = DarkGreen [[[[[weektempfeel]]]]] [[[[[[heatindex]]]]]] color = DarkGreen [[[[[weekrain]]]]] # Make sure the y-axis increment is at least 0.02 for the rain plot yscale = None, None, 0.02 [[[[[[rain]]]]]] fill_color = "#000000" label = AT Rain (daily total) [[[[[weekwind]]]]] [[[[[[windGust]]]]]] color = DarkGreen [[[[[weekET]]]]] # Make sure the y-axis increment is at least 0.02 for the ET plot yscale = None, None, 0.02 [[[[[[ET]]]]]] label = AT Evapotranspiration (daily total) [[[[[weekUV]]]]] # If your radiation sensor has a bounded scale, enforce that here. # yscale = 0, 16, 1 [[[[month_images]]]] color = "#66CDAA" [[[[[monthtempdew]]]]] [[[[[[dewpoint]]]]]] color = DarkGreen [[[[[monthtempfeel]]]]] [[[[[[heatindex]]]]]] color = DarkGreen [[[[[monthrain]]]]] # Make sure the y-axis increment is at least 0.02 for the rain plot yscale = None, None, 0.02 [[[[[[rain]]]]]] fill_color = "#000000" label = AT Rain (daily total) [[[[[monthwind]]]]] [[[[[[windGust]]]]]] color = DarkGreen [[[[[monthET]]]]] # Make sure the y-axis increment is at least 0.02 for the ET plot yscale = None, None, 0.02 [[[[[[ET]]]]]] label = AT Evapotranspiration (daily total) [[[[[monthUV]]]]] # If your radiation sensor has a bounded scale, enforce that here. # yscale = 0, 16, 1 [[[[year_images]]]] color = "#66CDAA" [[[[[yeartempdew]]]]] [[[[[[dewpoint]]]]]] color = DarkGreen [[[[[yeartempfeel]]]]] [[[[[[heatindex]]]]]] color = DarkGreen [[[[[yearrain]]]]] # Make sure the y-axis increment is at least 0.02 for the rain plot yscale = None, None, 0.02 [[[[[[rain]]]]]] fill_color = "#000000" label = AT Rain (weekly total) [[[[[yearwind]]]]] [[[[[[windGust]]]]]] color = DarkGreen [[[[[yearET]]]]] # Make sure the y-axis increment is at least 0.02 for the ET plot yscale = None, None, 0.02 [[[[[[ET]]]]]] label = AT Evapotranspiration (weekly total) [[[[[yearUV]]]]] # If your radiation sensor has a bounded scale, enforce that here. # yscale = 0, 16, 1 # garberw added prev section <======== [[SmartphoneReport]] # The SmartphoneReport uses the 'Smartphone' skin, and the images and # files are placed in a dedicated subdirectory. skin = Smartphone enable = false HTML_ROOT = /var/www/html/weewx/smartphone/weewx_atlas [[MobileReport]] # The MobileReport uses the 'Mobile' skin, and the images and files # are placed in a dedicated subdirectory. skin = Mobile enable = false HTML_ROOT = /var/www/html/weewx/mobile/weewx_atlas [[StandardReport]] # This is the old "Standard" skin. By default, it is not enabled. skin = Standard enable = false [[FTP]] # FTP'ing the results to a webserver is treated as just another report, # albeit one with an unusual report generator! skin = Ftp # If you wish to use FTP, set "enable" to "true", then # fill out the next four lines. # Use quotes around passwords to guard against parsing errors. enable = false user = replace_me password = replace_me server = replace_me # The ftp server name, e.g, www.myserver.org path = replace_me # The destination directory, e.g., /weather # Set to True for an FTP over TLS (FTPS) connection. Not all servers # support this. secure_ftp = False # To upload files from something other than what HTML_ROOT is set # to above, specify a different HTML_ROOT here. #HTML_ROOT = /var/www/html/weewx # Most FTP servers use port 21 port = 21 # Set to 1 to use passive mode, zero for active mode passive = 1 [[RSYNC]] # rsync'ing to a webserver is treated as just another report skin = Rsync # If you wish to use rsync, you must configure passwordless ssh using # public/private key authentication from the user account that weewx # runs to the user account on the remote machine where the files # will be copied. # # If you wish to use rsync, set "enable" to "true", then # fill out server, user, and path. # The server should appear in your .ssh/config file. # The user is the username used in the identity file. # The path is the destination directory, such as /var/www/html/weather. # Be sure that the user has write permissions on the destination! enable = false server = replace_me user = replace_me path = replace_me # To upload files from something other than what HTML_ROOT is set # to above, specify a different HTML_ROOT here. #HTML_ROOT = /var/www/html/weewx # 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 # Options in the [[Defaults]] section below will apply to all reports. # What follows are a few of the more popular options you may want to # uncomment, then change. [[Defaults]] # Which language to use for all reports. Not all skins support all languages. # You can override this for individual reports. lang = en # Which unit system to use for all reports. Choices are 'us', 'metric', or 'metricwx'. # You can override this for individual reports. unit_system = us [[[Units]]] # Option "unit_system" above sets the general unit system, but overriding specific unit # groups is possible. These are popular choices. Uncomment and set as appropriate. # NB: The unit is always in the singular. I.e., 'mile_per_hour', # NOT 'miles_per_hour' [[[[Groups]]]] # group_altitude = meter # Options are 'foot' or 'meter' # group_pressure = mbar # Options are 'inHg', 'mmHg', 'mbar', or 'hPa' # group_rain = mm # Options are 'inch', 'cm', or 'mm' # group_rainrate = mm_per_hour # Options are 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour' # group_temperature = degree_C # Options are 'degree_C', 'degree_F', or 'degree_K' # The following line is used to keep the above lines indented properly. # It can be ignored. unused = unused # Uncommenting the following section frequently results in more # attractive formatting of times and dates, but may not work in # your locale. [[[[TimeFormats]]]] # day = %H:%M # week = %H:%M on %A # month = %d-%b-%Y %H:%M # year = %d-%b-%Y %H:%M # rainyear = %d-%b-%Y %H:%M # current = %d-%b-%Y %H:%M # ephem_day = %H:%M # ephem_year = %d-%b-%Y %H:%M # The following line is used to keep the above lines indented properly. # It can be ignored. unused = unused [[[Labels]]] # Users frequently change the labels for these observation types [[[[Generic]]]] # inHumidity = Inside Humidity # inTemp = Inside Temperature # outHumidity = Outside Humidity # outTemp = Outside Temperature # extraTemp1 = Temperature1 # extraTemp2 = Temperature2 # extraTemp3 = Temperature3 # garberw ================================== barometer = AT barometer outTemp = AT outTemp outHumidity = AT outHumidity inTemp = AT inTemp inHumidity = AT inHumidity windSpeed = AT windSpeed windGust = AT windGust windDir = AT windDir windvec = AT windvec UV = AT UV radiation = AT radiation altitude = AT altitude gas_resistance = AT gas_resistance iaq = AT iaq # garberw ================================== # The following line is used to keep the above lines indented properly. # It can be ignored. unused = unused ############################################################################## # This service acts as a filter, converting the unit system coming from # the hardware to a unit system in the database. [StdConvert] # 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' ############################################################################## # This section can adjust data using calibration expressions. [StdCalibrate] [[Corrections]] # For each type, an arbitrary calibration expression can be given. # It should be in the units defined in the StdConvert section. # Example: foo = foo + 0.2 # garberw added this line; see; # https://groups.google.com/g/weewx-user/c/oWp-9LivDJo/m/TCRPIKq3AgAJ # approximation; inTemp = inTemp - 4.0 radiation = luminosity / 126.7 pressure = pressure + 0.05 UV = UV * 3.3333333333 ############################################################################## # This section is for quality control checks. If units are not specified, # values must be in the units defined in the StdConvert section. [StdQC] [[MinMax]] barometer = 26, 32.5, inHg pressure = 24, 34.5, inHg outTemp = -40, 120, degree_F inTemp = 10, 120, degree_F outHumidity = 0, 100 inHumidity = 0, 100 windSpeed = 0, 120, mile_per_hour rain = 0, 10, inch ############################################################################## # This section controls the origin of derived values. [StdWXCalculate] [[Calculations]] # How to calculate derived quantities. Possible values are: # hardware - use the value provided by hardware # software - use the value calculated by weewx # prefer_hardware - use value provide by hardware if available, # otherwise use value calculated by weewx pressure = prefer_hardware altimeter = prefer_hardware appTemp = prefer_hardware barometer = prefer_hardware cloudbase = prefer_hardware dewpoint = prefer_hardware ET = prefer_hardware heatindex = prefer_hardware humidex = prefer_hardware inDewpoint = prefer_hardware maxSolarRad = prefer_hardware rainRate = prefer_hardware windchill = prefer_hardware windrun = prefer_hardware ############################################################################## # For hardware that supports it, this section controls how often the # onboard clock gets updated. [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 ############################################################################## # This section is for configuring the archive service. [StdArchive] # must be evenly divisible by 60 !!!!!!!!!!!!!!!!!!!! # If the station hardware supports data logging then the archive interval # will be downloaded from the station. Otherwise, specify it (in seconds). # default archive_interval = 300 # garberw FIXME set to read weather period T=60 sec # archive_interval = 30 # archive_interval = 120 # this works for two frequencies with atlas (433mhz) and wh32b (915mhz) # archive_interval = 300 # this works for one frequency with atlas (433mhz) and wh25 (433mhz) # minimum would be 60 assuming no errors (nulls) # this rapid interval generates a lot of data; check for nulls; # archive_interval = 120 # archive_interval = 240 # If possible, new archive records are downloaded from the station # hardware. If the hardware does not support this, then new archive # records will be generated in software. # 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 # Uncomment and change to override logging for archive operations # garberw default # log_success = True # log_failure = True log_success = False log_failure = True # The data binding used to save archive records data_binding = wx_binding ############################################################################## # This section binds a data store to a database. [DataBindings] [[wx_binding]] # The database must match one of the sections in [Databases]. # This is likely to be the only option you would want to change. database = archive_sqlite # The name of the table within the database table_name = archive # The manager handles aggregation of data for historical summaries manager = weewx.manager.DaySummaryManager # The schema defines the structure of the database. # It is *only* used when the database is created. # schema = schemas.wview_extended.schema schema = user.garberw_schema.schema ############################################################################## # This section defines various databases. [Databases] # A SQLite database is simply a single file [[archive_sqlite]] database_name = weewx_atlas.sdb database_type = SQLite # MySQL [[archive_mysql]] database_name = weewx_atlas database_type = MySQL ############################################################################## # This section defines defaults for the different types of databases. [DatabaseTypes] # Defaults for SQLite databases [[SQLite]] driver = weedb.sqlite # Directory in which the database files are located SQLITE_ROOT = /var/lib/weewx # Defaults for MySQL databases [[MySQL]] driver = weedb.mysql # The host where the database is located host = localhost # The user name for logging in to the host user = weewx # The password (use quotes to guard against parsing errors) password = weewx ############################################################################## # This section configures the internal weewx engine. [Engine] # The following section specifies which services should be run and in what order. [[Services]] prep_services = weewx.engine.StdTimeSynch data_services = , process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate xtype_services = weewx.wxxtypes.StdWXXTypes, weewx.wxxtypes.StdPressureCooker, weewx.wxxtypes.StdRainRater, weewx.wxxtypes.StdDelta 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
############################################################################### # SEASONS SKIN CONFIGURATION FILE # # Copyright (c) 2018-2021 Tom Keffer <[email protected]> and Matthew Wall # # See the file LICENSE.txt for your rights. # ############################################################################### SKIN_NAME = Seasons SKIN_VERSION = 4.8.0 ############################################################################### # The following section is for any extra tags that you want to be available in # the templates [Extras] # This radar image would be available as $Extras.radar_img # radar_img = https://radblast.wunderground.com/cgi-bin/radar/WUNIDS_map?station=RTX&brand=wui&num=18&delay=15&type=N0R&frame=0&scale=1.000&noclutter=1&showlabels=1&severe=1 # This URL will be used as the image hyperlink: # radar_url = https://radar.weather.gov/?settings=v1_eyJhZ2VuZGEiOnsiaWQiOm51bGwsImNlbnRlciI6Wy0xMjEuOTE3LDQ1LjY2XSwiem9vbSI6OH0sImJhc2UiOiJzdGFuZGFyZCIsImNvdW50eSI6ZmFsc2UsImN3YSI6ZmFsc2UsInN0YXRlIjpmYWxzZSwibWVudSI6dHJ1ZSwic2hvcnRGdXNlZE9ubHkiOmZhbHNlfQ%3D%3D#/ # Similar to radar, but for satellite image. #satellite_img = http://images.intellicast.com/WxImages/SatelliteLoop/hipacsat_None_anim.gif #satellite_url = http://images.intellicast.com/WxImages/SatelliteLoop/hipacsat_None_anim.gif # To display a map, enter an API key for google maps #google_maps_apikey = xxx # If you have a Google Analytics ID, uncomment and edit the next line, and # the analytics code will be included in your generated HTML files: #googleAnalyticsId = UA-12345678-1 ############################################################################### # The following section contains variables that determine which observations # and plots will be shown in the template files, and their order. Like other # configuration options, these can be overridden in the weewx config file. [DisplayOptions] # Show link to RSS feed? show_rss = True # Show link to NOAA-style summary reports? show_reports = True # This list determines which types will appear in the "current conditions" # section, as well as in which order. # garberw observations_current = outTemp, heatindex, windchill, dewpoint, outHumidity, barometer, windSpeed, rain, rainRate, UV, radiation, lightning_strike_count, inTemp, inHumidity, gas_resistance, iaq, extraTemp1, extraHumid1, extraTemp2, extraHumid2, caseTemp1, caseHumid1, pm1_0, pm2_5, pm10_0 # This list determines which types will appear in the "statistics" and # "statistical summary" sections, as well as in which order. # garberw removed cpuTemp1 ... cpuTemp8 observations_stats = outTemp, heatindex, windchill, dewpoint, outHumidity, barometer, windSpeed, rain, rainRate, ET, hail, hailRate, snow, UV, radiation, lightning_strike_count, lightning_distance, inTemp, inHumidity, gas_resistance, iaq, extraTemp1, extraHumid1, extraTemp2, extraHumid2, extraTemp3, extraHumid3, extraTemp4, extraHumid4, extraTemp5, extraHumid5, extraTemp6, extraHumid6, extraTemp7, extraHumid7, extraTemp8, extraHumid8, caseTemp1, caseTemp2, caseTemp3, caseTemp4, caseTemp5, caseTemp6, caseTemp7, caseTemp8, caseHumid1, caseHumid2, caseHumid3, caseHumid4, caseHumid5, caseHumid6, caseHumid7, caseHumid8, leafTemp1, leafTemp2, leafWet1, leafWet2, soilTemp1, soilTemp2, soilTemp3, soilTemp4, soilMoist1, soilMoist2, soilMoist3, soilMoist4, pm1_0, pm2_5, pm10_0, co, co2, nh3, no2, o3, so2 # This list determines which types will appear in the RSS feed. observations_rss = outTemp, inTemp, barometer, windSpeed, rain, rainRate, windchill, heatindex, dewpoint, outHumidity, inHumidity # Some observations display a sum rather than min/max values obs_type_sum = rain, ET, hail, snow, lightning_strike_count # Some observations display only the max value obs_type_max = rainRate, hailRate, snowRate, UV # The sensor status information is used in the sensor pages. These lists # determine which database fields will be shown, as well as the order in # which they will be displayed. sensor_connections = rxCheckPercent, signal1, signal2, signal3, signal4, signal5, signal6, signal7, signal8 sensor_batteries = outTempBatteryStatus, inTempBatteryStatus, rainBatteryStatus, hailBatteryStatus, snowBatteryStatus, windBatteryStatus, uvBatteryStatus, txBatteryStatus, batteryStatus1, batteryStatus2, batteryStatus3, batteryStatus4, batteryStatus5, batteryStatus6, batteryStatus7, batteryStatus8 sensor_voltages = consBatteryVoltage, heatingVoltage, supplyVoltage, referenceVoltage # This list determines which plots will be shown, as well as the order in # which they will be displayed. The names refer to the plots defined in # the ImageGenerator section, without any time span prefix. For example, # the name 'wind' refers to 'daywind', 'weekwind', 'monthwind', and # 'yearwind'. # garberw plot_groups = barometer, tempdew, tempfeel, hum, wind, winddir, windvec, rain, ET, UV, radiation, lightning, tempin, humin, gas_resistance, iaq, tempext, humext, tempext2, humext2, tempcpu, tempcpu2, tempcase, tempcase2, humcase, humcase2, templeaf, wetleaf, tempsoil, moistsoil, pm telemetry_plot_groups =rx, volt # The list of time spans used within the skin periods = day, week, month, year ############################################################################### # The CheetahGenerator creates files from templates. This section # specifies which files will be generated from which template. [CheetahGenerator] # Possible encodings include 'html_entities', 'strict_ascii', 'normalized_ascii', # as well as those listed in https://docs.python.org/3/library/codecs.html#standard-encodings encoding = html_entities [[SummaryByMonth]] # Reports that summarize "by month" [[[NOAA_month]]] encoding = normalized_ascii template = NOAA/NOAA-%Y-%m.txt.tmpl [[SummaryByYear]] # Reports that summarize "by year" [[[NOAA_year]]] encoding = normalized_ascii template = NOAA/NOAA-%Y.txt.tmpl [[ToDate]] # Reports that show statistics "to date", such as day-to-date, # week-to-date, month-to-date, etc. [[[index]]] template = index.html.tmpl [[[statistics]]] template = statistics.html.tmpl [[[telemetry]]] template = telemetry.html.tmpl [[[tabular]]] template = tabular.html.tmpl [[[celestial]]] template = celestial.html.tmpl # Uncomment the following to generate a celestial page only once # an hour instead of every report cycle. # stale_age = 3600 [[[RSS]]] template = rss.xml.tmpl ############################################################################### # The CopyGenerator copies files from one location to another. [CopyGenerator] # List of files to be copied only the first time the generator runs copy_once = seasons.css, seasons.js, favicon.ico, font/*.woff, font/*.woff2 # List of files to be copied each time the generator runs # copy_always = ############################################################################### # The ImageGenerator creates image plots of data. [ImageGenerator] # This section lists all the images to be generated, what SQL types are to be included in them, # along with many plotting options. There is a default for almost everything. Nevertheless, # values for most options are included to make it easy to see and understand the options. # # Nearly all types in the wview-extended schema are included. However, because of the # 'skip_if_empty' option, only the plots with non-null data will be actually produced. # # Fonts can be anything accepted by the Python Imaging Library (PIL), which includes truetype # (.ttf), or PIL's own font format (.pil). Note that "font size" is only used with truetype # (.ttf) fonts. For others, font size is determined by the bit-mapped size, usually encoded in # the file name (e.g., courB010.pil). A relative path for a font is relative to the SKIN_ROOT. # If a font cannot be found, then a default font will be used. # # Colors can be specified any of three ways: # 1. Notation 0xBBGGRR; # 2. Notation #RRGGBB; or # 3. Using an English name, such as 'yellow', or 'blue'. # So, 0xff0000, #0000ff, or 'blue' would all specify a pure blue color. image_width = 500 image_height = 180 image_background_color = "#ffffff" chart_background_color = "#ffffff" chart_gridline_color = "#d0d0d0" # Setting to 2 or more might give a sharper image with fewer jagged edges anti_alias = 1 top_label_font_path = font/OpenSans-Bold.ttf top_label_font_size = 14 unit_label_font_path = font/OpenSans-Bold.ttf unit_label_font_size = 12 unit_label_font_color = "#787878" bottom_label_font_path = font/OpenSans-Regular.ttf bottom_label_font_size = 12 bottom_label_font_color = "#787878" bottom_label_offset = 3 axis_label_font_path = font/OpenSans-Regular.ttf axis_label_font_size = 10 axis_label_font_color = "#787878" # Options for the compass rose, used for progressive vector plots rose_label = N rose_label_font_path = font/OpenSans-Regular.ttf rose_label_font_size = 9 rose_label_font_color = "#222222" # Default colors for the plot lines. These can be overridden for # individual lines using option 'color'. chart_line_colors = "#4282b4", "#b44242", "#42b442", "#42b4b4", "#b442b4" # Default fill colors for bar charts. These can be overridden for # individual bar plots using option 'fill_color'. chart_fill_colors = "#72b2c4", "#c47272", "#72c472", "#72c4c4", "#c472c4" # Type of line. Options are 'solid' or 'none'. line_type = 'solid' # Size of marker in pixels marker_size = 8 # Type of marker. Options are 'cross', 'x', 'circle', 'box', or 'none'. marker_type ='none' # The following option merits an explanation. The y-axis scale used for # plotting can be controlled using option 'yscale'. It is a 3-way tuple, # with values (ylow, yhigh, min_interval). If set to "None", a parameter is # set automatically, otherwise the value is used. However, in the case of # min_interval, what is set is the *minimum* y-axis tick interval. yscale = None, None, None # For progressive vector plots, you can choose to rotate the vectors. # Positive is clockwise. # For my area, westerlies overwhelmingly predominate, so by rotating # positive 90 degrees, the average vector will point straight up. vector_rotate = 90 # This defines what fraction of the difference between maximum and minimum # horizontal chart bounds is considered a gap in the samples and should not # be plotted. # garberw # line_gap_fraction = 0.05 line_gap_fraction = 0.3 # This controls whether day/night bands will be shown. They only look good # on plots wide enough to show individual days such as day and week plots. show_daynight = true # These control the appearance of the bands if they are shown. # Here's a monochrome scheme: daynight_day_color = "#fdfaff" daynight_night_color = "#dfdfe2" daynight_edge_color = "#e0d8d8" # Here's an alternative, using a blue/yellow tint: #daynight_day_color = "#fffff8" #daynight_night_color = "#f8f8ff" #daynight_edge_color = "#fff8f8" # Default will be a line plot of width 1, without aggregation. # Can get overridden at any level. plot_type = line width = 1 aggregate_type = none # Do not generate a plot if it does not have any non-null data: skip_if_empty = year # What follows is a list of subsections, each specifying a time span, such as a day, week, # month, or year. There's nothing special about them or their names: it's just a convenient way # to group plots with a time span in common. You could add a time span [[biweek_images]] and # add the appropriate time length, aggregation strategy, etc., without changing any code. # # Within each time span, each sub-subsection is the name of a plot to be generated for that # time span. The generated plot will be stored using that name, in whatever directory was # specified by option 'HTML_ROOT' in weewx.conf. # # With one final nesting (four brackets!) is the sql type of each line to be included within # that plot. # # Unless overridden, leaf nodes inherit options from their parent. [[day_images]] x_label_format = %H:%M bottom_label_format = %x %X time_length = 97200 # 27 hours [[[daybarometer]]] [[[[barometer]]]] [[[daytempdew]]] [[[[outTemp]]]] [[[[dewpoint]]]] [[[daytempfeel]]] [[[[windchill]]]] [[[[heatindex]]]] [[[dayhum]]] [[[[outHumidity]]]] [[[daytempin]]] [[[[inTemp]]]] [[[dayhumin]]] [[[[inHumidity]]]] # Plot extra temperatures. You can add more temperature sensors here. # However, you might want to make a second plot if your system has more # than 3 extra sensors, otherwise the plots can become rather busy. [[[daytempext]]] yscale = None, None, 0.5 [[[[extraTemp1]]]] [[[[extraTemp2]]]] [[[[extraTemp3]]]] [[[[extraTemp4]]]] [[[daytempext2]]] yscale = None, None, 0.5 [[[[extraTemp5]]]] [[[[extraTemp6]]]] [[[[extraTemp7]]]] [[[[extraTemp8]]]] [[[dayhumext]]] [[[[extraHumid1]]]] [[[[extraHumid2]]]] [[[[extraHumid3]]]] [[[[extraHumid4]]]] [[[dayhumext2]]] [[[[extraHumid5]]]] [[[[extraHumid6]]]] [[[[extraHumid7]]]] [[[[extraHumid8]]]] [[[daytempcpu]]] yscale = None, None, 0.5 [[[[cpuTemp1]]]] [[[[cpuTemp2]]]] [[[[cpuTemp3]]]] [[[[cpuTemp4]]]] [[[daytempcpu2]]] yscale = None, None, 0.5 [[[[cpuTemp5]]]] [[[[cpuTemp6]]]] [[[[cpuTemp7]]]] [[[[cpuTemp8]]]] [[[daygas_resistance]]] [[[[gas_resistance]]]] aggregate_type = avg aggregate_interval = 120 label = gas resistance (kOhm) [[[dayiaq]]] [[[[iaq]]]] aggregate_type = avg aggregate_interval = 120 label = index of air quality (IAQ) [[[daytempcase]]] yscale = None, None, 0.5 [[[[caseTemp1]]]] [[[[caseTemp2]]]] [[[[caseTemp3]]]] [[[[caseTemp4]]]] [[[daytempcase2]]] yscale = None, None, 0.5 [[[[caseTemp5]]]] [[[[caseTemp6]]]] [[[[caseTemp7]]]] [[[[caseTemp8]]]] [[[dayhumcase]]] [[[[caseHumid1]]]] [[[[caseHumid2]]]] [[[[caseHumid3]]]] [[[[caseHumid4]]]] [[[dayhumcase2]]] [[[[caseHumid5]]]] [[[[caseHumid6]]]] [[[[caseHumid7]]]] [[[[caseHumid8]]]] [[[daytempleaf]]] [[[[leafTemp1]]]] [[[[leafTemp2]]]] [[[daywetleaf]]] [[[[leafWet1]]]] [[[[leafWet2]]]] [[[daytempsoil]]] [[[[soilTemp1]]]] [[[[soilTemp2]]]] [[[[soilTemp3]]]] [[[[soilTemp4]]]] [[[daymoistsoil]]] [[[[soilMoist1]]]] [[[[soilMoist2]]]] [[[[soilMoist3]]]] [[[[soilMoist4]]]] [[[daypm]]] [[[[pm1_0]]]] [[[[pm2_5]]]] [[[[pm10_0]]]] [[[daylightning]]] yscale = None, None, 1 plot_type = bar [[[[lightning_strike_count]]]] aggregate_type = sum aggregate_interval = hour label = Lightning (hourly total) [[[dayrain]]] # Make sure the y-axis increment is at least 0.02 for the rain plot yscale = None, None, 0.02 plot_type = bar # garberw was under subtopic aggregate_type = sum aggregate_interval = hour [[[[rain]]]] label = Rain (hourly total) [[[daywind]]] # garberw was under subtopic # line_type = None line_type = solid aggregate_interval = 3600 marker_type = box marker_size = 2 [[[[windSpeed]]]] aggregate_type = avg [[[[windGust]]]] aggregate_type = max [[[daywinddir]]] # Hardwire in the y-axis scale for wind direction yscale = 0.0, 360.0, 45.0 # garberw was under subtopic # line_type = None line_type = solid marker_type = box marker_size = 2 aggregate_type = avg aggregate_interval = 3600 [[[[windDir]]]] [[[daywindvec]]] # garberw was under subtopic aggregate_type = avg aggregate_interval = 3600 plot_type = vector [[[[windvec]]]] [[[dayET]]] # Make sure the y-axis increment is at least 0.02 for the ET plot yscale = None, None, 0.02 plot_type = bar # garberw was under subtopic aggregate_type = sum aggregate_interval = hour [[[[ET]]]] label = Evapotranspiration (hourly total) [[[dayUV]]] # If your radiation sensor has a bounded scale, enforce that here. # yscale = 0, 16, 1 # garberw was under subtopic aggregate_type = avg aggregate_interval = 600 [[[[UV]]]] [[[dayradiation]]] [[[[radiation]]]] [[[dayrx]]] yscale = 0.0, 100.0, 25.0 [[[[rxCheckPercent]]]] [[[dayvolt]]] [[[[consBatteryVoltage]]]] [[[[heatingVoltage]]]] [[[[supplyVoltage]]]] [[[[referenceVoltage]]]] [[week_images]] x_label_format = %d bottom_label_format = %x %X time_length = 604800 # 7 days aggregate_type = avg aggregate_interval = hour [[[weekbarometer]]] [[[[barometer]]]] [[[weektempdew]]] [[[[outTemp]]]] [[[[dewpoint]]]] [[[weektempfeel]]] [[[[windchill]]]] [[[[heatindex]]]] [[[weektempin]]] [[[[inTemp]]]] [[[weektempext]]] yscale = None, None, 0.5 [[[[extraTemp1]]]] [[[[extraTemp2]]]] [[[[extraTemp3]]]] [[[[extraTemp4]]]] [[[weektempext2]]] yscale = None, None, 0.5 [[[[extraTemp5]]]] [[[[extraTemp6]]]] [[[[extraTemp7]]]] [[[[extraTemp8]]]] [[[weekhum]]] [[[[outHumidity]]]] [[[weekhumin]]] [[[[inHumidity]]]] [[[weekhumext]]] [[[[extraHumid1]]]] [[[[extraHumid2]]]] [[[[extraHumid3]]]] [[[[extraHumid4]]]] [[[weekhumext2]]] [[[[extraHumid5]]]] [[[[extraHumid6]]]] [[[[extraHumid7]]]] [[[[extraHumid8]]]] [[[weektempcpu]]] yscale = None, None, 0.5 [[[[cpuTemp1]]]] [[[[cpuTemp2]]]] [[[[cpuTemp3]]]] [[[[cpuTemp4]]]] [[[weektempcpu2]]] yscale = None, None, 0.5 [[[[cpuTemp5]]]] [[[[cpuTemp6]]]] [[[[cpuTemp7]]]] [[[[cpuTemp8]]]] [[[weekgas_resistance]]] [[[[gas_resistance]]]] aggregate_type = avg aggregate_interval = hour label = gas resistance (kOhm) [[[weekiaq]]] [[[[iaq]]]] aggregate_type = avg aggregate_interval = hour label = index of air quality (IAQ) [[[weektempcase]]] yscale = None, None, 0.5 [[[[caseTemp1]]]] [[[[caseTemp2]]]] [[[[caseTemp3]]]] [[[[caseTemp4]]]] [[[weektempcase2]]] yscale = None, None, 0.5 [[[[caseTemp5]]]] [[[[caseTemp6]]]] [[[[caseTemp7]]]] [[[[caseTemp8]]]] [[[weekhumcase]]] [[[[caseHumid1]]]] [[[[caseHumid2]]]] [[[[caseHumid3]]]] [[[[caseHumid4]]]] [[[weekhumcase2]]] [[[[caseHumid5]]]] [[[[caseHumid6]]]] [[[[caseHumid7]]]] [[[[caseHumid8]]]] [[[weektempleaf]]] [[[[leafTemp1]]]] [[[[leafTemp2]]]] [[[weekwetleaf]]] [[[[leafWet1]]]] [[[[leafWet2]]]] [[[weektempsoil]]] [[[[soilTemp1]]]] [[[[soilTemp2]]]] [[[[soilTemp3]]]] [[[[soilTemp4]]]] [[[weekmoistsoil]]] [[[[soilMoist1]]]] [[[[soilMoist2]]]] [[[[soilMoist3]]]] [[[[soilMoist4]]]] [[[weekpm]]] [[[[pm1_0]]]] [[[[pm2_5]]]] [[[[pm10_0]]]] [[[weeklightning]]] yscale = None, None, 1 plot_type = bar [[[[lightning_strike_count]]]] aggregate_type = sum aggregate_interval = day label = Lightning (daily total) [[[weekrain]]] yscale = None, None, 0.02 plot_type = bar # garberw was under subtopic aggregate_type = sum aggregate_interval = day [[[[rain]]]] label = Rain (daily total) [[[weekwind]]] # garberw was under subtopic # garberw # line_type = None line_type = solid marker_type = box marker_size = 2 [[[[windSpeed]]]] aggregate_type = avg [[[[windGust]]]] aggregate_type = max [[[weekwinddir]]] yscale = 0.0, 360.0, 45.0 # garberw # line_type = None line_type = solid # -------- marker_type = box marker_size = 2 [[[[windDir]]]] [[[weekwindvec]]] # garberw was under subtopic plot_type = vector [[[[windvec]]]] [[[weekET]]] yscale = None, None, 0.02 plot_type = bar # garberw was under subtopic aggregate_type = sum aggregate_interval = day [[[[ET]]]] label = Evapotranspiration (daily total) [[[weekUV]]] # yscale = 0, 16, 1 [[[[UV]]]] [[[weekradiation]]] [[[[radiation]]]] [[[weekrx]]] yscale = 0.0, 100.0, 25.0 [[[[rxCheckPercent]]]] [[[weekvolt]]] [[[[consBatteryVoltage]]]] [[[[heatingVoltage]]]] [[[[supplyVoltage]]]] [[[[referenceVoltage]]]] [[month_images]] x_label_format = %d bottom_label_format = %x %X time_length = 2592000 # 30 days aggregate_type = avg aggregate_interval = 10800 # 3 hours show_daynight = false [[[monthbarometer]]] [[[[barometer]]]] [[[monthtempdew]]] [[[[outTemp]]]] [[[[dewpoint]]]] [[[monthtempfeel]]] [[[[windchill]]]] [[[[heatindex]]]] [[[monthtempin]]] [[[[inTemp]]]] [[[monthtempext]]] yscale = None, None, 0.5 [[[[extraTemp1]]]] [[[[extraTemp2]]]] [[[[extraTemp3]]]] [[[[extraTemp4]]]] [[[monthtempext2]]] yscale = None, None, 0.5 [[[[extraTemp5]]]] [[[[extraTemp6]]]] [[[[extraTemp7]]]] [[[[extraTemp8]]]] [[[monthhum]]] [[[[outHumidity]]]] [[[monthhumin]]] [[[[inHumidity]]]] [[[monthhumext]]] [[[[extraHumid1]]]] [[[[extraHumid2]]]] [[[[extraHumid3]]]] [[[[extraHumid4]]]] [[[monthhumext2]]] [[[[extraHumid5]]]] [[[[extraHumid6]]]] [[[[extraHumid7]]]] [[[[extraHumid8]]]] [[[monthtempcpu]]] yscale = None, None, 0.5 [[[[cpuTemp1]]]] [[[[cpuTemp2]]]] [[[[cpuTemp3]]]] [[[[cpuTemp4]]]] [[[monthtempcpu2]]] yscale = None, None, 0.5 [[[[cpuTemp5]]]] [[[[cpuTemp6]]]] [[[[cpuTemp7]]]] [[[[cpuTemp8]]]] [[[monthgas_resistance]]] [[[[gas_resistance]]]] aggregate_type = avg aggregate_interval = 10800 label = gas resistance (kOhm) [[[monthiaq]]] [[[[iaq]]]] aggregate_type = avg aggregate_interval = 10800 label = index of air quality (IAQ) [[[monthtempcase]]] yscale = None, None, 0.5 [[[[caseTemp1]]]] [[[[caseTemp2]]]] [[[[caseTemp3]]]] [[[[caseTemp4]]]] [[[monthtempcase2]]] yscale = None, None, 0.5 [[[[caseTemp5]]]] [[[[caseTemp6]]]] [[[[caseTemp7]]]] [[[[caseTemp8]]]] [[[monthhumcase]]] [[[[caseHumid1]]]] [[[[caseHumid2]]]] [[[[caseHumid3]]]] [[[[caseHumid4]]]] [[[monthhumcase2]]] [[[[caseHumid5]]]] [[[[caseHumid6]]]] [[[[caseHumid7]]]] [[[[caseHumid8]]]] [[[monthtempleaf]]] [[[[leafTemp1]]]] [[[[leafTemp2]]]] [[[monthwetleaf]]] [[[[leafWet1]]]] [[[[leafWet2]]]] [[[monthtempsoil]]] [[[[soilTemp1]]]] [[[[soilTemp2]]]] [[[[soilTemp3]]]] [[[[soilTemp4]]]] [[[monthmoistsoil]]] [[[[soilMoist1]]]] [[[[soilMoist2]]]] [[[[soilMoist3]]]] [[[[soilMoist4]]]] [[[monthpm]]] [[[[pm1_0]]]] [[[[pm2_5]]]] [[[[pm10_0]]]] [[[monthlightning]]] yscale = None, None, 1 plot_type = bar [[[[lightning_strike_count]]]] aggregate_type = sum aggregate_interval = day label = Lightning (daily total) [[[monthrain]]] yscale = None, None, 0.02 plot_type = bar # garberw was under subtopic aggregate_type = sum aggregate_interval = day [[[[rain]]]] label = Rain (daily total) [[[monthwind]]] # garberw was under subtopic # garberw # line_type = None line_type = solid marker_type = box marker_size = 2 [[[[windSpeed]]]] aggregate_type = avg [[[[windGust]]]] aggregate_type = max [[[monthwinddir]]] yscale = 0.0, 360.0, 45.0 # garberw # line_type = None line_type = solid # -------- marker_type = box marker_size = 2 [[[[windDir]]]] [[[monthwindvec]]] # garberw was under subtopic plot_type = vector [[[[windvec]]]] [[[monthET]]] yscale = None, None, 0.02 plot_type = bar # garberw was under subtopic aggregate_type = sum aggregate_interval = day [[[[ET]]]] label = Evapotranspiration (daily total) [[[monthUV]]] # yscale = 0, 16, 1 [[[[UV]]]] [[[monthradiation]]] [[[[radiation]]]] [[[monthrx]]] yscale = 0.0, 100.0, 25.0 [[[[rxCheckPercent]]]] [[[monthvolt]]] [[[[consBatteryVoltage]]]] [[[[heatingVoltage]]]] [[[[supplyVoltage]]]] [[[[referenceVoltage]]]] [[year_images]] x_label_format = %m bottom_label_format = %x %X time_length = 31536000 # 365 days aggregate_type = avg aggregate_interval = day show_daynight = false [[[yearbarometer]]] [[[[barometer]]]] [[[yeartempdew]]] [[[[outTemp]]]] [[[[dewpoint]]]] [[[yeartempfeel]]] [[[[windchill]]]] [[[[heatindex]]]] [[[yeartempin]]] [[[[inTemp]]]] [[[yeartempext]]] yscale = None, None, 0.5 [[[[extraTemp1]]]] [[[[extraTemp2]]]] [[[[extraTemp3]]]] [[[[extraTemp4]]]] [[[yeartempext2]]] yscale = None, None, 0.5 [[[[extraTemp5]]]] [[[[extraTemp6]]]] [[[[extraTemp7]]]] [[[[extraTemp8]]]] [[[yearhum]]] [[[[outHumidity]]]] [[[yearhumin]]] [[[[inHumidity]]]] [[[yearhumext]]] [[[[extraHumid1]]]] [[[[extraHumid2]]]] [[[[extraHumid3]]]] [[[[extraHumid4]]]] [[[yearhumext2]]] [[[[extraHumid5]]]] [[[[extraHumid6]]]] [[[[extraHumid7]]]] [[[[extraHumid8]]]] [[[yeartempcpu]]] yscale = None, None, 0.5 [[[[cpuTemp1]]]] [[[[cpuTemp2]]]] [[[[cpuTemp3]]]] [[[[cpuTemp4]]]] [[[yeartempcpu2]]] yscale = None, None, 0.5 [[[[cpuTemp5]]]] [[[[cpuTemp6]]]] [[[[cpuTemp7]]]] [[[[cpuTemp8]]]] [[[yeargas_resistance]]] [[[[gas_resistance]]]] aggregate_type = avg aggregate_interval = day label = gas resistance (kOhm) [[[yeariaq]]] [[[[iaq]]]] aggregate_type = avg aggregate_interval = day label = index of air quality (IAQ) [[[yeartempcase]]] yscale = None, None, 0.5 [[[[caseTemp1]]]] [[[[caseTemp2]]]] [[[[caseTemp3]]]] [[[[caseTemp4]]]] [[[yeartempcase2]]] yscale = None, None, 0.5 [[[[caseTemp5]]]] [[[[caseTemp6]]]] [[[[caseTemp7]]]] [[[[caseTemp8]]]] [[[yearhumcase]]] [[[[caseHumid1]]]] [[[[caseHumid2]]]] [[[[caseHumid3]]]] [[[[caseHumid4]]]] [[[yearhumcase2]]] [[[[caseHumid5]]]] [[[[caseHumid6]]]] [[[[caseHumid7]]]] [[[[caseHumid8]]]] [[[yeartempleaf]]] [[[[leafTemp1]]]] [[[[leafTemp2]]]] [[[yearwetleaf]]] [[[[leafWet1]]]] [[[[leafWet2]]]] [[[yeartempsoil]]] [[[[soilTemp1]]]] [[[[soilTemp2]]]] [[[[soilTemp3]]]] [[[[soilTemp4]]]] [[[yearmoistsoil]]] [[[[soilMoist1]]]] [[[[soilMoist2]]]] [[[[soilMoist3]]]] [[[[soilMoist4]]]] [[[yearpm]]] [[[[pm1_0]]]] [[[[pm2_5]]]] [[[[pm10_0]]]] [[[yearlightning]]] yscale = None, None, 1 plot_type = bar [[[[lightning_strike_count]]]] aggregate_type = sum aggregate_interval = week label = Lightning (weekly total) [[[yearrain]]] yscale = None, None, 0.02 plot_type = bar # garberw was under subtopic aggregate_type = sum aggregate_interval = week [[[[rain]]]] label = Rain (weekly total) [[[yearwind]]] # garberw was under subtopic # garberw # line_type = None line_type = solid marker_type = box marker_size = 2 [[[[windSpeed]]]] aggregate_type = avg [[[[windGust]]]] aggregate_type = max [[[yearwinddir]]] yscale = 0.0, 360.0, 45.0 # garberw # line_type = None line_type = solid # -------- marker_type = box marker_size = 2 [[[[windDir]]]] [[[yearwindvec]]] # garberw was under subtopic plot_type = vector [[[[windvec]]]] [[[yearET]]] yscale = None, None, 0.02 plot_type = bar # garberw was under subtopic aggregate_type = sum aggregate_interval = week [[[[ET]]]] label = Evapotranspiration (weekly total) [[[yearUV]]] # yscale = 0, 16, 1 [[[[UV]]]] [[[yearradiation]]] [[[[radiation]]]] [[[yearrx]]] yscale = 0.0, 100.0, 25.0 [[[[rxCheckPercent]]]] [[[yearvolt]]] [[[[consBatteryVoltage]]]] [[[[heatingVoltage]]]] [[[[supplyVoltage]]]] [[[[referenceVoltage]]]] # This is how to generate a plot of high/low temperatures for the year: # [[[yearhilow]]] # [[[[hi]]]] # data_type = outTemp # aggregate_type = max # label = High # [[[[low]]]] # data_type = outTemp # aggregate_type = min # label = Low Temperature ############################################################################### [Generators] # The list of generators that are to be run: generator_list = weewx.cheetahgenerator.CheetahGenerator, weewx.imagegenerator.ImageGenerator, weewx.reportengine.CopyGenerator
