NEWS
Speedtest-Skript von kreyenborg.koeln für Kabel-Gigabit
-
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. -
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.
-
Klar.
-
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
-
Ich betreibe keine vis. Keine Ahnung von Knöppen und wie man darüber ein skript auslöst.
-
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?
-
@loemic Du kannst auch einen Hilfsdatenpunkt erstellen und diesen mit "on" abonnieren, dann auf true/false prüfen und die Funktion des Skriptes aufrufen.
-
Wie kann ich denn die Funktion des Scripts aufrufen? Kannst du mir ein Beispiel zeigen?
-
@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.
-
@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
Leider geht es immer noch nicht. Script läuft zwar, aber die Änderung des Datenpunkts von False zu True bewirkt nichts... -
@loemic Hast Du denn einen boolean Datenpunkt erstellt?
-
Ja. Der 0_userdata.0.Speedtest.Speedtest-Trigger ist ein boolean-dp
-
@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
-
@loemic Ah, sorry, Fehler gefunden.
on({ id: "javascript.0.Speedtest.trigger", change: "any" }, function (obj) { if (obj.state.val===true) { /* state fehlte */ speedtest (); } });
-
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!"); } } );
-
@loemic ich weiss
Ist ja mein Speedtest-Skript
-
@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
-
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; }