Pro Weather.
Getting started

Connect other hardware

Feed your site from an Ecowitt gateway, weewx, Meteobridge, CumulusMX or almost any other station through a personal upload URL.

Every site has a personal upload URL that accepts the two common upload protocols:

  • Ecowitt, spoken by Ecowitt and Fine Offset gateways (GW1000, GW1100, GW1200, GW2000, GW3000, WH2600, HP1000) and rebrands such as Ambient Weather, Froggit, Misol and Sainlogic.
  • Weather Underground, spoken by weewx, Meteobridge, CumulusMX, WeatherDisplay and most console firmware.

Through weewx that covers almost any station; see Supported weather stations. Ecowitt and Tempest owners can also connect through the vendor cloud, which brings past readings along. Scripts can post JSON to the same URL.

1. Get your upload URL

Open your site in the dashboard, go to Setup → Connection → Local hardware and choose Enable uploads on the Upload URL card. (The same card is under Sharing → Publishing → Data publishing.) One secret key is shown in two forms:

  • For Ecowitt gateways: server i.pro-weather.com, a short path like /i/f3a91c…, port 80.
  • For software: a full HTTPS URL:
https://pro-weather.com/api/ingest/f3a91c…

Keep it secret

Anyone with the URL can feed data to your site. If it leaks, choose Regenerate and update your hardware. The old URL stops working immediately.

2. Point your hardware at it

Ecowitt / Fine Offset gateways

