Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Speedtest-Skript von kreyenborg.koeln für Kabel-Gigabit

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

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

    This topic has been deleted. Only users with topic management privileges can see it.
    • Loemic
      Loemic @Thomas Braun last edited by

      @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 Braun 1 Reply Last reply Reply Quote 0
      • Thomas Braun
        Thomas Braun Most Active @Loemic last edited by

        @loemic

        Klar.

        Loemic 1 Reply Last reply Reply Quote 0
        • Loemic
          Loemic @Thomas Braun last edited by

          @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 😊

          Thomas Braun 1 Reply Last reply Reply Quote 0
          • Thomas Braun
            Thomas Braun Most Active @Loemic last edited by

            @loemic

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

            Loemic 1 Reply Last reply Reply Quote 0
            • Loemic
              Loemic @Thomas Braun last edited by

              @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?

              SKB 1 Reply Last reply Reply Quote 0
              • SKB
                SKB Developer Most Active @Loemic last edited by

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

                Loemic 1 Reply Last reply Reply Quote 0
                • Loemic
                  Loemic @SKB last edited by

                  @skb

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

                  SKB 1 Reply Last reply Reply Quote 0
                  • SKB
                    SKB Developer Most Active @Loemic last edited by

                    @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.

                    Loemic 1 Reply Last reply Reply Quote 0
                    • Loemic
                      Loemic @SKB last edited by

                      @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?

                      SKB 1 Reply Last reply Reply Quote 0
                      • SKB
                        SKB Developer Most Active @Loemic last edited by SKB

                        @loemic Klar, am Ende fehlt noch:

                        );
                        

                        Etwas unkonzentriert beim Tippen am Handy 😉

                        Loemic 1 Reply Last reply Reply Quote 0
                        • Loemic
                          Loemic @SKB last edited by

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

                          SKB 1 Reply Last reply Reply Quote 0
                          • SKB
                            SKB Developer Most Active @Loemic last edited by

                            @loemic Hast Du denn einen boolean Datenpunkt erstellt?

                            Loemic 1 Reply Last reply Reply Quote 0
                            • Loemic
                              Loemic @SKB last edited by

                              @skb

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

                              DJMarc75 SKB 2 Replies Last reply Reply Quote 0
                              • DJMarc75
                                DJMarc75 @Loemic last edited by

                                @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 😉

                                1 Reply Last reply Reply Quote 0
                                • SKB
                                  SKB Developer Most Active @Loemic last edited by

                                  @loemic Ah, sorry, Fehler gefunden.

                                  on({ id: "javascript.0.Speedtest.trigger", change: "any" }, function (obj) {
                                  if (obj.state.val===true) { /* state fehlte */
                                  speedtest ();
                                  }
                                  });
                                  
                                  Loemic 1 Reply Last reply Reply Quote 0
                                  • Loemic
                                    Loemic @SKB last edited by

                                    @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!");
                                    }
                                    }
                                    );
                                    
                                    SKB 1 Reply Last reply Reply Quote 0
                                    • SKB
                                      SKB Developer Most Active @Loemic last edited by

                                      @loemic ich weiss 🙂

                                      Ist ja mein Speedtest-Skript 😄

                                      1 Reply Last reply Reply Quote 0
                                      • manuxi
                                        manuxi last edited by

                                        @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 Reply Quote 0
                                        • M
                                          Mephisto090 last edited by Mephisto090

                                          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

                                          SKB 1 Reply Last reply Reply Quote 0
                                          • SKB
                                            SKB Developer Most Active @Mephisto090 last edited by

                                            @mephisto090 Dazu kann ich leider nichts sagen - ich habe kein Docker im Einsatz.

                                            Ich denke, du musst via:

                                            type -p speedtest
                                            

                                            Schauen, wie der Pfad lautet. Diesen dann im Skript anpassen.

                                            M 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            962
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            33
                                            391
                                            52106
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo