Based on the snippet of the log file, my best guess is you also have a 
[MQTTSubscribeService] section that has no topics configured.
If this is not the case, set debug = 1, restart WeeWX, and post the 
complete log here. Make sure no sensitive information is in it.
rich

On Tuesday 16 July 2024 at 06:09:09 UTC-4 Vrishab Kakade wrote:

> I did a fresh install of the latest MQTTSubscribe with Weewx 5 and I get 
> the below error when I start weewx, but the simulation works just fine.
>
> (weewx-venv) weewx@freedompi:~/weewx-data $ weewxd
> Using configuration file /home/weewx/weewx-data/weewx.conf
> Using configuration file /home/weewx/weewx-data/weewx.conf
> topics_dict {'unit_system': 'METRIC', 'pico/temperature': {'subscribe': 
> 'True', 'ignore': 'False', 'message': {'type': 'individual'}, 'outTemp': > 
> {'ignore': 'False', 'contains_total': 'False', 'name': 'outTemp'}}}
> topics_dict None
> Traceback (most recent call last):
> File "/home/weewx/weewx-venv/bin/weewxd", line 8, in
> sys.exit(main())
> ^^^^^^
> File "/home/weewx/weewx-venv/lib/python3.11/site-packages/weewxd.py", line 
> 121, in main
> engine = weewx.engine.StdEngine(config_dict)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File 
> "/home/weewx/weewx-venv/lib/python3.11/site-packages/weewx/engine.py", line 
> 89, in *init*
> self.loadServices(config_dict)
> File 
> "/home/weewx/weewx-venv/lib/python3.11/site-packages/weewx/engine.py", line 
> 157, in loadServices
> obj = weeutil.weeutil.get_object(svc)(self, config_dict)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/home/weewx/weewx-data/bin/user/MQTTSubscribe.py", line 2179, in 
> *init*
> self.subscriber = MQTTSubscriber.get_subscriber(service_dict, self.logger)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/home/weewx/weewx-data/bin/user/MQTTSubscribe.py", line 1829, in 
> get_subscriber
> return MQTTSubscriberV2MQTT3(service_dict, logger)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> File "/home/weewx/weewx-data/bin/user/MQTTSubscribe.py", line 1752, in 
> *init*
> raise ValueError("[[topics]] is required.")
> ValueError: [[topics]] is required.
>
>
> Any idea why this would fail? I printed the value for topics_dict and it 
> seems to be picking the correct values, but it also seems to be picking 
> None.
>
> topics_dict {'unit_system': 'METRIC', 'pico/temperature': {'subscribe': 
> 'True', 'name': 'outTemp', 'ignore': 'False', 'message': {'type': 
> 'individual'}}}
> topics_dict None
>
> This is my configuration.
>
> [MQTTSubscribeDriver]
> # 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 = false # Controls if validation errors raise an exception 
> (stopping WeeWX from starting) or only logged. # Default is true 
> 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 = freedompi.local # Controls the MQTT logging. # 
> Default is false. log = false # password for broker authentication. # 
> Default is None. password = # The port to connect to. # Default is 1883. 
> port = 1883 # username for broker authentication. # Default is None. 
> username = weewx # The TLS options that are passed to tls_set method of the 
> MQTT client. # For additional information see, 
> https://eclipse.org/paho/clients/python/docs/strptime-format-codes 
> [[tls]] # Turn tls on and off. # Default is true. enable = false # Path to 
> the Certificate Authority certificate files that are to be treated as 
> trusted by this client. ca_certs = "" # The PEM encoded client certificate 
> and private keys. # Default is None certfile = None # The certificate 
> requirements that the client imposes on the broker. # Valid values: none, 
> optional, required # Default is required, certs_required = required # The 
> encryption ciphers that are allowable for this connection. Specify None to 
> use the defaults # Default is None. ciphers = None # The private keys. # 
> Default is None keyfile = None # The version of the SSL/TLS protocol to be 
> used. # Valid values: sslv2, sslv23, sslv3, tls, tlsv1, tlsv11, tlsv12. # 
> Default is tlsv12. tls_version = tlsv12 # 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 
> = METRIC # The first topic to subscribe to # For additional information 
> see, 
> https://github.com/bellrichm/WeeWX-MQTTSubscribe/wiki/Configuring#the-topic-name-sections
>  
> [[[pico/temperature]]] # 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 = individual # 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. [[[[outTemp]]]] # 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 = outTemp
>
>

-- 
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/4382e675-005f-4893-8ea8-830b82ce54b5n%40googlegroups.com.

Reply via email to