Thanks. I would have gotten there eventually…. but Vince deserves the 
credit.

re: lightning_last_det_time
What are you ‘using’ (skin, application…) to display it? Ideally that would 
do the formatting…
rich

On Friday, 21 August 2026 at 17:04:14 UTC-4 Christian Peters wrote:

> Rich,
>
> you nailed it, now it's working.
> Here is my working config:
>
> ## Ecowitt Lighting sensor WH57 via GW1200A MQTT
>
> [[[ecowitt/gw1000]]] # The topic you are subscribing to
> subscribe = True
> ignore = True #THIS - we are ignoring everything by default
> [[[[message]]]]
> type = keyword
> keyword_delimiter = & # THIS, which we already fixed
> # map MQTT field to WeeWX database field
> [[[[lightning]]]]
> name = lightning_dist
> ignore = False # THIS, we are opting in to this field
> [[[[lightning_num]]]]
> name = lightning_strike_count
> ignore = False # THIS, we are opting in to this field
> [[[[lightning_time]]]]
> name = lightning_last_det_time
> ignore = False # THIS, we are opting in to this field
>
> Thanks for your help Vince and Rich!
>
> One additional question:
>
> "lightning_last_det_time" seems to be unix time!? Is there a way to get 
> the readable time somehow nicely displayed in my index.html.tmpl file
> (e.g. 1787332508,000000 to 21.08.2026 - 19:15:08)...!?
>
> Regards,
>
> Christian
>
>
>
>
> Am 21.08.26 um 22:03 schrieb [email protected]:
> > 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>
> >> <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>
> >>>> <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>
> >>>> <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>
> >>>> <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>
> >>>>>>> <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/855d8121-fa8e-400e-8b5b-f37a680861c6n%40googlegroups.com.

Reply via email to