Intégrer Speedtest CLI Officielle à Home Assistant

Il faudrait que je test…
Je suis en train de voir le JSON complet !

On peut passer en MP ?

oui, pas de problème.

j’ai fait une carte type: picture-elements, pour avoir le rendu du test

J’ai trouver une liste de server pour speedtest, si ca intéresse Speedtest Server List

Hello a tous,

j’ai tout fait keskonmadit et ca marche pas !!!

Non, en fait ca tourne à 99,9%


image
je suis sur un RPI4 os 64bit (Alpine 3.18)

il n’y a que
sensor.speedtest_isp
sensor.speedtest_location
sensor.speedtest_server_name qui ne donnent rien…
tout le reste marche nickel.
bien sur, les clients connectés indéfinis, c’est juste normal, et en plus c’est pas la box qui fait le wifi ou le dhcp.

link_type: ethernet
link_state: up
last_connection_error: None
wan_ipaddress: WW.XX.YY.ZZ
wan_ipv6address: 2a01:0000:0000:0000:0000:0000:0000:000
wan_ipv6prefix: 2a01:0000:0000:0000::/56
uptime: "2024-01-11T13:14:47.053702"
device_class: connectivity
friendly_name: Livebox 3 WAN Status

c’est du à mon OS bridé, à ma box antédiluvienne dont le binary_sensor ne remonte pas tout ou à un truc que j’ai oublié ?

Montre ta configue, le command_line et les sensor template ?

Alors, voici la fin du configuration.yaml

# For speedtest-CLI -------------------------------
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 
        }}
# END speedtest-CLI -------------------------------

j’ai copié-collé la commande
/config/3rdparty/speedtest/speedtest --format=json --accept-license --accept-gdpr redirigée dans un fichier: (j’arrive pas à copier les données du terminal)…

{"type":"result","timestamp":"2024-01-14T19:01:47Z","ping":{"jitter":0.061,"latency":0.956,"low":0.891,"high":1.027},"download":{"bandwidth":64256780,"bytes":232408640,"elapsed":3622,"latency":{"iqm":7.644,"low":2.676,"high":13.571,"jitter":1.015}},"upload":{"bandwidth":62021093,"bytes":242625195,"elapsed":3902,"latency":{"iqm":4.159,"low":2.435,"high":7.633,"jitter":0.791}},"packetLoss":0,"isp":"Orange","interface":{"internalIp":"172.30.33.2","name":"eth0","macAddr":"02:42:AC:1E:21:02","isVpn":false,"externalIp":"WW.XX.YY.ZZ"},"server":{"id":23884,"host":"puteaux3.speedtest.orange.fr","port":8080,"name":"ORANGE","location":"Puteaux","country":"France","ip":"80.12.32.212"},"result":{"id":"d6977a4f-75e8-4efb-92e6-3e27926ad864","url":"https://www.speedtest.net/result/c/d6977a4f-75e8-4efb-92e6-3e27926ad864","persisted":true}}

Et l’état des 4 sensors speedtest_CLI_*

state_class: measurement
unit_of_measurement: ms
icon: mdi:speedometer
friendly_name: SpeedTest CLI Ping

Etat: 0.96
state_class: measurement
unit_of_measurement: Mbit/s
icon: mdi:speedometer
friendly_name: SpeedTest CLI Download

Etat: 508.2
state_class: measurement
unit_of_measurement: Mbit/s
icon: mdi:speedometer
friendly_name: SpeedTest CLI Upload

Etat: 496.52
friendly_name: SpeedTest CLI Data

Etat: `{"ping":0.964,"download":63524430,"upload":62065068}`

System Information

version core-2024.1.3
installation_type Home Assistant OS
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.11.6
os_name Linux
os_version 6.1.63-haos-raspi
arch aarch64
timezone Europe/Paris
config_dir /config
Home Assistant Community Store
GitHub API ok
GitHub Content ok
GitHub Web ok
GitHub API Calls Remaining 5000
Installed Version 1.33.0
Stage running
Available Repositories 1379
Downloaded Repositories 28
Home Assistant Cloud
logged_in true
subscription_expiration 19 décembre 2024 à 01:00
relayer_connected true
relayer_region eu-central-1
remote_enabled true
remote_connected true
alexa_enabled false
google_enabled true
remote_server eu-central-1-2.ui.nabu.casa
certificate_status ready
instance_id 15d02045b02e442a873da4901ce2d446
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Home Assistant OS 11.4
update_channel stable
supervisor_version supervisor-2023.12.0
agent_version 1.6.0
docker_version 24.0.7
disk_total 234.0 GB
disk_used 41.2 GB
healthy true
supported true
board rpi4-64
supervisor_api ok
version_api ok
installed_addons Mosquitto broker (6.4.0), Samba share (12.2.0), Zigbee2MQTT (1.35.1-1), Home Assistant Google Drive Backup (0.112.1), Terminal & SSH (9.8.1), Node-RED (17.0.2), Studio Code Server (5.15.0), SQLite Web (4.1.0), ESPHome (2023.12.5), chrony (3.0.1), Whisper (1.0.2), Piper (1.4.0), pigpio (1.5.2)
Dashboards
dashboards 8
resources 20
views 31
mode storage
Recorder
oldest_recorder_run 4 janvier 2024 à 18:42
current_recorder_run 14 janvier 2024 à 17:48
estimated_db_size 3093.12 MiB
database_engine sqlite
database_version 3.41.2
Spotify
api_endpoint_reachable ok

