This node.js application is a bridge between the MeteoSwiss service and a mqtt broker. The bridge can publish the latest weather data from the service to the target mqtt broker. The source data is updated every 15 minutes.
This node.js application is installed from the npm repository and executed with the node command. It will load the default configuration file config.json.
npm install -g mqtt2swissmeteonode /usr/local/bin/mqtt2swissmeteo
Alternatively, the module can be executed as a docker container. Use the following Dockerfile to build a container by injecting the config file.
FROM node:alpineRUN npm install -g mqtt2swissmeteoCOPY config.json /etc/mqtt2swissmeteo.jsonENTRYPOINT [ "/usr/local/bin/mqtt2swissmeteo", "/etc/mqtt2swissmeteo.json" ]
The following configuration file is an example. Please replace the desired values like the mqtt url and add the MeteoSwiss weather station. A list of weather stations can be found here: MeteoSwiss Weather Stations.
Publish (status messages)
Every 15 minutes, the data from MeteoSwiss is updated. As the updated data was
loaded, it will publish the values as dedicated topics to MQTT. The following
topics are be published for the station Zürich Kloten. The latest value is in
the JSON payload field
Current air temperature 2 meter above ground in
Total precipitation during the last ten minutes in
Total sunshine duration during the last ten minutes in
Mean global radiation during the last ten minutes in
Current relative air humidity 2 meter above ground in
Current dew point 2 meter above ground in
Mean wind direction during the last ten minutes in
Mean wind speed during the last ten minutes in
Maximum gust peak during the last ten minutes in
Current pressure at station level (QFE) in
Current pressure at sea level (QFF) in
The swiss Federal Office of Meteorology and Climatology MeteoSwiss provides the data in an open api. The api description and links to the latest data: