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/CAPq0zEDEvDge9FMzX23dZR_BfyOuoPffFNw6wCBrd15Kk1o5Mg%40mail.gmail.com.
