네트워크속도테스트(Speedtest.net)


speedtestdotnet 통합구성요소는 Speedtest.net 웹서비스를 사용하여 네트워크 대역폭 성능을 측정합니다.

이 통합구성요소를 활성화하면 모니터링된 조건(아래)에 대한 Speedtest.net 센서가 자동으로 생성됩니다.

기본적으로 속도 테스트는 1시간마다 실행됩니다. 사용자는 속도 테스트를 실행하기 위해 scan_interval을 정의하여 설정에서 업데이트 빈도를 변경할 수 있습니다.

대부분의 Speedtest.net 서버가 작동하려면 TCP 포트 8080 아웃 바운드가 필요합니다. 이 포트를 열지 않으면 상당한 지연이 발생하거나 결과가 전혀 나타나지 않을 수 있습니다. help page에 있는 참고 사항을 참조하십시오.

설정

server_id의 경우 available servers목록을 확인하십시오.

Speedtest.net 센서를 추가하려면 configuration.yaml 파일에 다음을 추가하십시오.

시간당 한 번 (기본값) :

# Example configuration.yaml entry
speedtestdotnet:

Configuration Variables

monitored_conditions

(list)(Optional)

Sensors to display in the frontend.

Default value:

All keys

ping

Reaction time in ms of your connection (how fast you get a response after you’ve sent out a request).

download

The download speed (Mbit/s).

upload

The upload speed (Mbit/s).

server_id

(integer)(Optional)

Specify the speed test server to perform the test against.

scan_interval

(time)(Optional)

Minimum time interval between updates. Supported formats: scan_interval: 'HH:MM:SS', scan_interval: 'HH:MM' and Time period dictionary (see example below).

Default value:

60 minutes

manual

(boolean)(Optional)

true or false to turn manual mode on or off. Manual mode will disable scheduled speed tests.

Default value:

false

주기에 따른 사전(dictionary) 사례

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

서비스

일단 speedtestdotnet 통합구성요소는 필요할 때 Speedtest.net 속도 테스트를 실행하기 위해 호출될 수 있는 서비스(speedtestdotnet.speedtest)를 노출합니다. 이 서비스에는 매개 변수가 없습니다. 수동 모드를 활성화한 경우 활용할 수 있습니다.

action:
  service: speedtestdotnet.speedtest

이 통합구성요소는 speedtest-cli를 사용하여 Speedtest.net에서 네트워크 성능 데이터를 수집합니다. 이 통합구성요소가 표시할 수 있는 잠재적인 inconsistencies에 유의하십시오. 홈어시스턴트가 처음 시작되면 속도 테스트 센서의 값이 Unknown으로 표시됩니다. speedtestdotnet.speedtest 서비스를 사용하여 수동 속도 테스트를 실행하고 데이터를 채우거나 정기적으로 예약된 다음 테스트를 기다릴 수 있습니다. 수동 모드를 켜서 예약된 속도 테스트를 비활성화할 수 있습니다.

사례

본 섹션에서는 이 구성 요소를 사용하는 방법에 대한 실제 예를 제공합니다.

주기적으로 실행

매일 30 분마다 :

# Example configuration.yaml entry
speedtestdotnet:
  scan_interval:
    minutes: 30
  monitored_conditions:
    - ping
    - download
    - upload

자동화에서 트리거로 사용

# 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

참고사항

  • Raspberry Pi에서 실행할 때 최대속도는 LAN 어댑터에 의해 제한됩니다. Raspberry Pi 3+ 모델은 300Mbit/s의 maximum throughput을 지원하는 기가비트 LAN 어댑터와 함께 제공됩니다.
  • 이 통합구성요소를 실행하면 상당한 양의 메모리가 필요하므로 시스템 성능에 부정적인 영향을 줄 수 있습니다.
  • monitored_conditions 아래의 항목은 Home Assistant에서 사용할 수 있는 엔티티만 제어하며 실행시 조건들을 비활성화하지 않습니다.
  • 자주 실행하는 경우이 통합구성요소에는 상당한 양의 데이터를 사용할 수 있습니다. 대역폭 제한 연결시엔 자주 업데이트하지 않아야합니다.
  • 속도 테스트가 실행되는 동안 네트워크 용량이 전부 활용됩니다. 이는 게임 콘솔이나 스트리밍 박스와 같은 네트워크를 사용하는 다른 장치에 부정적인 영향을 줄 수 있습니다.