Skip to content
David Goodwin edited this page Aug 7, 2021 · 3 revisions

zxweather is a suite of applications built by David Goodwin specifically to run weather.zx.net.nz. Its been designed and built so as to not be too specific to this particular setup in case the software may be of use to anyone else.

This wiki provides a brief overview of zxweather and how some parts of it work as well as a bit of interim documentation.

General Design

zxweather consists of multiple independent applications communicating with one or more PostgreSQL databases. A minimum setup consists of:

The data logger handles communication with the weather station hardware. It receives live data and samples (archive data) from the hardware and writes those to the database. The PostgreSQL Async Notifications feature is used to notify all other connected clients whenever fresh data is available so nothing has to poll the database for updates. When the desktop client or Web UI receive a notification they update their UI.

This design means that different components of the system can run on different computers as required. In cases where having all components on the same database is undesirable (eg you want to run the Web UI on a VPS rather than home server) you can efficiently stream updates between databases using Weather Push. You're free to deploy which ever components you like where ever you like. See weather.zx.net.nz Setup for an example of a complex configuration spread over multiple physical locations.