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: 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: 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: 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>:
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/ec770fcd-03a3-4382-9d52-fdf3363a6329%40googlemail.com.