Bonjour a tous,
suite a une problème avec l’intégration Speedtest qui ne fonctionne plus chez moi. J’ai fouiller sur les forums et github pour trouver une solution. Sur github sa sens l’abandon de l’intégration et un utilisateur (Add the official speedtest cli - #40 by Britespark - Feature Requests - Home Assistant Community) a proposer une solution avec la versions CLI de speedtest. La version CLI fonctionnera mieux que l’intégration , elle est plus précise sur les données. Je vais vous expliquer comment l’installer sur un RPi ( ou NUC).
1/ Télécharger speedtest
(aarch64 pour RPi 64bits) https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-aarch64.tgz
(armhf pour RPi 32bits ) https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-armhf.tgz merci @mak-dev
(x86_64 pour NUC) https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-x86_64.tgz merci @Pulpy-Luke
Décompresser le .tgz (Winrar).
2/ A la racine de /Config/
créer un dossier 3rdparty
et dedans un dossier speedtest
.
copier les 3 fichiers décompresser auparavant dans le dossier speedtest
3/ Par le terminal SSH ou putty, aller jusqu’au dossier /Config/3rdparty/speedtest/ et taper la commande: chmod +x speedtest
.
4/Exécuter un test de vitesse et accepter les licences par « yes » en tapant ./speedtest
.
Voila l’exécutable est installer et configurer. Maintenant on va créer les sensors.
5/ Dans configuration.yaml
copier ces sensors.
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
}}
template:
- 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) }}"
Edit 10/11/22:
Si vous voulez avoir plus d’information sur les serveurs utiliser, la location … vous pouvez configurer ca en rajoutant le code fournie par @monaxe ici
On sauvegarde le tout, on verifie que la configuration est valide et on reboot.
Si tout va bien vous aurez 4 nouveaux sensors.
Il vous reste plus cas créer vos propre cartes.
C’est fini
Si vous avez un problème, n’hésiter pas a demander sur ce post.
MAJ le 09/06/23
Mise a jour du sensor command_line ( depuis le core 2023.6.0 ).