[Modul] Internet-Bandbreite überwachen

Ich hab mich da an die bisher installierte pip Version gehalten. Ich habe die nun runtergeworfen.
Aber ja, unter /usr/bin erkennt es das Modul auch selbst und muss nicht separat angegeben werden.

Ich habe es nun noch mal mit der korrekten Version getestet und da funktioniert dein Modul nach dem akzeptieren der Lizenz wie gewohnt gut.

Dann wäre mein Tipp für Windows weiter oben maximal, dass man mal prüft unter welchem Account der symcon Dienst läuft. Ich würde mal vermuten im Standard als Local System, hier bräuchte man also psexec um die Lizenz im Kontext des Computerkontos zu akzeptieren.

Da ich meine Änderungen ja fälschlicherweise für die speedtest Version von sivel (das was per pip kommt) gemacht hatte, würde das ja dann dort wahrscheinlich passen. Ich hatte die Mbit umrechnung da auch rausgenommen weil der Wert da bei parallelen Messungen nicht gestimmt hatte.
Also wahrscheinlich nur die Änderungen in den switch-Klausen tauschen. ^^

nun ja, bei 100 MBit wirst du nie 100 MBit sehen (brutto/netto-Durchsatz)

ja, es halt geholfen, aber meine Abweichung war ja 1xx MBit statt 400 Mbit.

Die 400 MBit werden aber auch nicht immer angezeigt, obwohl ich von Unitymedia sogar 420 oder mehr bekomme - aber ein Counterpart zu haben, der soviel liefert geht auch nicht immer.

Und GBit-Switches zu haben sagt nicht zwingend aus, auf wieviel die sich die LAN-Partner geeignet haben. Wenn man einen managed Switch hat, kann man das häufig dort nachschauen, auf den beteiligten Rechnern eigentlich auch (auch wenn ich das nicht aus den Stegreif weis) und bei manchen Schwitches ist auch eine LED am Port mit verschiedenen Farben.

sorry, aber das habe ich nicht verstanden…

Ich versuche mal den PR zu korrigieren, das ist vielleicht verständlicher.
Testen kann ich es aber jetzt auch nicht mehr, da ich ja nun auch auf die Ookla Version umgestellt habe.

ok.
grundsätzlich habe ich ja in dem Modul sowohl die pip-Version als auch die Ookla-Version berücksichtigt.

Und das wohl korrekt.
Meine Probleme ergaben sich nur aus den verdrehten Versionen.
Ich habe jetzt noch mal beide Versionen installiert und kurz nacheinander getestet. Das sind die Rohwerte im JSON für einen 50Mbit Anschluß:

Download pip: 47117489.562177554
Download Ookla: 46887688

Ergibt 44,9347 für pip und 47,61 für Ookla, beides nah genug für Schwankungen.

Es sieht mit dem originalen Speedtest schonmal direkt besser aus:
Testing download speed…
Download: 96.45 Mbit/s
Testing upload speed…
Upload: 88.26 Mbit/s

Allerdings habe ich im Modul dann folgendes Problem:
(Aus dem Debug)
01.10.2021, 14:00:06 | PerformTest | cmd="/usr/local/bin/speedtest --format=json"
01.10.2021, 14:00:06 | PerformTest | duration=0,26, exitcode=0, status=ok, err=
01.10.2021, 14:00:06 | PerformTest | data=speedtest: error: unrecognized arguments: --format=json

Das Problem ist, es muss heißen --json (das „format=“ ist fehl am Platz).
Ich hatte das Modul von Github installiert, dann lief der Test - aber das JSON wurde danach nicht ordentlich ausgewertet (unrecognized data telegram oder so).
Also im Debug kamen Daten an, aber das Modul wollt die nicht lesen.

Nachdem ich es vom Modul-Store habe (ich hatte gehofft, dass es dort korrigiert ist), kann ich aber nicht mal mehr das ändern.
Kannst Du mal nachsehen?

