Skip to main content
Nouveau
LibreSpeed — Mesure et suivi des performances réseau

LibreSpeed — Mesure et suivi des performances réseau

Mesurez et surveillez les performances de votre connexion internet directement depuis Jeedom.

Jeedom 4.4+betaos 11+php 7.4/8.x☕ Soutenir le développement

📋 Presentation

Le plugin LibreSpeed permet de mesurer et surveiller les performances reseau directement depuis Jeedom en s'appuyant sur le client officiel LibreSpeed CLI.

Il permet de mesurer :

  • le debit descendant
  • le debit montant
  • le ping
  • le jitter
  • la perte de paquets
  • le serveur utilise
  • le fournisseur d'acces
  • l'adresse IP utilisee
  • un score global de qualite de connexion

Le plugin fonctionne sans Python, sans venv et sans pip : il utilise directement le binaire Go de LibreSpeed adapte a l'architecture de la machine.

Il prend en charge :

  • les serveurs publics LibreSpeed
  • les listes de serveurs personnalisees
  • les serveurs LibreSpeed auto-heberges
  • IPv4 et IPv6
  • le choix de l'interface reseau
  • les tests manuels ou planifies par cron
  • l'historisation des mesures dans Jeedom
  • l'utilisation des resultats dans les scenarios

Chaque equipement peut representer une cible de test differente, par exemple :

  • connexion Internet principale
  • connexion IPv6
  • interface Ethernet ou Wi-Fi
  • serveur LibreSpeed local pour tester le LAN
  • serveur distant prive ou VPN

Le plugin integre egalement un calcul de score permettant d'obtenir rapidement une indication globale sur la qualite de la connexion a partir du debit, de la latence, du jitter et de la perte de paquets.

L'objectif est de disposer dans Jeedom d'un outil simple de mesure, suivi et diagnostic reseau, aussi bien pour Internet que pour le reseau local.


✨ Fonctionnalites

  • Mesure du download et de l'upload en Mbit/s
  • Mesure du ping (latence) et du jitter (variation de latence) en ms
  • Mesure de la perte de paquets via ICMP en %
  • Score global sur 10, pondere (download 40%, upload 20%, ping 20%, jitter 10%, perte 10%)
  • Notation par usage : web, streaming (SD/HD/4K), gaming, visioconference
  • Identification du serveur de test et du FAI
  • Widget custom avec jauge SVG animee, barre d'upload, cercle de score et tuiles de metriques
  • Planification via cron configurable
  • Choix du serveur de test (automatique ou manuel par ID)
  • Forcage IPv4 / IPv6 et choix de l'interface reseau
  • Liste de serveurs personnalisee (distante ou locale) pour les tests LAN/VPN
  • Page Sante avec diagnostic complet et test de debit a la demande
  • Bouton Support Forum pour creer un post Community pre-rempli

⚙️ Prerequis

  • Jeedom 4.4 minimum
  • Une connexion internet fonctionnelle
  • Architecture supportee : amd64, arm64, armv7, armv6, i386

📥 Installation

  1. Installez le plugin depuis le Market Jeedom ou via GitHub
  2. Activez le plugin
  3. Allez dans Plugins > Gestion des plugins > LibreSpeed
  4. Cliquez sur Installer les dependances et attendez la fin
  5. Verifiez que le statut des dependances passe a OK
note

Les dependances installent le binaire LibreSpeed CLI v1.0.14 ainsi que les paquets systeme necessaires (ca-certificates, iputils-ping). Aucun environnement Python n'est requis.


🔧 Configuration du plugin

Dans la page de configuration du plugin (Plugins > Gestion des plugins > LibreSpeed > Configuration) :

InformationDescription
MoteurLibreSpeed CLI (toujours affiche)
VersionVersion du binaire installe
ArchitectureArchitecture detectee du systeme
Ping systemeDisponibilite de la commande ping
tip

Si la version affichee ne correspond pas a la version attendue, reinstallez les dependances.


🖥️ Configuration d'un equipement

Depuis Plugins > Monitoring > LibreSpeed, cliquez sur Ajouter pour creer un equipement.

Onglet Equipement

Options standard Jeedom : nom, objet parent, categorie, activer, visible.

Onglet Configuration

Planification

OptionDescription
Activer CronActive la planification automatique des tests
FrequenceExpression cron pour la frequence (ex: 0 */4 * * * pour toutes les 4 heures). Cliquez sur ? pour utiliser l'assistant cron
warning

Evitez de planifier des tests trop frequents (moins de 30 minutes). Chaque test consomme de la bande passante et peut impacter les autres usages du reseau.

