J’ai rétention normale, je vois donc jusqu’au 24 décembre
L’erreur vers le 3 à commencer ?
Réglage chez moi !
scan_interval: 7200
command_timeout: 60
Historique sur aujourd’hui
J’ai rétention normale, je vois donc jusqu’au 24 décembre
Réglage chez moi !
scan_interval: 7200
command_timeout: 60
Historique sur aujourd’hui
Je suis bête , il y a les states a long terme ajouter dans l’historique maintenant
ca pas l’air d’être la maj du core, car j’ai rien installer du 11/01. core 2024.1.1 installer le 06/01, core 2024.1.2 le 07/01 et le core 2024.1.3 le 13/01.
j’ai maj NGINX proxy SSL le 09/01.
réglage chez moi:
scan_interval: 3600
command_timeout: 60
On dirait que c’est la longueur du JSON qui dépasse les 255 caractères qui fait planté !
homeassistant.exceptions.InvalidStateError: Invalid state with length 264. State max length is 255 characters.
Il faut que je modifie le retour JSON
bonjour la compagnie,
je penserai que tu as raison sur l’histoire de l’update du core sans mettre une main a couper…
j’ai deux speedtest en docker :
et je n’ai aucun soucis d’indisponibilité !!
Je le savais, on a eu une discution plus haut a ce sujet.
J’avais diminuer pour pas avoir de soucis, mais je vois pas l’erreur dans les logs.
je vais encore diminuer voir.
actuellement j’ai c’est configue:
- 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
}}
J’ai modifier pour la longueur sans le server_name et host … Je fais test sur 30 minutes ! maintenant
- sensor:
name: "SpeedTest CLI Data"
unique_id: speedtest_cli_data
command: "/config/speedtest/speedtest --format=json --accept-license --accept-gdpr"
scan_interval: 1800
command_timeout: 60
# # Attention à la limite de conversion JSON
value_template: >-
{{
{
"ping": value_json.ping.latency,
"download": value_json.download.bandwidth,
"upload": value_json.upload.bandwidth,
"isp": value_json.isp,
"url": value_json.result.url,
"location": value_json.server.location,
"id": value_json.server.id
}
| to_json
}}
Je précise pas le server ! dans la cde !
ICI Portugal pas trop !
j’ai mis ca:
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
}}
on verra dans les prochaines heures.
Comme je n’avais que 9 caracteres de trop les server me suffisait à supprimer !
Je laisse tourner sur 1800 sec, on verra !
Depuis la modification a 17h pas de problème, je scruterai demain, je laisse sur 1800 sec @+
J’ai eu des trous depuis ma modification, ca pas l’air ca.
Edit:
j’ai modifier ma command:
avant
command: "/config/3rdparty/speedtest/speedtest -s 4036 --format=json --accept-license --accept-gdpr"
après
command: '/config/3rdparty/speedtest/speedtest --server-id=4036 --format=json'
--accept-license
: Accept the Ookla EULA, TOS and Privacy policy. The terms only need to be accepted once.--accept-gdpr
: Accept the Ookla GDPR terms. The terms only need to be accepted once.je test …
Edit 2:
ca bugger.
je suis revenu a ca:
name: "SpeedTest CLI Data"
unique_id: speedtest_cli_data
# Use the path as configured on your system
command: '/config/3rdparty/speedtest/speedtest --accept-license --accept-gdpr --server-id=4036 --format=json'
# 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,
"location": value_json.server.location,
"server_name": value_json.server.name
}
| to_json
}}
Salut.
Pour moi pas de bug!
EDIT: Le test réalisé en moins de 40 sec ! sur serveur le plus lent !
Avec Putty , j’ai pas de problème pour faire des test de vitesse.
mais avec le command_line, toujours la même erreur de temps en temps.
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'
je comprends pas c’est erreur JSONDecodeError: unexpected character: line 1 column 1 (char 0)
voici ma configue, command_line.yaml:
- sensor:
name: "SpeedTest CLI Data"
unique_id: speedtest_cli_data
command: '/config/3rdparty/speedtest/speedtest --accept-license --accept-gdpr --server-id=4036 --format=json'
scan_interval: 3600
command_timeout: 60
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
}}
template.yaml
- 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) }}"
- 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) }}'
Si tu vois un truc d’anormal ?
Je te mets mon décodage ! je vais sur le PC
EDIT :
- 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" => /125000 [remonte en bytes /secondes] *8/1000/1000
unit_of_measurement: Mbit/s
state_class: measurement
state: "{{ ((states('sensor.speedtest_cli_data') | from_json).download / 125000) | round(3) }}"
- 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 / 125000) | round(3) }}"
- 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 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) }}'
- name: 'Speedtest CLI URL'
unique_id: speedtest_url
state: '{{ ((states("sensor.speedtest_cli_data") | from_json).url) }}'
Nota j’ai pas virer les décodage des server !
Un caractere qui traine ? Voir le cli_data !
Edit: un des derniers cli_data du mien
{"ping":9.951,"download":116003261,"upload":53603358,"isp":"MEO","url":"https://www.speedtest.net/result/c/d96c3966-e3ac-42b1-9864-e16b49c8e6e4","location":"Porto","id":47363}
Je vois rien line 1 column 1
- sensor:
name: 'SpeedTest CLI Data'
unique_id: speedtest_cli_data
command: '/config/3rdparty/speedtest/speedtest --accept-license --accept-gdpr --format=json'
scan_interval: 3600
command_timeout: 60
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
}}
{"ping":29.931,"download":106361711,"upload":72349750,"isp":"Orange","location":"Toulouse","server_name":"SHPV FRANCE SAS"}
Je vois que tu as un code 2 en retour ? Est-ce le cas à chaque fois ?
La doc dit le code retour doit être 0, pour être OK ?
J’ai un code erreur 2 a chaque fois que ca fonctionne pas, sinon aucune erreur et ca fonctionne.
C’est aléatoire
j’ai viré la commande serverid , j’ai fait comme toi. Autant c’est le server que je choisi qui a un problème, je vais voir sans le choix du serveur.
command: '/config/3rdparty/speedtest/speedtest --accept-license --accept-gdpr --format=json'
Je suis en train de refaire les sensors par Template direct de l’UI, donc plus de mémoire pour l’instant!
je vais faire test sur 15 minutes pour les graph , seulement pour test
J’ai fait simple de mon coté, l’ISP, je le connais , et le serveur de test, perso, je m’en fou un peu, je n’ai donc gardé que les 3 paramètres importants dans une connexion internet, et aucun pb détecté de coupure dans les graphs.
- sensor:
name: "SpeedTest CLI Data"
unique_id: speedtest_cli_data
command: "/config/3rdparty/speedtest/speedtest --format=json --accept-license --accept-gdpr"
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
}}
J’ai refais Template par UI, donc RAZ
- sensor:
name: "SpeedTest CLI Data"
unique_id: speedtest_cli_data
command: "/config/speedtest/speedtest --format=json --accept-license --accept-gdpr"
scan_interval: 600
command_timeout: 60
# # Attention à la limite de conversion JSON [255 caracteres]
value_template: >-
{{
{
"ping": value_json.ping.latency,
"download": value_json.download.bandwidth,
"upload": value_json.upload.bandwidth,
"isp": value_json.isp,
"url": value_json.result.url,
"location": value_json.server.location,
"id": value_json.server.id
}
| to_json
}}
Sans la commande --server-id=4036
ou -s 4036
, ca l’air bon.
Le seul soucis, c’est que j’ai des serveurs moyen autour de chez moi et que les tests sont moyen.
2 a toulouse , 1 a andorre et 3 en espagne
le serveur ID 4036 est a marseille et j’ai un test fullspeed et un bon ping.