Zum Hauptinhalt springen

iPerf3 Smart-Home-Integration, kostenlos und Open Source

iPerf3-Integration für Gladys Assistant

Miss die Geschwindigkeit deines Heimnetzes (WLAN, Powerline, NAS) zu deinen iperf3-Servern.

Miss die Geschwindigkeit deines Heimnetzes aus Gladys: das WLAN bis ins Büro, die Powerline-Adapter bis in die Garage, das Kabel zum NAS. Die Integration startet den iperf3-Client gegen iperf3-Server, die du auf deinen Geräten betreibst, regelmäßig und auf Anfrage, und speichert den Verlauf jeder Verbindung.

Die Integration misst nicht deinen Internetanschluss: Dafür gibt es die Integration Speedtest.net. Hier bleibt jede Messung in deinem Netz.

Was du bekommst​

  • Ein Gerät pro iperf3-Server, mit Download- und Upload-Geschwindigkeit (Mbit/s, mit Verlauf), TCP-Neuübertragungen (oder Jitter und Paketverlust bei UDP) und „Letzte Messung erfolgreich“.
  • Automatische Messungen alle 1 bis 24 Stunden (standardmäßig 6) oder nur auf Anfrage.
  • Ein Dashboard-Widget: die letzten Werte aller Server oder die Kacheln und das Wochendiagramm eines Servers, mit einer Schaltfläche für eine neue Messung.
  • Zwei Szenen-Auslöser: Ein Server ist nicht mehr erreichbar, eine Geschwindigkeit fällt unter eine Schwelle.
  • Eine Szenen-Aktion: einen Server messen und die Werte in den nächsten Schritten nutzen.

Voraussetzungen​

  • Gladys Assistant 5.1.0 oder neuer.
  • Ein iperf3-Server auf jedem Gerät, das du messen willst: iperf3 -s (standardmäßig Port 5201). iperf3 gibt es für Linux, Windows, macOS, die meisten NAS (Pakete für Synology und QNAP, Docker-Image networkstatic/iperf3) und OpenWrt-Router. Starte ihn als Dienst, damit er einen Neustart übersteht.
  • Der Server muss vom Gladys-Rechner über seinen TCP-Port (und im UDP-Modus über UDP) erreichbar sein.

Der iperf3-Client steckt im Image der Integration: Auf der Gladys-Seite musst du nichts installieren. Die Integration startet nie einen iperf3-Server.

Konfiguration​

FeldBedeutung
iperf3-ServerKommagetrennte Liste: Adresse oder Name=Adresse, mit :Port, wenn er nicht 5201 ist.
Automatische MessungNie (nur auf Anfrage), alle 1, 2, 3, 6, 12 Stunden oder einmal am Tag. Standard: 6 h.
ProtokollTCP (echter Durchsatz, Neuübertragungen) oder UDP (feste Bitrate, Jitter, Paketverlust).
Dauer pro Richtung (s)3 bis 20 Sekunden, standardmäßig 5. Eine Messung dauert etwa das Doppelte plus 2 Sekunden.
Parallele Streams1 bis 8. Mehrere Streams lasten schnelle Leitungen (ab 2,5 Gbit/s) besser aus.
UDP-Bitrate (Mbit/s)Nur UDP: die gesendete Bitrate. Über dem, was die Leitung schafft, steigt der Verlust.
Schwelle für niedrige GeschwindigkeitFür den Auslöser „Geschwindigkeit unter der Schwelle“, in Mbit/s. 0 schaltet ihn ab.
Sprache der NamenSprache der Funktionsnamen und der Nachrichten. Standard: Französisch.

Beispiel: NAS=192.168.1.10, Büro=192.168.1.20:5202, [fd00::30]. Bis zu 10 Server. Ein falscher Eintrag wird ignoriert und in der Antwort der Schaltfläche Alle Server jetzt messen sowie in den Logs genannt.

Öffne dann den Tab Entdecken der Integration und füge die Geräte hinzu, die du verfolgen willst. Nur die zu Gladys hinzugefügten Geräte werden automatisch gemessen; die Schaltfläche Alle Server jetzt messen misst alle Server der Liste, so kannst du die Konfiguration vorher prüfen.

Geräte​

Jeder Server ergibt ein Gerät mit seinem Namen („iPerf3 192.168.1.10“ ohne Namen), mit:

FunktionTypHinweise
DownloadDatenrate (Mbit/s)Server → Gladys, vom Empfänger gemessen.
UploadDatenrate (Mbit/s)Gladys → Server, vom Empfänger gemessen.
TCP-NeuübertragungenZählerNur TCP: erneut gesendete Segmente, beide Richtungen summiert.
JitterDauer (ms)Nur UDP: der schlechtere Wert der beiden Richtungen.
PaketverlustProzentNur UDP: der schlechtere Wert der beiden Richtungen.
Letzte Messung erfolgreichBinär0, wenn die letzte Messung fehlschlug (Werte bleiben erhalten).

Die Werte werden nach jeder Messung aktualisiert, nie von Gladys abgefragt. Ein Wechsel des Protokolls ändert die Funktionen: Der Tab Entdecken bietet dann an, die Geräte zu aktualisieren.

Dashboard-Widget​

