Für ioBroker gibt es aktuell 2 Speedtest Adapter, die bei vielen funktionieren – jedoch bei vielen eben auch nicht. Das ist besonders der Fall, wenn man einen Vodafone Cable Max 1000 (ehemals Unitymedia) Tarif hat. Ich habe noch nicht herausgefunden, wieso diese Speedtests nicht richtig laufen – jedoch habe ich mir selbst Abhilfe geschaffen, um hier auch selbst vernünftige Werte zu erhalten.

Vorbereitung

Damit der Speedtest richtig funktioniert, muss das Paket von Ookla (Speedtest.net) installiert werden. Dazu loggen wir uns auf dem Pi ein und führen folgende Befehle aus. Solltest Du bereits einen Speedtest installiert haben, der bspw. mit “speedtest-cli” aufgerufen wird, so ist dieser vorher zu entfernen.

Speedtest-CLI entfernen:

sudo apt-get remove speedtest-cli

Ookla Speedtest installieren

cd /etc/
mkdir speedtest
cd /etc/speedtest
wget https://install.speedtest.net/app/cli/ookla-speedtest-1.0.0-arm-linux.tgz

(Diese Version ggf. an Dein System anpassen -> https://www.speedtest.net/de/apps/cli – Diese Version hier ist für einen Raspberry Pi mit ARM System. Andere Systeme- gerade Virtualisierungen verwenden i386 oder ähnliche Dateien)

sudo tar -xvzf ookla-speedtest-1.0.0-arm-linux.tgz
rm ookla-speedtest-1.0.0-arm-linux.tgz

Datenpunkte

Das Skript füllt die eigenen Datenpunkte mit allen verfügbaren Rückgabewerten, die dieser Test zur Verfügung stellt. Des Weiteren sind die Datenpunkte strukturiert aufgebaut. Das heißt, der Datenpunkt Ergebnisse enthält alle Daten eines Test, wohingegen der Datenpunkt Test (mit Unterpunkten: Server und Daten) Informationen zu dem eigentlichen Test enthält. Auch gibt es einen Datenpunkt Server, welcher die Informationen zur Gegenstelle vorhält.

DatenpunktBeschreibung
JSON_OutputAusgabe der Konsole
PingPing in ms
JitterJitter in ms
Download_MBitDownload Geschwindigkeit in MBit/s
Upload_MBitUpload Geschwindigkeit in MBit/s
Download_MBDownload Geschwindigkeit in MB/s
Upload_MBUpload Geschwindigkeit in MB/s
OriginalDownloadDownload Geschwindigkeit in Byte/s
OriginalUploadUpload Geschwindigkeit in Byte/s
ISPInternet Service Provider
IPexterne IP
URLAdresse der Ergebnisse
IDID der Ergebnisse
ServerIDID des getesteten Servers
ServerIPIP des getesteten Servers
NameAnbieter des getesteten Servers
StadtStadt des getesteten Servers
LandLand des getesteten Servers
AdresseURL des getesteten Servers
DownloadDownload Daten in MB
UploadUpload Daten in MB
OriginalDownloadDownload Daten in Byte
OriginalUploadUpload Daten in Byte
DauerDownloadDauer des Download Test in Sekunden
DauerUploadDauer des Upload Test in Sekunden
Letzter_SpeedtestDatum und Uhrzeit des letzten Speedtest
Verfügbare Datenpunkte des Skripts

Skript

Nun erstellen wir in ioBroker ein neues Skript im common Bereich. Es bekommt den Namen “Speedtest”.

Der Aufruf erfolgt alle 30 Minuten und kann in der letzten Zeile angepasst werden. Auch lässt sich zur besseren Diagnose der eigenen Leitung ein fester Server in Zeile 32 eintragen. Eine Liste mit Servern in Deiner Umgebung gibt es hier:
https://www.speedtest.net/speedtest-servers.php

Hier schaust du am Ende nach der ID. Diese ID kommt dann in Zeile 32.

ID des Servers herausfinden
ID des Servers herausfinden

Soll das Skript immer den besten Server nehmen und automatisch entscheiden, so lasse diesen bei 0.

/*
 * @copyright 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln>
 *
 * @author 2020 Stephan Kreyenborg <stephan@kreyenborg.koeln>
 *
 * Dieses Skript dient zur freien Verwendung in ioBroker zur Überprüfung Deiner Internetgeschwindkeit mit Hilfe von Speedtest.
 * Jegliche Verantwortung liegt beim Benutzer. Das Skript wurde unter Berücksichtigung der bestmöglichen Nutzung
 * und Performance entwickelt.
 * Der Entwickler versichert, das keine böswilligen Systemeingriffe im originalen Skript vorhanden sind.
 *
 * Sollte das Skript wider Erwarten nicht korrekt funktionieren, so hast Du jederzeit die Möglichkeit, Dich auf
 * https://www.kreyenborg.koeln
 * für Unterstützung zu melden. Jedes Skript besitzt seine eigene Kommentarseite, auf der,
 * nach zeitlicher Möglichkeit des Autors, Hilfe angeboten wird. Ein Anrecht hierauf besteht nicht!
 * 
 * Ansprüche gegenüber Dritten bestehen nicht. 
 * 
 * Skript Name:		Speedtest
 * Skript Version:	1.3
 * Erstell-Datum:	29. November 2021
 * 
 */

// Datenpunkte neu erstellen
var ueberschreiben = false;

// Hauptdatenpunkt unterhalb javascript
var datenpunkt = "Speedtest.";

// Favorisierter Server
// Liste: https://www.speedtest.net/speedtest-servers.php
var fav_server = 28602;

// Speedtest Objekte
var objekt = ["JSON_Output",
    "Ergebnisse.Ping",
    "Ergebnisse.Jitter",
    "Ergebnisse.Download_MBit",
    "Ergebnisse.Upload_MBit",
    "Ergebnisse.Download_MB",
    "Ergebnisse.Upload_MB",
    "Ergebnisse.OriginalDownload",
    "Ergebnisse.OriginalUpload",
    "ISP",
    "IP",
    "Ergebnisse.URL",
    "Ergebnisse.ID",
    "Test.Server.ServerID",
    "Test.Server.ServerIP",
    "Test.Server.Name",
    "Test.Server.Stadt",
    "Test.Server.Land",
    "Test.Server.Adresse",
    "Test.Daten.Download",
    "Test.Daten.Upload",
    "Test.Daten.OriginalDownload",
    "Test.Daten.OriginalUpload",
    "Test.Daten.DauerDownload",
    "Test.Daten.DauerUpload",
    "Test.Daten.Letzter_Speedtest"
];

// Beschreibung der Objekte
var beschreibung = ["JSON Ausgabe der Konsole",
    "Ping in ms",
    "Jitter in ms",
    "Download Geschwindigkeit in MBit/s",
    "Upload Geschwindigkeit in MBit/s",
    "Download Geschwindigkeit in MB/s",
    "Upload Geschwindigkeit in MB/s",
    "Download Geschwindigkeit in Byte/s",
    "Upload Geschwindigkeit in Byte/s",
    "Internet Service Provider",
    "externe IP",
    "Adresse der Ergebnisse",
    "ID der Ergebnisse",
    "ID des getesteten Servers",
    "IP des getesteten Servers",
    "Anbieter des getesteten Servers",
    "Stadt des getesteten Servers",
    "Land des getesteten Servers",
    "URL des getesteten Servers",
    "Download Daten in MB",
    "Upload Daten in MB",
    "Download Daten in Byte",
    "Upload Daten in Byte",
    "Dauer des Download Test",
    "Dauer des Upload Test",
    "Letzter Speedtest"
];

// Einheiten der Objekte
var einheiten = ["",
    "ms",
    "ms",
    "MBit/s",
    "MBit/s",
    "MB/s",
    "MB/s",
    "Byte/s",
    "Byte/s",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "",
    "MB",
    "MB",
    "Byte",
    "Byte",
    "s",
    "s",
    ""
];

// Typen der Objekte
var typen = ["string",
    "number",
    "number",
    "number",
    "number",
    "number",
    "number",
    "number",
    "number",
    "string",
    "string",
    "string",
    "string",
    "number",
    "string",
    "string",
    "string",
    "string",
    "string",
    "number",
    "number",
    "number",
    "number",
    "number",
    "number",
    "string"
];

// Rollen der Objekte
var rolle = ["json",
    "value",
    "value",
    "value",
    "value",
    "value",
    "value",
    "value",
    "value",
    "text",
    "text",
    "text",
    "text",
    "value",
    "text",
    "text",
    "text",
    "text",
    "text",
    "value",
    "value",
    "value",
    "value",
    "value",
    "value",
    "text"
];

// Schreibe Werte des JSON String in ein Array
function generiere_array(json_array) {
    var j = JSON.parse(json_array);
    var array_werte = [json_array,
        j.ping.latency,
        j.ping.jitter,
        parseFloat((j.download.bandwidth / 125000).toFixed(2)),
        parseFloat((j.upload.bandwidth / 125000).toFixed(2)),
        parseFloat((j.download.bandwidth / (1024 * 1024)).toFixed(2)),
        parseFloat((j.upload.bandwidth / (1024 * 1024)).toFixed(2)),
        j.download.bandwidth,
        j.upload.bandwidth,
        j.isp,
        j.interface.externalIp,
        j.result.url,
        j.result.id,
        j.server.id,
        j.server.ip,
        j.server.name,
        j.server.location,
        j.server.country,
        j.server.host,
        parseFloat((j.download.bytes / (1024 * 1024)).toFixed(2)),
        parseFloat((j.upload.bytes / (1024 * 1024)).toFixed(2)),
        j.download.bytes,
        j.upload.bytes,
        parseFloat((j.download.elapsed / 1000).toFixed(2)),
        parseFloat((j.upload.elapsed / 1000).toFixed(2)),
        hole_datum()
    ];
    return array_werte;
}

function speedtest() {
    // temporäre Variable für das Array
    var tmp_json;
    // Kommando für den Speedtest
    var kommando = "/etc/speedtest/speedtest -f json --accept-license --accept-gdpr";
    if (fav_server > 0) {
        kommando = kommando + " -s " + fav_server;
        log("Speedtest mit Server " + fav_server + " gestartet! Der Test dauert zwischen 10 - 20 Sekunden!");
    } else {
        log("Speedtest gestartet! Der Test dauert zwischen 10 - 20 Sekunden!");
    }
    exec(kommando,
        function (error, stdout) {
            if (error) {
                log('Speedtest konnte nicht ausgeführt werden! ' + error, 'error');
                return;
            } else {
                tmp_json = generiere_array(stdout);
                aktualisiere_datenpunkt(tmp_json);
                log('Speedtest durchgeführt. Ergebnisse: Download: ' + tmp_json[5] + ' MB/s | Upload: ' + tmp_json[6] + ' MB/s | Ping: ' + tmp_json[1] + 'ms');
            }
        });
}

function aktualisiere_datenpunkt(werte) {
    for (let i = 0; i < objekt.length; i++) {
        setState(datenpunkt + objekt[i], werte[i], true);
    }
}

// Erstelle die benötigten Datenpunkte
function datenpunkte_erstellen() {
    for (var i = 0; i < objekt.length; i++) {
        createState(datenpunkt + objekt[i], "", ueberschreiben, {
            name: beschreibung[i],
            desc: beschreibung[i],
            type: typen[i],
            role: rolle[i],
            unit: einheiten[i]
        });
    }

    // Alle Datenpunkte erstellt. Führe ersten Speedtest aus!
    log('Speedtest: Datenpunkte erstellt! Erster Speedtest wird in 30 Sekunden ausgeführt!');
    setTimeout(speedtest, 30000);
}

// Datum 
function hole_datum() {
    let datum = new Date();
    let tag = '0' + datum.getDate();
    let monat = '0' + (datum.getMonth() + 1);
    let jahr = datum.getFullYear();
    let stunde = '0' + datum.getHours();
    let minute = '0' + datum.getMinutes();
    let sekunde = '0' + datum.getSeconds();
    return tag.substr(-2) + '.' + monat.substr(-2) + '.' + jahr + ' ' + stunde.substr(-2) + ':' + minute.substr(-2) + ':' + sekunde.substr(-2);
}

function speedtest_erster_start() {
    log("Speedtest: Erster Start des Skriptes! Datenpunkte werden erstellt!");
    // Datenpunkte werden erstellt
    datenpunkte_erstellen();
}

// Erster Start und Initialisierung
speedtest_erster_start();

// Alle 60 Minuten einen Speedtest ausführen
schedule('*/60 * * * *', speedtest);

Kategorien:

53 Kommentare

  1. Hi

    habe deinen Skript gerade getestet. Leider erhalte ich immer einen Fehler im Log

    (10871) script.js.common.Speedtest2: Speedtest konnte nicht ausgeführt werden! Error: Command failed: speedtest -f json –accept-license –accept-gdpr /bin/sh: 1: speedtest: not found

  2. Hi,

    habe grade dein Skript getestet, leider bekomme ich eine Fehlermeldung.

    /bin/sh: 1: speedtest: not found

    script.js.common.Speedtest: Speedtest konnte nicht ausgeführt werden! Error: Command failed: speedtest -f json –accept-license –accept-gdpr

    Vielleicht kannst du mir ja dabei helfen

    Gruß Andy

    • Hallo Nullfear,
      die o.g. Schritte:
      sudo apt-get install gnupg1 apt-transport-https dirmngr
      export INSTALL_KEY=379CE192D401AB61
      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $INSTALL_KEY
      echo "deb https://ookla.bintray.com/debian generic main" | sudo tee /etc/apt/sources.list.d/speedtest.list
      sudo apt-get update
      sudo apt-get install speedtest

      hast Du aber ausgeführt?

      Gruß,
      Stephan

  3. Hallo Stephan,
    Danke fuer die tolle Skript-Idee. Sehr nuetzlich. Vielen Dank. Mir ist allerdings aufgefallen, dass bei mir die Ergebisse stark variieren zwischen “speedtest -s ” und dem von Dir verwendeten Kommando “speedtest -f json –accept-license –accept-gdpr -s . Beides aus iobroker heraus ausgefuerht. Hast Du dafuer eine Erklaerung? Vielen Dank.

    • Hi Frank,
      dies kommt wahrscheinlich dadurch, wenn du den “fav_server” nicht angegeben hast und das Skript einen zufälligen Server auswählt.
      Dadurch variieren die Messungen des Öfteren.

      Gruß,
      Stephan

  4. Hallo,

    Hallo

    das Script läuft soweit (DANKE!)

    javascript.0 2021-04-22 21:11:53.845 info (10107) script.js.common.Speedtest: Speedtest durchgeführt. Ergebisse: Download: 34.58 MB/s | Upload: 1.35 MB/s | Ping: 9.047ms
    javascript.0 2021-04-22 21:11:34.306 info (10107) script.js.common.Speedtest: Speedtest gestartet! Der Test dauert zwischen 10 – 20 Sekunden!

    aber es werden nur die zwei Datenpunkte (DL und Upload?gefüllt.

    Woran kann das liegen?

    Gruß Nico

    Ergebnisse#10
    delete
    Download_MB
    state
    Download Geschwindigkeit in MB/s
    state value 34.58 MB/s edit
    delete
    build
    Download_MBit
    state
    Download Geschwindigkeit in MBit/s
    state value edit
    delete
    build
    ID
    state
    ID der Ergebnisse
    state text edit
    delete
    build
    Jitter
    state
    Jitter in ms
    state value edit
    delete
    build
    OriginalDownload
    state
    Download Geschwindigkeit in Byte/s
    state value edit
    delete
    build
    OriginalUpload
    state
    Upload Geschwindigkeit in Byte/s
    state value edit
    delete
    build
    Ping
    state
    Ping in ms
    state value edit
    delete
    build
    URL
    state
    Adresse der Ergebnisse
    state text edit
    delete
    build
    Upload_MB
    state
    Upload Geschwindigkeit in MB/s
    state value 1.35 MB/s edit
    delete
    build
    Upload_MBit
    state
    Upload Geschwindigkeit in MBit/s
    state value edit
    delete
    build
    IP
    state
    externe IP
    state text edit
    delete
    build
    ISP
    state
    Internet Service Provider
    state text edit
    delete
    build
    JSON_Output
    state
    JSON Ausgabe der Konsole
    state json

    • Hallo Nico,
      der Datenbaum von iobroker wird im Browser manchmal nicht direkt aktualisiert.
      Bitte einmal oben links das Pfeil-Rad drücken oder in der Objekte Ansicht die Seite aktualisieren.
      Dann solltest Du Werte sehen können.
      Oder erscheinen Fehler im Log?

      Gruß,
      Stephan

  5. Hallo, würde das Script gerne nutzen, allerdings bekomme ich eine Fehlermeldung beim installieren der zuvor genannten Schritte. Exakt bei “Ookla Speedtest installieren Schritt 5”, hier ist der Fehler, dass das Paket Archiv den Zugriff verweigert.
    —-
    Fehl:4 https://ookla.bintray.com/debian generic InRelease
    403 Forbidden [IP: 34.216.248.36 443]
    N: Eine Aktualisierung von solch einem Depot kann nicht auf eine sichere Art durchgeführt werden, daher ist es standardmäßig deaktiviert.
    N: Weitere Details zur Erzeugung von Paketdepots sowie zu deren Benutzerkonfiguration finden Sie in der Handbuchseite apt-secure(8).
    —-
    Habe Rpi4 und Buster installiert. Leider reichen meine Kenntnisse nicht aus, um zu verstehen wie der Update möglich ist.
    Kann hier jemand helfen.
    Vielen Dank vorab
    Sebastian

    • Hallo Sebastian,
      tut mir Leid, das Du mit einem meiner Beiträge Probleme hast.
      Ich hatte gelesen, das Ookla (Speedtest) eine neue Version herausbringt und somit mein Skript vielleicht nicht mehr funktioniert – das scheint hier der Fall zu sein.
      Wenn Du mir 1-2 Tage Zeit gibst, würde ich dies korrigieren.

      Vielen Dank!

      Gruß,
      Stephan

  6. Hi!
    Die komischen Werte bei meinem Gigabit-Anschluss haben mich auch extrem genervt, daher vielen Dank für das skript, funktioniert wunderbar.

    Ich habe es allerdings etwas anders aufgesetzt/anpassen müssen.
    Ich ziehe das bin-file über apt rein, nicht händisch.

    Meine /etc/apt/sources.list.d/ookla_speedtest-cli.list sieht so aus:

    # this file was generated by packagecloud.io for
    # the repository at https://packagecloud.io/ookla/speedtest-cli

    deb https://packagecloud.io/ookla/speedtest-cli/debian/ bullseye main
    deb-src https://packagecloud.io/ookla/speedtest-cli/debian/ bullseye main

    Daher landet das Ganze dann in /usr/bin und muss im Skript noch angepasst werden.

    Viele Grüße aus Bayenthal!

    • Hallo Thomas,
      Danke für den Hinweis. Zum Zeitpunkt des Beitrags gab es den Speedtest leider noch nicht im offiziellen Repository.
      Daher ist der manuelle Weg noch beschrieben.

      Grüße,
      Stephan

  7. Was genau muss in Zeile 32 eingetragen werden, damit ein fester Server genommen wird bzw. wie muss die Zeile aussehen?
    Bei mir funktioniert es nicht.

        • Hallo Christian,
          freut mich, wenn es nun klappt.

          Die Liste basiert auf dem ungefähren Einwahlknoten.
          Ich bin aktuell über das Netz meiner Firma drin und bekomme nur “NL” Server angezeigt.
          Mein Smartphone im Telekom Netz zeigt Server aus Niedersachsen, obwohl ich in NRW bin.

          Mein Vodafone Anschluss zu Hause zeigt mir Server aus NRW und Rheinland Pfalz an, was so korrekt ist.

          Vielleicht schaust Du hier noch einmal.

          Fruß,
          Stephan

  8. Hallo Stephan,
    vielen Dank für das Tutorial und das Skript.
    Installation ohne Probleme und endlich vernünftige Werte die man in VIS anzeigen lassen kann.
    Alles installiert in einem Proxmox lxc 🙂

    Wäre es möglich noch einen Datenpunkt hinzuzufügen mit der aktuellen Uhrzeit und Datum
    wann der Test ausgeführt wurde?

    Gruß Ralf

      • Hallo Stephan,
        das wäre Klasse da ich das Skript auf alle 4 Std. gesetzt habe und so sehen
        kann wann er den letzten Test gemacht hat. Vielen Dank.
        Dann noch einen schönen Urlaub.

          • Hallo Ralf,
            Ich kann die Skripte gerne erweitern – da ich dies in meiner privaten Zeit mache, bitte ich um Nachsicht, wenn es manchmal ein wenig dauert.

            Angenehmes Wochenende!

            Gruß,
            Stephan

          • Hallo Stephan,
            danke für die Änderung aber das neue Skript schreibt leider keine Daten. Es kommt

            12:26:20.866 info javascript.0 (12849) Start javascript script.js.common.Speedtest
            12:26:20.880 info javascript.0 (12849) script.js.common.Speedtest: Speedtest: Erster Start des Skriptes! Datenpunkte werden erstellt!
            12:26:20.881 info javascript.0 (12849) script.js.common.Speedtest: Speedtest: Datenpunkte erstellt! Erster Speedtest wird in 30 Sekunden ausgeführt!
            12:26:20.882 info javascript.0 (12849) script.js.common.Speedtest: registered 0 subscriptions and 1 schedule
            12:26:50.882 info javascript.0 (12849) script.js.common.Speedtest: Speedtest mit Server 28624 gestartet! Der Test dauert zwischen 10 – 20 Sekunden!

            und dann tut sich nichts mehr. Neuer Datenpunkt wurde aber angelegt.
            Und keine Eile, wollte dich letztens nicht bedrängen. Wenn es etwas dauert dann ist das so, Privat/Freizeit geht vor.

          • Hallo Ralf,
            Der Datenpunkt wird also angelegt?
            Dann wird er später auch geschrieben.

            Vielleicht die Ansicht vom ioBroker mal anschauen und aktualisieren. Sie wird manchmal nicht ad-hoc aktualisiert.

            Gruß,
            Stephan

          • Habe mal zum Test alle DP gelöscht. Skript gestartet, DP’s werden angelegt aber mit

            javascript.0
            26574 2021-12-04 13:37:00.496 warn You are assigning a string to the state “javascript.0.Speedtest.Test.Daten.DauerDownload” which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.

            aber es werden keine Daten geschrieben.

            Gruß
            Ralf

          • Hallo Ralf,
            habe das Skript selbst bei mir im Einsatz und kann sagen, das die Daten definitiv geschrieben werden.
            Wie schaust Du denn, ob die Daten geschrieben wurden?
            Bitte mal einen Screenshot vom Log, sobald ein Speedtest durchgeführt wurde und von den aufgeklappten Objekten des Speedtest per Mail an Stephan@Kreyenborg.koeln

            Gruß,
            Stephan

  9. Hallo Stephan,

    Bei mir läuft der Iobroker unter Proxmox. Hab alles installiert und spendetest funktioniert auch in der Console.
    Wenn ich das Skript ausführe kommt allerdings folgende Fehlermeldung:

    javascript.0 (16782) script.js.common.Speedtest: Speedtest konnte nicht ausgeführt werden! Error: Command failed: /etc/speedtest/speedtest -f json –accept-license –accept-gdpr /bin/sh: 1: /etc/speedtest/speedtest: Exec format error

    Exec ist in Javascript adapter freigegeben.

    Was kann ich tun? Vor ein paar Wochen lief noch alles ohne Probleme.

    P.S. hab die oben genannte Schritte mehrfach durchlaufen, leider ohne Erfolg
    Gruß Micha

          • Ich habe seit der neuen Version von speedtest auch Probleme. Offenbar kann man nicht mehr alle Server als Favoriten angeben.
            Hängt irgendwie mit der -s Option zusammen:

            ”’
            echad@chet:~ $ /usr/bin/speedtest -s 44688
            [error] Configuration – No servers defined (NoServersException)
            echad@chet:~ $ /usr/bin/speedtest -s 14617

            Speedtest by Ookla

            Server: Shentel Sp. z o. o. – Szczecin (id = 14617)
            ISP: Vodafone Germany Cable
            Latency: 37.48 ms (5.70 ms jitter)
            Download: 424.01 Mbps (data used: 625.1 MB )
            Upload: 50.31 Mbps (data used: 51.2 MB )
            Packet Loss: Not available.
            Result URL: https://www.speedtest.net/result/c/fcfb814f-d75a-459c-8c4d-2a308b7fe8c8
            echad@chet:~ $ /usr/bin/speedtest -s 44688
            [error] Configuration – No servers defined (NoServersException)
            ”’

          • Hallo Thomas,
            das wird wohl ein Fehler bei Speedtest selbst sein.
            Ich verwende bei mir immer den Server “28602” – da kommt anscheinend keine Fehlermeldung.
            Vielleicht probierst Du diesen auch.

            Gruß,
            Stephan

  10. Guten Abend,

    bin gerade hier über diese Seite hier aufmerksam geworden. Habe mir das mal auf meinem ioBroker installiert, leider bekomme ich eine Fehlermeldung.

    Weis leider nicht woran dies liegen kann, bin nicht ganz so fit mit dem Thema Linux.

    Dies ist die Fehlermeldung “javascript.0 (1546) script.js.common.Speedtest: Speedtest konnte nicht ausgeführt werden! Error: Command failed: /etc/speedtest/speedtest -f json –accept-license –accept-gdpr /bin/sh: 1: /etc/speedtest/speedtest: not found”

  11. Hallo Stephan, bin gerade durch zufall auf Dein Script gestoßen.
    Habe wie in Deiner Anleitung beschrieben den Speedtest von Ookla installiert – klappte alles super!
    Dann das Script imioBroker erstellt, Server ID eingetrag, Script gestartet – Alles klappt
    Vielen Dank für das Script und Deine Mühe 🙂

    Eine Sache ist mir aufgefallen, die Werte die der Test zurückliefert sind MB/s und keine Mbit/s richtig?

  12. Super, vielen Dank, hat auf Anhieb funktioniert. Allerdings musste ich das Anlegen des Speedtest-Verzeichnisses und den wget als sudo ausführen, was aus der Anleitung nicht hervorging. Zwei Fragen, die mich bei Gelegenheit interessieren würden:
    1) Die Liste der Server scheint nur ein Auszug zu sein, wo gibt es die vollständige?
    2) Wenn das 1.0.0.tgz mal ein Update bekommt, wie bekommt man das mit?
    Ansonsten vielen Dank für Deine Mühe.

  13. Hey,

    ich habe Speedtest über das Repo installiert unter Debian.
    Dadurch hat sich der Befehl geämdert – nur noch “speedtest” und nicht /etc/speedtest/speedtest…

    Ebenfalls habe ich die Datenpunkte unter: 0_userdata.0 angelegt.

    Scheint bei den ersten Tests zu funktionieren!!!

    THX

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.