Intégrer Speedtest CLI Officielle à Home Assistant

Ta pas d’erreur dans les logs ?

Aucune erreur dans les logs.

ta peu être fait trop de requête et ca ta ban ton ip un petit moment ( quelque heure ). Ca met arriver quand j’ai tester plusieur serveur dans le terminal. Faut patienter sa ce débloque automatiquement.

Qui est-ce qui m’a ban ?

c’est speedtest qui ta ban. Donc quand ca test le debit rien remonte , pour ca que ta pas d’info.

Je ne pense pas car HA ne voit pas les autres sensors de speedtest.

Je pense que le mes autres sensors ne sont pas crées.

oui, ta bien les infos dans la sensor data. Ta un soucis avec les templates sensor, qui doivent pas être au bon endroits

dans mon configuration.yaml, j’ai tout les templates sensor:

template:
  - sensor:
   ...

dans mon sensor.yaml , j’ai que le command line.

Oui j’avais la même config.
Mais j’avais effectivement un autre template: en dessous qui devait poser problème car mes sensors sont apparus après avoir supprimer l’autre template.

Merci pour ton aide.

1 « J'aime »

Tu sais le réécrire avec la nouvelle syntaxe ?

J’ai essayé ça mais ça ne marche pas:

##Speedtest
command_line:
  - sensor:
      name: "SpeedTest CLI Data"
      command: "/config/3rdparty/speedtest/speedtest --format=json --accept-license --accept-gdpr "
    # Every 4 hours, 60 * 60 * 4 = 14400
      scan_interval: 3600
      command_timeout: 60
    # Summarize results to stay below string limit and convert to JSON
      value_template: {{ 
        { 
          "ping": value_json.ping.latency, 
          "download": value_json.download.bandwidth, 
          "upload": value_json.upload.bandwidth,
          "server_location": value_json.server.location,
          "server_name": value_json.server.name,
          "url": value_json.result.url
        }
        | to_json 
      }}

Bonjour,
je vais mettre a jour aujourd’hui, j’étais pas dispo ces derniers jours.

a première vue je dirais un soucis de syntaxe ici:

  value_template: >-
    {{ 
      { 
        "ping": value_json.ping.latency, 
        "download": value_json.download.bandwidth, 
        "upload": value_json.upload.bandwidth, 
        "server_name": value_json.server.name,
        "server_host": value_json.server.host
      }
      | to_json 
    }}

je ferais une maj du post avec le nouveau command_line.

edit:
MAJ 2023.6.1

Création du fichier command_line.yaml et ajout de la ligne dans le configuration.yaml:
command_line: !include command_line.yaml

dans le command_line.yaml:

- sensor:
    name: "SpeedTest CLI Data"
    unique_id: speedtest_cli_data
    # Use the path as configured on your system
    command: "/config/3rdparty/speedtest/speedtest -s 4036 --format=json --accept-license --accept-gdpr"
    # Every 4 hours, 60 * 60 * 4 = 14400
    scan_interval: 3600
    command_timeout: 60
    # Summarize results to stay below string limit and convert to JSON
    value_template: >-
      {{ 
        { 
          "ping": value_json.ping.latency,
          "download": value_json.download.bandwidth,
          "upload": value_json.upload.bandwidth,
          "isp": value_json.isp,
          "country": value_json.server.country,
          "location": value_json.server.location,
          "id": value_json.server.id,
          "server_name": value_json.server.name,
          "server_host": value_json.server.host
        }
        | to_json
      }}

Tutorial MAJ aussi :wink:

1 « J'aime »

On est obligé de créer un fichier command_line.yaml ? On ne peut pas le mettre directement dans configuration.yaml ?

Pas obliger de split le command_line, tu peu le faire directement du configuration.yaml.
Ta l’exemple dans le tuto.

Je t’es répondu sur ton problème.

une erreur du code ici:

     value_template: {{

au lieu de:

     value_template: >-
       {{ 

Au temps pour moi, je n’avais pas vu qu’il fallait le mettre dans un paragraphe ‹ command_line › et qu’il y avait une erreur.
Ca marche maintenant, merci !

1 « J'aime »

Bizarre, je n’arrive plus à lancer le speedtest de façon manuel.
J’ai bien déplacé les command_line, les sensor remontent bien.
Du coup je bloque, voila mon tap_action qui fonctionnait :

tap_action:
  action: call-service
  service: homeassistant.update_entity
  service_data:
    entity_id: sensor.speedtest_cli_data

Une idée?

J’ai essayer chez moi dans outils de développement et service, j’appelle le service mais rien ne ce passe. Rien dans les log et bien sur l’entité n’est pas actualiser.
C’est un bug, vu le post sur github command_line entity cannot be updated manually · Issue #94270 · home-assistant/core · GitHub

Un pouce :+1:

1 « J'aime »

Oki je me disais aussi.
Merci pour ta réponse, j’y vois plus claire.
On a plus qu’a attendre le fix :wink:

Bonjour,

J’ai un problème de config avec la dernière mise a jour de homeassistant.

avec le message suivant :

"Configuring Command Line sensor using YAML has moved.

Consult the documentation to move your YAML configuration to integration key and restart Home Assistant to fix this issue."

j’ai l’impression que le probleme se situe à ce niveau la :

sensor:
-platform: command_line
name: « SpeedTest CLI Data »

Comment modifier l’ancien code pour que je n’ai plus le message d’erreur précédent?

Merci d’avance.

Bonjour,
regarde le tutorial, je les mis a jour avec la nouvelle syntaxe pour command_line.

J’ai le message d’erreur suivant:

Logger: homeassistant.components.websocket_api.http.connection
Source: components/hassio/init.py:577
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 11:03:02 (1 occurrences)
Last logged: 11:03:02

[548043335312] The system cannot restart because the configuration is not valid: Invalid config for [command_line]: [platform] is an invalid option for [command_line]. Check: command_line->command_line->1->platform. (See /config/configuration.yaml, line 54).
Traceback (most recent call last):
File « /usr/src/homeassistant/homeassistant/components/websocket_api/commands.py », line 205, in handle_call_service
await hass.services.async_call(
File « /usr/src/homeassistant/homeassistant/core.py », line 1910, in async_call
task.result()
File « /usr/src/homeassistant/homeassistant/core.py », line 1950, in _execute_service
await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
File « /usr/src/homeassistant/homeassistant/components/hassio/init.py », line 577, in async_handle_core_service
raise HomeAssistantError(
homeassistant.exceptions.HomeAssistantError: The system cannot restart because the configuration is not valid: Invalid config for [command_line]: [platform] is an invalid option for [command_line]. Check: command_line->command_line->1->platform. (See /config/configuration.yaml, line 54).

quand je rajoute

command_line:
  - 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 
        }}

Peux tu m’aider s’il te plait :smiley:

Montre ton configuration.yaml, il y a une erreur ligne 54.