any help please :-) I tried making gap_fraction = 0.3 (not 0.03) and increased archive_interval = 300. *QUESTION: Could it be that I just am getting too many nulls in the database?*
My weather station is an Acurite Atlas using SDR driver modified for indoor temp/humidity/pressure from an arduino. The weewx server is on a raspberry pi hooked up to a usb hub. The usb hub is connected to the RTL-SDR radio receiver dongle to receive the Acurite Atlas packets. The usb hub is also connected to the arduino. The modified SDR driver has three streams, stdin/stdout from the rtl_433 back-end to RTL-SDR plus ttyACM0 serial over usb connection to the arduino. The SDR driver reads these ports with a class called AsyncInput which has one instantiation per stream. Each AsyncInput runs in a thread. *QUESTION It should definitely be drawing lines not points based on the weewx.conf attached and the skin.conf attached as far as I can tell.* The Acurite Atlas send a sequence of about three incomplete packets to make a complete set of data plus the data from the arduino. *QUESTION: how do incomplete packets get combined?* -- You received this message because you are subscribed to the Google Groups "weewx-user" 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-user/3625616c-3efe-4f42-bcf3-4923d8616656n%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