Test

OptionDescription
ServeurIdentifiant du serveur de test. Laisser vide pour une selection automatique. Cliquez sur l'icone liste pour parcourir les serveurs disponibles
Protocole reseauAutomatique, IPv4 ou IPv6
Interface reseauAutomatique ou interface specifique (ex: ens18, eth0)
tip

Forcez IPv4 ou IPv6 pour tester specifiquement l'un ou l'autre. En mode automatique, LibreSpeed choisit selon la disponibilite.

Options avancees

OptionDescription
Source des serveursLibreSpeed par defaut : liste publique officielle. Liste personnalisee distante : URL d'un fichier JSON. Liste personnalisee locale : fichier JSON uploade
Partager le resultatGenere une URL de partage du resultat (si le serveur le supporte)

Liste de serveurs personnalisee locale

Pour utiliser un serveur LibreSpeed heberge sur votre reseau local (LAN/VPN) :

  1. Selectionnez Liste personnalisee locale dans la source des serveurs
  2. Cliquez sur le bouton upload a cote du champ fichier
  3. Importez un fichier JSON au format LibreSpeed CLI

Le fichier est automatiquement nomme servers_{id}.json et stocke dans le repertoire du plugin. Exemple de format :

[
{
"id": 1,
"name": "Mon serveur LAN",
"server": "http://192.168.1.100:8080/",
"dlURL": "garbage.php",
"ulURL": "empty.php",
"pingURL": "empty.php"
}
]
important

Cette option necessite un serveur LibreSpeed installe et fonctionnel sur votre reseau. Le fichier JSON seul ne suffit pas.

Exemple : deployer un serveur LibreSpeed avec Docker

docker run -d \
--name librespeed \
--restart unless-stopped \
-p 8088:8080 \
ghcr.io/librespeed/speedtest:latest

Le serveur sera accessible sur http://<IP_DE_LA_MACHINE>:8088/. Adaptez le fichier JSON en consequence :

[
{
"id": 1,
"name": "Mon serveur LAN",
"server": "http://192.168.1.100:8088/",
"dlURL": "backend/garbage.php",
"ulURL": "backend/empty.php",
"pingURL": "backend/empty.php"
}
]

Affichage

OptionDescription
Echelle max Download (Mbit/s)Valeur maximale de la jauge download sur le widget (defaut : 1000)
Echelle max Upload (Mbit/s)Valeur maximale de la barre upload sur le widget (defaut : 500)
tip

Adaptez les echelles a votre abonnement internet pour que les jauges du widget soient lisibles. Par exemple, pour une connexion fibre 1 Gbit/s, laissez 1000. Pour une connexion ADSL, mettez 30.


📡 Les commandes

Les commandes sont creees automatiquement lors de la sauvegarde de l'equipement.

Commandes info numeriques

CommandeUniteDescription
DownloadMbit/sDebit descendant
UploadMbit/sDebit montant
PingmsLatence reseau
JittermsVariation de la latence (stabilite)
Perte de paquets%Pourcentage de paquets perdus via ICMP. Affiche N/A si la mesure est impossible
Score/10Note globale ponderee de la connexion

Commandes info texte

CommandeDescription
ServeurNom du serveur de test utilise
Adresse IPAdresse IP publique vue par le serveur
FAIFournisseur d'acces internet detecte
Notation usageEvaluation par type d'usage (web, streaming, gaming, visio)

Commande info binaire

CommandeDescription
Etat1 = test reussi, 0 = test en echec

Commande action

CommandeDescription
RafraichirLance un test de debit manuellement
info

Toutes les commandes numeriques peuvent etre historisees pour suivre l'evolution de votre connexion dans le temps. Activez l'historisation dans l'onglet Commandes de l'equipement.


🎨 Le widget

Le plugin dispose d'un widget custom avec :

  • Une jauge demi-cercle animee pour le download (bleue)
  • Une barre de progression pour l'upload (verte)
  • Un cercle de score /10 (vert)
  • Un badge d'etat (OK / Erreur)
  • Trois tuiles pour le ping, le jitter et la perte de paquets
  • Un bouton rafraichir pour lancer un test a la demande
  • La date du dernier test en pied de widget

Les echelles des jauges (download et upload) sont configurables dans l'onglet Configuration de l'equipement pour s'adapter a votre type de connexion.


🏆 Comprendre le score

Le score global est calcule sur 10 en ponderant les metriques :

