Ian,
I have no interest in having MQTTSubscribe write to a file. It doesn’t fit 
into its purpose.
Aren’t there other WeeWX services that write loop data to a file?
What are you trying to accomplish?
rich

On Tuesday, 12 August 2025 at 13:59:48 UTC-4 steepleian wrote:

> Rich,
> Yes will do.
>
> I was thinking to myself, whilst I was working on this, would it be 
> possible to add an option to generate the loop data as a file? In this way 
> it would be a complete solution providing live data as well. I assume that 
> this is possible but way above my pay grade.
> Ian
>
> https://claydonsweather.org.uk
>
> On 12 Aug 2025, at 18:14, [email protected] <[email protected]> wrote:
>
> Thanks for sharing! Any interest in adding it to the examples repository 
> at, 
> https://github.com/bellrichm/WeeWX-MQTTSubscribe/tree/master/exampleConfigs
> ?
>
> rich
>
> On Tuesday, 12 August 2025 at 01:08:20 UTC-4 Ian Millard wrote:
>
>> Just in case this is useful for anyone.
>>
>> This is an example [MQTTSubscribeDriver] stanza to use in conjunction 
>> with Ecowitt MQTT weather service protocol which is now included in GW2000 
>> and GW3000 gateway devices.
>>
>>
>> ##############################################################################
>>
>> [MQTTSubscribeDriver]
>>     driver = user.MQTTSubscribe
>>     host = broker.mqtt.cool
>>     port = 1883
>>     keepalive = 60
>>     username = None
>>     password = None
>>     binding = loop
>>     
>>     [[topics]]
>>         unit_system = US
>>         [[[ecowitt/1C6920E3A8F3]]]
>>            subscribe = True
>>            ignore = False
>>             [[[[message]]]]
>>                 type = keyword
>>                 keyword_delimiter = "&"
>>             [[[[PASSKEY]]]]
>>                 ignore = True
>>             [[[[stationtype]]]]
>>                 ignore = True
>>             [[[[runtime]]]]
>>                 ignore = True
>>             [[[[dns_err_cnt]]]]
>>                 ignore = True
>>             [[[[cdnflg]]]]
>>                 ignore = True
>>             [[[[dateutc]]]]
>>                 ignore = True
>>             [[[[freq]]]]
>>                 ignore = True
>>             [[[[model]]]]
>>                 ignore = True
>>             [[[[baromrelin]]]]
>>                 name = barometer
>>             [[[[baromabsin]]]]
>>                 name = pressure
>>             [[[[dailyrainin]]]]
>>                 name = dayRain
>>             [[[[drain_piezo]]]]
>>                 name = p_dayRain
>>             [[[[erain_piezo]]]]
>>                 name = p_stormRain
>>             [[[[eventrainin]]]]
>>                 name = stormRain
>>             [[[[hourlyrainin]]]]
>>                 name = hourRain
>>             [[[[hrain_piezo]]]]
>>                 name = p_hourRain
>>             [[[[humidityin]]]]
>>                 name = inHumidity
>>             [[[[humidity]]]]
>>                 name = outHumidity
>>             [[[[last24hrain_piezo]]]]
>>                 name = p_24Rain
>>             [[[[last24hrainin]]]]
>>                 name = 24Rain
>>             [[[[lightning]]]]
>>                 name = lightning_dist
>>             [[[[lightning_num]]]]
>>                 name = lightning_strike_count
>>             [[[[lightning_time]]]]
>>                 name = lightning_last_det_time
>>             [[[[monthlyrainin]]]]
>>                 name = monthRain
>>             [[[[mrain_piezo]]]]
>>                 name = p_monthRain
>>             [[[[rainratein]]]]
>>                 name = rainRate
>>             [[[[rrain_piezo]]]]
>>                 name = p_rainRate
>>             [[[[solarradiation]]]]
>>                name = radiation
>>             [[[[srain_piezo]]]]
>>                 name = isRaining
>>             [[[[tempf]]]]
>>                 name = outTemp
>>             [[[[tempinf]]]]
>>                name = inTemp
>>             [[[[uv]]]]
>>                 name = UV
>>             [[[[weeklyrainin]]]]
>>                 name = weekRain
>>             [[[[wrain_piezo]]]]
>>                 name = p_weekRain
>>             [[[[winddir]]]]
>>                 name = windDir
>>             [[[[windgustmph]]]]
>>                 name = windGust
>>             [[[[windspeedmph]]]]
>>                name = windSpeed
>>             [[[[yearlyrainin]]]]
>>                 name = yearRain
>>             [[[[yrain_piezo]]]]
>>                 name = p_yearRain
>>
>>
>> ##############################################################################
>>
>>
>> On 11 Aug 2025, at 23:57, 'Ian Millard' via weewx-user <
>> [email protected]> wrote:
>>
>> Vince,
>> Bingo, you nailed it in one. It worked perfectly.
>> As always, thanks very much for your help.
>> Ian
>>
>> On 11 Aug 2025, at 23:39, vince <[email protected]> wrote:
>>
>> I’m sure Rich will chime in but my first impression is you should ignore 
>> the elements within the reply that cannot be mapped to weewx db elements, 
>> so ignore everything to the left of tempinf in the payload
>> On Monday, August 11, 2025 at 3:21:03 PM UTC-7 Ian Millard wrote:
>>
>>> Vince,
>>> Sorry for the delay, I missed your post on my phone whilst away from 
>>> home.
>>>
>>> Status as follows: -
>>>
>>> The new Ecowitt MQTT protocol is publishing to broker with no problem 
>>> and I can see the data arriving in the broker browser.
>>>
>>> In weewx.conf I have this: -
>>>
>>> [MQTTSubscribeDriver]
>>>     driver = user.MQTTSubscribe
>>>     host = broker.mqtt.cool
>>>     port = 1883
>>>     keepalive = 60
>>>     username = None
>>>     password = None
>>>     binding = loop
>>>     
>>>     [[topics]]
>>>         unit_system = US
>>>         [[[ecowitt/1C6920E3A8F3]]]
>>>            subscribe = True
>>>            ignore = False
>>>             [[[[message]]]]
>>>                 type = keyword
>>>                 keyword_delimiter = "&"
>>>
>>> Then, extract from journal log: -
>>>
>>> Aug 11 23:18:27 dvm weewxd[764736]: INFO __main__: Starting up weewx 
>>> version 5.1.0
>>> Aug 11 23:18:27 dvm weewxd[764736]: DEBUG weewx.engine: Station does 
>>> not support reading the time
>>> Aug 11 23:18:27 dvm weewxd[764736]: INFO weewx.engine: Using binding 
>>> 'wx_binding' to database 'weewx.sdb'
>>> Aug 11 23:18:27 dvm weewxd[764736]: INFO weewx.manager: Starting 
>>> backfill of daily summaries
>>> Aug 11 23:18:27 dvm weewxd[764736]: INFO weewx.manager: Daily summaries 
>>> up to date
>>> Aug 11 23:18:27 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> No archive topic configured.
>>> Aug 11 23:18:27 dvm weewxd[764736]: INFO weewx.engine: Starting main 
>>> packet loop.
>>> Aug 11 23:18:27 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> TopicManager starting queue ecowitt/1C6920E3A8F3 size is: 0
>>> Aug 11 23:18:27 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> TopicManager starting queue 
>>> 1754950706.041299-windGust-windGustDir-windDir-windSpeed size is: 0
>>> Aug 11 23:18:27 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> Queues are empty.
>>> Aug 11 23:18:29 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> TopicManager starting queue ecowitt/1C6920E3A8F3 size is: 0
>>> Aug 11 23:18:29 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> TopicManager starting queue 
>>> 1754950706.041299-windGust-windGustDir-windDir-windSpeed size is: 0
>>> Aug 11 23:18:29 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> Queues are empty.
>>> Aug 11 23:18:29 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> MessageCallbackProvider data-> incoming topic: ecowitt/1C6920E3A8F3, QOS: 
>>> 0, retain: False, payload: 
>>> b'PASSKEY=ED62ACE35A6D1A6CBFFC085BAADF1F1A&stationtype=GW3000A_V1.1.0&runtime=638367&heap=73048&dateutc=2025-08-11%2022%3A18%3A29&dns_err_cnt=0&cdnflg=42&tempinf=79.16&humidityin=51&baromrelin=30.064&baromabsin=29.763&tempf=71.78&humidity=60&vpd=0.314&winddir=169&winddir_avg10m=150&windspeedmph=4.25&windgustmph=6.26&maxdailygust=13.20&solarradiation=0.00&uv=0&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&last24hrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.240&yearlyrainin=6.583&rrain_piezo=0.000&erain_piezo=0.000&hrain_piezo=0.000&last24hrain_piezo=0.000&drain_piezo=0.000&wrain_piezo=0.000&mrain_piezo=0.173&yrain_piezo=11.531&srain_piezo=0&ws90cap_volt=5.4&ws90_ver=143&lightning_num=0&lightning=24&lightning_time=1753979889&wh40batt=1.7&wh57batt=3&wh90batt=3.28&freq=868M&model=GW3000A&interval=60'
>>> Aug 11 23:18:29 dvm weewxd[764736]: *ERROR user.MQTTSubscribe: (Driver) 
>>> MessageCallbackProvider on_message_keyword failed with <class 
>>> 'user.MQTTSubscribe.ConversionError'> and reason Failed converting field 
>>> PASSKEY with value ED62ACE35A6D1A6CBFFC085BAADF1F1A using 'lambda x: 
>>> to_float(x)' with reason could not convert string to float: 
>>> 'ED62ACE35A6D1A6CBFFC085BAADF1F1A'..*
>>> Aug 11 23:18:29 dvm weewxd[764736]: *ERROR user.MQTTSubscribe: (Driver) 
>>> **** MessageCallbackProvider Ignoring topic=ecowitt/1C6920E3A8F3 and 
>>> payload=b'PASSKEY=ED62ACE35A6D1A6CBFFC085BAADF1F1A&stationtype=GW3000A_V1.1.0&runtime=638367&heap=73048&dateutc=2025-08-11%2022%3A18%3A29&dns_err_cnt=0&cdnflg=42&tempinf=79.16&humidityin=51&baromrelin=30.064&baromabsin=29.763&tempf=71.78&humidity=60&vpd=0.314&winddir=169&winddir_avg10m=150&windspeedmph=4.25&windgustmph=6.26&maxdailygust=13.20&solarradiation=0.00&uv=0&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&last24hrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.240&yearlyrainin=6.583&rrain_piezo=0.000&erain_piezo=0.000&hrain_piezo=0.000&last24hrain_piezo=0.000&drain_piezo=0.000&wrain_piezo=0.000&mrain_piezo=0.173&yrain_piezo=11.531&srain_piezo=0&ws90cap_volt=5.4&ws90_ver=143&lightning_num=0&lightning=24&lightning_time=1753979889&wh40batt=1.7&wh57batt=3&wh90batt=3.28&freq=868M&model=GW3000A&interval=60'*
>>> Aug 11 23:18:29 dvm weewxd[764736]: *ERROR user.MQTTSubscribe: (Driver) 
>>> **** MessageCallbackProvider Traceback (most recent call last):*
>>>                                     *  File 
>>> "/home/dvm/weewx-data/bin/user/MQTTSubscribe.py", line 1441, in 
>>> _convert_value*
>>>                                     *    return 
>>> conversion_func['compiled'](value)*
>>>                                     *         
>>>   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*
>>>                                     *  File "<string>", line 1, in 
>>> <lambda>*
>>>                                     *  File 
>>> "/home/dvm/weewx-venv/lib/python3.11/site-packages/weeutil/weeutil.py", 
>>> line 1584, in to_float*
>>>                                     *    return float(x) if x is not 
>>> None else None*
>>>                                     *           ^^^^^^^^*
>>>                                     *ValueError: could not convert 
>>> string to float: 'ED62ACE35A6D1A6CBFFC085BAADF1F1A'*
>>>                                     
>>>                                     *The above exception was the direct 
>>> cause of the following exception:*
>>>                                     
>>>                                     *Traceback (most recent call last):*
>>>                                     *  File 
>>> "/home/dvm/weewx-data/bin/user/MQTTSubscribe.py", line 1560, in 
>>> _on_message_keyword*
>>>                                     *    (fieldname, value) = 
>>> self._update_data(key, field[eq_index + 1:].strip(), fields, 
>>> fields_conversion_func, unit_system)*
>>>                                     *                       
>>>   
>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*
>>>                                     *  File 
>>> "/home/dvm/weewx-data/bin/user/MQTTSubscribe.py", line 1400, in 
>>> _update_data*
>>>                                     *    value = 
>>> self._convert_value(fields, default_field_conversion_func, orig_name, 
>>> orig_value)*
>>>                                     *          
>>>   
>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^*
>>>                                     *  File 
>>> "/home/dvm/weewx-data/bin/user/MQTTSubscribe.py", line 1446, in 
>>> _convert_value*
>>>                                     *    raise ConversionError(*
>>>                                     *user.MQTTSubscribe.ConversionError: 
>>> Failed converting field PASSKEY with value ED62ACE35A6D1A6CBFFC085BAADF1F1A 
>>> using 'lambda x: to_float(x)' with reason could not convert string to 
>>> float: 'ED62ACE35A6D1A6CBFFC085BAADF1F1A'.*
>>> Aug 11 23:18:31 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> TopicManager starting queue ecowitt/1C6920E3A8F3 size is: 0
>>> Aug 11 23:18:31 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> TopicManager starting queue 
>>> 1754950706.041299-windGust-windGustDir-windDir-windSpeed size is: 0
>>> Aug 11 23:18:31 dvm weewxd[764736]: DEBUG user.MQTTSubscribe: (Driver) 
>>> Queues are empty.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On 7 Aug 2025, at 17:44, vince <[email protected]> wrote:
>>>
>>> What problems are you running into ?
>>>
>>> Does my MQTT subscribe example not work ? I’ve been subscribing to MQTT 
>>> ecowitt data for years that way.
>>>
>>> On Thursday, August 7, 2025 at 12:15:47 AM UTC-7 steepleian wrote:
>>>
>>> @james
>>> Could you share your subscribe configuration please. I have the GW3000 
>>> publishing directly to a local broker which works fine. I am having 
>>> problems with getting the settings right for Rich’s MQTTSubscribe. I 
>>> usually manage to muddle my way through solutions but this one is evading 
>>> me.
>>> Many thanks in advance.
>>> Ian
>>>
>>>
>>> -- 
>>> 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/ad201cea-1c12-428f-acd5-2ab88a38bc24n%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/weewx-user/ad201cea-1c12-428f-acd5-2ab88a38bc24n%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 visit 
>> https://groups.google.com/d/msgid/weewx-user/70e21a4c-c324-40d7-b86f-c8a52eb0a3b0n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/weewx-user/70e21a4c-c324-40d7-b86f-c8a52eb0a3b0n%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 visit 
>> https://groups.google.com/d/msgid/weewx-user/F5B4409D-F63E-46B3-A623-D6CCE4079215%40btinternet.com
>>  
>> <https://groups.google.com/d/msgid/weewx-user/F5B4409D-F63E-46B3-A623-D6CCE4079215%40btinternet.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 visit 
> https://groups.google.com/d/msgid/weewx-user/f9ebf899-2fad-43ea-a642-0132fffd054cn%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/weewx-user/f9ebf899-2fad-43ea-a642-0132fffd054cn%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 visit 
https://groups.google.com/d/msgid/weewx-user/9968d8d4-3507-452b-9559-759b6a2bdc79n%40googlegroups.com.

Reply via email to