Skip to main content

Ecowitt smart home integration, free and open source

Ecowitt integration for Gladys Assistant

Bring your Ecowitt weather station sensors into Gladys, fully locally.

Overview​

This integration brings your Ecowitt weather station sensors into Gladys: temperature, humidity, wind, rain, solar radiation, UV, pressure, and also the remote probes (soil moisture, PM2.5, CO2, lightning, leak detection). Every physical sensor becomes its own Gladys device, with its own battery and history, ready to use in your scenes.

Everything stays local: no data goes through the Ecowitt cloud.

Prerequisites​

  • Gladys 4.86 or later.
  • An Ecowitt weather station, console or gateway on the same local network as the machine running Gladys.
  • For the push mode: the WS View Plus app, and a station that can reach the machine running Gladys over the local network, on the port shown in the configuration screen.
  • For the local polling mode: a gateway or a console with a local API (see the list below), reachable at its IP address from the machine running Gladys.

Configuration​

Two modes are available, depending on your hardware.

Push (works with almost every station)​

Your station sends its readings to Gladys itself. This is the mode to use with the WS2910, GW1000, WN1900, WN1910, WS2320, HP2550, HP3500 consoles and, more generally, with every model except the WS6006.

  1. Install the integration and wait for the receiver container to start.
  2. Open the configuration screen: the full address to copy is shown there, as http://<address>:<port>/data/report/. If it contains localhost or 127.0.0.1 — which happens when you browse Gladys from the machine running it — replace that part with the local IP address of that machine: your station has to reach it over the network, and localhost means nothing to it.
  3. In the WS View Plus app, select your station, then Customized:
    • Protocol Type Same As: Ecowitt
    • Server IP / Hostname: the local IP address of the machine running Gladys
    • Path: /data/report/
    • Port: the port shown in Gladys
    • Upload Interval: 60 seconds
    • Turn Enable on and save.
  4. Wait for a first upload, then click Test the connection to confirm the readings are arriving.
  5. Go to the Discover screen: your sensors are listed there.

Sensors are only known after the first reading arrives. An empty Discover screen almost always means the station has not sent anything yet: double-check the address, port and path set in WS View Plus.

If your console only offers the Wunderground protocol, that works too: use the path /weatherstation/updateweatherstation.php. It carries fewer measurements (no multi-channel, no PM2.5, no CO2, no lightning).

Local polling (recent gateways)​

The GW1100, GW1200, GW2000, GW3000 and the recent network consoles (WS3800, WS3820, WS3900, WS3910, WN1700, WN1820, WN1821, WN1920, WN1980, WS6210) expose a local API. Gladys polls them directly, with nothing to configure on the station.

  1. Fill in the gateway IP address in the configuration. The Search for gateways button can find it for you.
  2. Adjust the polling interval if needed: 30 or 60 seconds (60 by default). The integration reads the gateway at that interval and refreshes the readings of every device you created.
  3. Run a discovery.

This mode has one advantage: it reads each sensor's hardware id, so replacing a battery or moving a sensor to another channel breaks neither your scenes nor your history.

Choosing the mode​

By default the integration switches to local polling as soon as an IP address is set, and stays in push mode otherwise.

The two sources do not produce the same device identifiers, so they are never combined on a single station. If you switch modes after creating your devices, they will show up again in the Discover screen — delete the old ones.

Security​

The receiving port is open on your local network and accepts, by design, any upload that reaches it. If several stations coexist on your network, fill in the PASSKEY field to accept only yours. To find it, enter any value in that field and save: the next reading is then ignored, and the integration logs show its PASSKEY (Relevé ignoré : PASSKEY inattendu (…)). Copy that value into the field and save again.

Troubleshooting​

SymptomWhat to check
The Discover screen stays emptyNo reading received: check the address, port and path in WS View Plus, then click "Test the connection".
The displayed address looks wrongIt mirrors the one your browser uses to reach Gladys: localhost when you are on the machine itself, the tunnel hostname through Gladys Plus or a reverse proxy. Replace it with the local IP address of the machine running Gladys.
"Search for gateways" finds nothingExpected on a WS2910 or a GW1000: those models have no local API. Use the push mode.
A measurement is missingNot every sensor reports every measurement. Only the ones actually received become features.
No battery on a solar sensorEcowitt reports a voltage but documents no threshold for the WS80, WS90, WH40 and WH85: rather than an invented state, nothing is shown.
"Gateway unreachable at …"Local polling mode: check that the gateway is powered on and that its IP address has not changed (give it a fixed address in your router), or find it again with "Search for gateways".
"The reading receiver is unreachable (it may be restarting): retrying automatically."Push mode: the receiver container may be restarting. The integration retries on its own; if the message stays, restart the integration.
"Initialization failed, check the integration logs."Open the integration logs and restart the integration.

The integration logs are in the Logs tab of the integration page in Gladys.

Configuration settings​

These are the settings Ecowitt asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
Send your station's data to GladyssectionNoIn the WS View Plus app, open your station then Customized: choose the Ecowitt protocol and a 60 second interval, then copy the address below. Sensors appear in the Discover screen after the first reading, which can take a few minutes.
http://{{gladys_host}}:{{port:ecowitt}}/data/report/sectionNoWS View Plus asks for the three fields separately: server {{gladys_host}}, port {{port:ecowitt}}, path /data/report/. If the address above contains localhost, 127.0.0.1 or a domain name (Gladys Plus, reverse proxy), replace it with the local IP address of the machine running Gladys: your station has to reach it over the local network, and localhost means nothing to it.
Station PASSKEY (optional)stringNoOnly accept readings from this station. Leave empty to accept the first station that reports.
Or poll a recent gatewaysectionNoGW1100, GW1200, GW2000, GW3000 and recent network consoles expose a local API: fill in their IP address and Gladys polls them directly, with no configuration on the station. Consoles such as the WS2910 or the GW1000 do not: leave this empty and use the push mode above.
Gateway IP addressstringNo
Acquisition modeselectNoThe two sources do not produce the same identifiers, so they are never combined on one station.
Polling interval (s)numberNoLocal polling mode only: how often the gateway is read and the readings refreshed, 30 or 60 seconds.

How to install Ecowitt in Gladys​

  1. In Gladys, open Integrations: Ecowitt appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/cicoub13/gladys-ecowitt:1.1.3), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/cicoub13/gladys-ecowitt.

Ecowitt requires Gladys >=4.86.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations​

Ecowitt is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by cicoub13, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