WindShare · Balaton

Connect your weather station to WindShare

Your station can help every sailor on Balaton. WindShare shows your wind on the sailors' map and feeds it into the local wind forecast. Your temperature, pressure and rain are used too. It takes a few minutes: register the station, copy two values into your station's app or software, and check that the data arrives.

Magyarul: https://windshare-server.wittysmoke-181349cf.eastus.azurecontainerapps.io/pws/hu/

In short

  1. Register your station. You get a Station ID and a Station key at once.
  2. Find your device in the table below and follow its section.
  3. Check your station on the status page. The first values should appear within a few minutes.
  4. A moderator reviews the station. After approval it appears on the WindShare map.

Register your station

Open the registration page and fill in:

FieldWhat to enter
Station nameA short public name, e.g. Balatonfüred harbour or Tihany, Sajkod
Owner nameOptional. Never published
Contact e-mailRequired. Never published. We use it only to contact you about the station
PositionLatitude and longitude in decimal degrees (WGS84), e.g. 46.9573, 17.8936
Ground elevationHeight of the ground at the station above sea level, in metres
Anemometer heightHeight of the wind sensor above the ground, in metres
Thermometer heightHeight of the temperature/humidity sensor above the ground, in metres
ExposureOpen water, shoreline, pier or breakwater, rooftop, garden, open field, or other
HardwareBrand and model, e.g. Ecowitt GW2000 + WS90
ConnectionHow the station will send data (see which device)
Water temperature channelOptional. If an Ecowitt WN34 probe floats in the lake, its channel (1–8)
Site descriptionA sentence or two: what is around the sensors, how far the water is
ConsentYou agree that the station's name, position and measurements are published

Tip: To read a position, long-press the spot in Google Maps. The two numbers that appear are latitude and longitude.

The station must stand within about 15 km of Balaton's forecast areas. Stations further away are not used for the lake's wind.

After you submit the form you get two values:

ValueExampleNotes
Station IDWS4K7Q2M8 characters, always starts with WS. Upper or lower case both work
Station keyk7m2q9x4h3c8v6tp16 lowercase letters and digits. Type it exactly

Note: The key is shown only once. Copy it somewhere safe now. If you lose it, write to the moderator for a new one.

The station key does two things only: it sends data for this one station, and it opens that station's own status page. It cannot log in anywhere, change any setting or show anyone's personal details, not even yours. That is why it is safe to type it into a device that sends it unencrypted. It is not an account password. Some other networks ask for your account password instead. We never do.

New stations start as pending. While a station is pending, its uploads are received and stored, and you can watch them on the status page. They appear on the WindShare map and go into the forecast only after a moderator approves the station. The moderator checks the position, the siting and whether the values look plausible, and gives the station a WMO siting class (1–5). A station can be used for some quantities and not others. For example, a sheltered anemometer can still give good temperature and pressure.

A pending station that sends nothing for 14 days is removed. Register again when the station is ready.

Two ways in

RouteStatusHow oftenNotes
Direct upload (recommended)AvailableEvery minute (5 s to 10 min works)Your station or software sends straight to WindShare. No third party, no API key that expires
Pull from Weather Underground, WeatherLink.com or NetatmoPlanned, not available yet—For devices that cannot send to a custom server. Until then, use a bridge (see Davis)

Direct upload works in three ways. Your device or software decides which one you use:

Which app or device do you have?

The station's manual or box usually names the app you used to set up its Wi-Fi. That app decides which section you need.

You set up your station with…Typical brands and modelsGo to
WS View Plus or the Ecowitt appEcowitt, Froggit, Sainlogic, Eurochron, Alecto, Ventus, Misol, some Sencor, Gogen and GarniEcowitt and WS View Plus
The gateway's own web pageEcowitt GW1100, GW1200, GW2000, GW3000; WS3900, HP2560 consolesEcowitt and WS View Plus
WSLinkSencor SWS 12500 and SWS 10500, Garni Arcus family, Bresser Wi-Fi stationsWSLink
Weather software on a PC or Raspberry PiWeeWX, Meteobridge, CumulusMX, Weather Display, MeteohubWeather software
WeatherLink (Davis)Vantage Pro2, Vantage Vue, WeatherLink Live, EnviroMonitorDavis
The Netatmo appNetatmo Smart Weather StationNetatmo
Your own logger or scriptCampbell, Vaisala, Arduino, Raspberry Pi, anything that speaks HTTPOwn software and API
Anything that can send to a "Wunderground-compatible custom server"—Weather software

Ecowitt and WS View Plus

For the Fine Offset family: Ecowitt, Froggit, Sainlogic, Eurochron (Conrad), Alecto, Ventus, Misol, and several Sencor, Gogen and Garni models. This is the most common station type around the lake.

Open the Customized upload settings in one of these ways:

  1. WS View Plus: My Devices → select your station → More → Weather Services → swipe to the Customized page.
  2. Ecowitt app: open the station → the menu at the top right → Others → DIY Upload Servers → Customized.
  3. Gateway web page (GW1100, GW1200, GW2000, GW3000, and WS3900 or HP2560 consoles): type the device's IP address into a browser on the same Wi-Fi → Weather Services → scroll down to Customized.

Then fill in the fields. Choose one of the two protocols:

FieldWunderground protocolEcowitt protocol
CustomizedEnableEnable
Protocol Type Same AsWundergroundEcowitt
Server IP / Hostnamewindshare-pws.wittysmoke-181349cf.eastus.azurecontainerapps.iowindshare-pws.wittysmoke-181349cf.eastus.azurecontainerapps.io
Path/weatherstation/updateweatherstation.php?/pws/ecowitt/ + your ID + / + your key
Station IDyour Station ID(field not shown)
Station Keyyour Station key(field not shown)
Port8080
Upload Interval60 seconds60 seconds

Press Save (at the top in the apps, at the bottom of the web page). Then check your station. The first values appear within a few minutes.

With the example values, the Ecowitt path is:

/pws/ecowitt/WS4K7Q2M/k7m2q9x4h3c8v6tp

Note: Type the hostname in lowercase, without http:// and without a trailing /. In Wunderground mode the path must end with ?, because these devices append their data straight after it.

Which protocol should you choose?

Either is fine. The device has one Customized slot, so the station sends to WindShare one way only.

The Customized upload runs alongside Weather Underground, Ecowitt.net and Weathercloud. You do not have to give any of them up.

Tip: No Customized page? Update the station's firmware from the app, and update the app itself. Older firmware does not have the option.

These stations send rain as last hour and since midnight totals, not as a 24-hour total.

For stations you set up with the WSLink app: Sencor SWS 12500 and SWS 10500, the Garni Arcus family, and several Bresser Wi-Fi stations.

  1. Open the station in WSLink and go to its settings, to the weather servers. Besides Weather Underground and Weathercloud there is a custom server ("own server") option. On some Garni models it is on the device's own setup page, under User's own server.
  2. Protocol: Wunderground. If there is a "WSLink" protocol box, untick it.
  3. Server: windshare-pws.wittysmoke-181349cf.eastus.azurecontainerapps.io
  4. Path: /weatherstation/updateweatherstation (no ? here, unlike Ecowitt).
  5. Station ID: your Station ID. Station key or password: your Station key.
  6. Port: 80.
  7. Save, then check your station.

If the app asks for one full address instead of separate fields, enter:

http://windshare-pws.wittysmoke-181349cf.eastus.azurecontainerapps.io/weatherstation/updateweatherstation.php

Tip: No custom server option? Update the station's firmware in WSLink. If it is still missing, the console cannot send to us directly. A small bridge such as WeeWX on a Raspberry Pi can read it and send for it (see weather software).

Weather software

Any program that can send to a "Wunderground-compatible custom server" works with these settings:

SettingValue
Server / URLhttp://windshare-pws.wittysmoke-181349cf.eastus.azurecontainerapps.io/weatherstation/updateweatherstation.php
HTTPS, if the software supports ithttps://windshare-pws.wittysmoke-181349cf.eastus.azurecontainerapps.io/weatherstation/updateweatherstation.php
Station IDyour Station ID
Password / keyyour Station key

The server answers success, as Weather Underground does. Software that checks the answer is satisfied.

WeeWX

In weewx.conf, point the Wunderground uploader at WindShare:

[StdRESTful]
    [[Wunderground]]
        enable = true
        station = WS4K7Q2M
        password = k7m2q9x4h3c8v6tp
        server_url = http://windshare-pws.wittysmoke-181349cf.eastus.azurecontainerapps.io/weatherstation/updateweatherstation.php
        rapidfire = False

Restart WeeWX and watch its log: each upload should be followed by a success line. Check the option names against the WeeWX documentation for your version. The built-in [[Wunderground]] section sends to one server only. If it already feeds Weather Underground itself, keep that and add WindShare with a second uploader extension.

Meteobridge

Use a push service that sends an HTTP request every minute (Services → Push Services → HTTP request). Send it to the metric URL template described under own software and API, with Meteobridge's template variables in place of the values. For example:

https://windshare-server.wittysmoke-181349cf.eastus.azurecontainerapps.io/pws/v1/upload?id=WS4K7Q2M&key=k7m2q9x4h3c8v6tp&wind_speed_ms=[wind0avgwind-act]&wind_gust_ms=[wind0wind-max1]&wind_dir_deg=[wind0dir-act]&air_temp_c=[th0temp-act]&rel_humidity_pct=[th0hum-act]&pressure_station_hpa=[thb0press-act]&rain_day_mm=[rain0total-daysum]

The variable names above are illustrative. Check them against Meteobridge's template documentation for your sensors. Meteobridge works in metric units by default.

CumulusMX

Under Settings → Third Party → Custom HTTP, enable Custom HTTP Seconds (e.g. every 60 seconds) and enter the metric URL template with Cumulus web tags. For example:

https://windshare-server.wittysmoke-181349cf.eastus.azurecontainerapps.io/pws/v1/upload?id=WS4K7Q2M&key=k7m2q9x4h3c8v6tp&wind_speed_ms=<#wspeed rc=y>&wind_gust_ms=<#wgust rc=y>&wind_dir_deg=<#bearing>&air_temp_c=<#temp rc=y>&rel_humidity_pct=<#hum>&pressure_msl_hpa=<#press rc=y>&rain_day_mm=<#rfall rc=y>&rain_rate_mmh=<#rrate rc=y>

Weather Display, Meteohub and others

Look for a custom or Wunderground-compatible server setting, and use the values from the table at the top of this section. Meteohub can also send through a custom HTTP template like the one under own software and API.

Davis stations

Davis Vantage Pro2, Vantage Vue, WeatherLink Live and EnviroMonitor cannot send to a custom server by themselves. They send only to WeatherLink.com. To connect one now, use a bridge:

A direct pull from WeatherLink.com or from Weather Underground is planned but not available yet.

Netatmo

Netatmo stations cannot upload to other servers. A Netatmo connection, which would read your data through Netatmo's own interface, is planned but not available yet.

Most Netatmo wind gauges sit low, on a pole or a railing close to buildings. Even once the connection exists, a moderator will often use a Netatmo station for temperature and pressure rather than wind.

Own software and API

For data loggers, scripts and developers. Units are metric, and you can send averages made the way you want.

URL template (GET or POST)

For software that can only build a URL:

https://windshare-server.wittysmoke-181349cf.eastus.azurecontainerapps.io/pws/v1/upload?id=WS4K7Q2M&key=k7m2q9x4h3c8v6tp&wind_speed_ms=5.2&wind_gust_ms=8.1&wind_dir_deg=230&air_temp_c=12.3&rel_humidity_pct=71&pressure_msl_hpa=1015.1

The same template also works over plain HTTP, at http://windshare-pws.wittysmoke-181349cf.eastus.azurecontainerapps.io/pws/v1/upload, for devices without HTTPS. With POST, the fields may also go in a form-encoded body.

JSON API

POST https://windshare-server.wittysmoke-181349cf.eastus.azurecontainerapps.io/pws/v1/observations, with HTTP Basic authentication: the username is the Station ID and the password is the Station key.

curl -u WS4K7Q2M:k7m2q9x4h3c8v6tp \
  -H "Content-Type: application/json" \
  -d '{"observations":[{"time":"2026-11-13T10:20:00Z","wind_speed_ms":5.2,"wind_gust_ms":8.1,"wind_dir_deg":230,"wind_avg_s":600,"gust_s":3,"air_temp_c":12.3,"rel_humidity_pct":71,"pressure_msl_hpa":1015.1}]}' \
  https://windshare-server.wittysmoke-181349cf.eastus.azurecontainerapps.io/pws/v1/observations
{"status":"ok","station_id":"WS4K7Q2M","station_status":"pending","accepted":1,"stored":1,"rejected":[]}

