No data in mysql database & no html reports.

149 views
Skip to first unread message

Ed Belcher

unread,
Feb 12, 2021, 2:35:55 PM2/12/21
to weewx-user
  I'm using the SDR driver for Ambient Weather WS-2902C "Fineoffset-WH65B" on ubuntu  20.04.  I am collecting data, but it does not insert into the database and it does not generate html reports.  I would appreciate any advice.
Thanks
Ed

##########################################################
log:
INFO __main__: Initializing weewx version 4.4.0
INFO __main__: Using Python 3.9.0+ (default, Oct 20 2020, 08:43:38) #012[GCC 9.3.0]
INFO __main__: Platform Linux-5.4.0-65-generic-x86_64-with-glibc2.31
INFO __main__: Locale is 'en_US.UTF-8'
INFO __main__: Using configuration file weewx.conf
INFO __main__: Debug is 1
DEBUG __main__: Initializing engine
INFO weewx.engine: Loading station type SDR (user.sdr)
INFO user.sdr: driver version is 0.78
INFO user.sdr: sensor map is {'outTemp': 'temperature.16.FOWH65BAltPacket', 'outHumidity': 'humidity.16.FOWH65BAltPacket', 'windDir': 'wind_dir.16.FOWH65BAltPacket', 'windSpeed': 'wind_speed.16.FOWH65BAltPacket', 'windGust': 'wind_gust.16.FOWH65BAltPacket', 'rain_total': 'rain_total.16.FOWH65BAltPacket', 'UV': 'uv_index.16.FOWH65BAltPacket', 'outTempBatteryStatus': 'battery.16.FOWH65BAltPacket'}
INFO user.sdr: deltas is {'rain': 'rain_total'}
INFO user.sdr: startup process 'rtl_433 -M utc -F json -R 78 -f 914980000 -s 250000'
DEBUG user.sdr: start async reader for stdout-thread
DEBUG user.sdr: start async reader for stderr-thread
DEBUG weewx.engine: Loading service weewx.engine.StdTimeSynch
DEBUG weewx.engine: Finished loading service weewx.engine.StdTimeSynch
DEBUG weewx.engine: Loading service weewx.engine.StdConvert
INFO weewx.engine: StdConvert target unit is 0x1
DEBUG weewx.engine: Finished loading service weewx.engine.StdConvert
DEBUG weewx.engine: Loading service weewx.engine.StdCalibrate
DEBUG weewx.engine: Finished loading service weewx.engine.StdCalibrate
DEBUG weewx.engine: Loading service weewx.engine.StdQC
DEBUG weewx.engine: Finished loading service weewx.engine.StdQC
DEBUG weewx.engine: Loading service weewx.wxservices.StdWXCalculate
DEBUG weewx.manager: Daily summary version is 4.0
DEBUG weewx.engine: Finished loading service weewx.wxservices.StdWXCalculate
DEBUG weewx.engine: Loading service weewx.wxxtypes.StdWXXTypes
DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdWXXTypes
DEBUG weewx.engine: Loading service weewx.wxxtypes.StdPressureCooker
DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdPressureCooker
DEBUG weewx.engine: Loading service weewx.wxxtypes.StdRainRater
DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdRainRater
DEBUG weewx.engine: Loading service weewx.wxxtypes.StdDelta
DEBUG weewx.engine: Finished loading service weewx.wxxtypes.StdDelta
DEBUG weewx.engine: Loading service weewx.engine.StdArchive
INFO weewx.engine: Archive will use data binding wx_binding
INFO weewx.engine: Record generation will be attempted in 'software'
INFO weewx.engine: Using archive interval of 300 seconds (software record generation)
DEBUG weewx.engine: Use LOOP data in hi/low calculations: 1
DEBUG weewx.engine: Finished loading service weewx.engine.StdArchive
DEBUG weewx.engine: Loading service weewx.restx.StdStationRegistry
INFO weewx.restx: StationRegistry: Registration not requested.
DEBUG weewx.engine: Finished loading service weewx.restx.StdStationRegistry
DEBUG weewx.engine: Loading service weewx.restx.StdWunderground
INFO weewx.restx: Wunderground: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdWunderground
DEBUG weewx.engine: Loading service weewx.restx.StdPWSweather
INFO weewx.restx: PWSweather: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdPWSweather
DEBUG weewx.engine: Loading service weewx.restx.StdCWOP
INFO weewx.restx: CWOP: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdCWOP
DEBUG weewx.engine: Loading service weewx.restx.StdWOW
INFO weewx.restx: WOW: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdWOW
DEBUG weewx.engine: Loading service weewx.restx.StdAWEKAS
INFO weewx.restx: AWEKAS: Posting not enabled.
DEBUG weewx.engine: Finished loading service weewx.restx.StdAWEKAS
DEBUG weewx.engine: Loading service weewx.engine.StdPrint
DEBUG weewx.engine: Finished loading service weewx.engine.StdPrint
DEBUG weewx.engine: Loading service weewx.engine.StdReport
DEBUG weewx.engine: Finished loading service weewx.engine.StdReport
INFO __main__: Starting up weewx version 4.4.0
DEBUG weewx.engine: Station does not support reading the time
INFO weewx.engine: Using binding 'wx_binding' to database 'weewx'
INFO weewx.manager: Starting backfill of daily summaries
INFO weewx.manager: Empty database
INFO weewx.engine: Starting main packet loop.

