Speedtest.net smart home integration, free and open source

Measure your internet speed on a schedule using Speedtest.net servers.
Measure your internet connection on a schedule, straight from Gladys, using the worldwide network of Speedtest.net servers. Every run feeds four sensors you can chart on your dashboard and use in scenes:
| Sensor | Unit | What it tells you |
|---|---|---|
| Download | Mbit/s | How fast data reaches your home |
| Upload | Mbit/s | How fast data leaves your home |
| Ping | ms | Reaction time of the connection (lower is better) |
| Jitter | ms | Stability of that reaction time (lower is better) |
Typical uses: keep an eye on what your ISP actually delivers, get notified by a scene when the download rate drops below what you pay for, or detect that a backup line (4G failover…) has taken over.
How a test works
The integration talks directly to Speedtest.net infrastructure — no account, no API key, no Ookla software installed. By default it probes the closest servers, keeps the healthiest one, then measures latency, download and upload (about 25 seconds in total). You can pin a specific server instead: press List nearby servers to see IDs, and paste one into the Server ID field.
Things to know
- A test saturates your connection while it runs. Results are also slightly conservative on very fast lines, since the measurement shares CPU with the sandbox limits Gladys applies to integrations.
- A test transfers real data — several hundred MB per run on a fast line. If your plan has a data cap, increase the interval between tests or disable automatic tests and use the manual button only.
- Scheduled tests follow the Interval between tests setting (default: one test per hour). The Run a speed test now button works at any time.
Dashboard widget
With Gladys 5.1 or later, the integration adds an Internet speed widget to the dashboard editor (Add a widget → Speedtest.net). It shows:
- two tiles, download and upload, side by side: whole Mb/s, or Gb/s with one decimal beyond 1,000 Mb/s (1.2 Gb/s);
- a history area chart of two sensors: Chart picks Download and upload (default) or Ping and jitter, History window the last 24 hours, the last week (default) or the last month;
- the ping and jitter of the last test, when it ran and the Speedtest.net server it used (operator and city), and Test in progress while one runs;
- a Run a test button. The result shows as a notification when the test ends (about half a minute). Tapping it while a test already runs does not start another one.
Good to know:
- The chart reads the device sensors: add the device to Gladys (Integrations → Speedtest.net → Discovery) for it to fill.
- The widget only rounds what it shows: Gladys keeps the measured values, decimals included, in the sensors and their history.
- The last result is kept by the integration across restarts. Before the first test, the tiles show a dash and the widget says no result is known yet.
- Chart intervals and the long-term history follow your Gladys settings for device history (data retention).
Troubleshooting
- Results lower than the official app: increase Parallel connections (fast lines fill better with 6–8) or Measurement time.
- Test fails: the closest server may be down — pin a different Server ID, or clear the field to let auto-selection skip unhealthy servers.
This integration is an independent community project, not affiliated with or endorsed by Ookla. Speedtest® is a trademark of Ookla, LLC.
Configuration settings
These are the settings Speedtest.net asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| How it works | section | No | A test saturates your connection for about 25 seconds and can transfer several hundred MB per run: mind your data cap when choosing the interval. Results are stored as four sensors (download, upload, ping, jitter) you can chart and use in scenes. |
| Run tests automatically | boolean | No | When disabled, tests only run through the manual button below. |
| Interval between tests (s) | number | No | Seconds between automatic tests. 3600 = one test per hour. |
| Server ID (optional) | string | No | Leave empty to auto-select the closest healthy server. Use the "List nearby servers" button to find IDs. |
| Parallel connections | number | No | TCP connections per direction. More connections fill fast links better. |
| Measurement time per direction (s) | number | No | Longer measurements are steadier but transfer more data. |
How to install Speedtest.net in Gladys
- In Gladys, open Integrations: Speedtest.net appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/guim31/gladys-speedtest:1.3.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/guim31/gladys-speedtest.
Speedtest.net requires Gladys >=5.1.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
Speedtest.net 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 guim31, not by the Gladys core team.
- Browse all external integrations
- Discover the native integrations built into Gladys
- Build and publish your own external integration
- Source code on GitHub — source of this documentation