So, that looks like what I expected. We just need to ignore the 'header'
information. Basically invert your config to ignore everything and then
specify what you want.
Vince noted this here,
https://groups.google.com/g/weewx-user/c/TWhDFldWAYU/m/4I9bPfHVAAAJ
Which references https://groups.google.com/g/weewx-user/c/eLWbFnfWEfg
Which has an attachment to start from
Note the important high level points are
[[topics]]
unit_system = US # NOTE, use your unit system of interest
[[[GW1200]]] # NOTE, use your topic
subscribe = True
ignore = True #THIS - we are ignoring everything by default
[[[[message]]]]
type = keyword
keyword_delimiter = & # THIS, which we already fixed
[[[[tempinf]]]] # NOTE, use your field(s) of interest
name = inTemp
ignore = False # THIS, we are opting in to this field
rich
On Friday, 21 August 2026 at 15:50:13 UTC-4 Christian Peters wrote:
> Vince,
>
> thanks for the suggestion, but sadly still not working with changed
> quoting:
>
> 2026-08-21T21:41:42.854096+02:00 weewx weewxd[2092923]: 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=1868641&heap=88084&dateutc=2026-08-21+19%3A41%3A42&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=73.40&humidityin=44&baromrelin=29.914&baromabsin=28.443&lightning_num=1&lightning=14&lightning_time=1787332508&wh57batt=5&freq=868M&model=GW1200A&interval=0'
> 2026-08-21T21:41:42.854498+02:00 weewx weewxd[2092923]: ERROR
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword
> failed to find separator: &
> 2026-08-21T21:41:42.854745+02:00 weewx weewxd[2092923]: 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-21T21:41:42.854849+02:00 weewx weewxd[2092923]: ERROR
> user.MQTTSubscribe: (Service) MessageCallbackProvider on_message_keyword
> failed to find separator: &
> 2026-08-21T21:41:42.854927+02:00 weewx weewxd[2092923]: ERROR
> user.MQTTSubscribe: (Service) **** MessageCallbackProvider Skipping field=0
> 2026-08-21T21:41:42.855017+02:00 weewx weewxd[2092923]: 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=1868641&heap=88084&dateutc=2026-08-21+19%3A41%3A42&dns_err_cnt=2&cdnflg=1&adc=1007,987,987,987,988&freq_volt=758&tempinf=73.40&humidityin=44&baromrelin=29.914&baromabsin=28.443&lightning_num=1&lightning=14&lightning_time=1787332508&wh57batt=5&freq=868M&model=GW1200A&interval=0'
>
> Am 21.08.26 um 17:53 schrieb Vince Skahan:
> > 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>
> >> <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>
> >> <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>
> >> <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>
> >>>>> <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/92dccdda-b82a-47b4-af8b-337f39952e64n%40googlegroups.com.