Pro Weather.

Publish to weather networks

Send your station's readings to Weather Underground, WOW, CWOP, Windy, AWEKAS and more, plus MQTT, InfluxDB, your own endpoint and Bluesky.

Pro Weather uploads your readings to weather networks and your own systems on every data refresh (about every 5 minutes). Included in Pro and the trial.

Set it up

  1. Open your site and go to Sharing → Publishing.
  2. On the Weather networks, Data publishing or Social tab, expand a service and enter its credentials.
  3. Choose Connect. The first upload goes out on the next refresh.

Each service runs on its own, so one failing never blocks the others. Turn off Upload on every refresh to pause one. Credentials are stored encrypted.

Weather networks

NetworkWhat you enterWhere to get it
Weather UndergroundStation ID + station keywunderground.com → My Devices
PWSweatherStation ID + API keypwsweather.com member area
Met Office WOWSite ID + authentication keyYour site page on wow.metoffice.gov.uk. The key is the 6-digit PIN you set
WOW-BE (KMI/IRM)Site ID + authentication keywow.meteo.be
AWEKASUsername + passwordYour awekas.at account
CWOP / APRSStation ID, plus passcode for ham callsignsRegister at wxqa.com. CW/DW/EW IDs need no passcode
WindyStation ID + station passwordThe station's page on stations.windy.com
OpenWeatherMapStation ID + API keyRegister via the OWM Stations API and enter the internal ID it returns
WeathercloudWeathercloud ID + keyDevice settings on weathercloud.net
WindfinderSender ID + passwordRegister your station with Windfinder
wetter.comStation ID + passwordYour wetter.com Wetternetzwerk account. The network is no longer actively maintained, so treat it as best-effort
WindguruStation UID + optional upload passwordYour station page at stations.windguru.cz

Each network gets the readings it accepts, converted to its units and format. Weathercloud is sent every other refresh (about every 10 minutes), because free accounts accept one upload per 10 minutes. Every other network gets every refresh.

Data publishing

MQTT

Publishes one JSON message per refresh to <your topic>/loop on your broker (mqtt://, mqtts://, ws:// or wss://). Keys follow weewx naming in your site's units (outTemp_C, windSpeed_kph, barometer_hPa and so on), so Home Assistant templates written for weewx work as they are. Messages are retained by default; set Retain messages to off to stop that.

InfluxDB

Writes one line-protocol point per refresh through the InfluxDB v2 write API, tagged with your subdomain. Enter the server URL, bucket, organization and an API token. This is the usual route to a Grafana dashboard.

Custom HTTP

For anything else, such as a Home Assistant webhook or a Node-RED flow:

  • POST (the default) sends the whole observation as JSON.
  • GET treats the URL as a template. Write {{tempC}}, {{humidity}}, {{windKmh}}, {{rainDayMm}}, {{iso}} and so on where the values belong. Unknown placeholders become empty.

An optional bearer token is sent as an Authorization header. The URL must be HTTPS and reachable from the internet: private and loopback addresses are refused.

Social

Bluesky

Posts your conditions to a Bluesky account on a schedule, from every hour to once a week (default: once a day). Enter your handle and an app password (Bluesky Settings → App Passwords, never your account password). Leave the template empty for a conditions line plus a link to your site, or write your own with the Custom HTTP placeholders plus {{url}}.

Status and errors

Each connected service shows a badge: OK with the last upload time, Waiting for first upload, Paused or Failed. Expand the card to read the service's exact error.

  • If a service rejects your credentials, retries pause for an hour. Fix them and save the card to retry on the next refresh.
  • Add the A weather-service upload is failing alert to get an email when a badge turns to Failed.

Uploads always use your site's public station, so register one station per network per site.

On this page