DEBUG user.sdr: lines=[]
message repeated 3 times: [ DEBUG user.sdr: lines=[]]
DEBUG user.sdr: lines=[]
message repeated 8 times: [ DEBUG user.sdr: lines=[]]
DEBUG user.sdr: lines=['{"time" : "2021-02-12 19:10:28", "model" : "Fineoffset-WH65B", "id" : 97, "battery_ok" : 1, "temperature_C" : 2.000, "humidity" : 93, "wind_dir_deg" : 17, "wind_avg_m_s" : 0.446, "wind_max_m_s" : 0.510, "rain_mm" : 3.810, "uv" : 71, "uvi" : 0, "light_lux" : 9005.000, "mic" : "CRC"}\n']
DEBUG user.sdr: lines=[]

#######################################################
weewx.conf
# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2021 Tom Keffer 
# 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 = 1

# Root directory of the weewx data file hierarchy for this station
WEEWX_ROOT = /

# 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.4.0

##############################################################################

#   This section is for information about the station.

[Station]

    # Description of the station location
    location = "XXXXXXXXXXXXXXXXXXXXXXXXXX"

    # Latitude in decimal degrees. Negative for southern hemisphere
    latitude = XXXXXXXXXXXXXXXXXX
    # Longitude in decimal degrees. Negative for western hemisphere.
    longitude = XXXXXXXXXXXXXXXXXXXXXX

    # Altitude of the station, with unit it is in. This is downloaded from
    # from the station if the hardware supports it.
    altitude = 141, foot

    # 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 = SDR

    # If you have a website, you may specify an URL
    #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)
    week_start = 6

##############################################################################

[Interceptor]
    # This section is for the network traffic interceptor driver.

    # The driver to use:
    driver = user.interceptor

    # Specify the hardware device to capture.  Options include:
    #   acurite-bridge - acurite internet bridge, smarthub, or access
    #   observer - fine offset WH2600/HP1000/HP1003, ambient WS2902
    #   lw30x - oregon scientific LW301/LW302
    #   lacrosse-bridge - lacrosse GW1000U/C84612 internet bridge
    #   ecowitt-client - any hardware that uses the ecowitt protocol
    #   wu-client - any hardware that uses the weather underground protocol
    device_type = observer
    port = 55

##############################################################################

