Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Speedtest-Skript von kreyenborg.koeln für Kabel-Gigabit

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    555

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    5.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.4k

Speedtest-Skript von kreyenborg.koeln für Kabel-Gigabit

Scheduled Pinned Locked Moved Skripten / Logik
391 Posts 33 Posters 84.0k Views 33 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    Tottbeck
    wrote on last edited by
    #295

    Moin, kann es sein das seit kurzem deutlich weniger favorisierte Server verfügbar sind ?
    Mein alter "fav_server" 30906 wird seit dem 31.05 8:00 Uhr nicht mehr gefunden und unter https://www.speedtest.net/speedtest-servers.php kommen fast nur welche aus Liechtenstein und der Schweiz.

    1 Reply Last reply
    0
    • Thomas BraunT Thomas Braun

      Die beiden für ioBroker verfügbaren Adapter um Speedtests zu monitoren haben die Eigenschaft an meinem Gigabit-Anschluss über Kabel sehr unbeständige Werte abzuliefern. Ein Flot-Chart sieht dann aus wie ein Kamm, dem ein paar Zinken fehlen.
      Sehr viel beständigere und realistischere Werte liefert mir ein skript von https://www.kreyenborg.koeln/speedtest-fuer-iobroker/

      Ich dokumentiere hier mal, wie ich das etwas abweichend von Stephan Kreyenborgs Anleitung auf meinem System eingerichtet habe.

      Zunächst habe ich sowohl den webspeedy wie auch den vofo-speedtest-Adapter im ioBroker deinstalliert.
      Dann habe ich per

      sudo apt remove speedtest-cli speedtest
      

      den bisherigen Kommandozeilen-Speedtest deinstalliert.

      Dann per

      sudo apt install curl
      curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
      sudo apt update
      sudo apt install speedtest
      

      das aktuelle Repo von ookla/speedtest.net eingespielt.

      [EXKURS]
      Falls das skript nicht durchläuft kann man 'zu Fuß' eine passende Datei unter /etc/apt/sources.list.d/ookla_speedtest-cli.list für Debian Bullseye mit folgendem Inhalt angelegen:

      # this file was generated by packagecloud.io for
      # the repository at https://packagecloud.io/ookla/speedtest-cli
      
      deb [signed-by=/etc/apt/trusted.gpg.d/ookla_speedtest-cli-archive-keyring.gpg] https://packagecloud.io/ookla/speedtest-cli/debian/ bullseye main
      deb-src [signed-by=/etc/apt/trusted.gpg.d/ookla_speedtest-cli-archive-keyring.gpg] https://packagecloud.io/ookla/speedtest-cli/debian/ bullseye main
      

      Dann noch den Schlüssel importieren:

      
      curl -fsSL https://packagecloud.io/ookla/speedtest-cli/gpgkey | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/ookla_speedtest-cli-archive-keyring.gpg
      

      Andere Distributionen wie z. B. ubuntu dann analog (DISTRIBUTION und RELEASE entsprechend ersetzen):

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

      Ein

      sudo apt update
      sudo apt install speedtest
      

      spült die gewünschte Version dann in mein System.

      [EXKURS ENDE]

      Erster Test in der Kommandozeile liefert:

      echad@chet:/opt/iobroker $ speedtest
      
         Speedtest by Ookla
      
           Server: fiberONE - Darmstadt (id = 25942)
              ISP: Vodafone Germany Cable
          Latency:    11.86 ms   (1.27 ms jitter)
         Download:   930.24 Mbps (data used: 1.2 GB)
           Upload:    51.74 Mbps (data used: 25.9 MB)
      Packet Loss:     0.0%
       Result URL: https://www.speedtest.net/result/c/
      

      Prima, funktioniert.

      Dann das skript von kreyenborg.koeln in den javaskript-Adapter geladen und in Zeile 210 oder 217 die Zeile

      var kommando = "/etc/speedtest/speedtest -f json --accept-license --accept-gdpr";
      

      an den anderen Pfad angepasst:

      var kommando = "/usr/bin/speedtest -f json --accept-license --accept-gdpr";
      

      Danach lief das skript und ich kann per eCharts so ein Diagramm bewundern:

      2dcf1f3d-0e3e-47d7-b4a9-a9099b97b121-image.png

      Tip am Rande:
      Per
      https://c.speedtest.net/speedtest-servers-static.php
      sollte man eine ID (hier z. B. 12345) eines zuverlässigen Servers identifizieren und im skript in Zeile 32 fix eintragen.

      var fav_server = 12345;
      
      LoemicL Offline
      LoemicL Offline
      Loemic
      wrote on last edited by
      #296

      @thomas-braun

      Besteht die Möglichkeit, das Script bzw den Speedtest auch manuell anzustoßen? Aktuell läuft es stündlich. Ich könnte mir aber auch beispielsweise einen Button in der vis vorstellen, der den Speedtest außerhalb der Reihe manuell auslöst.

      Thomas BraunT 1 Reply Last reply
      0
      • LoemicL Loemic

        @thomas-braun

        Besteht die Möglichkeit, das Script bzw den Speedtest auch manuell anzustoßen? Aktuell läuft es stündlich. Ich könnte mir aber auch beispielsweise einen Button in der vis vorstellen, der den Speedtest außerhalb der Reihe manuell auslöst.

        Thomas BraunT Online
        Thomas BraunT Online
        Thomas Braun
        Most Active
        wrote on last edited by
        #297

        @loemic

        Klar.

        Linux-Werkzeugkasten:
        https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
        NodeJS Fixer Skript:
        https://forum.iobroker.net/topic/68035/iob-node-fix-skript
        iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

        LoemicL 1 Reply Last reply
        0
        • Thomas BraunT Thomas Braun

          @loemic

          Klar.

          LoemicL Offline
          LoemicL Offline
          Loemic
          wrote on last edited by
          #298

          @thomas-braun

          Super!
          Verrätst du mir auch, wie das geht? ;)
          Einfach das Script beenden und neu starten? Oder gibt es eine andere Möglichkeit, die du mir vorschlagen könntest?

          Danke schonmal :blush:

          Thomas BraunT 1 Reply Last reply
          0
          • LoemicL Loemic

            @thomas-braun

            Super!
            Verrätst du mir auch, wie das geht? ;)
            Einfach das Script beenden und neu starten? Oder gibt es eine andere Möglichkeit, die du mir vorschlagen könntest?

            Danke schonmal :blush:

            Thomas BraunT Online
            Thomas BraunT Online
            Thomas Braun
            Most Active
            wrote on last edited by
            #299

            @loemic

            Ich betreibe keine vis. Keine Ahnung von Knöppen und wie man darüber ein skript auslöst.

            Linux-Werkzeugkasten:
            https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
            NodeJS Fixer Skript:
            https://forum.iobroker.net/topic/68035/iob-node-fix-skript
            iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

            LoemicL 1 Reply Last reply
            0
            • Thomas BraunT Thomas Braun

              @loemic

              Ich betreibe keine vis. Keine Ahnung von Knöppen und wie man darüber ein skript auslöst.

              LoemicL Offline
              LoemicL Offline
              Loemic
              wrote on last edited by
              #300

              @thomas-braun

              Die Einbindung in die Vis kriege ich schon hin. Ich frage mich nur, wie es script-seitig laufen würde. Wenn ich den Speedtest beispielsweise in putty starte kriegt der iobroker bzw. das Script nix davon mit.

              Wäre eine Kopie des Scripts, die ich manuell (in der vis) starte und nach durchlaufen des Scripts wieder beende, eine Lösung?

              SKBS 1 Reply Last reply
              0
              • LoemicL Loemic

                @thomas-braun

                Die Einbindung in die Vis kriege ich schon hin. Ich frage mich nur, wie es script-seitig laufen würde. Wenn ich den Speedtest beispielsweise in putty starte kriegt der iobroker bzw. das Script nix davon mit.

                Wäre eine Kopie des Scripts, die ich manuell (in der vis) starte und nach durchlaufen des Scripts wieder beende, eine Lösung?

                SKBS Offline
                SKBS Offline
                SKB
                Developer Most Active
                wrote on last edited by
                #301

                @loemic Du kannst auch einen Hilfsdatenpunkt erstellen und diesen mit "on" abonnieren, dann auf true/false prüfen und die Funktion des Skriptes aufrufen.

                ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                LoemicL 1 Reply Last reply
                0
                • SKBS SKB

                  @loemic Du kannst auch einen Hilfsdatenpunkt erstellen und diesen mit "on" abonnieren, dann auf true/false prüfen und die Funktion des Skriptes aufrufen.

                  LoemicL Offline
                  LoemicL Offline
                  Loemic
                  wrote on last edited by
                  #302

                  @skb

                  Wie kann ich denn die Funktion des Scripts aufrufen? Kannst du mir ein Beispiel zeigen?

                  SKBS 1 Reply Last reply
                  0
                  • LoemicL Loemic

                    @skb

                    Wie kann ich denn die Funktion des Scripts aufrufen? Kannst du mir ein Beispiel zeigen?

                    SKBS Offline
                    SKBS Offline
                    SKB
                    Developer Most Active
                    wrote on last edited by
                    #303

                    @loemic die Funktion heißt:

                    speedtest ();
                    

                    Mit:

                    on({ id: "Hilfsdatenpunkt", change: "any" }, function (obj) {
                    if (obj.val===true) {
                    speedtest ();
                    }
                    }
                    

                    Im gleichen Skript am Ende kannst Du dann Hilfsdatenpunkt abonnieren und darauf reagieren.

                    ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                    Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                    LoemicL 1 Reply Last reply
                    0
                    • SKBS SKB

                      @loemic die Funktion heißt:

                      speedtest ();
                      

                      Mit:

                      on({ id: "Hilfsdatenpunkt", change: "any" }, function (obj) {
                      if (obj.val===true) {
                      speedtest ();
                      }
                      }
                      

                      Im gleichen Skript am Ende kannst Du dann Hilfsdatenpunkt abonnieren und darauf reagieren.

                      LoemicL Offline
                      LoemicL Offline
                      Loemic
                      wrote on last edited by
                      #304

                      @skb sagte in Speedtest-Skript von kreyenborg.koeln für Kabel-Gigabit:

                      Danke für deinen Lösungsvorschlag. Leider bekomme ich da einen Error. Das Ende des Scripts sieht jetzt wie folgt aus:

                      // Alle 60 Minuten einen Speedtest ausführen
                      schedule('*/60 * * * *', speedtest);
                      
                      // Script ausführen wenn Datenpunkt "Speedtest-Trigger" = true (Danke an @SKB im iobroker-Forum)
                      on({ id: "0_userdata.0.Speedtest.Speedtest-Trigger", change: "any" }, function (obj) {
                      if (obj.val===true) {
                      speedtest ();
                      }
                      }
                      

                      Ideen, wie das doch klappen könnte?

                      SKBS 1 Reply Last reply
                      0
                      • LoemicL Loemic

                        @skb sagte in Speedtest-Skript von kreyenborg.koeln für Kabel-Gigabit:

                        Danke für deinen Lösungsvorschlag. Leider bekomme ich da einen Error. Das Ende des Scripts sieht jetzt wie folgt aus:

                        // Alle 60 Minuten einen Speedtest ausführen
                        schedule('*/60 * * * *', speedtest);
                        
                        // Script ausführen wenn Datenpunkt "Speedtest-Trigger" = true (Danke an @SKB im iobroker-Forum)
                        on({ id: "0_userdata.0.Speedtest.Speedtest-Trigger", change: "any" }, function (obj) {
                        if (obj.val===true) {
                        speedtest ();
                        }
                        }
                        

                        Ideen, wie das doch klappen könnte?

                        SKBS Offline
                        SKBS Offline
                        SKB
                        Developer Most Active
                        wrote on last edited by SKB
                        #305

                        @loemic Klar, am Ende fehlt noch:

                        );
                        

                        Etwas unkonzentriert beim Tippen am Handy ;)

                        ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                        Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                        LoemicL 1 Reply Last reply
                        0
                        • SKBS SKB

                          @loemic Klar, am Ende fehlt noch:

                          );
                          

                          Etwas unkonzentriert beim Tippen am Handy ;)

                          LoemicL Offline
                          LoemicL Offline
                          Loemic
                          wrote on last edited by
                          #306

                          @skb
                          Leider geht es immer noch nicht. Script läuft zwar, aber die Änderung des Datenpunkts von False zu True bewirkt nichts...

                          SKBS 1 Reply Last reply
                          0
                          • LoemicL Loemic

                            @skb
                            Leider geht es immer noch nicht. Script läuft zwar, aber die Änderung des Datenpunkts von False zu True bewirkt nichts...

                            SKBS Offline
                            SKBS Offline
                            SKB
                            Developer Most Active
                            wrote on last edited by
                            #307

                            @loemic Hast Du denn einen boolean Datenpunkt erstellt?

                            ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                            Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                            LoemicL 1 Reply Last reply
                            0
                            • SKBS SKB

                              @loemic Hast Du denn einen boolean Datenpunkt erstellt?

                              LoemicL Offline
                              LoemicL Offline
                              Loemic
                              wrote on last edited by
                              #308

                              @skb

                              Ja. Der 0_userdata.0.Speedtest.Speedtest-Trigger ist ein boolean-dp

                              DJMarc75D SKBS 2 Replies Last reply
                              0
                              • LoemicL Loemic

                                @skb

                                Ja. Der 0_userdata.0.Speedtest.Speedtest-Trigger ist ein boolean-dp

                                DJMarc75D Offline
                                DJMarc75D Offline
                                DJMarc75
                                wrote on last edited by
                                #309

                                @loemic sagte in Speedtest-Skript von kreyenborg.koeln für Kabel-Gigabit:

                                Ja. Der 0_userdata.0.Speedtest.Speedtest-Trigger ist ein boolean-dp

                                Na dann zeig mal die Objektdaten bitte, damit wir das auch bestätigen können ;)

                                Lehrling seit 1975 !!!
                                Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                                https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                                1 Reply Last reply
                                0
                                • LoemicL Loemic

                                  @skb

                                  Ja. Der 0_userdata.0.Speedtest.Speedtest-Trigger ist ein boolean-dp

                                  SKBS Offline
                                  SKBS Offline
                                  SKB
                                  Developer Most Active
                                  wrote on last edited by
                                  #310

                                  @loemic Ah, sorry, Fehler gefunden.

                                  on({ id: "javascript.0.Speedtest.trigger", change: "any" }, function (obj) {
                                  if (obj.state.val===true) { /* state fehlte */
                                  speedtest ();
                                  }
                                  });
                                  

                                  ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                                  Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                                  LoemicL 1 Reply Last reply
                                  0
                                  • SKBS SKB

                                    @loemic Ah, sorry, Fehler gefunden.

                                    on({ id: "javascript.0.Speedtest.trigger", change: "any" }, function (obj) {
                                    if (obj.state.val===true) { /* state fehlte */
                                    speedtest ();
                                    }
                                    });
                                    
                                    LoemicL Offline
                                    LoemicL Offline
                                    Loemic
                                    wrote on last edited by
                                    #311

                                    @skb @DJMarc75

                                    es funktioniert jetzt, vielen vielen Dank :)

                                    Der DP war korrekt, es fehlte tatsächlich das "state", wie von @SKB gesagt.
                                    Ich habe noch eine Zeile für einen Log-Eintrag hinzugefügt.
                                    Hier der Code-Schnipsel, falls das jemand "nachbauen" möchte, der bei mir funktioniert:

                                    // Script ausführen wenn Datenpunkt "Speedtest-Trigger" = true (Danke an @SKB im iobroker-Forum)
                                    on({ id: "boolean-Datenpunkt", change: "any" }, function (obj) {
                                    if (obj.state.val===true) {
                                    speedtest ();
                                    log("Speedtest: Trigger löst Speedtest aus!");
                                    }
                                    }
                                    );
                                    
                                    SKBS 1 Reply Last reply
                                    0
                                    • LoemicL Loemic

                                      @skb @DJMarc75

                                      es funktioniert jetzt, vielen vielen Dank :)

                                      Der DP war korrekt, es fehlte tatsächlich das "state", wie von @SKB gesagt.
                                      Ich habe noch eine Zeile für einen Log-Eintrag hinzugefügt.
                                      Hier der Code-Schnipsel, falls das jemand "nachbauen" möchte, der bei mir funktioniert:

                                      // Script ausführen wenn Datenpunkt "Speedtest-Trigger" = true (Danke an @SKB im iobroker-Forum)
                                      on({ id: "boolean-Datenpunkt", change: "any" }, function (obj) {
                                      if (obj.state.val===true) {
                                      speedtest ();
                                      log("Speedtest: Trigger löst Speedtest aus!");
                                      }
                                      }
                                      );
                                      
                                      SKBS Offline
                                      SKBS Offline
                                      SKB
                                      Developer Most Active
                                      wrote on last edited by
                                      #312

                                      @loemic ich weiss :)

                                      Ist ja mein Speedtest-Skript :D

                                      ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                                      Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                                      1 Reply Last reply
                                      0
                                      • manuxiM Offline
                                        manuxiM Offline
                                        manuxi
                                        wrote on last edited by
                                        #313

                                        @thomas-braun sagte in Speedtest-Skript von kreyenborg.koeln für Kabel-Gigabit:

                                        curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash

                                        Für buanet-Docker-Container funktioniert sudo nicht, daher habe ich folgendes gemacht:

                                        cd~
                                        wget https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh
                                        chmod 744 script.deb.sh
                                        ./script.deb.sh
                                        

                                        Danach kann der Speedtest installiert werden mit

                                        apt install speedtest
                                        
                                        1 Reply Last reply
                                        0
                                        • M Offline
                                          M Offline
                                          Mephisto090
                                          wrote on last edited by Mephisto090
                                          #314

                                          Hallo,

                                          was mache ich falsch? In der Console funktioniert der Speedtest ohne Probleme. Das js Skript gibt mir Fehler aus. Ich nutze Docker von Bauanet. Mich wundert der Post von manuxi wo er beschreibt, dass buanet mit sudo nicht funktioniert. Bei mir ist es ja anscheinend mit sudo installiert.

                                          (Das Skript ist unbearbeitet)

                                          script.js.common.Speedtest:182:18:

                                          // 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;
                                          }
                                          

                                          3746126a-ba84-4d0a-a2e6-f3b5ac7d4740-image.png

                                          b8ccbfb1-4ada-4e98-a920-eba3721fd41f-image.png

                                          70589f2c-f724-4b10-abdb-17d057660209-image.png

                                          SKBS 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          570

                                          Online

                                          32.7k

                                          Users

                                          82.5k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe