# Ecowitt Customized Upload: A Complete Setup Walkthrough

URL: https://pro-weather.com/blog/ecowitt-customized-upload-setup

> Every field in the Ecowitt Customized upload screen explained, with the exact values, the 64-character limit that breaks setups, and how to tell it is working.

The **Customized** screen in WS View Plus is the most useful setting on an Ecowitt gateway and the least documented. It lets the gateway post its full sensor payload to any address you type in, which is what makes an Ecowitt station genuinely portable between services. It also has two quirks that cause most failed setups: it speaks plain HTTP only, and it silently truncates long settings. This walks through every field.

**Key takeaways:**

- Customized upload posts your whole sensor payload to any server, path and port you enter, independent of every other weather service on the device.
- Set Protocol Type Same As to **Ecowitt**, not Wunderground: the Ecowitt protocol carries the accessory sensors, the Wunderground one drops most of them.
- The firmware speaks plain HTTP and will not follow a redirect, so the port is 80 and the destination must accept plain HTTP on that path.
- Server plus path plus port must total 64 characters or fewer; over that, firmware truncates it without telling you and nothing arrives.
- The same screen exists on Froggit, Sainlogic, Eurochron and Ambient Weather hardware, under awnet rather than WS View on Ambient.

*For the model-by-model picture, see [supported weather stations](https://pro-weather.com/docs/supported-hardware).*

## Where is the Customized screen?

In the **WS View Plus** app, tap your device, then **Weather Services**, then swipe or scroll to **Customized**. It is the last entry, after the built-in services for [Ecowitt's own cloud](https://www.ecowitt.net/), [Weather Underground](https://www.wunderground.com/pws/overview), Weathercloud and WOW.

You can also reach it from the gateway's local web interface by browsing to its IP address on your network, which is often easier for typing long paths. Ambient Weather owners use the **awnet** app instead, in the same position.

## What does each field do?

| Field | What to enter | Why |
|---|---|---|
| Customized | Enable | Off by default |
| Protocol Type Same As | **Ecowitt** | Carries the full sensor list |
| Server IP / Hostname | Hostname only, no `http://` | The firmware adds the scheme |
| Path | The path starting with `/` | Your credential usually lives here |
| Port | **80** | Plain HTTP only |
| Upload Interval | 60 | Seconds; range is 8 to 600 |

The two fields people get wrong are the protocol and the port.

### Protocol: Ecowitt, not Wunderground

The dropdown offers both. **The Ecowitt protocol** is the native format and includes every sensor the gateway knows about: PM readings, CO2, lightning, soil probes on all channels, leaf wetness, extra room sensors, and per-sensor battery flags. **The Wunderground protocol** is a compatibility format built around the fields Weather Underground accepts, and it drops most accessory sensors on the floor.

Unless your destination explicitly asks for Wunderground format, choose Ecowitt. If you have accessory sensors and they are not showing up anywhere, this dropdown is the first thing to check.

The gap is easy to see in the field lists further down this page: the accessory sensors in [Ecowitt's own catalogue](https://www.ecowitt.com/shop) (the WH57 lightning detector, the WH45 CO2 module, WH51 soil probes, WH31 room sensors) all have Ecowitt-protocol field names with no Wunderground equivalent, so there is simply nowhere for them to go in the other format.

### Port: 80, and why that is not a mistake

The Customized upload does not implement TLS. It cannot post to an HTTPS endpoint, and it will not follow a redirect from HTTP to HTTPS. If a server answers port 80 with a `301` or `308` pointing at `https://`, the gateway does not follow it; the upload just fails, usually with no error you can see.

This is why any service that accepts gateway uploads has to answer plain HTTP on port 80 for that specific path, and why you will often be given a dedicated hostname for gateways rather than the service's main domain. With Pro Weather, gateways post to `i.pro-weather.com` on port 80, which accepts the plain-HTTP request and forwards it over an encrypted connection immediately, so the unencrypted hop is only between your gateway and the edge.

## The 64-character limit that breaks setups

Current Ecowitt firmware limits the combined length of **server + path + port** to 64 characters. Go over and it truncates, saves the truncated version, and reports no error. Your upload interval ticks by and nothing ever arrives.

Worked example with Pro Weather's gateway settings:

| Part | Value | Characters |
|---|---|---|
| Server | `i.pro-weather.com` | 17 |
| Path | `/i/` plus a 32-character token | 35 |
| Port | `80` | 2 |
| **Total** | | **54** |

That leaves 10 characters of headroom. If you are given a long path, or you generated your credential before a service shortened its format, regenerate it rather than trying to squeeze it in. If your upload path is longer than roughly 40 characters, treat that as the prime suspect for a silent failure.

## How do you confirm it is working?

In order, because each step rules out the one before it.

1. **Check the destination first, not the gateway.** Any service that accepts uploads should show you a "last data received" timestamp. That is ground truth. If it updates, you are done.
2. **Re-open the Customized screen** and read the values back. This catches truncation, a stray `http://` in the server field, a missing leading slash on the path, and a trailing slash that should not be there.
3. **Confirm the gateway is actually on WiFi** and reaching the internet. If the ecowitt.net dashboard is also stale, the problem is connectivity, not the Customized entry.
4. **Watch one interval go by.** At 60 seconds you should not wait more than a couple of minutes. Some services only refresh their "last received" display every few minutes, so give it five before concluding failure.
5. **Try the gateway's local web interface** if the app is being unhelpful. Typing a long path with a keyboard is more reliable than a phone, and the web UI shows the saved values plainly.

## What arrives at the other end?

Everything the gateway measures, using Ecowitt's field names. Useful to know when you are debugging what a destination did or did not read:

| Reading | Fields |
|---|---|
| Outdoor temp and humidity | `tempf`, `humidity` |
| Indoor temp and humidity | `tempinf`, `humidityin` |
| Pressure | `baromrelin` (sea level), `baromabsin` (station) |
| Wind | `windspeedmph`, `windgustmph`, `winddir`, `maxdailygust` |
| Rain | `rainratein`, `eventrainin`, `hourlyrainin`, `dailyrainin`, `weeklyrainin`, `monthlyrainin`, `yearlyrainin` |
| Piezo rain (WS90) | the same names with a `_piezo` suffix |
| Solar and UV | `solarradiation`, `uv` |
| Particulates | `pm25_co2`, `pm10_co2`, `pm1_co2` and 24-hour averages |
| CO2 (WH45, WH46) | `co2`, `co2_24h`, plus `tf_co2` and `humi_co2` |
| Lightning (WH57, DP60) | `lightning`, `lightning_num`, `lightning_time` |
| Extra rooms (WH31) | `temp1f` to `temp8f`, `humidity1` to `humidity8` |
| Soil moisture (WH51) | `soilmoisture1` to `soilmoisture8` |
| Soil temperature (WN34) | `tf_ch1` to `tf_ch8` |
| Leaf wetness | `leafwetness1` upward |
| Battery flags | `wh65batt`, `wh57batt`, `wh80batt` and friends, as 0 or 1 |
| Identity | `PASSKEY`, `stationtype`, `model`, `dateutc` |

A few notes that save debugging time.

**Pressure comes in two forms.** `baromrelin` is the sea-level pressure and `baromabsin` is the raw station pressure. A destination showing pressure a long way off your neighbours is probably reading the wrong one. The distinction, and why it matters at altitude, is covered in [how to read barometric pressure trends](https://pro-weather.com/blog/how-to-read-barometric-pressure-trends).

**Battery fields are flags, not percentages.** `wh65batt` and friends report 0 or 1, where 1 means low. A destination that renders them as a percentage will show your healthy sensor as 1% charged.

**A dead clock is usually harmless.** `dateutc` is often literally the string `now`, and gateways with a flat backup battery sometimes send an epoch-1970 stamp. Sensible destinations fall back to arrival time.

## Does the Customized upload replace my other services?

No. It is fully independent. The gateway maintains its Ecowitt, Weather Underground, Weathercloud and WOW entries separately, and enabling Customized does not touch any of them.

In practice that means you can run all of them at once: ecowitt.net for the app, Weather Underground to contribute to the public map, and a Customized upload to your own website. There is no meaningful cost to the gateway in doing so, and it is worth doing: contributing to the public networks is covered in [sharing your data with Weather Underground and CWOP](https://pro-weather.com/blog/share-weather-station-data-wunderground-cwop), and the wider set of destinations in [Weather Underground alternatives](https://pro-weather.com/blog/weather-underground-alternatives).

## Common questions

**Can I set two Customized destinations?**

Not on current firmware; there is one Customized slot. If you need to fan out to several places, upload to one service that re-publishes onward, or relay through [weewx](https://weewx.com/docs/), whose RESTful services can post to many destinations at once.

**Why does my station show up as "GW2000A" rather than a name I chose?**

Because the gateway identifies itself in the payload with `model` and `stationtype`, and destinations often use that as the initial station name. Most let you rename it afterwards.

**Is the path a password?**

On most services, yes, effectively. If the path contains a token then anyone who has the full URL can post data as your station, so treat it like a credential and regenerate it if it leaks.

**What interval is best?**

60 seconds. Faster gains nothing for a public website, and the firmware's 8-second floor exists for local use rather than cloud uploads. Some destinations rate-limit aggressive uploaders and answer with HTTP 429.

**My station is a Froggit, not an Ecowitt. Do these values change?**

No. Froggit, Sainlogic and Eurochron hardware runs the same EasyWeatherPro firmware and the screen is identical. Ambient Weather is the same too, just inside the awnet app. Bresser and Vevor are the exceptions: their firmware has no Customized field at all, so they need a relay, as covered in [the ProWeatherLive alternative guide](https://pro-weather.com/blog/proweatherlive-alternative).
