Finalement, erreur résolu, c’était un souci d’intégration de répertoire via le fichier de configuration yaml. Bizarre car cela fonctionnait, sans doute un changement sur les dernières versions
Bonjour,
J’ai suivi la méthode d’installation et pourtant je n’ai pas de valeurs qui remontent dans mes sensors :
et le ./speedtest me montre bien que le module est installé, que les licences ont été acceptées, …
et dans mon configuration.yaml, j’y ai bien intégré la ligne :
command_line: !include command_line.yaml
et dans le fichier comman_line.yaml le texte qui va bien :
- sensor:
name: "SpeedTest CLI Data"
unique_id: speedtest_cli_data
# Use the path as configured on your system
command: "config/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,
"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
}}
et même méthode dans mon fichier template.yaml :
##Speedtest
# SpeedTest.net CLI
# https://www.speedtest.net/apps/cli
# Command_line sensor is in sensors.yaml
- sensor:
- name: 'SpeedTest CLI Ping'
unique_id: speedtest_cli_ping
icon: mdi:speedometer
# TIME_MILLISECONDS: Final = "ms"
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
# DATA_RATE_MEGABITS_PER_SECOND: Final = "Mbit/s"
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) }}"
- 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 Server Host
unique_id: Speedtest_Server_Host
state: '{{ ((states("sensor.speedtest_cli_data") | from_json).server_host) }}'
- name: Speedtest country
unique_id: Speedtest_country
state: '{{ ((states("sensor.speedtest_cli_data") | from_json).country) }}'
- name: Speedtest id
unique_id: Speedtest_id
state: '{{ ((states("sensor.speedtest_cli_data") | from_json).id) }}'
- name: Speedtest location
unique_id: Speedtest_location
state: '{{ ((states("sensor.speedtest_cli_data") | from_json).location) }}'
Une idée d’où cela peu coincer ?
les sensors sont des templates sensors, faut pas les mettre dans sensor.yaml mais dans template.yaml.
dans ton configuration.yaml faut ajouter la ligne:
template: !include template.yaml
faut créer un fichier template.yaml et y mettre les sensors template dedans.
ne pas mettre 'template:' au début dans le fichier template.yaml
non ça c’est bon, j’ai fait comme cela.
il y a un espace , qu’il faut pas --accept-gdpr "
J’ai corrigé cet espace en trop en fin de phrase, mais cela ne semble rien changer.
Puis ce matin j’ai remarqué que le chemin d’accès n’était pas correct. Il y a un /config/
en trop dans le texte recopié.
Merci beaucoup pour ton aide !!
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
Bonjour WarC0zes,
j’essaie de suivre ton tuto mais je bloque sur la racine.
Je ne trouve pas son emplacement. je sais c’est nul.
Peux tu m’indiquer la direction.
Merci pour ton aide.
Bonjour,
c’est quoi ton type d’installation et la machine ?
j’ai 1 raspberry pi 3 avec 1 sonoff zigBee 3.0 usb dongle plus CC2652P qui tourne en mqtt avec capteur de température aqara, interrupteur Ikea.
1 pont Philips Hue Ave ampoule et ruban led
Installe le module complémentaire Samba share
pour accéder au dossier de Home assistant par réseau d’un PC.
ok je regarde ça et je te tiens au courant.
merci
Bonjour, intéressé par la solution impossible de trouver d’où cela vient ;(
Quand je test en ligne de commande tout semble fonctionner mais depuis la maj 12. c’est comme si la fonction de stockage speedtest_cli_data ne fonctionnait plus → plus rien dans les enregistrement et donc forcement plus rien dans les données upload/download/pin/etc… qui ne font que lire les données de cette partie alors que je n’ai rien modifié.
J’ai donc bien la ligne de commande
Use the path as configured on your system
command: "/config/3rdparty/speedtest/speedtest --format=json --accept-license --accept-gdpr"
qui correspond à la commande dans mon arborescence et qui fonctionne quand je la lance en mode terminal.
et ensuite j’ai :
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
}}
Mais nada rien ne fonctionne
Si quelqu’un a une idée la je sèche
et ensuite
Hello @WarC0zes
J’ai une question précise :
Je gère 2 wan, et l’affichage de la carte me donne celui du secondaire, alors que si je fais le test en CLI dans le répertoire, c’est le primaire qui est testé.
Une idée de ce à quoi c’est dû ?
Salut,
je ne saurais te dire. Faut voir si des experts en saurait plus.
Merci pour ce tuto complet !
Bonjour,
depuis 2 jours j’ai les sensors qui sont indisponible de temps en temps.
je reçois ces erreurs:
2024-01-13 16:45:50.134 ERROR (SyncWorker_11) [homeassistant.components.command_line.utils] Command failed (with return code 2): /config/3rdparty/speedtest/speedtest -s 4036 --format=json --accept-license --accept-gdpr
2024-01-13 16:45:50.145 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('JSONDecodeError: unexpected character: line 1 column 1 (char 0)') while processing template 'Template<template=({{ (states('sensor.speedtest_cli_data') | from_json).ping | round(2) }}) renders=6>' for attribute '_attr_native_value' in entity 'sensor.speedtest_cli_ping'
2024-01-13 16:45:50.147 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('JSONDecodeError: unexpected character: line 1 column 1 (char 0)') while processing template 'Template<template=({{ ((states('sensor.speedtest_cli_data') | from_json).download * 8 / 1000 / 1000) | round(2) }}) renders=6>' for attribute '_attr_native_value' in entity 'sensor.speedtest_cli_download'
2024-01-13 16:45:50.152 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('JSONDecodeError: unexpected character: line 1 column 1 (char 0)') while processing template 'Template<template=({{ ((states('sensor.speedtest_cli_data') | from_json).upload * 8 / 1000 / 1000) | round(2) }}) renders=6>' for attribute '_attr_native_value' in entity 'sensor.speedtest_cli_upload'
2024-01-13 16:45:50.153 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('JSONDecodeError: unexpected character: line 1 column 1 (char 0)') while processing template 'Template<template=({{ ((states("sensor.speedtest_cli_data") | from_json).isp) }}) renders=6>' for attribute '_attr_native_value' in entity 'sensor.speedtest_isp'
2024-01-13 16:45:50.154 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('JSONDecodeError: unexpected character: line 1 column 1 (char 0)') while processing template 'Template<template=({{ ((states("sensor.speedtest_cli_data") | from_json).server_name) }}) renders=6>' for attribute '_attr_native_value' in entity 'sensor.speedtest_server_name'
2024-01-13 16:45:50.155 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('JSONDecodeError: unexpected character: line 1 column 1 (char 0)') while processing template 'Template<template=({{ ((states("sensor.speedtest_cli_data") | from_json).server_host) }}) renders=6>' for attribute '_attr_native_value' in entity 'sensor.speedtest_server_host'
2024-01-13 16:45:50.156 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('JSONDecodeError: unexpected character: line 1 column 1 (char 0)') while processing template 'Template<template=({{ ((states("sensor.speedtest_cli_data") | from_json).country) }}) renders=6>' for attribute '_attr_native_value' in entity 'sensor.speedtest_country'
2024-01-13 16:45:50.160 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('JSONDecodeError: unexpected character: line 1 column 1 (char 0)') while processing template 'Template<template=({{ ((states("sensor.speedtest_cli_data") | from_json).id) }}) renders=6>' for attribute '_attr_native_value' in entity 'sensor.speedtest_id'
2024-01-13 16:45:50.161 ERROR (MainThread) [homeassistant.components.template.template_entity] TemplateError('JSONDecodeError: unexpected character: line 1 column 1 (char 0)') while processing template 'Template<template=({{ ((states("sensor.speedtest_cli_data") | from_json).location) }}) renders=6>' for attribute '_attr_native_value' in entity 'sensor.speedtest_location'
Vous rencontrez des problèmes aussi ?
Peut être le serveur par lequel je passe qui déconne , si je test en SSH ca fonctionne bien.
Ouf, y a pas que moi
Tu pourrais voir depuis quand ca te le fais ?
Ok, j’ai que 3 jours de retention et pas vu d’erreur dans les logs avant.
Un soucis du core 2024.1.x je pense, j’ai maj cas partir du core 2024.1.2 et j’ai maj le core 2021.1.3 toute a l’heure.