[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

##############################################################################

[SDR]


    # This section is for the software-defined radio driver.

    # The time (in seconds) between LOOP packets.
    loop_interval = 2.5

    # Direct testing command:
    # PYTHONPATH=/usr/share/weewx python /usr/share/weewx/user/sdr.py --cmd="rtl_433 -M utc -F json -f 914980000 -s 250000"
    # Command probably needs a -p frequency offset parameter.

    # The driver to use
    driver = user.sdr
    path = /usr/share/weewx/user/
    # ld_library_path = /usr/local/include
    cmd = rtl_433 -M utc -F json -R 78 -f 914980000 -s 250000
    [[sensor_map]]
        outTemp = temperature.16.FOWH65BAltPacket
        outHumidity = humidity.16.FOWH65BAltPacket
        windDir = wind_dir.16.FOWH65BAltPacket
        windSpeed = wind_speed.16.FOWH65BAltPacket
        windGust = wind_gust.16.FOWH65BAltPacket
        rain_total = rain_total.16.FOWH65BAltPacket
        UV = uv_index.16.FOWH65BAltPacket
        # uv = uv.16.FOWH65BAltPacket # Not displaying in web page
        # light = light.16.FOWH65BAltPacket # Not displaying in web page
        outTempBatteryStatus = battery.16.FOWH65BAltPacket
    [[deltas]]
        rain = rain_total

##############################################################################

[FineOffsetUSB]
    # This section is for the Fine Offset series of weather stations.

    # The station model, e.g., WH1080, WS1090, WS2080, WH3081
    model = WH2900

    # How often to poll the station for data, in seconds
    polling_interval = 60

    # The driver to use:
    driver = weewx.drivers.fousb

##############################################################################

#   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 = false

    [[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 = /etc/weewx/skins

    # Where the generated reports should go, relative to WEEWX_ROOT
    HTML_ROOT = /f1/https/weewx

    # 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 = True

    # 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

    [[SmartphoneReport]]
        # The SmartphoneReport uses the 'Smartphone' skin, and the images and
        # files are placed in a dedicated subdirectory.
        skin = Smartphone
        enable = false
        HTML_ROOT = /f1/https/weewx/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 = /f1/https/weewx/mobile

    [[StandardReport]]
        # This is the old "Standard" skin. By default, it is not enabled.
        skin = Standard
        enable = true
#    [[Belchertown]]
 #       skin = Belchertown
  #      HTML_ROOT = /f1/https/weewx/belchertown

    [[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 = /f1/https/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 = /f1/https/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

    ####

    # 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', 'hPa', or 'kPa'
                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
                kPa = %.2f
                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 = Inside 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
        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 = software

    # 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

##############################################################################

#   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 = weewx
        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 for the user name (quotes guard against parsing errors)
        password = XXXXXXXXXXXX

##############################################################################

#   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


tim lambert

unread,
Feb 12, 2021, 3:55:29 PM2/12/21
to weewx-user
Ed,

Your archive_interval (in StdArchive section) is set to 300 seconds (5 minutes) -- meaning that data will be inserted into the DB every 5 minutes.  

The log file simply shows that your weather station is being polled for data regularly for data.  You simply need to allow 5-10 minutes to pass after starting weeWX, then you can look at your DB to verify data is being written.

The archive_interval also determines how often reports (aka skins) are generated/published.   By looking at your log files, you can determine how long it takes for reports to generate -- based on that information you can adjust your archive_interval to possibly write more often.

Hope this helps.

-- Tim

Ed Belcher

unread,
Feb 12, 2021, 5:04:43 PM2/12/21
to weewx-user
Thanks for the reply, really appreciate the help.  I changed the archive_interval to 100 and restarted.  Unfortunately, I got the same results, even after waiting 30 minutes.  From the log:
Feb 12 15:31:51 DEBUG user.sdr: lines=['{"time" : "2021-02-12 21:31:48", "model" : "Fineoffset-WH65B", "id" : 97, "battery_ok" : 1, "temperature_C" : 2.000, "humidity" : 91, "wind_dir_deg" : 357, "wind_avg_m_s" : 0.765, "wind_max_m_s" : 1.530, "rain_mm" : 3.810, "uv" : 57, "uvi" : 0, "light_lux" : 7130.000, "mic" : "CRC"}\n']
Feb 12 16:01:11 DEBUG user.sdr: lines=['{"time" : "2021-02-12 22:01:08", "model" : "Fineoffset-WH65B", "id" : 97, "battery_ok" : 1, "temperature_C" : 1.500, "humidity" : 92, "wind_dir_deg" : 0, "wind_avg_m_s" : 1.530, "wind_max_m_s" : 2.040, "rain_mm" : 3.810, "uv" : 33, "uvi" : 0, "light_lux" : 3844.000, "mic" : "CRC"}\n']

Thanks
Ed

Tim Lambert

unread,
Feb 12, 2021, 5:12:16 PM2/12/21
to weewx...@googlegroups.com

Ed,

 

Can you email me the full log file – looking at a snipet is helpful?

 

I’m looking to see if there is any attempt to connect and write to the DB – I struggled a bit in this area too and would like to share my learnings with you.

 

I assume you have debug enabled.

 

What is your platform/architecture? Are you running a tool like phpMyAdmin – it’s an easy way to manage the MySQL DB?

 

Regards,

 

Tim

--
You received this message because you are subscribed to a topic in the Google Groups "weewx-user" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/weewx-user/5a-qBZ0R01c/unsubscribe.
To unsubscribe from this group and all its topics, send an email to weewx-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/c3c1dfc9-8896-4b37-a919-31afb6b01452n%40googlegroups.com.

 

Ed Belcher

unread,
Feb 12, 2021, 5:35:21 PM2/12/21
to weewx-user
Yes, debug is enabled.
Linux thor 5.4.0-65-generic #73-Ubuntu SMP Mon Jan 18 17:25:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal

As far as a tool goes, just using SQL queries against the tables.  select count(*) from table_name returns 0 rows.
For web, ls -altr public_html/weewx from the command line.
weewx.log.zip

Ed Belcher

unread,
Feb 12, 2021, 5:40:31 PM2/12/21
to weewx-user
SELECT table_name, table_rows
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'weewx';

Returns a list of tables -- all with zero rows.

Tim Lambert

unread,
Feb 12, 2021, 6:15:31 PM2/12/21
to weewx...@googlegroups.com

Ed,

 

I’m a bit perplexed….

 

  1. On line 3197 of the Log  – the archive_interval is still showing that it is set to 300 (looks like you didn’t save the weewx.conf change)
  2. On line 3226 of the Log – indicating an empty database (indicative that the hooks between Python and MySQL aren’t installed)
  3. Consistently seeing - message repeated 3 times: [ DEBUG user.sdr: lines=[]]   -- I’m uncertain what is pushing these messages
  4. I’m not seeing where the Reports are being initiated – even with the SeasonsSkin being enabled, and the Services defined/enabled in the Engine look correct

 

So this lends me to ask what platform are you working with and which installation method did you follow?  

What version of Python is installed – you should be using Python3?  

 

Since you want to use MySQL, I’d suggest going down the route of installing using setup.py method (http://www.weewx.com/docs/setup.htm) .  The pre-reqs should clear the path to getting everything installed to generate the reports and populate the DB.

 

Before I fired up MySQL, I allowed everything to run with SQLite (as packaged) – the sdb files are in /weewx/archive.   Once I saw data being reported and verified data was being written to sdb, I then defined MySQL Databases and user access, and modified weewx.conf (always back this up before you make any changes, this way if you have a hiccup you can quickly revert).

 

Net-Net – my suggestion is to drop your current install and re-install (ideally following the setup.py method.

 

Feel free to ping me directly (off-thread) – if needed, we can have a tele-conference and I can walk you through what I’ve done.

Tom Keffer

unread,
Feb 12, 2021, 6:30:40 PM2/12/21
to weewx-user
I have a suspicion that no LOOP packets are getting generated by the driver. 

Did you try stopping weewxd, then running it directly from the command line? If it is working correctly, it should show the contents of the LOOP packets on a regular basis. How often will depend on the sdr driver, but probably every 5-30 seconds.

If you don't see anything, then you have a driver configuration problem. I'm not an SDR expert, but I would guess there's a problem with the sensor map.

-tk



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 weewx-user+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-user/60270c10.1c69fb81.b2d5c.5fa8SMTPIN_ADDED_MISSING%40gmr-mx.google.com.

gjr80

unread,
Feb 12, 2021, 6:31:36 PM2/12/21
to weewx-user
No, this is linux not windows. The issue is related to mapping of fields within the sdr driver. Archive interval or database has nothing to do with it, the driver is emitting no loop packets so WeeWX generates no archive records, so nothing is saved to databases and consequently no reports are run.

I suggest working through the sdr setup again as per the sdr driver readme; running sdr directly, determining the sensor map and working through the diagnosing of problems section of the readme. If you can't make sense of what you are seeing post the command(s) you enter and the exact response.

Gary

Tim Lambert

unread,
Feb 12, 2021, 6:33:31 PM2/12/21
to weewx...@googlegroups.com

I didn’t even think about the SDR – mine worked out of the box, albeit with the IP-100 extension from John Kline.

 

Regards,

 

Tim

Ed Belcher

unread,
Feb 12, 2021, 7:05:05 PM2/12/21
to weewx-user
Thanks to all!  Got a bit of work on my end to do...

Ed Belcher

unread,
Feb 13, 2021, 11:10:46 AM2/13/21
to weewx-user
It appears that there is an issue with SDR sensor map. I modified sdr.py for my packets, changing wind_avg_m_s/wind_speed_ms, wind_max_m_s/gust_speed_ms, and rain_mm/rainfall_mm.  

I now get the following.

PYTHONPATH=/usr/share/weewx python3 /usr/share/weewx/user/sdr.py --cmd="rtl_433 -M utc -F json -R 78 -f 914980000 -s 250000" --debug

out:['{"time" : "2021-02-13 15:56:52", "model" : "Fineoffset-WH65B", "id" : 97, "battery_ok" : 1, "temperature_C" : 1.100, "humidity" : 88, "wind_dir_deg" : 17, "wind_avg_m_s" : 0.829, "wind_max_m_s" : 1.020, "rain_mm" : 3.810, "uv" : 65, "uvi" : 0, "light_lux" : 8230.000, "mic" : "CRC"}\n']

parsed: {'dateTime': 1613231812, 'usUnits': 17, 'battery.97.FOWH65BPacket': 1, 'temperature.97.FOWH65BPacket': 1.1, 'humidity.97.FOWH65BPacket': 88.0, 'wind_dir.97.FOWH65BPacket': 17.0, 'wind_speed.97.FOWH65BPacket': 0.829, 'wind_gust.97.FOWH65BPacket': 1.02, 'rain_total.97.FOWH65BPacket': 3.81, 'uv.97.FOWH65BPacket': 65.0, 'uv_index.97.FOWH65BPacket': 0.0, 'light.97.FOWH65BPacket': 8230.0}



weewxd weewx.conf
INFO weewx.engine: Loading station type SDR (user.sdr)
INFO user.sdr: driver version is 0.78
INFO user.sdr: sensor map is {'outTempBatteryStatus': 'battery.97.FOWH65BAltPacket', 'outTemp': 'temperature.97.FOWH65BAltPacket', 'outHumidity': 'humidity.97.FOWH65BAltPacket', 'windDir': 'wind_dir.97.FOWH65BAltPacket', 'windSpeed': 'wind_speed.97.FOWH65BAltPacket', 'windGust': 'wind_gust.97.FOWH65BAltPacket', 'rain_total': 'rain_total.97.FOWH65BAltPacket', 'uv': 'uv.97.FOWH65BAltPacket', 'UVI': 'uv_index.97.FOWH65BAltPacket', 'light': 'light.97.FOWH65BAltPacket'}
INFO user.sdr: deltas is {'rain': 'rain_total'}
INFO user.sdr: startup process 'rtl_433 -M utc -F json -R 78 -f 914980000 -s 250000'
INFO __main__: Starting up weewx version 4.4.0
DEBUG weewx.engine: Station does not support reading the time
INFO weewx.engine: Using binding 'wx_binding' to database 'weewx'
INFO weewx.manager: Starting backfill of daily summaries
INFO weewx.manager: Empty database
INFO weewx.engine: Starting main packet loop.

DEBUG user.sdr: lines=[]
DEBUG user.sdr: lines=['{"time" : "2021-02-13 16:02:28", "model" : "Fineoffset-WH65B", "id" : 97, "battery_ok" : 1, "temperature_C" : 1.300, "humidity" : 87, "wind_dir_deg" : 14, "wind_avg_m_s" : 0.510, "wind_max_m_s" : 0.510, "rain_mm" : 3.810, "uv" : 82, "uvi" : 0, "light_lux" : 10385.000, "mic" : "CRC"}\n']
INFO user.sdr: unmapped: [] ({'dateTime': 1613232148, 'usUnits': 17, 'battery.97.FOWH65BPacket': 1, 'temperature.97.FOWH65BPacket': 1.3, 'humidity.97.FOWH65BPacket': 87.0, 'wind_dir.97.FOWH65BPacket': 14.0, 'wind_speed.97.FOWH65BPacket': 0.51, 'wind_gust.97.FOWH65BPacket': 0.51, 'rain_total.97.FOWH65BPacket': 3.81, 'uv.97.FOWH65BPacket': 82.0, 'uv_index.97.FOWH65BPacket': 0.0, 'light.97.FOWH65BPacket': 10385.0})
DEBUG user.sdr: lines=[]

weewx.conf  
[SDR]
    # This section is for the software-defined radio driver.

    # The driver to use
    driver = user.sdr
    log_unknown_sensors = True
    log_unmapped_sensors = True
    path = /usr/share/weewx/user/
    # ld_library_path = /usr/local/include
    cmd = rtl_433 -M utc -F json -R 78 -f 914980000 -s 250000
    [[sensor_map]]
        outTempBatteryStatus = battery.97.FOWH65BAltPacket
        outTemp = temperature.97.FOWH65BAltPacket
        outHumidity = humidity.97.FOWH65BAltPacket
        windDir = wind_dir.97.FOWH65BAltPacket
        windSpeed = wind_speed.97.FOWH65BAltPacket
        windGust = wind_gust.97.FOWH65BAltPacket
        rain_total = rain_total.97.FOWH65BAltPacket
        uv = uv.97.FOWH65BAltPacket # Not displaying in web page
        UVI = uv_index.97.FOWH65BAltPacket
        light = light.97.FOWH65BAltPacket # Not displaying in web page
    [[deltas]]
        rain = rain_total











gjr80

unread,
Feb 13, 2021, 12:46:32 PM2/13/21
to weewx-user
Any reason you are mapping fields with ‘Alt’ when sdr is emitting fields without the ‘Alt’? For example, temperature.97.FOWH65BPacket vs temperature.97.FOWH65BAltPacket.

Gary

Ed Belcher

unread,
Feb 13, 2021, 1:58:46 PM2/13/21
to weewx-user
That was a fine catch!  I removed the 'Alt' from the sensors for SDR in weewx.conf, and immediately started getting data.  Thanks!
Reply all
Reply to author
Forward
0 new messages