Hi

Yes, Debian Bullseye now installs Python 3.9.1 and the wheels fall of weewx 
as you discovered. I ran a sed -i -e 's/isAlive/is_alive/g' `find 
/usr/share/weewx -name '*.py'` and it indeed fixes it.

On Friday, 23 October 2020 20:39:24 UTC+1, Joel Bion wrote:
>
> I changed all occurrences of isAlive to is_alive, and so far (30 minutes) 
> it appears to be working. Since it always died quite quickly, before 
> (within 5 minutes) I tentatively conclude this was the only hiccup in the 
> upgrade. Thanks for the quick response!
>
>
> On Friday, October 23, 2020 at 10:27:26 AM UTC-7 [email protected] wrote:
>
>> Just realized that there are many other places where the old name 
>> isAlive() is used. You may have to change other lines as well.
>>
>> On Fri, Oct 23, 2020 at 10:24 AM Tom Keffer <[email protected]> wrote:
>>
>>> Looks like the method name changed from Thread.isAlive() to 
>>> Thread.is_alive(). They must have completely eliminated the old name with 
>>> Python 3.9.
>>>
>>> In weewx/engine.py, line 776, change this
>>>
>>> if self.thread and self.thread.isAlive():
>>>
>>> to this:
>>>
>>> if self.thread and self.thread.is_alive():
>>>
>>>
>>>
>>>
>>> On Fri, Oct 23, 2020 at 9:00 AM Joel Bion <[email protected]> wrote:
>>>
>>>> My setup is exactly what I mentioned in the subject. No changes except 
>>>> to customizing weewx.conf, and adding the purpleair extension. Below this 
>>>> error log, I include the contents of weewx.conf
>>>>
>>>> Oct 23 08:30:19 www weewx[5569] INFO weewx.manager: Added record 
>>>> 2020-10-23 08:30:19 PDT (1603467019) to database 'purpleair.sdb'
>>>> Oct 23 08:30:19 www weewx[5569] INFO weewx.manager: Added record 
>>>> 2020-10-23 08:30:19 PDT (1603467019) to daily summary in 'purpleair.sdb'
>>>> Oct 23 08:30:19 www weewx[5569] INFO weewx.manager: Added record 
>>>> 2020-10-23 08:30:00 PDT (1603467000) to database 'weewxarchive'
>>>> Oct 23 08:30:19 www weewx[5569] INFO weewx.manager: Added record 
>>>> 2020-10-23 08:30:00 PDT (1603467000) to daily summary in 'weewxarchive'
>>>> Oct 23 08:30:19 www weewx[5569] INFO weewx.engine: Main loop exiting. 
>>>> Shutting engine down.
>>>> Oct 23 08:30:19 www weewx[5569] INFO weewx.engine: Shutting down 
>>>> StdReport thread
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__: Caught unrecoverable 
>>>> exception:
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****  
>>>> 'StdReportEngine' object has no attribute 'isAlive'
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****  Traceback 
>>>> (most recent call last):
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****    File 
>>>> "/home/weewx/bin/weewx/engine.py", line 195, in run
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****      
>>>> self.dispatchEvent(weewx.Event(weewx.CHECK_LOOP, packet=packet))
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****    File 
>>>> "/home/weewx/bin/weewx/engine.py", line 224, in dispatchEvent
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****      
>>>> callback(event)
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****    File 
>>>> "/home/weewx/bin/weewx/engine.py", line 578, in check_loop
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****      raise 
>>>> BreakLoop
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****  
>>>> weewx.engine.BreakLoop
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****  During 
>>>> handling of the above exception, another exception occurred:
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****  Traceback 
>>>> (most recent call last):
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****    File 
>>>> "/home/weewx/bin/weewxd", line 154, in main
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****      
>>>> engine.run()
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****    File 
>>>> "/home/weewx/bin/weewx/engine.py", line 202, in run
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****      
>>>> self.dispatchEvent(weewx.Event(weewx.POST_LOOP))
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****    File 
>>>> "/home/weewx/bin/weewx/engine.py", line 224, in dispatchEvent
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****      
>>>> callback(event)
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****    File 
>>>> "/home/weewx/bin/weewx/engine.py", line 776, in launch_report_thread
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****      if 
>>>> self.thread and self.thread.isAlive():
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****  
>>>> AttributeError: 'StdReportEngine' object has no attribute 'isAlive'
>>>> Oct 23 08:30:20 www weewx[5569] CRITICAL __main__:     ****  Exiting.
>>>> # WEEWX CONFIGURATION FILE
>>>> #
>>>> # Copyright (c) 2009-2019 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
>>>> debug = 0
>>>>
>>>> # Root directory of the weewx data file hierarchy for this station
>>>> WEEWX_ROOT = /home/weewx
>>>>
>>>> # Whether to log successful operations
>>>> log_success = True
>>>>
>>>> # Whether to log unsuccessful operations
>>>> log_failure = True
>>>>
>>>> # How long to wait before timing out a socket (FTP, HTTP) connection
>>>> socket_timeout = 20
>>>>
>>>> # Do not modify this. It is used when installing and updating weewx.
>>>> version = 4.1.1
>>>>
>>>>
>>>> ##############################################################################
>>>>
>>>> #   This section is for information about the station.
>>>>
>>>> [Station]
>>>>     
>>>>     # Description of the station location
>>>>     location = "Saratoga, California (West Valley College Area)"
>>>>     
>>>>     # Latitude in decimal degrees. Negative for southern hemisphere
>>>>     latitude = 37.26260076
>>>>     # Longitude in decimal degrees. Negative for western hemisphere.
>>>>     longitude = -122.00330353
>>>>     
>>>>     # Altitude of the station, with unit it is in. This is downloaded 
>>>> from
>>>>     # from the station if the hardware supports it.
>>>>     altitude = 372, foot    # Choose 'foot' or 'meter' for unit
>>>>     
>>>>     # Set to type of station hardware. There must be a corresponding 
>>>> stanza
>>>>     # in this file with a 'driver' parameter indicating the driver to 
>>>> be used.
>>>>     station_type = Vantage
>>>>     
>>>>     # If you have a website, you may specify an URL
>>>>     station_url = https://westvi.com/weather
>>>>     
>>>>     # 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 = 10
>>>>     
>>>>     # Start of week (0=Monday, 6=Sunday)
>>>>     week_start = 6
>>>>
>>>>
>>>> ##############################################################################
>>>>
>>>> [Vantage]
>>>>     # This section is for a Davis VantagePro2, VantageVue or 
>>>> WeatherLinkIP
>>>>     
>>>>     # Connection type: serial or ethernet
>>>>     #  serial (the classic VantagePro)
>>>>     #  ethernet (the WeatherLinkIP)
>>>>     type = ethernet
>>>>     
>>>>     # If the connection type is serial, a port must be specified:
>>>>     #   Debian, Ubuntu, Redhat, Fedora, and SuSE:
>>>>     #     /dev/ttyUSB0 is a common USB port name
>>>>     #     /dev/ttyS0   is a common serial port name
>>>>     #   BSD:
>>>>     #     /dev/cuaU0   is a common serial port name
>>>>     #port = /dev/vpro
>>>>     
>>>>     # If the connection type is ethernet, an IP Address/hostname is 
>>>> required:
>>>>     host = 173.11.83.165
>>>>     
>>>>     ######################################################
>>>>     # The rest of this section rarely needs any attention.
>>>>     # You can safely leave it "as is."
>>>>     ######################################################
>>>>     
>>>>     # Serial baud rate (usually 19200)
>>>>     baudrate = 19200
>>>>     
>>>>     # TCP port (when using the WeatherLinkIP)
>>>>     # Default is 22222!
>>>>     tcp_port = 22225
>>>>     
>>>>     # TCP send delay (when using the WeatherLinkIP):
>>>>     tcp_send_delay = 1
>>>>     
>>>>     # The type of LOOP packet to request: 1 = LOOP1; 2 = LOOP2; 3 = both
>>>>     loop_request = 1
>>>>     
>>>>     # The id of your ISS station (usually 1)
>>>>     iss_id = 1
>>>>     
>>>>     # How long to wait for a response from the station before giving up 
>>>> (in
>>>>     # seconds; must be greater than 2)
>>>>     timeout = 5
>>>>     
>>>>     # How long to wait before trying again (in seconds)
>>>>     wait_before_retry = 1.2
>>>>     
>>>>     # How many times to try before giving up:
>>>>     max_tries = 4
>>>>     
>>>>     # The driver to use:
>>>>     driver = weewx.drivers.vantage
>>>>
>>>>
>>>> ##############################################################################
>>>>
>>>> #   This section is for uploading data to Internet sites
>>>>
>>>> [StdRESTful]
>>>>     
>>>>     [[StationRegistry]]
>>>>         # To register this weather station with weewx, set this to true
>>>>         register_this_station = true
>>>>     
>>>>     [[AWEKAS]]
>>>>         # This section is for configuring posts to AWEKAS.
>>>>         
>>>>         # If you wish to do this, set the option 'enable' to true,
>>>>         # and 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 do this, set the option 'enable' to true,
>>>>         # and specify the station ID (e.g., CW1234).
>>>>         enable = false
>>>>         station = replace_me
>>>>     
>>>>     # If this is an APRS (radio amateur) station, uncomment
>>>>     # the following and replace with a passcode (e.g., 12345).
>>>>     #passcode = replace_me (APRS stations only)
>>>>     
>>>>     [[PWSweather]]
>>>>         # This section is for configuring posts to PWSweather.com.
>>>>         
>>>>         # If you wish to do this, set the option 'enable' to true,
>>>>         # and 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 do this, set the option 'enable' to true,
>>>>         # and 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 do this, set the option 'enable' to true,
>>>>         # and 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 = skins
>>>>     
>>>>     # Where the generated reports should go, relative to WEEWX_ROOT
>>>>     HTML_ROOT = public_html
>>>>     
>>>>     # The database binding indicates which data should be used in 
>>>> reports.
>>>>     data_binding = wx_binding
>>>>     
>>>>     # Whether to log a successful operation
>>>>     log_success = True
>>>>     
>>>>     # Whether to log an unsuccessful operation
>>>>     log_failure = False
>>>>     
>>>>     # 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 = false
>>>>     
>>>>     [[SmartphoneReport]]
>>>>         # The SmartphoneReport uses the 'Smartphone' skin, and the 
>>>> images and
>>>>         # files are placed in a dedicated subdirectory.
>>>>         skin = Smartphone
>>>>         enable = false
>>>>         HTML_ROOT = public_html/smartphone
>>>>     
>>>>     [[MobileReport]]
>>>>         # The MobileReport uses the 'Mobile' skin, and the images and 
>>>> files
>>>>         # are placed in a dedicated subdirectory.
>>>>         skin = Mobile
>>>>         enable = False
>>>>         HTML_ROOT = public_html/mobile
>>>>     
>>>>     [[StandardReport]]
>>>>         # This is the old "Standard" skin. By default, it is not 
>>>> enabled.
>>>>         skin = Standard
>>>>         enable = True
>>>>     
>>>>     [[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 = public_html
>>>>         
>>>>         # 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 = public_html
>>>>         
>>>>         # 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
>>>>     
>>>>     ####
>>>>     
>>>>     # Various options for customizing your reports.
>>>>     
>>>>     [[Defaults]]
>>>>         
>>>>         [[[Units]]]
>>>>             
>>>>             # The following section sets what unit to use for each unit 
>>>> group.
>>>>             # NB: The unit is always in the singular. I.e., 
>>>> 'mile_per_hour',
>>>>             # NOT 'miles_per_hour'
>>>>             [[[[Groups]]]]
>>>>                 
>>>>                 group_altitude = foot    # Options are 'foot' or 'meter'
>>>>                 group_degree_day = degree_F_day    # Options are 
>>>> 'degree_F_day' or 'degree_C_day'
>>>>                 group_distance = mile    # Options are 'mile' or 'km'
>>>>                 group_pressure = inHg    # Options are 'inHg', 'mmHg', 
>>>> 'mbar', or 'hPa'
>>>>                 group_rain = inch    # Options are 'inch', 'cm', or 'mm'
>>>>                 group_rainrate = inch_per_hour    # Options are 
>>>> 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour'
>>>>                 group_speed = mile_per_hour    # Options are 
>>>> 'mile_per_hour', 'km_per_hour', 'knot', or 'meter_per_second'
>>>>                 group_speed2 = mile_per_hour2    # Options are 
>>>> 'mile_per_hour2', 'km_per_hour2', 'knot2', or 'meter_per_second2'
>>>>                 group_temperature = degree_F    # Options are 
>>>> 'degree_F' or 'degree_C'
>>>>             
>>>>             # The following section sets the formatting for each type 
>>>> of unit.
>>>>             [[[[StringFormats]]]]
>>>>                 
>>>>                 centibar = %.0f
>>>>                 cm = %.2f
>>>>                 cm_per_hour = %.2f
>>>>                 degree_C = %.1f
>>>>                 degree_F = %.1f
>>>>                 degree_compass = %.0f
>>>>                 foot = %.0f
>>>>                 hPa = %.1f
>>>>                 hour = %.1f
>>>>                 inHg = %.3f
>>>>                 inch = %.2f
>>>>                 inch_per_hour = %.2f
>>>>                 km = %.1f
>>>>                 km_per_hour = %.0f
>>>>                 km_per_hour2 = %.1f
>>>>                 knot = %.0f
>>>>                 knot2 = %.1f
>>>>                 mbar = %.1f
>>>>                 meter = %.0f
>>>>                 meter_per_second = %.1f
>>>>                 meter_per_second2 = %.1f
>>>>                 mile = %.1f
>>>>                 mile_per_hour = %.0f
>>>>                 mile_per_hour2 = %.1f
>>>>                 mm = %.1f
>>>>                 mmHg = %.1f
>>>>                 mm_per_hour = %.1f
>>>>                 percent = %.0f
>>>>                 second = %.0f
>>>>                 uv_index = %.1f
>>>>                 volt = %.1f
>>>>                 watt_per_meter_squared = %.0f
>>>>                 NONE = "   N/A"
>>>>             
>>>>             # The following section overrides the label used for each 
>>>> type of unit
>>>>             [[[[Labels]]]]
>>>>                 
>>>>                 meter = " meter", " meters"    # You may prefer "metre".
>>>>                 day = " day", " days"
>>>>                 hour = " hour", " hours"
>>>>                 minute = " minute", " minutes"
>>>>                 second = " second", " seconds"
>>>>                 NONE = ""
>>>>             
>>>>             # The following section sets the format for each time scale.
>>>>             # The values below will work in every locale, but they may 
>>>> not look
>>>>             # particularly attractive.
>>>>             [[[[TimeFormats]]]]
>>>>                 
>>>>                 hour = %H:%M
>>>>                 day = %X
>>>>                 week = %X (%A)
>>>>                 month = %x %X
>>>>                 year = %x %X
>>>>                 rainyear = %x %X
>>>>                 current = %x %X
>>>>                 ephem_day = %X
>>>>                 ephem_year = %x %X
>>>>             
>>>>             [[[[Ordinates]]]]
>>>>                 
>>>>                 # Ordinal directions. The last one is for no wind 
>>>> direction
>>>>                 directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, 
>>>> SW, WSW, W, WNW, NW, NNW, N/A
>>>>             
>>>>             # The following section sets the base temperatures used for 
>>>> the
>>>>             #  calculation of heating, cooling, and growing degree-days.
>>>>             [[[[DegreeDays]]]]
>>>>                 
>>>>                 # Base temperature for heating days, with unit:
>>>>                 heating_base = 65, degree_F
>>>>                 # Base temperature for cooling days, with unit:
>>>>                 cooling_base = 65, degree_F
>>>>                 # Base temperature for growing days, with unit:
>>>>                 growing_base = 50, degree_F
>>>>             
>>>>             # A trend takes a difference across a time period. The 
>>>> following
>>>>             # section sets the time period, and how big an error is 
>>>> allowed to
>>>>             # still be counted as the start or end of a period.
>>>>             [[[[Trend]]]]
>>>>                 
>>>>                 time_delta = 10800    # 3 hours
>>>>                 time_grace = 300    # 5 minutes
>>>>         
>>>>         # The labels to be used for each observation type
>>>>         [[[Labels]]]
>>>>             
>>>>             # Set to hemisphere abbreviations suitable for your 
>>>> location:
>>>>             hemispheres = N, S, E, W
>>>>             
>>>>             # Formats to be used for latitude whole degrees, longitude 
>>>> whole
>>>>             # degrees, and minutes:
>>>>             latlon_formats = %02d, %03d, %05.2f
>>>>             
>>>>             # Generic labels, keyed by an observation type.
>>>>             [[[[Generic]]]]
>>>>                 barometer = Barometer
>>>>                 dewpoint = Dew Point
>>>>                 ET = ET
>>>>                 heatindex = Heat Index
>>>>                 inHumidity = Inside Humidity
>>>>                 inTemp = Garage Temperature
>>>>                 outHumidity = Humidity
>>>>                 outTemp = Outside Temperature
>>>>                 radiation = Radiation
>>>>                 rain = Rain
>>>>                 rainRate = Rain Rate
>>>>                 UV = UV Index
>>>>                 windDir = Wind Direction
>>>>                 windGust = Gust Speed
>>>>                 windGustDir = Gust Direction
>>>>                 windSpeed = Wind Speed
>>>>                 windchill = Wind Chill
>>>>                 windgustvec = Gust Vector
>>>>                 windvec = Wind Vector
>>>>                 extraTemp1 = Temperature1
>>>>                 extraTemp2 = Temperature2
>>>>                 extraTemp3 = Temperature3
>>>>                 
>>>>                 # Sensor status indicators
>>>>                 
>>>>                 rxCheckPercent = Signal Quality
>>>>                 txBatteryStatus = Transmitter Battery
>>>>                 windBatteryStatus = Wind Battery
>>>>                 rainBatteryStatus = Rain Battery
>>>>                 outTempBatteryStatus = Outside Temperature Battery
>>>>                 inTempBatteryStatus = Inside Temperature Battery
>>>>                 consBatteryVoltage = Console Battery
>>>>                 heatingVoltage = Heating Battery
>>>>                 supplyVoltage = Supply Voltage
>>>>                 referenceVoltage = Reference Voltage
>>>>         
>>>>         [[[Almanac]]]
>>>>             
>>>>             # The labels to be used for the phases of the moon:
>>>>             moon_phases = New, Waxing crescent, First quarter, Waxing 
>>>> gibbous, Full, Waning gibbous, Last quarter, Waning crescent
>>>>
>>>>
>>>> ##############################################################################
>>>>
>>>> #   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
>>>>
>>>>
>>>> ##############################################################################
>>>>
>>>> #   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
>>>>         beaufort = 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]
>>>>     
>>>>     # If the station hardware supports data logging then the archive 
>>>> interval
>>>>     # will be downloaded from the station. Otherwise, specify it (in 
>>>> seconds).
>>>>     archive_interval = 300
>>>>     
>>>>     # 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
>>>>     
>>>>     # 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_mysql
>>>>         # 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
>>>>     [[purpleair_binding]]
>>>>         manager = weewx.manager.DaySummaryManager
>>>>         schema = user.purpleair.schema
>>>>         table_name = archive
>>>>         database = purpleair_sqlite
>>>>
>>>>
>>>> ##############################################################################
>>>>
>>>> #   This section defines various databases.
>>>>
>>>> [Databases]
>>>>     
>>>>     # A SQLite database is simply a single file
>>>>     [[archive_sqlite]]
>>>>         database_name = weewx.sdb
>>>>         database_type = SQLite
>>>>     
>>>>     # MySQL
>>>>     [[archive_mysql]]
>>>>         database_name = weewxarchive
>>>>         database_type = MySQL
>>>>     [[purpleair_sqlite]]
>>>>         database_name = purpleair.sdb
>>>>         database_type = SQLite
>>>>
>>>>
>>>> ##############################################################################
>>>>
>>>> #   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 = %(WEEWX_ROOT)s/archive
>>>>     
>>>>     # 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 for the user name (quotes guard against parsing 
>>>> errors)
>>>>         password = ***HIDDEN FROM PUBLIC VIEW***
>>>>
>>>>
>>>> ##############################################################################
>>>>
>>>> #   This section configures the internal weewx engine.
>>>>
>>>> [Engine]
>>>>     
>>>>     [[Services]]
>>>>         # This section specifies the services that should be run. They 
>>>> are
>>>>         # grouped by type, and the order of services within each group
>>>>         # determines the order in which the services will be run.
>>>>         prep_services = weewx.engine.StdTimeSynch
>>>>         data_services = ,
>>>>         process_services = weewx.engine.StdConvert, 
>>>> weewx.engine.StdCalibrate, weewx.engine.StdQC, 
>>>> weewx.wxservices.StdWXCalculate, user.purpleair.PurpleAirMonitor
>>>>         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
>>>>
>>>>
>>>> ##############################################################################
>>>>
>>>> # Options for extension 'purpleair'
>>>> [PurpleAirMonitor]
>>>>     data_binding = purpleair_binding
>>>>     hostname = 173.11.83.165
>>>>     port = 22226
>>>>
>>>>
>>>> -- 
>>>> 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/7d1e839f-5097-496d-a23e-e1e284906570o%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/weewx-user/7d1e839f-5097-496d-a23e-e1e284906570o%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>

-- 
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/62eac469-28b5-4ff1-bb50-5b5584dbbbb7o%40googlegroups.com.

Reply via email to