fyi - here's an example MQTTSubscribeService section with annotations in
case anybody has interest. See the attachment for which sensors are
handled. Should be obvious.
Items marked FIXME aren't directly mapped to weewx db elements in this
example, but some light editing would be needed regardless to match your
setup of course.....
Lastly - MQTT is now supported on the GW1200 gateway and WS3802 console if
you update the firmware, so it seems like Ecowitt is adding support to
older models of their gear as time passes...
--
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/8de05213-41dc-4dc7-8d89-f1777edf04c8n%40googlegroups.com.
##############################################################################
#
# This is an example section mapping ecowitt MQTT payload to weewx db items
# for hardware consisting of:
#
# GW1200 gateway running firmware V1.4.0
# WH32 outside t+h sensor
# WH31 additional inside t+h sensors (id 1-5)
# WH51 soil moisture sensor
# WH34S soil temperature sensor
# WH40BH tipping rain gauge set as primary rain sensor
# WS85 haptic/piezo rain/wind sensor set a secondary wind sensor
#
# items marked 'FIXME' still need to be mapped to weewx db elements or ignored
#
# this configuration ignores by default to be able to handle future firmware
# updates that add new MQTT payload content, but also is set to stop weewd
# on validation errors to handle typos, duplicate items, etc. that might be
# later added in by user error
#
# this example does no use tls nor MQTT username/password although both are
# supported by the driver
#
[MQTTSubscribeDriver]
stop_on_validation_errors = true
driver = user.MQTTSubscribe
host = 192.168.1.69
port = 1883
keepalive = 60
# MQTT broker not password protected
username = None
password = None
binding = loop
logging_level = ERROR # suppress 'very' verbose logging for each loop
received
# no tls here
[[tls]]
enable = false
ca_certs = ""
certfile = None
certs_required = required
ciphers = None
keyfile = None
tls_version = tlsv12
[[topics]]
unit_system = US
[[[GW1200]]]
subscribe = True
ignore = True
[[[[message]]]]
type = keyword
keyword_delimiter = &
#-------------------------------
# header we ignore
#-------------------------------
#
# PASSKEY=68ED8E69B59F5B11ED703756B8A264A8
# stationtype=GW1200B_V1.4.0
# runtime=782358
# heap=97992
# dateutc=2025-10-09+18%3A45%3A31
# dns_err_cnt=0
# cdnflg=16
# freq=915M
# model=GW1200B
# interval=60
#
#-------------------------------
# gateway
#-------------------------------
# tempinf=68.90
# humidityin=54
# baromrelin=29.627
# baromabsin=30.012
#-------------------------------
[[[[tempinf]]]]
name = inTemp
ignore = False
[[[[humidityin]]]]
name = inHumid
ignore = False
[[[[baromabsin]]]]
name = pressure
ignore = False
[[[[baromrelin]]]]
name = barometer
ignore = False
#-------------------------------
# outside t+h
#-------------------------------
# tempf=53.78
# humidity=89
# vpd=0.046 # vapor pressure deficit (ignore)
# wh26batt=1 # actually a wh32
#
# battery 0=ok
#-------------------------------
[[[[tempf]]]]
name = outTemp
ignore = False
[[[[humidity]]]]
name = outHumid
ignore = False
[[[[wh26batt]]]]
name = FIXME1_WH26BATT
ignore = False
#-------------------------------
# inside t+h
#-------------------------------
# temp1f=70.52
# humidity1=53
# batt1=0
#
# temp2f=67.46
# humidity2=54
# batt2=0
#
# temp3f=67.28
# humidity3=57
# batt3=0
#
# temp4f=70.16
# humidity4=58
# batt4=0
#
# temp5f=56.84
# humidity5=84
# batt5=0
#
# battery 0=ok
#-------------------------------
[[[[temp1f]]]]
name = extraTemp1
ignore = False
[[[[humidity1]]]]
name = extraHumid1
ignore = False
[[[[batt1]]]]
name = extraBattery1
ignore = False
[[[[temp2f]]]]
name = extraTemp2
ignore = False
[[[[humidity2]]]]
name = extraHumid2
ignore = False
[[[[batt2]]]]
name = extraBattery2
ignore = False
[[[[temp3f]]]]
name = extraTemp3
ignore = False
[[[[humidity3]]]]
name = extraHumid3
ignore = False
[[[[batt3]]]]
name = extraBattery3
ignore = False
[[[[temp4f]]]]
name = extraTemp4
ignore = False
[[[[humidity4]]]]
name = extraHumid4
ignore = False
[[[[batt4]]]]
name = extraBattery4
ignore = False
[[[[temp5f]]]]
name = extraTemp5
ignore = False
[[[[humidity5]]]]
name = extraHumid5
ignore = False
[[[[batt5]]]]
name = extraBattery5
ignore = False
#-------------------------------
# tipping rain
#-------------------------------
# rainratein=0.000 (ignore)
# eventrainin=0.000
# hourlyrainin=0.000 (ignore)
# dailyrainin=0.004 (ignore) this is one tip in inches, 0.1mm =
0.00393701 in
# weeklyrainin=0.004 (ignore)
# monthlyrainin=0.354 (ignore)
# yearlyrainin=0.646 (ignore)
# wh40batt=1.5
#
# battery is AA voltage
#-------------------------------
[[[[t_rain]]]]
name = rain
ignore = False
[[[[wh40batt]]]]
name = rainBatteryStatus
ignore = False
#-------------------------------
# haptic/piezo wind/rain
#-------------------------------
# winddir=77
# windspeedmph=0.00
# windgustmph=1.12 (ignore)
# maxdailygust=3.80 (ignore)
#
# wh85batt=3.28
# ws85_cap_volt=3.8
# ws85_ver=116 (ignore)
#
# rrain_piezo=0.000 (ignore)
# erain_piezo=0.000 (ignore)
# hrain_piezo=0.000 (ignore)
# drain_piezo=0.016 (ignore)
# wrain_piezo=0.016 (ignore)
# mrain_piezo=0.327 (ignore)
# yrain_piezo=0.697 (ignore)
# srain_piezo=0 (ignore)
#
# batteries are voltage
# 2xAA for sensor
# uncertain range for capacitor
#-------------------------------
[[[[winddir]]]]
name = windDir
ignore = False
[[[[windspeedmph]]]]
name = windSpeed
ignore = False
[[[[windgustmph]]]]
name = windGust
ignore = False
[[[[wh85batt]]]]
name = windBattery
ignore = False
[[[[ws85_cap_volt]]]]
name = FIXME2_WH85CAP_VOLT
ignore = False
#-------------------------------
# soil moisture
#
# soilmoisture1=55
# soilad1=275 (ignore)
# soilbatt1=1.2
#
# battery is AA voltage
#-------------------------------
[[[[soilmoisture1]]]]
name = soilMoist1
ignore = False
[[[[soilbatt1]]]]
name = FIXME3_SOILBATT1
ignore = False
#-------------------------------
# soil temperature
#
# tf_ch1=50.7
# tf_batt1=1.36
#
# battery is AA voltage
#-------------------------------
[[[[tf_ch1]]]]
name = soilTemp1
ignore = False
[[[[tf_batt1]]]]
name = FIXME4_TF_BATT1
ignore = False
##############################################################################