Speedtest.net


The speedtest sensor component uses the Speedtest.net web service to measure network bandwidth performance.

By default, it will run every hour. The user can change the update frequency in the configuration by defining the minute, hour, and day for a speedtest to run. For the server_id check the list of available servers.

To add a Speedtest.net sensor to your installation, add the following to your configuration.yaml file:

Once per hour, on the hour (default):

# Example configuration.yaml entry
sensor:
  - platform: speedtest
    monitored_conditions:
      - ping
      - download
      - upload

Configuration variables:

  • monitored_conditions array (Required): Sensors to display in the frontend.
    • ping: Reaction time in ms of your connection (how fast you get a response after you’ve sent out a request).
    • download: Download speed in Mbps.
    • upload: Upload speed in Mbps.
  • server_id (Optional): Specify the speedtest server to perform test against.
  • minute (Optional): Specify the minute(s) of the hour to schedule the speedtest. Use a list for multiple entries. Default is 0.
  • hour (Optional): Specify the hour(s) of the day to schedule the speedtest. Use a list for multiple entries. Default is None.
  • day (Optional): Specify the day(s) of the month to schedule the speedtest. Use a list for multiple entries. Default is None.

This component uses speedtest-cli to gather network performance data from Speedtest.net. Please be aware of the potential inconsistencies that this component may display.

When Home Assistant first starts up, the values of the speedtest will show as Unknown. You can use the service sensor.update_speedtest to run a manual speedtest and populate the data or just wait for the next regularly scheduled test.

Examples

In this section you find some real life examples of how to use this sensor.

Run periodically

Every half hour of every day:

# Example configuration.yaml entry
sensor:
  - platform: speedtest
    minute:
      - 0
      - 30
    monitored_conditions:
      - ping
      - download
      - upload

Run at a specific time

Everyday at 12:30AM, 6:30AM, 12:30PM, 6:30PM:

# Example configuration.yaml entry
sensor:
  platform: speedtest
  minute: 30
  hour:
    - 0
    - 6
    - 12
    - 18
  monitored_conditions:
    - ping
    - download
    - upload