🏠

HomeAssistantとspeedtest-trackerをWebhookで自動連携する

2024/10/21に公開

はじめに

Home Assistantのダッシュボードを作成した際に自身で工夫したエンティティの設定方法を記事化しました。
この記事ではspeedtest-trackerによる速度測定終了後にHomeAssistantへ連携する方法を説明します。
speedtest-trackerは既に動作環境が構築されている事を前提としています。

speedtest-tracker

OoklaのSpeedtestサービスを使用してインターネットの速度測定を実行するDockerコンテナです。

以下はProject Page (GitHub)から抜粋したものです。

Image version

A full list of released versions can be found here: https://fleet.linuxserver.io/image?name=linuxserver/speedtest-tracker
For more environment configuration see the docs: https://docs.speedtest-tracker.dev/getting-started/environment-variables

設定

configuration.yaml

rest:

# Speedtest Tracker
# resourceの {URL:ポート番号}(Speedtest Tracker) は要置換
  - scan_interval: 86400
    resource: http://{URL:ポート番号}/api/speedtest/latest
    sensor:
      - name: 'Speedtest Download Speed'
        unique_id: speedtest_download_speed
        value_template: "{{ value_json['data']['download'] }}"
        unit_of_measurement: Mbps
      - name: 'Speedtest Upload Speed'
        unique_id: speedtest_upload_speed
        value_template: "{{ value_json['data']['upload'] }}"
        unit_of_measurement: Mbps
      - name: 'Speedtest Ping'
        unique_id: speedtest_ping
        value_template: "{{ value_json['data']['ping'] }}"
        unit_of_measurement: ms

※編集後、設定を反映させるためHome Assistantを再起動してください

Home Assistant フロントエンド

[設定] > [オートメーションとシーン] > [オートメーション] > [+ オートメーション作成] > [新しいオートメーションを作成する]

※自動採番されたWebhook IDはメモしておいてください(通常、値を変更する必要はありません)

Speedtest Tracker フロントエンド

[Settings] > [Notifications] > [Webhook]

※Webhook - Recipients - Url には
"http://{Home AssistantのIPアドレス:ポート番号}/api/webhook/{メモしておいたWebhook ID}"
を指定してください

Discussion