Try quoting & so it looks like ‘&’ 

On Thursday, August 20, 2026 at 10:05:00 PM UTC-7 Christian Peters wrote:

> Rich,
>
> I changed
> [[[[message]]]]
> type = keyword
> keyword_separator = "&"
>
> but still get this...
> :
> 2026-08-21T06:23:41.504828+02:00 weewx weewxd[1997621]: DEBUG 
> user.MQTTSubscribe: (Service) MessageCallbackProvider data-> incoming 
> topic: ecowitt/gw1000, QOS: 0, retain: False, payload: b'POST 
> /data/ip_api/ HTTP/1.1\r\nHOST: cdnrtpdate.ecowitt.net\r\nConnection: 
> Close\r\nContent-Type: 
> application/x-www-form-urlencoded\r\nContent-Length: 
>
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1813561&heap=88084&dateutc=2026-08-21+04%3A23%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=73.58&humidityin=45&baromrelin=29.831&baromabsin=28.367&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
> 2026-08-21T06:23:41.505265+02:00 weewx weewxd[1997621]: ERROR 
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword 
> failed with <class 'user.MQTTSubscribe.ConversionError'> and reason 
> Failed converting field POST /data/ip_api/ HTTP/1.1#015#012HOST: 
> cdnrtpdate.ecowitt.net#015#012Connection 
> <http://cdnrtpdate.ecowitt.net#015%23012Connection>: 
> Close#015#012Content-Type: 
> application/x-www-form-urlencoded#015#012Content-Length: 
> 353#015#012#015#012PASSKEY=7EDF1C083D41E2564A22B916BBD1979C with value 
> stationtype=GW1200A_V1.4.8&runtime=1813561&heap=88084&dateutc=2026-08-21+04%3A23%3A41&dns_err_cnt=2&cdnflg=1&adc=1007
>  
>
> using 'lambda x: to_float(x)' with reason could not convert string to 
> float: 
>
> 'stationtype=GW1200A_V1.4.8&runtime=1813561&heap=88084&dateutc=2026-08-21+04%3A23%3A41&dns_err_cnt=2&cdnflg=1&adc=1007'..
> 2026-08-21T06:23:41.505668+02:00 weewx weewxd[1997621]: ERROR 
> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Ignoring 
> topic=ecowitt/gw1000 and payload=b'POST /data/ip_api/ HTTP/1.1\r\nHOST: 
> cdnrtpdate.ecowitt.net\r\nConnection: Close\r\nContent-Type: 
> application/x-www-form-urlencoded\r\nContent-Length: 
>
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1813561&heap=88084&dateutc=2026-08-21+04%3A23%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=73.58&humidityin=45&baromrelin=29.831&baromabsin=28.367&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
> 2026-08-21T06:23:41.508993+02:00 weewx weewxd[1997621]: ERROR 
> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Traceback 
> (most recent call last):#012 File 
> "/etc/weewx/bin/user/MQTTSubscribe.py", line 1441, in _convert_value#012 
> return conversion_func['compiled'](value)#012 
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^#012 File "<string>", line 1, in 
> <lambda>#012 File "/usr/share/weewx/weeutil/weeutil.py", line 1585, in 
> to_float#012 return float(x) if x is not None else None#012 
> ~~~~~^^^#012ValueError: could not convert string to float: 
> 'stationtype=GW1200A_V1.4.8&runtime=1813561&heap=88084&dateutc=2026-08-21+04%3A23%3A41&dns_err_cnt=2&cdnflg=1&adc=1007'#012#012The
>  
>
> above exception was the direct cause of the following 
> exception:#012#012Traceback (most recent call last):#012 File 
> "/etc/weewx/bin/user/MQTTSubscribe.py", line 1560, in 
> _on_message_keyword#012 (fieldname, value) = self._update_data(key, 
> field[eq_index + 1:].strip(), fields, fields_conversion_func, 
> unit_system)#012 
> ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#012
>  
>
> File "/etc/weewx/bin/user/MQTTSubscribe.py", line 1400, in 
> _update_data#012 value = self._convert_value(fields, 
> default_field_conversion_func, orig_name, orig_value)#012 File 
> "/etc/weewx/bin/user/MQTTSubscribe.py", line 1446, in _convert_value#012 
> raise ConversionError(#012 f"Failed converting field {field} 
> with value {value} using '{conversion_func['source']}' with reason 
> {exception}.")\#012 from 
> exception#012user.MQTTSubscribe.ConversionError: Failed converting field 
> POST /data/ip_api/ HTTP/1.1#015#012HOST: 
> cdnrtpdate.ecowitt.net#015#012Connection 
> <http://cdnrtpdate.ecowitt.net#015%23012Connection>: 
> Close#015#012Content-Type: 
> application/x-www-form-urlencoded#015#012Content-Length: 
> 353#015#012#015#012PASSKEY=7EDF1C083D41E2564A22B916BBD1979C with value 
> stationtype=GW1200A_V1.4.8&runtime=1813561&heap=88084&dateutc=2026-08-21+04%3A23%3A41&dns_err_cnt=2&cdnflg=1&adc=1007
>  
>
> using 'lambda x: to_float(x)' with reason could not convert string to 
> float: 
>
> 'stationtype=GW1200A_V1.4.8&runtime=1813561&heap=88084&dateutc=2026-08-21+04%3A23%3A41&dns_err_cnt=2&cdnflg=1&adc=1007'.
>
> My config once more, I think it's quit simialr to tho one Vince posted 
> here, but I can't get the header stuff ignored....!?
>
> [[[ecowitt/gw1000]]] # The topic you are subscribing to
> ignore = false
> unit_system = METRICWX
> [[[[message]]]]
> type = keyword
> keyword_separator = "&"
> # map MQTT field to WeeWX database field
> [[[[PASSKEY]]]]
> ignore = True
> [[[[stationtype]]]]
> ignore = True
> [[[[runtime]]]]
> ignore = True
> [[[[heap]]]]
> ignore = True
> [[[[dateutc]]]]
> ignore = True
> [[[[dns_err_cnt]]]]
> ignore = True
> [[[[cdnflg]]]]
> ignore = True
> [[[[adc]]]]
> ignore = True
> [[[[freq_volt]]]]
> ignore = True
> [[[[tempinf]]]]
> ignore = True
> [[[[humidityin]]]]
> ignore = True
> [[[[baromrelin]]]]
> ignore = True
> [[[[baromabsin]]]]
> ignore = True
> [[[[wh57batt]]]]
> ignore = True
> [[[[freq]]]]
> ignore = True
> [[[[model]]]]
> ignore = True
> [[[[interval]]]]
> ignore = True
> [[[[lightning]]]]
> name = lightning_dist
> [[[[lightning_num]]]]
> name = lightning_strike_count
> [[[[lightning_time]]]]
> name = lightning_last_det_time
>
> The problem is I run an VP2pro and want' to use a service to only get 
> the lightning data, not inTemp, barometer which are provided too and 
> woul normaly map to the values which are reserved by the VP2pro.
> As MQTTsubscribe works great here for 3 other sensors I would prefer 
> this way to map only the lightning data into weeewx.
>
> I changeded to posted config of vinve withe ignore = true in the head of 
> the config section, but even no success:
>
> [[[ecowitt/gw1000]]] # The topic you are subscribing to
> ignore = true
> unit_system = METRICWX
> [[[[message]]]]
> type = keyword
> keyword_separator = &
> # map MQTT field to WeeWX database field
> [[[[lightning]]]]
> name = lightning_dist
> [[[[lightning_num]]]]
> name = lightning_strike_count
> [[[[lightning_time]]]]
> name = lightning_last_det_time
>
> but still get:
>
> 2026-08-21T06:48:41.813181+02:00 weewx weewxd[1999785]: DEBUG 
> user.MQTTSubscribe: (Service) MessageCallbackProvider data-> incoming 
> topic: 
> application/d11a28e3-f97a-4866-949d-e07ab9aad18e/device/a84041dce189f0e9/event/up,
>  
>
> QOS: 0, retain: False, payload: 
> b'{"deduplicationId":"b116d097-fea0-491d-8325-ad34cec1d851","time":"2026-08-21T04:48:33.082033+00:00","deviceInfo":{"tenantId":"52f14cd4-c6f1-4fbd-8f87-4025e1d49242","tenantName":"ChirpStack","applicationId":"d11a28e3-f97a-4866-949d-e07ab9aad18e","applicationName":"temp-hum-app","deviceProfileId":"9f4e5931-3788-474a-b996-29471906dee9","deviceProfileName":"Temperatur+Feuchte","deviceName":"LHT65N-1-Gew\xc3\xa4chshaus","devEui":"a84041dce189f0e9","deviceClassEnabled":"CLASS_A","tags":{}},"devAddr":"012b1ebf","adr":true,"dr":5,"fCnt":39440,"fPort":2,"confirmed":false,"data":"ilgE/AMVAgTXf/8=","object":{"TempC_SHT":12.76,"Hum_SHT":78.9,"TempC_TMP117":12.39,"Bat_status":2.0,"BatV":2.648,"Ext_sensor":"Temperature
>  
>
>
> Sensor"},"rxInfo":[{"gatewayId":"4a364b5196414b32","uplinkId":46593,"gwTime":"2026-08-21T04:48:33.082033+00:00","nsTime":"2026-08-21T04:48:41.593856062+00:00","rssi":-51,"snr":10.0,"channel":3,"location":{},"context":"M0ilZA==","crcStatus":"CRC_OK"}],"txInfo":{"frequency":867100000,"modulation":{"lora":{"bandwidth":125000,"spreadingFactor":7,"codeRate":"CR_4_5"}}},"regionConfigId":"eu868"}'
> 2026-08-21T06:48:41.813953+02:00 weewx weewxd[1999785]: DEBUG 
> user.MQTTSubscribe: (Service) TopicManager data-> incoming 
> application/d11a28e3-f97a-4866-949d-e07ab9aad18e/device/a84041dce189f0e9/event/up:
>  
>
> batteryStatus7: 2.648, extraHumid7: 78.9, extraTemp7: 12.39, extraTemp8: 
> 12.76
> 2026-08-21T06:48:41.825132+02:00 weewx weewxd[1999785]: DEBUG 
> user.MQTTSubscribe: (Service) MessageCallbackProvider data-> incoming 
> topic: ecowitt/gw1000, QOS: 0, retain: False, payload: b'POST 
> /data/ip_api/ HTTP/1.1\r\nHOST: cdnrtpdate.ecowitt.net\r\nConnection: 
> Close\r\nContent-Type: 
> application/x-www-form-urlencoded\r\nContent-Length: 
>
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1815061&heap=88084&dateutc=2026-08-21+04%3A48%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=73.22&humidityin=44&baromrelin=29.822&baromabsin=28.358&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
> 2026-08-21T06:48:41.825628+02:00 weewx weewxd[1999785]: ERROR 
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword 
> failed to find separator: &
> 2026-08-21T06:48:41.825854+02:00 weewx weewxd[1999785]: ERROR 
> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Skipping 
> field=987
> 2026-08-21T06:48:41.825988+02:00 weewx weewxd[1999785]: ERROR 
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword 
> failed to find separator: &
> 2026-08-21T06:48:41.826131+02:00 weewx weewxd[1999785]: ERROR 
> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Skipping 
> field=987
> 2026-08-21T06:48:41.826233+02:00 weewx weewxd[1999785]: ERROR 
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword 
> failed to find separator: &
> 2026-08-21T06:48:41.826379+02:00 weewx weewxd[1999785]: ERROR 
> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Skipping 
> field=987
> 2026-08-21T06:48:41.826475+02:00 weewx weewxd[1999785]: ERROR 
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword 
> failed to find data in: topic=ecowitt/gw1000 and payload=b'POST 
> /data/ip_api/ HTTP/1.1\r\nHOST: cdnrtpdate.ecowitt.net\r\nConnection: 
> Close\r\nContent-Type: 
> application/x-www-form-urlencoded\r\nContent-Length: 
>
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1815061&heap=88084&dateutc=2026-08-21+04%3A48%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=73.22&humidityin=44&baromrelin=29.822&baromabsin=28.358&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
>
>
> ...with this config:
>
> [[[ecowitt/gw1000]]] # The topic you are subscribing to
> ignore = true
> unit_system = METRICWX
> [[[[message]]]]
> type = keyword
> keyword_delimiter = "="
> keyword_separator = & # The separator between the
>
> # map MQTT field to WeeWX database field
> [[[[lightning]]]]
> name = lightning_dist
> [[[[lightning_num]]]]
> name = lightning_strike_count
> [[[[lightning_time]]]]
> name = lightning_last_det_time
>
> Debug erreor:
> 2026-08-21T06:59:41.690810+02:00 weewx weewxd[2001268]: DEBUG 
> user.MQTTSubscribe: (Service) MessageCallbackProvider data-> incoming 
> topic: 
> application/d11a28e3-f97a-4866-949d-e07ab9aad18e/device/a84041dce189f0e9/event/up,
>  
>
> QOS: 0, retain: False, payload: 
> b'{"deduplicationId":"29498f1a-2764-4c2c-9558-e1ea3cce8cdc","time":"2026-08-21T04:59:32.946960+00:00","deviceInfo":{"tenantId":"52f14cd4-c6f1-4fbd-8f87-4025e1d49242","tenantName":"ChirpStack","applicationId":"d11a28e3-f97a-4866-949d-e07ab9aad18e","applicationName":"temp-hum-app","deviceProfileId":"9f4e5931-3788-474a-b996-29471906dee9","deviceProfileName":"Temperatur+Feuchte","deviceName":"LHT65N-1-Gew\xc3\xa4chshaus","devEui":"a84041dce189f0e9","deviceClassEnabled":"CLASS_A","tags":{}},"devAddr":"012b1ebf","adr":true,"dr":5,"fCnt":39451,"fPort":2,"confirmed":false,"data":"ilcE/wMTAgTRf/8=","object":{"TempC_TMP117":12.33,"TempC_SHT":12.79,"BatV":2.647,"Hum_SHT":78.7,"Bat_status":2.0,"Ext_sensor":"Temperature
>  
>
>
> Sensor"},"rxInfo":[{"gatewayId":"4a364b5196414b32","uplinkId":17921,"gwTime":"2026-08-21T04:59:32.946960+00:00","nsTime":"2026-08-21T04:59:41.471808901+00:00","rssi":-48,"snr":9.0,"channel":7,"location":{},"context":"Wp11DA==","crcStatus":"CRC_OK"}],"txInfo":{"frequency":867900000,"modulation":{"lora":{"bandwidth":125000,"spreadingFactor":7,"codeRate":"CR_4_5"}}},"regionConfigId":"eu868"}'
> 2026-08-21T06:59:41.691374+02:00 weewx weewxd[2001268]: DEBUG 
> user.MQTTSubscribe: (Service) TopicManager data-> incoming 
> application/d11a28e3-f97a-4866-949d-e07ab9aad18e/device/a84041dce189f0e9/event/up:
>  
>
> batteryStatus7: 2.647, extraHumid7: 78.7, extraTemp7: 12.33, extraTemp8: 
> 12.79
> 2026-08-21T06:59:41.825419+02:00 weewx weewxd[2001268]: DEBUG 
> user.MQTTSubscribe: (Service) MessageCallbackProvider data-> incoming 
> topic: ecowitt/gw1000, QOS: 0, retain: False, payload: b'POST 
> /data/ip_api/ HTTP/1.1\r\nHOST: cdnrtpdate.ecowitt.net\r\nConnection: 
> Close\r\nContent-Type: 
> application/x-www-form-urlencoded\r\nContent-Length: 
>
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1815721&heap=88084&dateutc=2026-08-21+04%3A59%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=73.22&humidityin=44&baromrelin=29.831&baromabsin=28.367&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
> 2026-08-21T06:59:41.825799+02:00 weewx weewxd[2001268]: ERROR 
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword 
> failed to find separator: &
> 2026-08-21T06:59:41.825965+02:00 weewx weewxd[2001268]: ERROR 
> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Skipping 
> field=POST /data/ip_api/ HTTP/1.1#015#012HOST: 
> cdnrtpdate.ecowitt.net#015#012Connection 
> <http://cdnrtpdate.ecowitt.net#015%23012Connection>: 
> Close#015#012Content-Type: 
> application/x-www-form-urlencoded#015#012Content-Length: 
> 353#015#012#015#012PASSKEY
> 2026-08-21T06:59:41.826091+02:00 weewx weewxd[2001268]: ERROR 
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword 
> failed to find separator: &
> 2026-08-21T06:59:41.826200+02:00 weewx weewxd[2001268]: ERROR 
> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Skipping field=0
> 2026-08-21T06:59:41.826344+02:00 weewx weewxd[2001268]: ERROR 
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword 
> failed to find data in: topic=ecowitt/gw1000 and payload=b'POST 
> /data/ip_api/ HTTP/1.1\r\nHOST: cdnrtpdate.ecowitt.net\r\nConnection: 
> Close\r\nContent-Type: 
> application/x-www-form-urlencoded\r\nContent-Length: 
>
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1815721&heap=88084&dateutc=2026-08-21+04%3A59%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=73.22&humidityin=44&baromrelin=29.831&baromabsin=28.367&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
>
>
>
> Regards,
> Christian
>
> Am 21.08.26 um 02:00 schrieb [email protected]:
> > OK, lets start with changing keyword_delimeter = “&” to 
> keyword_separator =
> > “&” and see what errors that gives.
> > rich
> > 
> > On Thursday, 20 August 2026 at 19:48:55 UTC-4 [email protected] wrote:
> > 
> >> Jeesh, its amazing what ‘people’ will ‘stuff’ into an MQTT message….
> >> The ‘header information’ (POST, HOST, etc.) is making ‘invalid keyword’
> >> data for MQTTSubsribe. It’s obviously not json….
> >> It’s gonna’ take a bit of work to figure out how to best parse this.
> >> rich
> >>
> >>
> >> On Thursday, 20 August 2026 at 17:45:50 UTC-4 Christian Peters wrote:
> >>
> >>> ...some more form the debug output:
> >>>
> >>> 2026-08-20T23:42:42.285624+02:00 weewx weewxd[1953952]: DEBUG
> >>> user.MQTTSubscribe: (Service) MessageCallbackProvider data-> incoming
> >>> topic: ecowitt/gw1000, QOS: 0, retain: False, payload: b'POST 
> /data/ip_api/
> >>> HTTP/1.1\r\nHOST: cdnrtpdate.ecowitt.net\r\nConnection:
> >>> Close\r\nContent-Type: 
> application/x-www-form-urlencoded\r\nContent-Length:
> >>> 
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1789501&heap=88084&dateutc=2026-08-20+21%3A42%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=75.74&humidityin=44&baromrelin=29.849&baromabsin=28.381&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
> >>> 2026-08-20T23:42:42.286317+02:00 weewx weewxd[1953952]: ERROR
> >>> user.MQTTSubscribe: (Service) MessageCallbackProvider 
> on_message_keyword
> >>> failed to find separator: &
> >>> 2026-08-20T23:42:42.287209+02:00 weewx weewxd[1953952]: ERROR
> >>> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Skipping
> >>> field=POST /data/ip_api/ HTTP/1.1#015#012HOST:
> >>> cdnrtpdate.ecowitt.net#015#012Connection 
> <http://cdnrtpdate.ecowitt.net#015%23012Connection>
> >>> <http://cdnrtpdate.ecowitt.net#015%23012Connection>:
> >>> Close#015#012Content-Type:
> >>> application/x-www-form-urlencoded#015#012Content-Length:
> >>> 353#015#012#015#012PASSKEY
> >>> 2026-08-20T23:42:42.287600+02:00 weewx weewxd[1953952]: ERROR
> >>> user.MQTTSubscribe: (Service) MessageCallbackProvider 
> on_message_keyword
> >>> failed with <class 'user.MQTTSubscribe.ConversionError'> and reason 
> Failed
> >>> converting field 7EDF1C083D41E2564A22B916BBD1979C with value 
> stationtype
> >>> using 'lambda x: to_float(x)' with reason could not convert string to
> >>> float: 'stationtype'..
> >>> 2026-08-20T23:42:42.287951+02:00 weewx weewxd[1953952]: ERROR
> >>> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Ignoring
> >>> topic=ecowitt/gw1000 and payload=b'POST /data/ip_api/ HTTP/1.1\r\nHOST:
> >>> cdnrtpdate.ecowitt.net\r\nConnection: Close\r\nContent-Type:
> >>> application/x-www-form-urlencoded\r\nContent-Length:
> >>> 
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1789501&heap=88084&dateutc=2026-08-20+21%3A42%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=75.74&humidityin=44&baromrelin=29.849&baromabsin=28.381&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
> >>> 2026-08-20T23:42:42.291204+02:00 weewx weewxd[1953952]: ERROR
> >>> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Traceback 
> (most
> >>> recent call last):#012 File "/etc/weewx/bin/user/MQTTSubscribe.py", 
> line
> >>> 1441, in _convert_value#012 return
> >>> conversion_func['compiled'](value)#012
> >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^#012 File "<string>", line 1, in
> >>> <lambda>#012 File "/usr/share/weewx/weeutil/weeutil.py", line 1585, in
> >>> to_float#012 return float(x) if x is not None else None#012
> >>> ~~~~~^^^#012ValueError: could not convert string to float:
> >>> 'stationtype'#012#012The above exception was the direct cause of the
> >>> following exception:#012#012Traceback (most recent call last):#012 File
> >>> "/etc/weewx/bin/user/MQTTSubscribe.py", line 1560, in
> >>> _on_message_keyword#012 (fieldname, value) = self._update_data(key,
> >>> field[eq_index + 1:].strip(), fields, fields_conversion_func,
> >>> unit_system)#012
> >>> 
> ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^#012
> >>> File "/etc/weewx/bin/user/MQTTSubscribe.py", line 1400, in
> >>> _update_data#012 value = self._convert_value(fields,
> >>> default_field_conversion_func, orig_name, orig_value)#012 File
> >>> "/etc/weewx/bin/user/MQTTSubscribe.py", line 1446, in 
> _convert_value#012
> >>> raise ConversionError(#012 f"Failed converting field {field} with
> >>> value {value} using '{conversion_func['source']}' with reason
> >>> {exception}.")\#012 from
> >>> exception#012user.MQTTSubscribe.ConversionError: Failed converting 
> field
> >>> 7EDF1C083D41E2564A22B916BBD1979C with value stationtype using 'lambda 
> x:
> >>> to_float(x)' with reason could not convert string to float: 
> 'stationtype'.
> >>>
> >>> Christian Peters schrieb am Donnerstag, 20. August 2026 um 23:39:14 
> UTC+2:
> >>>
> >>>> Hi all,
> >>>>
> >>>> I just tried to integrate a lightning sensor attached to the GW1200
> >>>> Gateway into weewx with MQTTSubscribe
> >>>> <
> https://github.com/bellrichm/WeeWX-MQTTSubscribe/blob/master/bin/user/MQTTSubscribe.py
> >
> >>>> .
> >>>> I enablede MQTT in the GW1200 but I struggle to get the data parsed.
> >>>>
> >>>> The problem seems to be this added header in the MQTT message..?!
> >>>> Any chance to get it working I didn't find a solution.
> >>>>
> >>>> The MQTT message from the GW1200:
> >>>>
> >>>> POST /data/ip_api/ HTTP/1.1
> >>>> HOST: cdnrtpdate.ecowitt.net
> >>>> Connection: Close
> >>>> Content-Type: application/x-www-form-urlencoded
> >>>> Content-Length: 353
> >>>>
> >>>>
> >>>> 
> PASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1788421&heap=88084&dateutc=2026-08-20+21%3A24%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=75.92&humidityin=44&baromrelin=29.840&baromabsin=28.372&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0
> >>>>
> >>>> My config for MQTTSubscribeService VERSION = '3.1.0-rc01', running as 
> a
> >>>> service:
> >>>>
> >>>> [[[ecowitt/gw1000]]] # The topic you are subscribing to
> >>>> ignore = false
> >>>> unit_system = METRICWX # Not sure weather you want
> >>>> METRICWX or METRIC. See http://weewx.com/docs/customizing.htm#units
> >>>>
> >>>> [[[[message]]]]
> >>>> type = keyword
> >>>> keyword_delimiter = "&"
> >>>> # map MQTT field to WeeWX database field
> >>>>
> >>>> [[[[PASSKEY]]]]
> >>>> ignore = True
> >>>> [[[[stationtype]]]]
> >>>> ignore = True
> >>>> [[[[runtime]]]]
> >>>> ignore = True
> >>>> [[[[heap]]]]
> >>>>
> >>>> ignore = True
> >>>> [[[[dateutc]]]]
> >>>> ignore = True
> >>>> [[[[dns_err_cnt]]]]
> >>>> ignore = True
> >>>> [[[[cdnflg]]]]
> >>>> ignore = True
> >>>> [[[[adc]]]]
> >>>> ignore = True
> >>>> [[[[freq_volt]]]]
> >>>> ignore = True
> >>>> [[[[tempinf]]]]
> >>>> ignore = True
> >>>> [[[[humidityin]]]]
> >>>> ignore = True
> >>>> [[[[baromrelin]]]]
> >>>> ignore = True
> >>>> [[[[baromabsin]]]]
> >>>> ignore = True
> >>>> [[[[wh57batt]]]]
> >>>>
> >>>> ignore = True
> >>>> [[[[freq]]]]
> >>>> ignore = True
> >>>> [[[[model]]]]
> >>>> ignore = True
> >>>> [[[[interval]]]]
> >>>> ignore = True
> >>>>
> >>>> [[[[lightning]]]]
> >>>> name = lightning_dist
> >>>> [[[[lightning_num]]]]
> >>>> name = lightning_strike_count
> >>>> [[[[lightning_time]]]]
> >>>> name = lightning_last_det_time
> >>>>
> >>>> My error/debug output form weewx:
> >>>>
> >>>> 2026-08-20T23:11:41.607918+02:00 weewx weewxd[1953952]: DEBUG
> >>>> user.MQTTSubscribe: (Service) MessageCallbackProvider data-> incoming
> >>>> topic: ecowitt/gw1000, QOS: 0, retain: False, payload: b'POST 
> /data/ip_api/
> >>>> HTTP/1.1\r\nHOST: cdnrtpdate.ecowitt.net\r\nConnection:
> >>>> Close\r\nContent-Type: 
> application/x-www-form-urlencoded\r\nContent-Length:
> >>>> 
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1787641&heap=88084&dateutc=2026-08-20+21%3A11%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=76.10&humidityin=44&baromrelin=29.843&baromabsin=28.375&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
> >>>> 2026-08-20T23:11:41.608973+02:00 weewx weewxd[1953952]: ERROR
> >>>> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Ignoring
> >>>> topic=ecowitt/gw1000 and payload=b'POST /data/ip_api/ 
> HTTP/1.1\r\nHOST:
> >>>> cdnrtpdate.ecowitt.net\r\nConnection: Close\r\nContent-Type:
> >>>> application/x-www-form-urlencoded\r\nContent-Length:
> >>>> 
> 353\r\n\r\nPASSKEY=7EDF1C083D41E2564A22B916BBD1979C&stationtype=GW1200A_V1.4.8&runtime=1787641&heap=88084&dateutc=2026-08-20+21%3A11%3A41&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=76.10&humidityin=44&baromrelin=29.843&baromabsin=28.375&lightning_num=0&lightning=34&lightning_time=1787171122&wh57batt=5&freq=868M&model=GW1200A&interval=0'
> >>>>
> >>>> Any help would be appreciated.
> >>>> Maybe bellrichm could give some hints to get it working...!?
> >>>>
> >>>> Thanks in advance!
> >>>>
> >>>> Christian
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> vince schrieb am Freitag, 10. Oktober 2025 um 00:08:29 UTC+2:
> >>>>
> >>>>> Just a quick update - the GW1200 with latest V1.4.0 firmware now
> >>>>> supports posting to MQTT too.
> >>>>>
> >>>>> I enabled it for a quick test and poked around a little with
> >>>>> mosquitto_sub to look at what it sends and it looks like the same 
> data
> >>>>> elements that I'm getting for Gary's legacy GW1000 driver plus one
> >>>>> additional element "srain_piezo" which we neglected to make known to 
> his
> >>>>> driver last year when I was working with him to support the WS85. My 
> best
> >>>>> guess is that it means "state of raining (or not) on the piezo 
> sensor"
> >>>>> where 0 = not raining, 1 = raining.
> >>>>>
> >>>>> Upside is you can set MQTT to send data as frequently as every 10
> >>>>> seconds. Downside is the sensors don't send data that often so kinda 
> why
> >>>>> bother running faster than maybe every 30 seconds.
> >>>>>
> >>>>> Re: the use of & my guess is this is WU protocol. If you subscribe to
> >>>>> topic_name/# you see a header ala:
> >>>>>
> >>>>> POST /data/ip_api/ HTTP/1.1
> >>>>> HOST: cdnrtpdate.ecowitt.net
> >>>>> Connection: Close
> >>>>> Content-Type: application/x-www-form-urlencoded
> >>>>> Content-Length: 925
> >>>>>
> >>>>> I have never configured my gateway to talk to ecowitt, so I don't 
> know
> >>>>> if it's actually trying to post data to ecowitt's servers (or not), 
> but it
> >>>>> sure looks fishy to me.
> >>>>>
> >>>>> On Friday, August 22, 2025 at 6:24:24 AM UTC-7 Paul R Anderson wrote:
> >>>>>
> >>>>> That sounds like a great "work around" for some who use WeeWX. But I
> >>>>> really wish the underlying issue of using a non standard separator,
> >>>>> which does not comply with the published MQTT standard.could be 
> addressed
> >>>>> and fixed.* Design a device that offers to publish to a MQTT server,
> >>>>> make it standard compliant* , so that it will be easy to subscribe to
> >>>>> that topic on a wide range of MQTT clients.
> >>>>>
> >>>>>
> >>>>> 
> >>>>>
> >>>>
> > 
>
>

-- 
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/87ffb7bc-628e-4535-8f59-d35bd18e525dn%40googlegroups.com.

Reply via email to