Füge das Widget Heimnetz-Geschwindigkeit hinzu. Ohne Einstellung listet es alle Server mit ihren letzten Werten (oder dem Grund, warum die letzte Messung fehlschlug), mit einer Schaltfläche Alle messen. Wähle in seinen Einstellungen einen Server (oder hab nur einen), um seine Live-Kacheln, das Diagramm der letzten Woche, die Zeit der letzten Messung und eine Schaltfläche Jetzt messen zu sehen. Die Schaltflächen starten die Messung im Hintergrund; das Widget aktualisiert sich am Ende.

Szenen-Auslöser​

  • iperf3-Server nicht erreichbar: Eine Messung konnte einen Server nicht erreichen (abgelehnt, keine Antwort, unbekannter Name). Er startet einmal pro Ausfall und erst nach einer erfolgreichen Messung wieder. Ein durch einen anderen Test belegter Server zählt nicht. Filter: der Server. Variablen: Servername, Adresse, Grund.
  • Geschwindigkeit unter der Schwelle: Download oder Upload einer Messung liegt unter der Schwelle der Konfiguration. Er startet einmal pro Richtung und erst wieder, wenn der Wert darüber lag. Filter: der Server, die Richtung. Variablen: Servername, Geschwindigkeit, Schwelle.

Der übliche Gladys-Auslöser „Ein Gerätewert ändert sich“ funktioniert auch mit Download und Upload.

Szenen-Aktion​

iperf3-Server messen misst den gewählten Server sofort (vor geplanten Messungen) und gibt success (1 oder 0), download_mbps und upload_mbps an die nächsten Schritte weiter: ein „Nur fortfahren, wenn“ auf success, eine Nachricht mit den Werten. Eine fehlgeschlagene Messung gibt success = 0 statt eines Fehlers zurück, damit die Szene darauf reagieren kann.

Szenen-Beispiele​

  • Powerline überwachen: Wenn „Geschwindigkeit unter der Schwelle“ für den Garagen-Adapter startet, schick eine Nachricht „Powerline langsam“ mit der Variable der Geschwindigkeit.
  • NAS ausgefallen: Wenn „iperf3-Server nicht erreichbar“ für das NAS startet, schick eine Telegram-Nachricht mit dem Grund.
  • Nächtliche Prüfung: Jede Nacht um 3 Uhr das Büro-WLAN messen und das Ergebnis per Nachricht schicken.

Fehlerbehebung​

  • „Server nicht erreichbar“: Prüf, ob iperf3 -s auf dem Server läuft, ob sein Port (standardmäßig 5201) in seiner Firewall offen ist und ob die Adresse stimmt. Von einem anderen Rechner aus muss iperf3 -c <Adresse> funktionieren.
  • „Server durch anderen Test belegt“: Ein iperf3-Server bedient nur einen Client gleichzeitig. Die Integration versucht es nach 5 Sekunden erneut; vermutlich testet gerade ein anderer Client (oder ein zweites Gladys).
  • Niedrige Werte auf einer schnellen Leitung: Stell 4 parallele Streams ein und verlängere die Dauer. Der Gladys-Rechner selbst (etwa ein Raspberry Pi) kann der Engpass sein.
  • Viel Verlust bei UDP: Die UDP-Bitrate liegt über dem, was die Leitung schafft; senk sie.
  • Mehr Details mit LOG_LEVEL=debug in den Logs der Integration.

Grenzen​

  • Eine Messung nach der anderen, Server für Server: 10 Server brauchen einige Minuten.
  • Eine Messung lastet die gemessene Verbindung aus: Wähl auf einem vollen WLAN ein vernünftiges Intervall.
  • Gemessen wird zwischen dem Gladys-Rechner und dem Server, nicht zwischen zwei anderen Geräten.
  • Der Gladys-Container läuft in einem Bridge-Netz: Ein IPv6-Server braucht IPv6 in Docker.
  • Mit „Nie“ ändern sich die Werte nicht von selbst, und Gladys kann sie nach 48 Stunden als veraltet anzeigen.

Konfigurationseinstellungen​

Diese Einstellungen fragt iPerf3 in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
FunktionsweisesectionNeinStarte einen iperf3-Server (iperf3 -s) auf den Geräten, die du messen willst: NAS, PC, ein Gerät hinter WLAN oder Powerline. Gladys misst Upload und dann Download, einen Server nach dem anderen, und legt pro Server ein Gerät an.
iperf3-ServerstringNeinDurch Kommas getrennt: Adresse oder Name=Adresse, mit :Port, wenn er nicht 5201 ist. Höchstens 10 Server.
Automatische MessungselectNeinJede Messung lastet die Verbindung einige Sekunden aus: Miss lieber selten.
ProtokollselectNeinTCP misst den echten Durchsatz. UDP sendet mit fester Bitrate und misst Jitter und Paketverlust.
Dauer pro Richtung (s)numberNeinLänger ist stabiler, belastet das Netz aber länger.
Parallele StreamsnumberNeinMehr Streams lasten schnelle Leitungen (ab 2,5 Gbit/s) besser aus.
UDP-Bitrate (Mbit/s)numberNeinNur UDP: die gesendete Bitrate. Über dem, was die Leitung schafft, steigt der Verlust.
Schwelle für niedrige Geschwindigkeit (Mbit/s)numberNeinDer Auslöser „Geschwindigkeit unter der Schwelle“ startet, wenn ein Wert darunter fällt. 0 = aus.
Sprache der NamenselectNeinSprache der Funktionsnamen und der Nachrichten der Integration.

So installierst du iPerf3 in Gladys​

  1. Öffne in Gladys Integrationen: iPerf3 erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-iperf3:1.0.0) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-iperf3.

iPerf3 benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

iPerf3 ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