Nope - just use MQTTSubscribe when I want to listen, and MQTT when I want
to publish. Apply a sensor_map on the subscribe side to map the elements
you want into the weewx db as desired.
Here's some excerpts from my vp2 (main) instance that subscribes to a few
things from ecowitt/loop
# dial back some logging a bit for when we set debug=1
[Logging]
[[loggers]]
[[[user.MQTTSubscribe]]]
level = INFO
[MQTTSubscribeService]
enable = true
host = 192.168.1.171
port = 1883
keepalive = 60
username = None
password = None
binding = loop
[[message_callback]]
type = json
[[topics]]
unit_system = US
ignore_start_time = True
ignore_end_time = True
#----- example data ----
# {"dateTime": 1703364600.0, "usUnits": 1.0, "inTemp_F":
64.03999999999998, "outTemp_F": 40.01600000000001, "inHumidity": 51.0,
"outHumidity": 99.0, "pressure_inHg": 29.9502976554
16673, "relbarometer": 1025.7333333333336, "extraTemp1_F":
67.46000000000002, "extraTemp2_F": 70.34000000000002, "extraTemp3_F":
70.87999999999998, "extraTemp4_F": 70.112, "extraTemp5_F": 50.
888000000000005, "extraHumid1": 46.53333333333333, "extraHumid2": 40.0,
"extraHumid3": 43.0, "extraHumid4": 46.0, "extraHumid5": 88.33333333333333,
"soilMoist1_centibar": 40.0, "wh32_batt": 0
.0, "wh31_ch1_batt": 0.0, "wh31_ch2_batt": 0.0, "wh31_ch3_batt": 0.0,
"wh31_ch4_batt": 0.0, "wh31_ch5_batt": 0.0, "wh51_ch1_batt": 1.5,
"wh32_sig": 4.0, "wh31_ch1_sig": 4.0, "wh31_ch2_sig": 4
.0, "wh31_ch3_sig": 4.0, "wh31_ch4_sig": 4.0, "wh31_ch5_sig": 4.0,
"wh51_ch1_sig": 4.0, "altimeter_inHg": 30.35012374517868, "barometer_inHg":
30.363289630598434, "cloudbase_foot": 423.695175
8301455, "dewpoint_F": 39.75774122634734, "heatindex_F": 39.14293333333334,
"humidex_F": 40.01600000000001, "inDewpoint_F": 45.54133535588047,
"maxSolarRad_Wpm2": 228.29873036475112, "rainRat
e_inch_per_hour": 0.0, "interval_minute": 5.0}
# we subscribe to ecowitt/loop from a second weewx instance for that
[[[ecowitt/loop]]]
# items we map to weewx schema elements
[[[[outTemp_F]]]]
name = extraTemp1
units = degree_F
[[[[extraTemp5_F]]]]
name = extraTemp5
units = degree_F
# the rest of the items we ignore, uncertain if this is needed
or not
# if so - I likely missed ignoring some elements plus/minus
which sensors
# we've added or deleted from the initial setup
[[[[dateTime]]]]
ignore = True
[[[[usUnits]]]]
ignore = True
[[[[inTemp_F]]]]
ignore = True
[[[[inHumidity]]]]
ignore = True
[[[[outHumidity]]]]
ignore = True
[[[[pressure_inHg]]]]
ignore = True
[[[[relbarometer]]]]
ignore = True
[[[[extraTemp1_F]]]]
ignore = True
[[[[extraTemp2_F]]]]
ignore = True
[[[[extraTemp3_F]]]]
ignore = True
[[[[extraTemp4_F]]]]
ignore = True
[[[[extraHumid1]]]]
ignore = True
[[[[extraHumid2]]]]
ignore = True
[[[[extraHumid3]]]]
ignore = True
[[[[extraHumid4]]]]
ignore = True
[[[[soilMoist1_centibar]]]]
ignore = True
[[[[wh26_sig]]]]
ignore = True
[[[[wh65_sig]]]]
ignore = True
[[[[wh31_ch1_sig]]]]
ignore = True
[[[[wh31_ch2_sig]]]]
ignore = True
[[[[wh31_ch3_sig]]]]
ignore = True
[[[[wh31_ch4_sig]]]]
ignore = True
[[[[wh31_ch5_sig]]]]
ignore = True
[[[[wh51_ch1_sig]]]]
ignore = True
[[[[altimeter_inHg]]]]
ignore = True
[[[[barometer_inHg]]]]
ignore = True
[[[[cloudbase_foot]]]]
ignore = True
[[[[dewpoint_F]]]]
ignore = True
[[[[heatindex_F]]]]
ignore = True
[[[[humidex_F]]]]
ignore = True
[[[[inDewpoint_F]]]]
ignore = True
[[[[maxSolarRad_Wpm2]]]]
ignore = True
[[[[rainRate_inch_per_hour]]]]
ignore = True
[[[[interval_minute]]]]
ignore = True
On Friday, July 25, 2025 at 1:15:15 PM UTC-7 James Pattinson wrote:
> Hi Vince,
>
> Did you have to do any customisation at all? I am using MQTTSubscribe and
> it is now working, but I had to write an external python script to
> subscribe to the Ecowitt topic, parse the payload and re-publish it in JSON
> format to another topic, which WeeWx then subscribes to.
>
> Before I did that it was trying to convert the whole string (including &s)
> to a value, even in 'individual' mode.
>
> Cheers
> James
>
> On Friday, 25 July 2025 at 17:07:21 UTC+1 vince wrote:
>
>> Yes. You still will need the ecowitt gateway to publish to a MQTT broker
>> in the middle. I just run a little docker container on my LAN for that.
>>
>> In my case I have two weewx instances that both publish to MQTT as
>> ecowitt/loop and vp2/loop (via Matthew's MQTT extension, to later feed
>> influxdb), but the VP2 weewx instance subscribes to the ecowitt data (via
>> Rich's MQTTSubscribe as a service) to add data to a few extraTempNNN
>> elements so that I can show data from both in my main skin.
>>
>> Rich's MQTTSubscribe works great. I didn't know until now that it can be
>> run as a driver. Very cool.
>>
>> On Friday, July 25, 2025 at 7:17:20 AM UTC-7 Steeple Ian wrote:
>>
>>> @Michael
>>> I have not looked at MQTT in any depth before so forgive me if my
>>> question is naive. Using WeeWX-MQTTSubcribe with the Ecowitt MQTT protocol,
>>> is there still a requirement for a-man-in-the middle server?
>>> Thanks,
>>> Ian
>>>
>>> On Friday, July 25, 2025 at 2:33:52 PM UTC+1 [email protected] wrote:
>>>
>>>> Take a look into https://github.com/bellrichm/WeeWX-MQTTSubscribe
>>>>
>>>> James Pattinson schrieb am Freitag, 25. Juli 2025 um 13:57:21 UTC+2:
>>>>
>>>>> Hi All!
>>>>>
>>>>> I am setting up a WeeWx system in a remote location where they do have
>>>>> WiFi but nowhere to actually install the software. Since I have WeeWx
>>>>> running elsewhere, I'd like to be able to feed into a new instance of
>>>>> WeeWx
>>>>> under my control.
>>>>>
>>>>> I am used to using Davis stuff, but as these guys are on a budget, we
>>>>> went for EcoWitt. We have a WS69 with LCD display, and a GW3000.
>>>>>
>>>>> This is my first time using a GW3000, and I was quite happy to see
>>>>> that it supports MQTT so it can push data out in almost real time (down
>>>>> to
>>>>> 8 seconds). I have this working and I can see the updates coming into my
>>>>> MQTT server, albeit in a weird HTTP POST style:
>>>>>
>>>>>
>>>>> PASSKEY=xxx&stationtype=GW3000A_V1.0.9&runtime=1124&heap=68736&dateutc=2025-07-25%2011%3A50%3A12&dns_err_cnt=0&cdnflg=1&tempinf=74.12&humidityin=56&baromrelin=29.483&baromabsin=29.483&tempf=72.86&humidity=55&vpd=0.367&winddir=294&windspeedmph=0.00&windgustmph=0.00&maxdailygust=0.00&solarradiation=4.96&uv=0&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.000&yearlyrainin=0.000&wh65batt=0&freq=868M&model=GW3000A&interval=60
>>>>>
>>>>> If there was a way of having this MQTT message feed directly into the
>>>>> LOOP of WeeWx, it would make my life SO much easier, as I can have the
>>>>> GW3000 publish this out to an external MQTT server and connect WeeWx to
>>>>> the
>>>>> same server. Has anyone got a WeeWx driver to do this?
>>>>>
>>>>> Without this, I think I am looking at the GW1000 API polling driver,
>>>>> which appears to have become unmaintained quite recently. For that to
>>>>> work
>>>>> I'd need to arrange things such that WeeWx can connect to the GW3000 over
>>>>> the Internet, which might be challenging without a VPN.
>>>>>
>>>>> Plan B is to tell them they need to buy a Pi or something and do it
>>>>> all locally, but I would really like to be able to get some semi
>>>>> real-time
>>>>> push method doing for this use case.
>>>>>
>>>>> Any other ideas would be appreciated!
>>>>>
>>>>> Cheers
>>>>> James
>>>>>
>>>>
--
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/68775a62-d739-41cb-9b7e-22d472189ab5n%40googlegroups.com.