MetriquePoidsExcellentBonMoyen
Download40%> 100 Mbit/s> 25 Mbit/s> 10 Mbit/s
Upload20%> 50 Mbit/s> 20 Mbit/s> 10 Mbit/s
Ping20%< 10 ms< 20 ms< 50 ms
Jitter10%< 2 ms< 5 ms< 10 ms
Perte paquets10%0%< 1%< 3%
note

Si la mesure de perte de paquets est indisponible (ICMP bloque), le score est recalcule sur les 4 autres metriques (renormalisation a 90%). Le score reste donc representatif.


📊 Comprendre la notation d'usage

La commande Notation usage evalue votre connexion pour differents cas d'utilisation :

UsageExcellentBonInsuffisant
WebDL > 5 Mbit/s + Ping < 100 msDL > 1 Mbit/sDL < 1 Mbit/s
StreamingDL > 25 Mbit/s (4K)DL > 10 Mbit/s (HD)DL < 3 Mbit/s
GamingDL > 10 + Ping < 20 msDL > 5 + Ping < 50 msPing > 100 ms
VisioUL > 3 + DL > 5 + Ping < 50 msUL > 1 + DL > 2Sinon

🏥 Page Sante

La page Sante est accessible depuis le bouton Sante sur la page principale du plugin.

Diagnostic rapide

Lance automatiquement a l'ouverture de la page. Verifie :

VerificationDescription
LibreSpeed CLIPresence du binaire et version installee
Version attendueCorrespondance avec la version prevue par le plugin
ArchitectureArchitecture systeme detectee
Ping systemeDisponibilite de la commande ping pour la mesure de perte de paquets
Interfaces reseau activesListe des interfaces reseaux actives (hors lo et veth*)
IPv4 systemeAdresse IPv4 globale detectee
IPv6 systemeAdresse IPv6 globale detectee
Serveurs LibreSpeedNombre de serveurs publics accessibles
EquipementsNombre d'equipements configures et actifs

Test de debit

Permet de lancer un test de debit complet depuis la page Sante, avec choix du protocole et de l'interface reseau.

ParametreDescription
ProtocoleAutomatique, IPv4 ou IPv6
InterfaceAutomatique ou interface specifique

Le resultat affiche : serveur utilise, adresse IP, download, upload, ping, jitter et duree du test.

tip

Ce test est independant des equipements. Il est utile pour diagnostiquer un probleme de connectivite ou verifier le fonctionnement du plugin avant de configurer un equipement.

Copier le diagnostic

Le bouton Copier le diagnostic copie l'ensemble des resultats (diagnostic rapide + test de debit si lance) dans le presse-papier, dans un format texte directement publiable sur le forum Community.


💡 Utilisation dans Jeedom

Les commandes du plugin peuvent etre utilisees dans :

  • Les scenarios : declencher des actions si le debit descend sous un seuil, ou si le score passe sous 5/10
  • Le dashboard : affichage du widget avec toutes les metriques
  • Les alertes : notification en cas de degradation de la connexion
  • L'historique : suivi de l'evolution des performances dans le temps

Exemple de scenario

Si la commande Score < 3, alors envoyer un message "Connexion internet degradee (score: #[Salon][LibreSpeed][Score]#/10)"


🛠️ Resolution des problemes

Les dependances ne s'installent pas

  • Verifiez que votre box Jeedom a acces a internet
  • Consultez le log librespeed_update dans Analyse > Logs
  • Verifiez que votre architecture est supportee (amd64, arm64, armv7, armv6, i386)

Le test echoue (etat = 0)

  • Verifiez votre connexion internet
  • Consultez le log librespeed en mode debug pour voir les details de l'erreur
  • Si vous avez specifie un ID serveur, essayez en le laissant vide (selection automatique)
  • Utilisez la page Sante pour diagnostiquer le probleme

La perte de paquets affiche N/A

  • La mesure de perte de paquets utilise le ping ICMP vers le serveur de test
  • Certains serveurs ou pare-feu bloquent le protocole ICMP
  • Cela n'affecte pas les autres mesures (download, upload, ping, jitter)
  • Le score est automatiquement recalcule sans cette metrique

Le widget ne s'affiche pas correctement

  • Verifiez que votre Jeedom est en version 4.4 minimum
  • Videz le cache du navigateur (Ctrl+Shift+R)
  • Sauvegardez l'equipement pour recreer les commandes

Un test est deja en cours

Le plugin utilise un verrou global : un seul test de debit peut s'executer a la fois sur la machine. Si un test est deja en cours (cron ou equipement), le test suivant est ignore avec un avertissement dans les logs. Attendez la fin du test en cours.