Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    358

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.6k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
391 Beiträge 33 Kommentatoren 78.5k Aufrufe 33 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    Mephisto090
    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
    0
    • M 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

      SKBS Offline
      SKBS Offline
      SKB
      Developer Most Active
      schrieb am zuletzt editiert von
      #315

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

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

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

      M 1 Antwort Letzte Antwort
      0
      • SKBS SKB

        @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 Offline
        M Offline
        Mephisto090
        schrieb am zuletzt editiert von
        #316

        @skb
        1a4ab78c-7305-496d-aee4-d9bb0f20d5ff-image.png
        70646e43-25d3-44c6-ab1d-dfd53cf66c41-image.png

        Das passt :(

        SKBS 1 Antwort Letzte Antwort
        0
        • M Mephisto090

          @skb
          1a4ab78c-7305-496d-aee4-d9bb0f20d5ff-image.png
          70646e43-25d3-44c6-ab1d-dfd53cf66c41-image.png

          Das passt :(

          SKBS Offline
          SKBS Offline
          SKB
          Developer Most Active
          schrieb am zuletzt editiert von
          #317

          @mephisto090 Und, wenn du das komplette Kommando via SSH eingibst, was passiert?

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

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

          M 1 Antwort Letzte Antwort
          0
          • SKBS SKB

            @mephisto090 Und, wenn du das komplette Kommando via SSH eingibst, was passiert?

            M Offline
            M Offline
            Mephisto090
            schrieb am zuletzt editiert von
            #318

            @skb b210318d-3213-44fd-b762-3ebaad090bd4-image.png

            das hier

            SKBS 1 Antwort Letzte Antwort
            0
            • M Mephisto090

              @skb b210318d-3213-44fd-b762-3ebaad090bd4-image.png

              das hier

              SKBS Offline
              SKBS Offline
              SKB
              Developer Most Active
              schrieb am zuletzt editiert von
              #319

              @mephisto090 Dann teste mal statt -f json --json

              Musst dann ggf. das Kommando anpassen.

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

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

              M 1 Antwort Letzte Antwort
              0
              • SKBS SKB

                @mephisto090 Dann teste mal statt -f json --json

                Musst dann ggf. das Kommando anpassen.

                M Offline
                M Offline
                Mephisto090
                schrieb am zuletzt editiert von Mephisto090
                #320

                @skb laut ssh geht das irgendwie auch nicht

                6f845c6f-a56a-46cb-8f9e-fff58d376ea9-image.png

                SKBS DJMarc75D 2 Antworten Letzte Antwort
                0
                • M Mephisto090

                  @skb laut ssh geht das irgendwie auch nicht

                  6f845c6f-a56a-46cb-8f9e-fff58d376ea9-image.png

                  SKBS Offline
                  SKBS Offline
                  SKB
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #321

                  @mephisto090 Und nur mit --json ?

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

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

                  M 2 Antworten Letzte Antwort
                  0
                  • SKBS SKB

                    @mephisto090 Und nur mit --json ?

                    M Offline
                    M Offline
                    Mephisto090
                    schrieb am zuletzt editiert von
                    #322

                    @skb scheint zu funktionieren. Habe es jetzt mal im script so angepasst.

                    71645c5f-fec4-474e-9cfe-f47787d47df0-image.png

                    SKBS 1 Antwort Letzte Antwort
                    0
                    • SKBS SKB

                      @mephisto090 Und nur mit --json ?

                      M Offline
                      M Offline
                      Mephisto090
                      schrieb am zuletzt editiert von
                      #323

                      @skb fef0a3fa-e41e-4229-ac1f-c597456fb420-image.png

                      1 Antwort Letzte Antwort
                      0
                      • M Mephisto090

                        @skb laut ssh geht das irgendwie auch nicht

                        6f845c6f-a56a-46cb-8f9e-fff58d376ea9-image.png

                        DJMarc75D Offline
                        DJMarc75D Offline
                        DJMarc75
                        schrieb am zuletzt editiert von
                        #324

                        @mephisto090 Konsolentexte nicht als Bild sondern kopieren und in Codetags hier einsetzen ;)

                        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

                        M 1 Antwort Letzte Antwort
                        0
                        • M Mephisto090

                          @skb scheint zu funktionieren. Habe es jetzt mal im script so angepasst.

                          71645c5f-fec4-474e-9cfe-f47787d47df0-image.png

                          SKBS Offline
                          SKBS Offline
                          SKB
                          Developer Most Active
                          schrieb am zuletzt editiert von
                          #325

                          @mephisto090 Dann wird es laufen :)

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

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

                          M 2 Antworten Letzte Antwort
                          0
                          • DJMarc75D DJMarc75

                            @mephisto090 Konsolentexte nicht als Bild sondern kopieren und in Codetags hier einsetzen ;)

                            M Offline
                            M Offline
                            Mephisto090
                            schrieb am zuletzt editiert von Mephisto090
                            #326

                            @DJMarc75

                            root@iobroker:/opt/iobroker# /usr/bin/speedtest --json
                            
                            {
                                "bytes_received": 111995656,
                                "bytes_sent": 43466752,
                                "client": {
                                    "country": "DE",
                                    "ip": "???????",
                                    "isp": "Vodafone Germany DSL",
                                    "ispdlavg": "0",
                                    "isprating": "3.7",
                                    "ispulavg": "0",
                                    "lat": "11.111",
                                    "loggedin": "0",
                                    "lon": "22.222",
                                    "rating": "0"
                                },
                                "download": 89252315.3942659,
                                "ping": 26.842,
                                "server": {
                                    "cc": "DE",
                                    "country": "Germany",
                                    "d": 5.1528760454098,
                                    "host": "speedeu.akesacloud.co.za:8080",
                                    "id": "60714",
                                    "lat": "52.5167",
                                    "latency": 26.842,
                                    "lon": "13.3833",
                                    "name": "Berlin",
                                    "sponsor": "Akesa IT - Europe",
                                    "url": "http://speedeu.akesacloud.co.za:8080/speedtest/upload.php"
                                },
                                "share": null,
                                "timestamp": "2023-10-20T14:47:20.708905Z",
                                "upload": 34704998.6338473
                            }
                            
                            root@iobroker:/opt/iobroker# /usr/bin/speedtest -h
                            usage: speedtest [-h] [--no-download] [--no-upload] [--single] [--bytes] [--share] [--simple] [--csv] [--csv-delimiter CSV_DELIMITER] [--csv-header] [--json] [--list] [--server SERVER] [--exclude EXCLUDE] [--mini MINI]
                                             [--source SOURCE] [--timeout TIMEOUT] [--secure] [--no-pre-allocate] [--version]
                            
                            Command line interface for testing internet bandwidth using speedtest.net. -------------------------------------------------------------------------- https://github.com/sivel/speedtest-cli
                            
                            options:
                              -h, --help            show this help message and exit
                              --no-download         Do not perform download test
                              --no-upload           Do not perform upload test
                              --single              Only use a single connection instead of multiple. This simulates a typical file transfer.
                              --bytes               Display values in bytes instead of bits. Does not affect the image generated by --share, nor output from --json or --csv
                              --share               Generate and provide a URL to the speedtest.net share results image, not displayed with --csv
                              --simple              Suppress verbose output, only show basic information
                              --csv                 Suppress verbose output, only show basic information in CSV format. Speeds listed in bit/s and not affected by --bytes
                              --csv-delimiter CSV_DELIMITER
                                                    Single character delimiter to use in CSV output. Default ","
                              --csv-header          Print CSV headers
                              --json                Suppress verbose output, only show basic information in JSON format. Speeds listed in bit/s and not affected by --bytes
                              --list                Display a list of speedtest.net servers sorted by distance
                              --server SERVER       Specify a server ID to test against. Can be supplied multiple times
                              --exclude EXCLUDE     Exclude a server from selection. Can be supplied multiple times
                              --mini MINI           URL of the Speedtest Mini server
                              --source SOURCE       Source IP address to bind to
                              --timeout TIMEOUT     HTTP timeout in seconds. Default 10
                              --secure              Use HTTPS instead of HTTP when communicating with speedtest.net operated servers
                              --no-pre-allocate     Do not pre allocate upload data. Pre allocation is enabled by default to improve upload performance. To support systems with insufficient memory, use this option to avoid a MemoryError
                              --version             Show the version number and exit
                            
                            --version: Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]
                            
                            DJMarc75D 1 Antwort Letzte Antwort
                            0
                            • SKBS SKB

                              @mephisto090 Dann wird es laufen :)

                              M Offline
                              M Offline
                              Mephisto090
                              schrieb am zuletzt editiert von
                              #327

                              @skb leider nicht

                              16:49:14.239	info	javascript.0 (951689) Start javascript script.js.common.Speedtest
                              16:49:14.243	info	javascript.0 (951689) script.js.common.Speedtest: Speedtest: Erster Start des Skriptes! Datenpunkte werden erstellt!
                              16:49:14.244	info	javascript.0 (951689) script.js.common.Speedtest: Speedtest: Datenpunkte erstellt! Erster Speedtest wird in 30 Sekunden ausgeführt!
                              16:49:14.246	info	javascript.0 (951689) script.js.common.Speedtest: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
                              16:49:44.245	info	javascript.0 (951689) script.js.common.Speedtest: Speedtest mit Server 37316 gestartet! Der Test dauert zwischen 10 - 20 Sekunden!
                              16:49:44.457	error	javascript.0 (951689) script.js.common.Speedtest: SyntaxError: Unexpected end of JSON input
                              16:49:44.459	error	javascript.0 (951689) at generiere_array (script.js.common.Speedtest:182:18)
                              16:49:44.459	error	javascript.0 (951689) at script.js.common.Speedtest:231:28
                              16:49:44.570	error	host.iobroker Caught by controller[0]: at generiere_array (script.js.common.Speedtest:205:18)
                              16:49:44.570	error	host.iobroker Caught by controller[0]: at script.js.common.Speedtest:254:28
                              
                              1 Antwort Letzte Antwort
                              0
                              • SKBS SKB

                                @mephisto090 Dann wird es laufen :)

                                M Offline
                                M Offline
                                Mephisto090
                                schrieb am zuletzt editiert von Mephisto090
                                #328

                                @skb habe jetzt auch mal das -s durch --server ersetzt

                                17:01:04.619	info	javascript.0 (954175) Stop script script.js.common.Speedtest
                                17:01:06.582	info	javascript.0 (954175) Start javascript script.js.common.Speedtest
                                17:01:06.595	info	javascript.0 (954175) script.js.common.Speedtest: Speedtest: Erster Start des Skriptes! Datenpunkte werden erstellt!
                                17:01:06.597	info	javascript.0 (954175) script.js.common.Speedtest: Speedtest: Datenpunkte erstellt! Erster Speedtest wird in 30 Sekunden ausgeführt!
                                17:01:06.611	info	javascript.0 (954175) script.js.common.Speedtest: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
                                17:01:36.598	info	javascript.0 (954175) script.js.common.Speedtest: Speedtest mit Server 37316 gestartet! Der Test dauert zwischen 10 - 20 Sekunden!
                                17:01:36.935	error	javascript.0 (954175) script.js.common.Speedtest: Speedtest konnte nicht ausgeführt werden! Error: Command failed: /usr/bin/speedtest --json --server 37316 Cannot retrieve speedtest configuration ERROR: HTTP Error 403: Forbidden
                                

                                Jetzt kommt diese Meldung


                                Edit: Habe jetzt den Server mit der ID rausgenommen und er führt auch den Speedtest aus. Leider passen wohl die Vars nicht mehr.

                                17:07:56.335	error	javascript.0 (954175) script.js.common.Speedtest: TypeError: Cannot read properties of undefined (reading 'externalIp')
                                
                                SKBS 1 Antwort Letzte Antwort
                                0
                                • M Mephisto090

                                  @DJMarc75

                                  root@iobroker:/opt/iobroker# /usr/bin/speedtest --json
                                  
                                  {
                                      "bytes_received": 111995656,
                                      "bytes_sent": 43466752,
                                      "client": {
                                          "country": "DE",
                                          "ip": "???????",
                                          "isp": "Vodafone Germany DSL",
                                          "ispdlavg": "0",
                                          "isprating": "3.7",
                                          "ispulavg": "0",
                                          "lat": "11.111",
                                          "loggedin": "0",
                                          "lon": "22.222",
                                          "rating": "0"
                                      },
                                      "download": 89252315.3942659,
                                      "ping": 26.842,
                                      "server": {
                                          "cc": "DE",
                                          "country": "Germany",
                                          "d": 5.1528760454098,
                                          "host": "speedeu.akesacloud.co.za:8080",
                                          "id": "60714",
                                          "lat": "52.5167",
                                          "latency": 26.842,
                                          "lon": "13.3833",
                                          "name": "Berlin",
                                          "sponsor": "Akesa IT - Europe",
                                          "url": "http://speedeu.akesacloud.co.za:8080/speedtest/upload.php"
                                      },
                                      "share": null,
                                      "timestamp": "2023-10-20T14:47:20.708905Z",
                                      "upload": 34704998.6338473
                                  }
                                  
                                  root@iobroker:/opt/iobroker# /usr/bin/speedtest -h
                                  usage: speedtest [-h] [--no-download] [--no-upload] [--single] [--bytes] [--share] [--simple] [--csv] [--csv-delimiter CSV_DELIMITER] [--csv-header] [--json] [--list] [--server SERVER] [--exclude EXCLUDE] [--mini MINI]
                                                   [--source SOURCE] [--timeout TIMEOUT] [--secure] [--no-pre-allocate] [--version]
                                  
                                  Command line interface for testing internet bandwidth using speedtest.net. -------------------------------------------------------------------------- https://github.com/sivel/speedtest-cli
                                  
                                  options:
                                    -h, --help            show this help message and exit
                                    --no-download         Do not perform download test
                                    --no-upload           Do not perform upload test
                                    --single              Only use a single connection instead of multiple. This simulates a typical file transfer.
                                    --bytes               Display values in bytes instead of bits. Does not affect the image generated by --share, nor output from --json or --csv
                                    --share               Generate and provide a URL to the speedtest.net share results image, not displayed with --csv
                                    --simple              Suppress verbose output, only show basic information
                                    --csv                 Suppress verbose output, only show basic information in CSV format. Speeds listed in bit/s and not affected by --bytes
                                    --csv-delimiter CSV_DELIMITER
                                                          Single character delimiter to use in CSV output. Default ","
                                    --csv-header          Print CSV headers
                                    --json                Suppress verbose output, only show basic information in JSON format. Speeds listed in bit/s and not affected by --bytes
                                    --list                Display a list of speedtest.net servers sorted by distance
                                    --server SERVER       Specify a server ID to test against. Can be supplied multiple times
                                    --exclude EXCLUDE     Exclude a server from selection. Can be supplied multiple times
                                    --mini MINI           URL of the Speedtest Mini server
                                    --source SOURCE       Source IP address to bind to
                                    --timeout TIMEOUT     HTTP timeout in seconds. Default 10
                                    --secure              Use HTTPS instead of HTTP when communicating with speedtest.net operated servers
                                    --no-pre-allocate     Do not pre allocate upload data. Pre allocation is enabled by default to improve upload performance. To support systems with insufficient memory, use this option to avoid a MemoryError
                                    --version             Show the version number and exit
                                  
                                  --version: Python 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]
                                  
                                  DJMarc75D Offline
                                  DJMarc75D Offline
                                  DJMarc75
                                  schrieb am zuletzt editiert von
                                  #329

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

                                  root@iobroker

                                  da brauchen wir nicht weitermachen ;)

                                  Leg Dir einen User mit Sudorechten an.

                                  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

                                  M 1 Antwort Letzte Antwort
                                  0
                                  • DJMarc75D DJMarc75

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

                                    root@iobroker

                                    da brauchen wir nicht weitermachen ;)

                                    Leg Dir einen User mit Sudorechten an.

                                    M Offline
                                    M Offline
                                    Mephisto090
                                    schrieb am zuletzt editiert von Mephisto090
                                    #330

                                    @djmarc75 das ist docker ;) in diesem container läuft nur ein service und das ist iobroker. ich glaube da ist das egal ;) außerdem ist der nach außen hin nicht offen. ;)

                                    Thomas BraunT 1 Antwort Letzte Antwort
                                    0
                                    • M Mephisto090

                                      @djmarc75 das ist docker ;) in diesem container läuft nur ein service und das ist iobroker. ich glaube da ist das egal ;) außerdem ist der nach außen hin nicht offen. ;)

                                      Thomas BraunT Online
                                      Thomas BraunT Online
                                      Thomas Braun
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #331

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

                                      außerdem ist der nach außen hin nicht offen.

                                      Das ist ja kein Grund. Angriffe können ja auch von innen heraus erfolgen. Durch heruntergeladenen Code. Und dieser Code läuft mit den Rechten des users. Bei root halt ganz schlecht.
                                      Aber bei Docker soll es ja auch irgendwelchen Gründen, die mir bis heute noch niemand plausibel darlegen konnte, angeblich nicht möglich sein eine ordentliche Rechteverwaltung zu haben.

                                      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

                                      1 Antwort Letzte Antwort
                                      0
                                      • M Mephisto090

                                        @skb habe jetzt auch mal das -s durch --server ersetzt

                                        17:01:04.619	info	javascript.0 (954175) Stop script script.js.common.Speedtest
                                        17:01:06.582	info	javascript.0 (954175) Start javascript script.js.common.Speedtest
                                        17:01:06.595	info	javascript.0 (954175) script.js.common.Speedtest: Speedtest: Erster Start des Skriptes! Datenpunkte werden erstellt!
                                        17:01:06.597	info	javascript.0 (954175) script.js.common.Speedtest: Speedtest: Datenpunkte erstellt! Erster Speedtest wird in 30 Sekunden ausgeführt!
                                        17:01:06.611	info	javascript.0 (954175) script.js.common.Speedtest: registered 1 subscription, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
                                        17:01:36.598	info	javascript.0 (954175) script.js.common.Speedtest: Speedtest mit Server 37316 gestartet! Der Test dauert zwischen 10 - 20 Sekunden!
                                        17:01:36.935	error	javascript.0 (954175) script.js.common.Speedtest: Speedtest konnte nicht ausgeführt werden! Error: Command failed: /usr/bin/speedtest --json --server 37316 Cannot retrieve speedtest configuration ERROR: HTTP Error 403: Forbidden
                                        

                                        Jetzt kommt diese Meldung


                                        Edit: Habe jetzt den Server mit der ID rausgenommen und er führt auch den Speedtest aus. Leider passen wohl die Vars nicht mehr.

                                        17:07:56.335	error	javascript.0 (954175) script.js.common.Speedtest: TypeError: Cannot read properties of undefined (reading 'externalIp')
                                        
                                        SKBS Offline
                                        SKBS Offline
                                        SKB
                                        Developer Most Active
                                        schrieb am zuletzt editiert von
                                        #332

                                        @mephisto090 Die Variablen passen noch. Ich habe gerade die aktuelle Version des Speedtest (Speedtest by Ookla 1.2.0.84) installiert.
                                        Hier werden wie erwartet alle Daten gefüllt.

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

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

                                        1 Antwort Letzte Antwort
                                        0
                                        • M Offline
                                          M Offline
                                          Mephisto090
                                          schrieb am zuletzt editiert von Mephisto090
                                          #333

                                          @skb So habe mein Fehler gefunden. Irgendwie war das falsche speedtest-cli installiert. Es funktioniert jetzt und habe mal etwas das Skript angepasst. (Gerne kannst du es auf deiner Seite aktualisieren) Ich habe ein Trigger DP als Button hinzugefügt und das Skript den Button auswerten lassen. Des Weiteren ist Max. und Min. Ping dazugekommen sowie Paket Lost für Down- und Upload. Ich habe das Skript noch mit einer der letzten Statusmeldung ergänzt.

                                          /*
                                           * @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 = 0;
                                          
                                          // Speedtest Objekte
                                          var objekt = ["JSON_Output",
                                              "Ergebnisse.PaketLost_Download",
                                              "Ergebnisse.PaketLost_Upload",
                                              "Ergebnisse.Ping",
                                              "Ergebnisse.Ping_Min",
                                              "Ergebnisse.Ping_Max",
                                              "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",
                                              "Trigger",
                                              "Status"
                                          ];
                                          
                                          // Beschreibung der Objekte
                                          var beschreibung = ["JSON Ausgabe der Konsole",
                                              "Paketverlust in %",
                                              "Paketverlust in %",
                                              "Ping in ms",
                                              "Min. Ping in ms",
                                              "Max. 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",
                                              "Startet den Speedtest",
                                              "Status vom letzten Speedtest"
                                          ];
                                          
                                          // Einheiten der Objekte
                                          var einheiten = ["",
                                              "%",
                                              "%",
                                              "ms",
                                              "ms",
                                              "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",
                                              "number",
                                              "number",
                                              "number",
                                              "number",
                                              "string",
                                              "string",
                                              "string",
                                              "string",
                                              "number",
                                              "string",
                                              "string",
                                              "string",
                                              "string",
                                              "string",
                                              "number",
                                              "number",
                                              "number",
                                              "number",
                                              "number",
                                              "number",
                                              "string",
                                              "boolean",
                                              "string"
                                          ];
                                          
                                          // Rollen der Objekte
                                          var rolle = ["json",
                                              "value",
                                              "value",
                                              "value",
                                              "value",
                                              "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",
                                              "button",
                                              "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,
                                                  parseFloat((j.download.elapsed * 100 / j.download.bytes).toFixed(2)),
                                                  parseFloat((j.upload.elapsed * 100 / j.upload.bytes).toFixed(2)),
                                                  j.ping.latency,
                                                  j.ping.low,
                                                  j.ping.high,
                                                  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(),
                                                  false,
                                                  "Speedtest wird durchgeführt"
                                              ];
                                              return array_werte;
                                          }
                                          
                                          function speedtest() {
                                              // temporäre Variable für das Array
                                              var tmp_json;
                                              // Kommando für den Speedtest
                                              setStatus("Speedtest wird durchgeführt");
                                              var kommando = "/usr/bin/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');
                                                          setState(datenpunkt + "Status", "Fehler", true);
                                                          setStatus("Speedtest fehlerhaft");
                                                          return;
                                                      } else {
                                                          tmp_json = generiere_array(stdout);
                                                          aktualisiere_datenpunkt(tmp_json);
                                                          setStatus("Speedtest erfolgreich durchgeführt");
                                                          log('Speedtest durchgeführt. Ergebnisse: Download: ' + tmp_json[7] + ' MBits/s | Upload: ' + tmp_json[8] + ' MBits/s | Ping: ' + tmp_json[3] + 'ms');
                                                      }
                                                  });
                                          }
                                          
                                          function setStatus(text) {
                                              setState(datenpunkt + "Status", text, true);
                                          }
                                          
                                          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]
                                                  });
                                                  setStatus("Datenpunkte erfolgreich erstellt");
                                              }
                                          
                                              // 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('0,30 * * * *', speedtest);
                                          
                                          
                                          // Script ausführen wenn Datenpunkt "Speedtest-Trigger" = true
                                          on({ id: "javascript.0.Speedtest.Trigger", change: "any" }, function (obj) {
                                              if (obj.state.val===true) {
                                                  speedtest ();
                                              }
                                          });
                                          
                                          P 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          696

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe