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/f72b3227-2c42-42c7-a4c2-b129201fa8e6n%40googlegroups.com.