Oui déjà vu, il y en a pas mal
Sinon il y a une api chez speedtest’https://www.speedtest.net/api/js/servers?

https://www.speedtest.net/api/js/servers?engine=js&https_functional=true&limit=100&search=
Avec la ville ou PAYS recherché
https://www.speedtest.net/api/js/servers?engine=js&https_functional=true&limit=100&search=Paris

1 « J'aime »

Bonjour,
en voyant ta configue, il te manque de déclarer le ISP Location et Server_name dans le value_template:

faut les ajouter comme telle:

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

et créer les sensors template aussi:

    - name: Speedtest ISP
      unique_id: Speedtest_ISP
      state: '{{ ((states("sensor.speedtest_cli_data") | from_json).isp) }}'
    - name: Speedtest Server Name
      unique_id: Speedtest_Server_Name
      state: '{{ ((states("sensor.speedtest_cli_data") | from_json).server_name) }}'
    - name: Speedtest location
      unique_id: Speedtest_location
      state: '{{ ((states("sensor.speedtest_cli_data") | from_json).location) }}'

C’était bien un soucis du serveur 4036 qui est instable ces dernier jours.

speedtest indisponible5

1 « J'aime »

Un message a été fusionné à un sujet existant : [ CARTE ] Cartes diverses ( Livebox, NAS, RPI, BLE Proxy…)

Hello, j’ai un problème de mon coté.
Je n’ai pas de réponse pour mes cards. ça à fonctionner un moment mais maintenant ça ne marche plus… j’ai besoin d’aide j’ai débuté home assistant il n’y a pas longtemps.
Je n’ai pas de réponse :
image

Dans mon sensor.yaml :

Dans mon templates.yaml:

Merci de votre aide :slight_smile:

Salut,
tu utilise l’ancienne méthode pour le command_line qui a changer il y a quelques mois. Je pense que le support a été supprimer.

Situ regarde le tuto, ca été mis a jour il y a un moment.
Soit tu le met dans ton cofiguration.yaml comme l’exemple ci dessous.

Soit tu ajoute la ligne command_line: !include command_line.yaml dans ton configuration.yaml.
Tu créer un fichier command_line.yaml dans /config/ et t’y met le code ( sans command_line: au début)

Merci pour ta réponse rapide !

en effet ça marche tout de suite beaucoup mieux !
image

Bonjour a tous,
j’ai eu des soucis de serveur qui ont été supprimer et ne retrouver pas un serveur stable pour chez moi.
J’ai trouvé c’est astuce pour trouver le serveur ID d’un serveur.
Ce connecter sur speedtest.net , choisir le serveur et mettre le curseur de la souris sur le serveur et on vois l’id du serveur en bas de la page.

command: "/config/3rdparty/speedtest/speedtest -s 29545 --format=json --accept-license --accept-gdpr"

Et Hop , full speed ( sur RPI4 :wink: )
image

Slt
quand tu fais le choix de la ville, je crois que speed prends la plus prête ?
sinon tu peux avoir la liste en réponse ( mettre en json) avec cela pour Marseille ( il suffit de changer le nom pour autre) tu as la distance et l’ID et le nom du FAI et serveur !
OU aussi https://www.speedtest.net/api/js/servers?

Salut,
Speedtest en CLI, choisie automatiquement des serveurs prêt de chez toi. Quand tu fait /speedtest -L , ta la liste des serveurs, mais que des plus prêt.
Je me retrouve avec 3 serveurs a Toulouse, 1 serveur a Andorre et 4 serveur en Espagne et bien sur tous sont moyen. Ping pourrie ou vitesse.

Avec le site, je fait des test sur les serveurs pour trouver le meilleur et j’utilise le id dans ma configue.

comme ca , j’ai un test a top :laughing:
image

L’ancien que j’utiliser depuis des mois a fermer.

Je connaissez pas, je vais le mettre en favoris. merci

Ici je suis en 1G / 400 M


Le ping et les latences surtout !

1 « J'aime »

J’aurais jamais de ping en dessous de 10, j’habite trop loin des gros serveur en France ( paris ( 900km), marseille( 300km ).

Bonjour à toutes et tous et merci @WarC0zes pour ce tutoriel !

De mon côté impossible de faire fonctionner

J’ai suivi le tuto et j’ai dans mes logs

Enregistreur: homeassistant.components.command_line.utils
Source: components/command_line/utils.py:54
intégration: Command Line (documentation, problèmes)
S’est produit pour la première fois: 09:43:17 (5 occurrences)
Dernier enregistrement: 11:39:31

Command failed (with return code 2): /config/3rdparty/speedtest/speedtest -s 4036 --format=json --accept-license --accept-gdpr

j’ai beau ne garder qu’une seule value pour ne pas avoir un fichier json trop gros …

A quoi correspond l’error code 2 ? Si je lance la commande via ssh, tout fonctionne pourtant