Intégrer Speedtest CLI Officielle à Home Assistant

Si tu veux découper la configuration, il faut ajouter la ligne template: !include template.yaml dans ton configuration.yaml.
Tu crées un fichier template.yaml dans /config ( ou homeassistant sous file editor )
dans le fichier template.yaml, tu colles le code :

  - sensor:
      - name: 'SpeedTest CLI Ping'
        unique_id: speedtest_cli_ping
        icon: mdi:speedometer
        unit_of_measurement: ms
        state_class: measurement
        state: "{{ (states('sensor.speedtest_cli_data') | from_json).ping | round(2) }}"
      - name: 'SpeedTest CLI Download'
        unique_id: speedtest_cli_download
        icon: mdi:speedometer
        unit_of_measurement: Mbit/s
        state_class: measurement
        state: "{{ ((states('sensor.speedtest_cli_data') | from_json).download * 8 / 1000 / 1000) | round(2) }}"
      - name: 'SpeedTest CLI Upload'
        unique_id: speedtest_cli_upload
        icon: mdi:speedometer
        unit_of_measurement: Mbit/s
        state_class: measurement
        state: "{{ ((states('sensor.speedtest_cli_data') | from_json).upload * 8 / 1000 / 1000) | round(2) }}"

de même pour le command_line, dans le configuration.yaml, tu ajoutes la ligne
command_line: !include command_line.yaml

tu crées un fichier command_line.yaml, et colle le code :

  - sensor:
      name: "SpeedTest CLI Data"
      unique_id: speedtest_cli_data
      command: "/config/3rdparty/speedtest/speedtest --format=json --accept-license --accept-gdpr"
      #Toutes les 4 heures, 60 * 60 * 4 = 14400  3600 = 1 heure
      scan_interval: 3600
      command_timeout: 60
      value_template: >-
        {{ 
          { 
            "ping": value_json.ping.latency, 
            "download": value_json.download.bandwidth, 
            "upload": value_json.upload.bandwidth 
          }
          | to_json 
        }}