Hier ist das was im JSON ankommt (aus der Shell):
{„client“: {„rating“: „0“, „loggedin“: „0“, „isprating“: „3.7“, „ispdlavg“: „0“, „ip“: „000.000.000.000“, „isp“: „Niemand - Geheim“, „lon“: „6.0000“, „ispulavg“: „0“, „country“: „DE“, „lat“: „50.0000“}, „bytes_sent“: 120446976, „download“: 93456103.21657476, „timestamp“: „2021-10-01T11:49:12.572797Z“, „share“: null, „bytes_received“: 117178474, „ping“: 16.783, „upload“: 94148010.38286898, „server“: {„latency“: 16.783, „name“: „Geilenkirchen“, „url“: „http://speedtest.vhnetz.de:8080/speedtest/upload.php“, „country“: „Germany“, „lon“: „6.0000“, „cc“: „DE“, „host“: „speedtest.vhnetz.de:8080“, „sponsor“: „VHNetz“, „lat“: „50.0000“, „id“: „42251“, „d“: 92.4343679435183}}

Kannst Du das Modul ändern?
Ich habe mal auf Beta umgestellt, falls Du testen möchtest.

D.h. die Konfiguration steht auf „Orkla“ und nicht auf „Standardversion von speedtest-cli“

Wie ich oben ja geschrieben hatte unterstützt das Modul beide Versionen.
demel

Hallo Maeffjus,

ich vermute mal du hast da das selbe Problem wie ich.
Die speedtest Binary in /usr/local/bin/ ist die von sivel aus der pip-Installation, nicht die originale von der Ookla Webseite.
Probier mal ein:

$ /usr/local/bin/speedtest --version

Wenn da folgende Ausgabe kommt, ist es die falsche/pip-Version:

speedtest-cli 2.1.3
Python 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0]

Korrekt für die Ookla Version wäre:

Speedtest by Ookla 1.0.0.2 (5ae238b) Linux/arm-linux-musleabi 5.10.52-v7l+ arm/armv7l

The official command line client for testing the speed and performance
of your internet connection.

Ich habe das bei mit wir folgt gelöst:

$ wget https://install.speedtest.net/app/cli/ookla-speedtest-1.0.0-arm-linux.tgz
$ tar xfz ookla-speedtest-1.0.0-arm-linux.tgz
$ sudo mv speedtest /usr/bin/
$ rm -f ookla-speedtest-1.0.0-arm-linux.tgz speedtest.5 speedtest.md

Damit hast du die Ookla Version unter /usr/bin/speedtest, was vom Modul auch ohne angabe des Pfads gefunden wird.
Dann nur noch speedtest mal manuell ausführen um die Lizenzbedingungen zu akzeptieren.

Hey, danke - aber bringt nichts.
Ich habe das originale deinstalliert.
Ich nehme an, dass in deinen Befehlen das „tar xfz ookla-speedtest-1.0.0-i386-linux.tgz“ falsch ist (das i386…etc) denn es passt nicht mit der Datei von wget.
Aber - ich bin zu doof dafür :smiley: - tatsächlich schaffe ich es den Kram soweit auszuführen, aber ich habe dann kein Verzeichnis unter /usr/bin/speedtest und unter /usr/bin liegt speedtest als bin, die gibt als Version aber 2.1.3 aus.

Übrigens hatte ich die Installation nach der Anleitung von Speedtest selbst gemacht: Speedtest CLI: Internet speed test for the command line

Ups, da hast du natürlich recht. Wir wollen ja die runtergeladene Datei entpacken.
Ich fixe das mal oben.

Ja - aber das gefixt in dem Tar-Befehl gibt bei mir immer noch die Version 2.1.3 aus.

Du hast also mit den Befehlen oben die entpackte speedtest bin nach /usr/bin/ verschoben (der mv Befehl) und wenn du dann
/usr/bin/speedtest --version
eingibst, bekommst du immer noch die 2.1.3?
Du darfst dann natürlich nicht mehr die alte pip version unter /usr/local/bin/speedtest abfragen. An der hat sich ja nichts geändert.

Genau so sieht es aus.
Ich bin in dem Ordner /usr/bin - dort ist diese Version:
/usr/bin/speedtest: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, stripped

linaro@tinkerboard:/usr/bin$ speedtest --version
speedtest-cli 2.1.3
Python 2.7.13 (default, Apr 16 2021, 14:02:03) [GCC 6.3.0 20170516]

Auch wenn du direkt in dem Ordner /usr/bin/ bist, nimmt er beim Aufruf von einfach nur speedtest das was er zuerst in der PATH Variable findet.
Gib es mal bitte direkt mit Pfad an:

/usr/bin/speedtest --version

Einfach die komplette Zeile eintippen unter Enter drücken.
Alternativ kannst du so die aus dem aktuellen Ordner aufrufen:

./speedtest --version

Okay, soweit so gut, es kommt jetzt das korrekte Programm!
Aber wenn ich im IPS-Modul das Originale angebe, dann bleibt das Problem mit dem --Format=json bestehen.
Also nach wie vor das gleiche Problem. Es sind - soweit ist das sehe, beide Versionen installiert.
Was tun sprach Zeus?
Wenn ich im Modul bei Experteneinstellungen eingebe /usr/bin/speedtest , dann steht da „ungültige Vorraussetzungen“.

UPDATE: Nach einigem manuellen Löschen & Kopieren kommt jetzt das:
01.10.2021, 15:52:21 | CheckPrerequisites | cmd=/usr/bin/speedtest --version --accept-license --accept-gdpr, exitcode=134, output=Array( [0] => terminate called after throwing an instance of ‚std::logic_error‘ [1] => what(): basic_string::_M_construct null not valid [2] => Aborted)

Ich hatte die Dateien je unter /usr/local/bin und /usr/bin kopiert…

Also bei mir muss ich im Modul den Pfad nicht noch mal extra angeben seit es unter /usr/bin/speedtest liegt, aber schaden tut es ja auch nicht.

Was passiert denn, wenn du den Befehl /usr/bin/speedtest --version --accept-license --accept-gdpr in der Shell ausführst? Da sollte auch nur wieder die Versionsanzeige (1.0.0.2) kommen.

ja, das ist ein immer wieder mal auftretenden Problem. Ich habe das immer, wenn ich meinen Server rebootet habe, dann muss ich einmal IPS von Hand starten, dann geht es ohne Fehler.
Ich habe leider in den ganzen Zeit nicht herausfinden können, was da schief läuft.
Ist ein Problem des speedtest, wenn man in Internet sucht, findet man das zu einigen Programmen aber keine ecjte Lösung.

demel

Also - ich habe das Tinkerboard rebooted.
Aber das Problem bleibt.

Wenn ich den o.g. Befehl in der Shell ausführe, dann kommt:

linaro@tinkerboard:/usr/local/bin$ /usr/bin/speedtest --version --accept-license --accept-gdpr
Speedtest by Ookla 1.0.0.2 (5ae238b) Linux/arm-linux-musleabi 4.4.132+ arm/armv7l

The official command line client for testing the speed and performance
of your internet connection.
linaro@tinkerboard:/usr/local/bin$