In the WS View Plus or Ecowitt app (or the gateway's web page), open your device → Weather Services → Customized:

  • Customized: Enable, protocol Ecowitt
  • Server IP / Hostname: i.pro-weather.com
  • Path: the short path from the dashboard, e.g. /i/f3a91c…
  • Port: 80
  • Upload interval: 60 seconds

Gateways can only upload over plain HTTP, which is why this host and port differ from the software URL. Current firmware also limits server + path + port to 64 characters; these settings come to 54. Choose the Ecowitt protocol rather than Wunderground: it carries your full sensor list.

weewx

Set your upload URL as the Wunderground server in weewx.conf. The station ID and password are ignored:

[StdRESTful]
    [[Wunderground]]
        enable = true
        station = ANY
        password = ANY
        server_url = https://pro-weather.com/api/ingest/f3a91c…
        rapidfire = false

Meteobridge

Meteobridge sends exactly the URL you give it, so the readings have to be in the URL. The bare upload URL carries no readings and is rejected.

On the Services tab, under Definition of Events, add an HTTP event every 60 seconds with this URL on one line. Set the success string to success. The unit converters make it correct whatever units your Meteobridge displays:

https://pro-weather.com/api/ingest/f3a91c…?tempf=[th0temp-act=F.1:--]&humidity=[th0hum-act.0:--]&dewptf=[th0dew-act=F.1:--]&windspeedmph=[wind0wind-act=mph.1:--]&windgustmph=[wind0wind-max10=mph.1:--]&winddir=[wind0dir-act.0:--]&baromin=[thb0seapress-act=inHg.2:--]&rainin=[rain0total-sum1h=in.3:--]&dailyrainin=[rain0total-sumday=in.3:--]&rainratein=[rain0rate-act=in.3:--]&solarradiation=[sol0rad-act.0:--]&UV=[uv0index-act.1:--]&indoortempf=[thb0temp-act=F.1:--]&indoorhumidity=[thb0hum-act.0:--]&AqPM2.5=[air1pm-act.1:--]&AqPM10=[air0pm-act.1:--]&pm1=[air2pm-act.1:--]

Your dashboard shows this URL with your own key already in it, ready to copy. Sensors you do not have post as -- and are ignored.

Air quality: check your sensor numbers

The last three fields carry particulates. The URL assumes a Davis AirLink, which Meteobridge numbers air0pm = PM10, air1pm = PM2.5, air2pm = PM1. Other sensors number differently (an Ecowitt WH46 lands on air4pm to air6pm), so check Meteobridge's Live Data tab and adjust. The sensor must be set up in Meteobridge itself first.

CumulusMX

Use Custom HTTP, since Cumulus's Weather Underground upload has a fixed server. Open Settings → Custom HTTP → Interval based, enable it with an interval of 60 seconds, and enter this URL on one line. The unit= settings force the right units whatever Cumulus is set to, and rc=y keeps decimal points on comma-decimal locales:

https://pro-weather.com/api/ingest/f3a91c…?tempf=<#temp unit=F dp=1 rc=y>&humidity=<#hum>&dewptf=<#dew unit=F dp=1 rc=y>&windspeedmph=<#wspeed unit=mph dp=1 rc=y>&windgustmph=<#wgust unit=mph dp=1 rc=y>&winddir=<#bearing>&baromin=<#press unit=inHg dp=2 rc=y>&rainin=<#rhour unit=in dp=3 rc=y>&dailyrainin=<#rfall unit=in dp=3 rc=y>&rainratein=<#rrate unit=in dp=3 rc=y>&solarradiation=<#SolarRad>&UV=<#UV dp=1 rc=y>&indoortempf=<#intemp unit=F dp=1 rc=y>&indoorhumidity=<#inhum>&AqPM2.5=<#AirLinkPm2p5Out rc=y>&AqPM10=<#AirLinkPm10Out rc=y>&pm1=<#AirLinkPm1Out rc=y>&pm25_24h=<#AirLinkPm2p5_24hrOut rc=y>&pm10_24h=<#AirLinkPm10_24hrOut rc=y>&pm25_nowcast=<#AirLinkPm2p5_NowcastOut rc=y>&pm10_nowcast=<#AirLinkPm10_NowcastOut rc=y>

Drop tags for sensors you don't have. The AirLink… tags cover a Davis AirLink that Cumulus already reads (Settings → AirLink), including its 24-hour means and nowcast. Without one they post -- and are ignored.

Set this up a while ago? Re-copy the URL

Both templates now send rain with three decimals instead of two. At two decimals a Davis 0.2 mm tip cannot survive the trip in inches, so 1.6 mm arrived as 1.5 mm. If your URL still says in.2 or dp=2, paste the current one from Setup → Connection. Rain already recorded keeps its old rounding.

WeatherDisplay, console firmware and everything else

Wherever the software lets you set a custom Weather Underground server, paste your upload URL as the server and put anything in the station ID and password. If it only offers the stock Weather Underground entry, relay through weewx or Meteobridge instead.

3. Watch the data arrive

Within a minute of the first upload your site gains a new station, named after your hardware when the uploader identifies itself (for example GW2000A…) and "Local hardware" otherwise. Rename it and set its time zone and coordinates on Setup → Connection → Local hardware. The Upload URL card shows when the last upload arrived.

Every standard reading in either protocol is understood, accessory channels and battery flags included, and anything your hardware does not send, like dew point, is calculated. See Which readings come through. On Pro or a trial, the archive keeps one reading about every 4 minutes.

Nothing arriving? Check these in order

  1. The Upload URL card. It says when the last upload arrived, and warns when requests reach the URL but carry no readable weather data. The timestamp updates at most every 15 minutes.
  2. The settings, exactly. Gateways: server i.pro-weather.com, the whole /i/… path, port 80, no trailing slash. pro-weather.com on port 443 never works from a gateway. Software: the full HTTPS URL. After a Regenerate, every device on the old URL is rejected.
  3. The upload interval. 60 seconds is right. More than about one upload every 4 seconds is rate-limited (HTTP 429).
  4. At least one core reading. Temperature, humidity, wind, pressure, daily rain, solar or PM2.5. An upload with none of these gets HTTP 400.
  5. An old, long key. If the card warns that server + path + port is over 64 characters, regenerate: newer gateway firmware silently truncates it.
  6. Your uploader's log. weewx logs its Wunderground thread to syslog, Meteobridge shows the last result next to the event, and CumulusMX writes Custom HTTP errors to its diagnostics log.

One site can take both. Your WeatherLink station stays the one visitors see unless you choose otherwise under Website → Homepage → Stations, so enabling uploads never silently changes your site. A site fed only by uploads publishes the same way; Publish becomes available once the first reading has arrived.

On this page