A rejected observation is listed as {"index": i, "reason": "..."}, where index is its position in your array. If none of them can be used, the answer is 400 with the same list. stored can be lower than accepted: uploads within the same minute are combined into one record (see how we check the data). An observation may be stamped at most 2 minutes ahead of the server's clock.

Fields

Every field is optional. Leave out what you do not measure.

FieldUnitMeaning
timeISO 8601 UTC or Unix secondsThe end of the averaging period. Left out = the time of arrival
wind_speed_msm/sMean wind speed
wind_dir_degdegreesDirection the wind blows from, 0–360, true north
wind_gust_msm/sPeak gust
wind_avg_ssecondsAveraging period of speed and direction, e.g. 600 for a 10-minute mean
gust_ssecondsGust duration, e.g. 3
air_temp_c°CAir temperature
rel_humidity_pct%Relative humidity
dew_point_c°CDew point
pressure_station_hpahPaAbsolute pressure at the station
pressure_msl_hpahPaPressure reduced to mean sea level
rain_1h_mmmmRain in the last hour
rain_day_mmmmRain since local midnight
rain_rate_mmhmm/hRain rate
solar_wm2W/m²Global solar radiation
uv_index—UV index
water_temp_c°CLake water temperature

Answers

The URL template and the JSON API answer with the same HTTP status codes:

CodeMeaning
200Accepted
400The data could not be read, or a value is invalid
401Wrong Station ID or key, or the station was retired
403The station is suspended
429Uploads arrive too often. Slow down

Measuring the WMO way

If your logger can compute them, send what the World Meteorological Organization (WMO-No. 8) defines:

Check your station

The status page has a Check my station section. Enter your Station ID and key to see:

This is always the first step when something does not look right. If the page shows no upload at all, the device is not reaching the server: check the hostname, path, port and key. If it shows uploads but odd values, check the units and the siting.

Siting your sensors

Good siting matters more than an expensive sensor. These rules follow the WMO guide (WMO-No. 8). A perfect site is rare, so do what you can and describe the rest truthfully at registration.

Wind

Temperature and humidity

Pressure

Rain

Sun, UV and water

How we check the data

Every upload is checked before it is stored:

CheckWhat happens
Range limitsEach quantity has plausible limits, e.g. air temperature −40 to +50 °C, mean wind 0–60 m/s, gusts 0–75 m/s, sea-level pressure 900–1080 hPa. A value outside them is dropped and flagged, not stored
Gust and mean windA gust lower than the mean wind is dropped and flagged
ClockIf the device clock is more than 10 minutes off, we use the time the upload arrived and flag it
Missing valuesA field you leave out stays empty. Weather Underground's -9999 also means "missing"

How the measurements are combined:

The moderator's part:

Questions and troubleshooting

There is no Customized page in the app

Update the station's firmware from the app, and update the app. Older firmware lacks the option.

The status page shows no upload

The device log says INVALIDPASSWORDID

The Station ID or key is wrong. Copy them again from your notes, or ask the moderator for a new key.

My station is still pending

New stations wait for a moderator's review. Your data is stored meanwhile, so nothing is lost. If it takes more than a few days, write to us.

My wind does not show on the map

Check the status page. The moderator may have excluded the station's wind because of its siting. Or it may simply be calm, and zero wind is a valid reading.

The pressure looks wrong

Usually the elevation is wrong, or the relative pressure was never calibrated. See pressure, and tell the moderator the correct elevation.

Why is there no 24-hour rain total?

Most consoles send only last-hour and since-midnight totals, so that is what we use.

How often should the station upload?

Every 60 seconds is ideal. Anything from 5 seconds to 10 minutes works.

Can I keep sending to Weather Underground or Weathercloud?

Yes. The WindShare upload runs alongside them.

I moved the station

Tell the moderator the new position, heights and surroundings. A position change needs approval again.

Privacy and data use

Stuck? Contact us

Write to peter@synergocom.eu and include: