home-assistant.io/source/_components/speedtestdotnet.markdown
Rohan Kapoor da057b01bd Split out speedtestdotnet into a sensor and component (#8378)
* Rename sensor.speedtest to sensor.speedtestdotnet

* Split out speedtestdotnet into a sensor and component

* Fix example

* Collapse down to a single component page

* Reset permissions

* ✏️ Tweaks
2019-02-12 09:57:15 +01:00

4.9 KiB

layout title description date sidebar comments sharing footer logo ha_category featured ha_release ha_iot_class redirect_from
page Speedtest.net How to integrate Speedtest.net within Home Assistant. 2016-02-12 9:06 true false true true speedtest.png
System Monitor
Sensor
false 0.13 Cloud Polling
/components/sensor.speedtest/
/components/sensor.speedtestdotnet/

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

Enabling this component will automatically create the Speedtest.net Sensors for the monitored conditions (below).

By default, a speed test will be run every hour. The user can change the update frequency in the configuration by defining the update_interval for a speed test to run.

{% linkable_title Configuration %}

For the server_id check the list of available servers.

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

Once per hour, on the hour (default):

# Example configuration.yaml entry
speedtestdotnet:

{% configuration %} monitored_conditions: description: Sensors to display in the frontend. required: false default: All keys type: list keys: ping: description: Reaction time in ms of your connection (how fast you get a response after you've sent out a request). download: description: Download speed (Mbit/s) upload: description: Upload speed (Mbit/s) server_id: description: Specify the speed test server to perform the test against. required: false type: integer update_interval: description: "Minimum time interval between updates. Supported formats: update_interval: 'HH:MM:SS', update_interval: 'HH:MM' and Time period dictionary (see example below)." required: false default: 60 minutes type: time manual: description: > true or false to turn manual mode on or off. Manual mode will disable scheduled speed tests. required: false type: boolean default: false {% endconfiguration %}

{% linkable_title Time period dictionary example %}

update_interval:
  # At least one of these must be specified:
  days: 0
  hours: 0
  minutes: 3
  seconds: 30
  milliseconds: 0

{% linkable_title Service %}

Once loaded, the speedtestdotnet component will expose a service (speedtestdotnet.speedtest) that can be called to run a Speedtest.net speed test on demand. This service takes no parameters. This can be useful if you have enabled manual mode.

action:
  service: speedtestdotnet.speedtest

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 speed test will show as Unknown. You can use the service sensor.update_speedtest to run a manual speed test and populate the data or just wait for the next regularly scheduled test. You can turn on manual mode to disable the scheduled speed tests.

{% linkable_title Examples %}

In this section, you find some real-life examples of how to use this component.

{% linkable_title Run periodically %}

Every half hour of every day:

# Example configuration.yaml entry
speedtest:
  update_interval:
    minutes: 30
    monitored_conditions:
      - ping
      - download
      - upload

{% linkable_title Using as a trigger in an automation %}

{% raw %}

# Example configuration.yaml entry
automation:
  - alias: "Internet Speed Glow Connect Great"
    trigger:
      - platform: template
        value_template: "{{ states('sensor.speedtest_download')|float >= 10 }}"
    action:
      - service: shell_command.green

  - alias: "Internet Speed Glow Connect Poor"
    trigger:
      - platform: template
        value_template: "{{ states('sensor.speedtest_download')|float < 10 }}"
    action:
      - service: shell_command.red

{% endraw %}

{% linkable_title Notes %}

  • When running on Raspberry Pi, just note that the maximum speed is limited by its 100 Mbit/s LAN adapter.
  • Running this component can have negative effects on the system's performance as it requires a fair amount of memory.
  • Entries under monitored_conditions only control what entities are available in Home Assistant, it does not disable the condition from running.
  • If ran frequently, this component has the ability to use a considerable amount of data. Frequent updates should be avoided on bandwidth-capped connections.
  • While running, your network capacity is fully utilized. This may have a negative effect on other devices in use the network such as gaming consoles or streaming boxes.