You need to figure out your requirements.
- there are over 100 possible elements in a default weewx schema
- which measurements do you want to display and compare among your
stations ?
If you're just looking for the most typically used items (outTemp, wind,
windGust, windDir, rain) then MQTT would be very very easy to set up.
> "I* haven't dealt with MQTT, but [...] I hope this protocol has the
ability to announce/send to a remote server."*
That is EXACTLY how it works. The client(s) publish information to the
server. The server subscribes to whatever information it is configured to
care about.
1. On your weewx client system, use Matthew's weewx-mqtt extension to
publish weewx data to the MQTT server (aka 'mosquitto broker'):
[[MQTT]]
enable = true
client_id = mysite1 # optional
server_url = mqtt://192.168.1.69:1883/ # or the FQDN of the
broker computer
append_units_label = false # default=True
binding = loop,archive # or archive or loop
alone
topic = mysite1 # use a different topic
per client computer
log_success = false
log_failure = true
(you can use Rich's MQTTpublish extension if you want - syntax is a little
different but similar)
2. On the target server use Rich's MQTTsubscribe to subscribe to the items
you want, from the clients you want, and save them to the weewx db to some
column in your schema.
This example runs it as a service to add incoming data from MQTT to the
normal data from my VP2 station, but it can run as a MQTTSubscribeDriver if
you want. If you run it as a driver on your central weewx server it will
just save data coming in from whatever client systems you configure to
publish to it. You'll likely need some custom set of columns in your
central weewx instance db but that's easy to add.
[MQTTSubscribeService]
enable = true
host = 192.168.1.69 # or the FQDN of the broker computer
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
[[[mysite1/loop]]] # subscribe to data published by the
mysite1 weewx instance
[[[[outTemp_F]]]] # extract its outTemp item
name = extraTemp1 # save to the local db using
extraTemp1
units = degree_F
[[[mysite2/loop]]] # similarly for mysite2
[[[[outTemp_F]]]]
name = extraTemp2
units = degree_F
3. And of course set up whatever custom skin with tabular data and/or
graphs that you want for visualizing.
==> Experiment a little with MQTT while you think about your requirements.
If you want to learn MQTT this is very well documented online, but if you
look at the Belchertown-from-scratch repo I mentioned this week there is a
page that should walk you step-by-step. See
https://github.com/vinceskahan/belchertown-from-scratch/blob/main/configure-websockets-no-encryption.md
and ignore the Belchertown mentions therein. The rest shows how to install
and test mosquitto MQTT enough to get a feel for it.
On Sunday, February 22, 2026 at 1:24:27 AM UTC-8 Tomasz Lewicki wrote:
> First of all, thank you for the wide response and the whole list of ideas.
> For now, I am at the stage of developing a concept for how to build such a
> network and manage it, at least in terms of configuration files. I assume
> that all stations will have access to high-speed internet (this will be one
> of the installation requirements, apart from the terrain conditions), so
> the amount of data transferred from the stations to the central server - if
> I need one - will not be a bottleneck.
>
> I haven't dealt with MQTT, but since you say it's not difficult, all the
> better. I hope this protocol has the ability to announce/send to a remote
> server.
>
> I have come up with another solution, although I am not sure if it
> duplicates any of the proposed ones - as I mentioned, I have not delved
> into the subject yet. If I am reinventing the wheel, please let me know. At
> the stage of starting each station, I would add additional columns to the
> individual weewx.sdb database, which would be copies of other columns,
> e.g., archive_day_outTemp_stationID (where stationID is, of course, a
> unique key - the name of the station). Before sending the database to the
> server, a script would cut out only the *_stationID columns, save them to a
> new database, and send this truncated database to the central server.
> However, I see a problem here in the form of additional CPU overhead and,
> perhaps most importantly, an increased number of records on the microSD
> card (as I wrote in my first post, I want to have Weewx on Raspberry Pi).
> So transferring the entire database, even with additional columns, and
> processing it in one place may be a better solution.
>
> As for summaries, at first I didn't consider data visualization, only
> simple tabular summaries, e.g., maximum temperature in the entire area -
> station X, minimum temperature - station Y, etc. But I'm sure that over
> time, you'll want to have graphs and images :)
>
> niedziela, 22 lutego 2026 o 01:42:09 UTC+1 [email protected] napisał(a):
>
>> Here is my understanding of the problem.
>>
>>
>> There are multiple databases on different physical machines and it is
>> desired to create data visualizations that combine them.
>>
>>
>> Cat skin 1.
>>
>> A central visualization process that can access the remote data sources.
>>
>>
>> Cat skin 2.
>>
>> Replicate the databases “asis” to a central location and run the
>> visualization off these replicas.
>>
>>
>> Cat skin 3.
>>
>> Replicate the data of interest into a central database and run the
>> visualization off this central database
>>
>>
>> Cat skin n.
>>
>> I am sure there are many more options.
>>
>>
>> My gut, the first decision is whether to try to access the remote data
>> sources from a central location (cat skin 1) or replicate the required
>> data to the central location (cat skin 2 and 3). Then proceed from there.
>>
>>
>> Then layered on top of (or underneath, since we have skinned the cat?),
>> the various technology that can be used.....
>>
>> On Saturday, 21 February 2026 at 19:00:24 UTC-5 Graham Eddy wrote:
>>
>>> the question, as i understood it, was to present from single copy of
>>> data already existing, rather than to store multiple copies of the same
>>> data in multiple databases.
>>> i use mqtt extensively for data acquisition, creating single truths in
>>> databases. then i have a presentation layer over the top of all to create a
>>> single (complex) portal (which has more than just weewx data).
>>> as vince and others point out, there is more than one way to ’skin a
>>> cat’ and it depends on your requirements
>>> *⊣GE⊢*
>>>
>>> On 22 Feb 2026, at 5:30 am, Vince Skahan <[email protected]> wrote:
>>>
>>> For just a few readings from just a few stations, MQTT is the simplest
>>> way:
>>>
>>>
>>>
>>>
>>>
--
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/95f43685-471f-4910-9318-3acb7ba82b48n%40googlegroups.com.