So, I must be doing something wrong, not sure what though. I am attaching 
my updated weewx.conf file, and the error that it generated.

On Tuesday, October 14, 2025 at 4:49:43 PM UTC-7 vince wrote:

> Your weewx.conf section looks incomplete/incorrect. You are missing all 
> the configuration info you need to add.
>
> If you look at the examples in 
> https://github.com/bellrichm/WeeWX-MQTTSubscribe/tree/master/exampleConfigs 
> they should give you the basic format needed although you’ll need to figure 
> out your custom mapping of data to weewx database fields.
>
>
> On Tuesday, October 14, 2025 at 4:28:06 PM UTC-7 James Michael Wall wrote:
>
>> Also,
>>
>> Sorry, I forgot to provide WeeWX status, FWIW:
>>
>> $ systemctl status weewx
>> × weewx.service - WeeWX
>>      Loaded: loaded (/lib/systemd/system/weewx.service; enabled; preset: 
>> enabled)
>>      Active: failed (Result: exit-code) since Tue 2025-10-14 16:24:18 
>> PDT; 2s ago
>>    Duration: 903ms
>>        Docs: https://weewx.com/docs
>>     Process: 4176 ExecStart=weewxd /etc/weewx/weewx.conf (code=exited, 
>> status=4)
>>    Main PID: 4176 (code=exited, status=4)
>>         CPU: 904ms
>>
>> Oct 14 16:24:18 Zero2W-1 weewxd[4176]: CRITICAL weewx.engine:     ****   
>>           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> Oct 14 16:24:18 Zero2W-1 weewxd[4176]: CRITICAL weewx.engine:     ****   
>>  File "/etc/weewx/bin/user/MQTTSubscribe.py", line 2011, in __init__
>> Oct 14 16:24:18 Zero2W-1 weewxd[4176]: CRITICAL weewx.engine:     ****   
>>    super().__init__(service_dict, logger)
>> Oct 14 16:24:18 Zero2W-1 weewxd[4176]: CRITICAL weewx.engine:     ****   
>>  File "/etc/weewx/bin/user/MQTTSubscribe.py", line 1751, in __init__
>> Oct 14 16:24:18 Zero2W-1 weewxd[4176]: CRITICAL weewx.engine:     ****   
>>    raise ValueError("[[topics]] is required.")
>> Oct 14 16:24:18 Zero2W-1 weewxd[4176]: CRITICAL weewx.engine:     **** 
>>  ValueError: [[topics]] is required.
>> Oct 14 16:24:18 Zero2W-1 weewxd[4176]: CRITICAL __main__: Unable to load 
>> driver: [[topics]] is required.
>> Oct 14 16:24:18 Zero2W-1 weewxd[4176]: CRITICAL __main__:     **** 
>>  Exiting...
>> Oct 14 16:24:18 Zero2W-1 systemd[1]: weewx.service: Main process exited, 
>> code=exited, status=4/NOPERMISSION
>> Oct 14 16:24:18 Zero2W-1 systemd[1]: weewx.service: Failed with result 
>> 'exit-code'.
>>
>> On Tuesday, October 14, 2025 at 3:55:38 PM UTC-7 James Michael Wall wrote:
>>
>>> Hello,
>>>
>>> I am new to using WeeWX, and am having trouble getting the MQTTSubscribe 
>>> driver to work properly. I am following the directions found at 
>>> https://github.com/bellrichm/WeeWX-MQTTSubscribe as best as I can, but 
>>> some of it is hard for me to understand. My basic understanding of WeeWX 
>>> and MQTT is very limited, so I am going to do the best I can to explain my 
>>> problem, provide whatever information necessary, and (hopefully) get this 
>>> issue resolved so I can get my weather station working.
>>>
>>> Here is my Hardware/Software Setup Overview:
>>>
>>> *Weather Station/MQTT Client/MQTT Publisher:*
>>>
>>> BC-Robotics 1591B Weatherboard 
>>> <https://bc-robotics.com/shop/raspberry-pi-pico-1591b-weather-board/> 
>>> with Raspberry Pico 2W 
>>> <https://www.raspberrypi.com/products/raspberry-pi-pico-2/>, running 
>>> MicroPython v1.26.1-2025-09-11. This device is collecting, parsing, and 
>>> sending data from various weather sensors connected to it over WiFi on my 
>>> local LAN using umqttsimple. This device is set up as an MQTT client, which 
>>> publishes the sensor data using the topic "weatherpi" to the MQTT broker on 
>>> the Raspberry Pi Zero 2W listed below. 
>>>
>>> *Weather Reciever/MQTT Server/MQTT Broker/MQTT Subscriber/WeeWX Server:*
>>>
>>> Raspberry Pi Zero 2W 
>>> <https://www.raspberrypi.com/products/raspberry-pi-zero-2-w/>, running 
>>> Raspberry OS "Bookworm" with WeeWX version 5.1.0-4 installed as a Debian 
>>> package via the WeeWX debian repo instructions. I have installed  Mosquitto 
>>> version 2.0.11, and python3-paho-mqtt 1.6.1-1. I set up Mosquitto to act as 
>>> an MQTT broker on this device, subscribed to the topic "weatherpi", which 
>>> is published by the Pico. I have installed the MQTTSubscribe  driver per 
>>> the instructions found in the Github link above.
>>>
>>> AFAICT, I have everything set up correctly on the Pico, and it is 
>>> publishing successfully to the Mosquitto MQTT server, but when I run sudo 
>>> weectl station reconfigure, after going through all the prompts, I get the 
>>> following error:
>>>
>>> Traceback (most recent call last):
>>>   File "/usr/share/weewx/weectl.py", line 75, in <module>
>>>     main()
>>>   File "/usr/share/weewx/weectl.py", line 67, in main
>>>     namespace.func(namespace)
>>>   File "/usr/share/weewx/weectllib/__init__.py", line 90, in dispatch
>>>     namespace.action_func(config_dict, namespace)
>>>   File "/usr/share/weewx/weectllib/station_cmd.py", line 311, in 
>>> reconfigure_station
>>>     
>>> weectllib.station_actions.station_reconfigure(config_dict=config_dict,
>>>   File "/usr/share/weewx/weectllib/station_actions.py", line 164, in 
>>> station_reconfigure
>>>     config_config(config_dict,
>>>   File "/usr/share/weewx/weectllib/station_actions.py", line 207, in 
>>> config_config
>>>     config_driver(config_dict, driver=driver, no_prompt=no_prompt)
>>>   File "/usr/share/weewx/weectllib/station_actions.py", line 466, in 
>>> config_driver
>>>     settings = weecfg.prompt_for_driver_settings(final_driver,
>>>                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>   File "/usr/share/weewx/weecfg/__init__.py", line 520, in 
>>> prompt_for_driver_settings
>>>     settings = editor.prompt_for_settings()
>>>                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>>   File "/etc/weewx/bin/user/MQTTSubscribe.py", line 2424, in 
>>> prompt_for_settings
>>>     if len(self.existing_options['topics']) > 1:
>>>            ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
>>>   File "/usr/lib/python3/dist-packages/configobj/__init__.py", line 554, 
>>> in __getitem__
>>>     val = dict.__getitem__(self, key)
>>>           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>> KeyError: 'topics'.
>>>
>>> In following the directions given in the top of the weewx-user group 
>>> with regard to posting, I am attaching my weewx.conf file, and system log 
>>> from the RP Zero using the following command: journalctl -xe | grep weewx 
>>> to this post. The other information requested is listed above. If you need 
>>> anything else, please let me know, I am happy to help.
>>>
>>>

-- 
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 visit 
https://groups.google.com/d/msgid/weewx-user/7df05c00-ba0f-4c71-96c2-91c2fc99c1a6n%40googlegroups.com.
# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2024 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 = 1

# Whether to log successful operations. May get overridden below.
log_success = True

# Whether to log unsuccessful operations. May get overridden below.
log_failure = True

# This configuration file was created by ...
version = 5.1.0

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

#   This section is for information about the station.

[Station]
    
    # Description of the station location, such as your town.
    location = "Mossyrock, WA"
    
    # Latitude in decimal degrees. Negative for southern hemisphere.
    latitude = 46.51875
    # Longitude in decimal degrees. Negative for western hemisphere.
    longitude = -122.505194
    
    # Altitude of the station, with the unit it is in. This is used only
    # if the hardware cannot supply a value.
    altitude = 624, foot    # Choose 'foot' or 'meter' for unit
    
    # Set to type of station hardware. There must be a corresponding stanza
    # in this file, which includes a value for the 'driver' option.
    #station_type = Simulator
    station_type = MQTTSubscribeDriver

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

[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

[MQTTSubscribe]
    # The driver to use.
    # Only used by the driver.
    driver = user.MQTTSubscribe
    
    # Turn the service on and off.
    # Default is true.
    # Only used by the service.
    enable = true
    
    # Controls if validation errors raise an exception (stopping WeeWX from 
starting) or only logged.
    # Default is false
    stop_on_validation_errors = true
    
    # The binding, loop or archive.
    # Default is loop.
    # Only used by the service.
    binding = loop
    
    # The MQTT server.
    # Default is localhost.
    host = localhost
    
    # Controls the MQTT logging.
    # Default is false.
    log = false
    
    # password for broker authentication.
    # Default is None.
    password = user_password
    
    # The port to connect to.
    # Default is 1883.
    port = 1883
    
    # username for broker authentication.
    # Default is None.
    username = user
  
 
    # For additional information see, 
https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki/Configuring#the-topic-name-sections
    [[topics]]
        # Units for MQTT payloads without unit value.
        # Valid values: US, METRIC, METRICWX.
        # For more information see, http://weewx.com/docs/customizing.htm#units
        # Default is US.
        unit_system = US
        
        # The first topic to subscribe to
        # For additional information see, 
https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki/Configuring#the-topic-name-sections
        [[[weatherpi]]]
            # When set to false, the topic is not subscribed to.
            # Valid values: True, False
            # Default is True
            subscribe = True
            
            # Sets the default value for all fields in this topic.
            # Setting the value to 'true' "opts out" and the desired fields 
will need to set 'ignore = true'
            # Valid values: True, False.
            # Default is False.
            ignore = False
            
            # Configuration information about the MQTT message format for this 
topic
            [[[[message]]]]
                # The format of the MQTT payload.
                # Currently support: individual, json, keyword.
                # Must be specified.
                type = json
            
            # The incoming field name from MQTT.
            # For additional information see, 
https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki/Configuring#the-field-name-sections
            # Use this template for any fields that need to be configured.
            # If no fields need to be configured, remove this section.
            [[[[tempout]]]]
                # True if the incoming field should not be processed into WeeWX.
                # Valid values: True, False.
                # Default is  derived from the 'ignore' option at the topic 
level.
                ignore = False
            [[[[humout]]]]
                # True if the incoming field should not be processed into WeeWX.
                # Valid values: True, False.
                # Default is  derived from the 'ignore' option at the topic 
level.
                ignore = False
            [[[[bar]]]]
                # True if the incoming field should not be processed into WeeWX.
                # Valid values: True, False.
                # Default is  derived from the 'ignore' option at the topic 
level.
                ignore = False
            [[[[windspd]]]]
                # True if the incoming field should not be processed into WeeWX.
                # Valid values: True, False.
                # Default is  derived from the 'ignore' option at the topic 
level.
                ignore = False
            [[[[winddir]]]]
                # True if the incoming field should not be processed into WeeWX.
                # Valid values: True, False.
                # Default is  derived from the 'ignore' option at the topic 
level.
                ignore = False               
            [[[[rainr]]]]
                # True if the incoming field should not be processed into WeeWX.
                # Valid values: True, False.
                # Default is  derived from the 'ignore' option at the topic 
level.
                ignore = False
                
                # True if the incoming data is cumulative.
                # Valid values: True, False.
                # Default is False.
                contains_total = False
                
                # The WeeWX name.
                # Default is the name from MQTT.
                name = weatherpi
                
                # If you have a website, you may specify an URL. The URL is 
required if you
                # intend to register your station. The URL must include the 
scheme, for
                # example, "http://"; or "https://";
                #station_url = https://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
                # This section is for the MQTTSubscribe driver.
                
                # The driver to use.
                # Only used by the driver.
                driver = user.MQTTSubscribe
                
                # Controls if validation errors raise an exception (stopping 
WeeWX from starting) or only logged.
                # Default is false
                stop_on_validation_errors = true

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

#   This section is for uploading data to Internet sites

[StdRESTful]
    
    # Uncomment and change to override logging for uploading services.
    # log_success = True
    # log_failure = True
    
    [[StationRegistry]]
        # To register this weather station at weewx.com, set this to true, and
        # set option 'station_url', located in the [Station] section above.
        register_this_station = False
    
    [[AWEKAS]]
        # This section is for configuring posts to AWEKAS.
        
        # If you wish to post to AWEKAS, set the option 'enable' to true, then
        # specify a username and password.
        # Use quotes around the password to guard against parsing errors.
        enable = false
        username = replace_me
        password = replace_me
    
    [[CWOP]]
        # This section is for configuring posts to CWOP.
        
        # If you wish to post to CWOP, set the option 'enable' to true,
        # then specify the station ID (e.g., CW1234).
        enable = false
        station = replace_me
        # If this is an APRS (radio amateur) station, specify the
        # passcode (e.g., 12345). Otherwise, ignore.
        passcode = replace_me
    
    [[PWSweather]]
        # This section is for configuring posts to PWSweather.com.
        
        # If you wish to post to PWSweather.com, set the option 'enable' to
        # true, then specify a station and password.
        # Use quotes around the password to guard against parsing errors.
        enable = false
        station = replace_me
        password = replace_me
    
    [[WOW]]
        # This section is for configuring posts to WOW.
        
        # If you wish to post to WOW, set the option 'enable' to true, then
        # specify a station and password.
        # Use quotes around the password to guard against parsing errors.
        enable = false
        station = replace_me
        password = replace_me
    
    [[Wunderground]]
        # This section is for configuring posts to the Weather Underground.
        
        # If you wish to post to the Weather Underground, set the option
        # 'enable' to true,  then specify a station (e.g., 'KORHOODR3'). Use
        # the station key (find it at
        # https://www.wunderground.com/member/devices) for the password.
        enable = false
        station = replace_me
        password = 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 = /var/www/html/weewx
    
    # Uncomment and change to override logging for reports.
    # log_success = True
    # log_failure = True
    
    # The database binding indicates which data should be used in reports.
    data_binding = wx_binding
    
    # Each of the following subsections defines a report that will be run.
    # See the customizing guide to change the units, plot types and line
    # colors, modify the fonts, display additional sensor data, and other
    # customizations. Many of those changes can be made here by overriding
    # parameters, or by modifying templates within the skin itself.
    
    [[SeasonsReport]]
        # The SeasonsReport uses the 'Seasons' skin, which contains the
        # images, templates and plots for the report.
        skin = Seasons
        enable = true
    
    [[SmartphoneReport]]
        # The SmartphoneReport uses the 'Smartphone' skin, and the images and
        # files are placed in a dedicated subdirectory.
        skin = Smartphone
        enable = false
        HTML_ROOT = /var/www/html/weewx/smartphone
    
    [[MobileReport]]
        # The MobileReport uses the 'Mobile' skin, and the images and files
        # are placed in a dedicated subdirectory.
        skin = Mobile
        enable = false
        HTML_ROOT = /var/www/html/weewx/mobile
    
    [[StandardReport]]
        # This is the old "Standard" skin. By default, it is not enabled.
        skin = Standard
        enable = false
    
    [[FTP]]
        # FTP'ing the results to a webserver is treated as just another report,
        # albeit one with an unusual report generator!
        skin = Ftp
        
        # If you wish to use FTP, set "enable" to "true", then fill out the
        # next four lines.
        # Use quotes around the password to guard against parsing errors.
        enable = false
        user = replace_me
        password = replace_me
        server = replace_me    # The ftp server name, e.g, www.myserver.org
        path = replace_me    # The destination directory, e.g., /weather
        
        # Set to True for an FTP over TLS (FTPS) connection. Not all servers
        # support this.
        secure_ftp = False
        
        # To upload files from something other than what HTML_ROOT is set
        # to above, specify a different HTML_ROOT here.
        #HTML_ROOT = /var/www/html/weewx
        
        # Most FTP servers use port 21.
        port = 21
        
        # Set to 1 to use passive mode, zero for active mode
        passive = 1
    
    [[RSYNC]]
        # rsync'ing to a webserver is treated as just another report.
        skin = Rsync
        
        # If you wish to use rsync, you must configure passwordless ssh using
        # public/private key authentication from the user account that weewx
        # runs to the user account on the remote machine where the files
        # will be copied.
        #
        # If you wish to use rsync, set "enable" to "true", then
        # fill out server, user, and path.
        # The server should appear in your .ssh/config file.
        # The user is the username used in the identity file.
        # The path is the destination directory, such as /var/www/html/weather.
        # Be sure that the user has write permissions on the destination!
        enable = false
        server = replace_me
        user = replace_me
        path = replace_me
        
        # To upload files from something other than what HTML_ROOT is set
        # to above, specify a different HTML_ROOT here.
        #HTML_ROOT = /var/www/html/weewx
        
        # Rsync can be configured to remove files from the remote server if
        # they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you
        # make a mistake in the remote path, you could could unintentionally
        # cause unrelated files to be deleted. Set to 1 to enable remote file
        # deletion, zero to allow files to accumulate remotely.
        delete = 0
    
    # Options in the [[Defaults]] section below will apply to all reports.
    # What follows are a few of the more popular options you may want to
    # uncomment, then change.
    [[Defaults]]
        
        # Which language to use for all reports. Not all skins support all
        # languages.  You can override this for individual reports.
        lang = en
        
        # Which unit system to use for all reports. Choices are 'us', 'metric',
        # or 'metricwx'.  You can override this for individual reports.
        unit_system = us
        
        [[[Units]]]
            
            # Option "unit_system" above sets the general unit system, but
            # overriding specific unit groups is possible. These are popular
            # choices. Uncomment and set as appropriate.  The unit is always
            # in the singular, e.g., 'mile_per_hour', NOT 'miles_per_hour'
            [[[[Groups]]]]
                # group_altitude     = meter              # Options are 'foot' 
or 'meter'
                # group_pressure     = mbar               # Options are 'inHg', 
'mmHg', 'mbar', or 'hPa'
                # group_rain         = mm                 # Options are 'inch', 
'cm', or 'mm'
                # group_rainrate     = mm_per_hour        # Options are 
'inch_per_hour', 'cm_per_hour', or 'mm_per_hour'
                # group_temperature  = degree_C           # Options are 
'degree_C', 'degree_F', or 'degree_K'
                # The following line is used to keep the above lines indented
                # properly. It can be ignored.
                unused = unused
            
            # Uncommenting the following section frequently results in more
            # attractive formatting of times and dates, but may not work in
            # your locale.
            [[[[TimeFormats]]]]
                # day        = %H:%M
                # week       = %H:%M on %A
                # month      = %d-%b-%Y %H:%M
                # year       = %d-%b-%Y %H:%M
                # rainyear   = %d-%b-%Y %H:%M
                # current    = %d-%b-%Y %H:%M
                # ephem_day  = %H:%M
                # ephem_year = %d-%b-%Y %H:%M
                # The following line is used to keep the above lines indented
                # properly. It can be ignored.
                unused = unused
        
        [[[Labels]]]
            # Users frequently change the labels for these observation types.
            [[[[Generic]]]]
                # inHumidity     = Inside Humidity
                # inTemp         = Inside Temperature
                # outHumidity    = Outside Humidity
                # outTemp        = Outside Temperature
                # extraTemp1     = Temperature1
                # extraTemp2     = Temperature2
                # extraTemp3     = Temperature3
                # The following line is used to keep the above lines indented
                # properly. It can be ignored.
                unused = unused

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

#   This service converts 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 = hardware
    
    # Whether to include LOOP data in hi/low statistics.
    loop_hilo = True
    
    # Uncomment and change to override logging for archive operations.
    # log_success = True
    # log_failure = True
    
    # The data binding used to save archive records.
    data_binding = wx_binding

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

#   This section binds a data store to a database.

[DataBindings]
    
    [[wx_binding]]
        # The database must match one of the sections in [Databases].
        # This is likely to be the only option you would want to change.
        database = archive_sqlite
        # The name of the table within the database.
        table_name = archive
        # The manager handles aggregation of data for historical summaries.
        manager = weewx.manager.DaySummaryManager
        # The schema defines the structure of the database.
        # It is *only* used when the database is created.
        schema = schemas.wview_extended.schema

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

#   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 database files are located, relative to WEEWX_ROOT
        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
        # Use quotes around the password to guard against parsing errors.
        password = weewx

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

#   This section configures the internal weewx engine.

[Engine]
    
    # This section specifies which services should be run and in what order.
    [[Services]]
        prep_services = weewx.engine.StdTimeSynch
        data_services = user.MQTTSubscribe.MQTTSubscribeService,
        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
WeeWX Error Log

Oct 17 11:49:25 Zero2W-1 weewxd[8551]:     self.setupStation(config_dict)
Oct 17 11:49:25 Zero2W-1 weewxd[8551]:   File 
"/usr/share/weewx/weewx/engine.py", line 99, in setupStation
Oct 17 11:49:25 Zero2W-1 weewxd[8551]:     driver = 
config_dict[station_type]['driver']
Oct 17 11:49:25 Zero2W-1 weewxd[8551]:              ~~~~~~~~~~~^^^^^^^^^^^^^^
Oct 17 11:49:25 Zero2W-1 weewxd[8551]:   File 
"/usr/lib/python3/dist-packages/configobj/__init__.py", line 554, in __getitem__
Oct 17 11:49:25 Zero2W-1 weewxd[8551]:     val = dict.__getitem__(self, key)
Oct 17 11:49:25 Zero2W-1 weewxd[8551]:           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Oct 17 11:49:25 Zero2W-1 weewxd[8551]: KeyError: 'MQTTSubscribeDriver'
Oct 17 11:49:25 Zero2W-1 systemd[1]: weewx.service: Main process exited, 
code=exited, status=1/FAILURE
Oct 17 11:49:25 Zero2W-1 systemd[1]: weewx.service: Failed with result 
'exit-code'.

Reply via email to