NEWS
Script für einen SpeedTest über speedtest.net
-
- Pix: Wie/ welchen Button zum Aktualisieren hast du dir in Vis eingebaut? Magst das verraten? `
Ich hab mir für die ersten Tests einfach das Widget "Switch" in meine View gezogen und bei ObjectID "javascript.0.Speed-Test.forceRefresh" eingetragen.
Wenn man jetzt den Schalter betätigt startet das Skript und die Werte werden nach einigen Sekunden aktualisiert.
Aktuell verwende ich das Widget "Icon Toggle" bei welchem man noch die Möglichkeit hat verschiedene Icons für "Aktualisierung läuft / läuft nicht" anzeigen zu lassen.
-
Danke für das Script.
Wenn ich es richtig verstehe kommen die Daten von speedtest.com.
Aber wenn ich die Daten vergleiche sind da riesen Unterschiede:
Vom Script:
download 105.149
upload: 92.411
ping: 18
Von speedtest.com:
download 776.320
upload: 96.690
ping: 4
Kann das jemand erklären?
-
Reine Spekulation
Script läuft auf raspi ggf. per WLAN, webaufruf suf dem PC?
Gruß Rainer
-
Script läuft auf raspi ggf. per WLAN, webaufruf suf dem PC? `
Webaufruf auf dem PC. Das ist richtig!Der RPi hängt im LAN. Aber der hat natürlich nur 100 Mbit. Das ist das Nadelöhr. Sorry Denkfehler.
Mein Problem ist, meine WAN-Anbindung ist zu schnell
Aber damit ist das Script für mich nichts. Schade.
-
Kann mir mal schnell wer erklären wie ich das Script in den IOBroker einbaue? Ala Mini Anleitung. Vielen Dank
-
Mini Anleitung:
Java Script Adapter Installieren und aktivieren
Dann auf "Skripte"
z.B. Unter Common oben links auf das "Blatt" Symbol für "neues Skript"
Dann im Popup "JS Javascript" auswählen
Script mit Copy und Paste einfügen
Name vergeben und, Speichern und starten.
Falls im Skript noch Anpassungen vorgenommen werden müssen steht das im Skript. Da ich es selber nicht nutze kann ich dazu nichts sagen.
-
-
Das heißt jede Stunde um :29 UND :59.. Also zwei mal die Stunde..
Gruß
-
Ein Hit Danke. Ihr seit die Besten.
-
Hallo zusammen,
super sache was ihr da gemacht habt. Nur noch eine Frage: Es gibt ja die Möglichkeit beim js Adapter die npm Pakete anzugeben die installiert/verwendet werden sollen. Doch es scheint nicht zu funktionieren. Das Paket habe ich wie folgt hinzugefügt, aber es kommt folgende Fehlermeldung… script.js.tests.speedTest: /bin/sh: 1: speed-test: not found Was mache ich falsch? Gibt es eine andere Möglichkeit das Paket zu installieren, denn ich kann nur sporadisch auf das Terminal zugreifen da meistens nicht am Standort…
-
Hi Kleber, das ist falsch. Das muss wieder raus. Du musst unter Linux wie im Skript beschrieben mit npm das Programm installieren… Schau nochmal genau in das Skript. Steht direkt am Anfang.
VG Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Ok, danke für die Antwort. Es funktioniert nun. Nur was genau macht dann die Funktion im Script Adapter? Ich dachte dass diese Funktion das npm auch installiert wenn nicht vorhanden…
-
Ok, danke für die Antwort. Es funktioniert nun. Nur was genau macht dann die Funktion im Script Adapter? Ich dachte dass diese Funktion das npm auch installiert wenn nicht vorhanden… ` Hi, das Skript ist dafür da, regelmäßig einen Speedtest durchzuführen und das Ergebnis unter Objekte abzulegen. Nur das Programm selbst auf deiner Maschine macht ja nichts von selbst
VG Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Es gibt übrigens auch das NPM Modul 'speedtest-net' .. Damit kann man ohne exec() arbeiten..
var speedTest = require('speedtest-net'); var test = speedTest({maxTime: 5000}); test.on('data', data => { console.log(data); }); test.on('error', err => { console.log(err); });
Nur als kleiner Hinweis.
Gruß
-
Hallo zusammen,
hier mal die Früchte der einen oder anderen Hilfe hier aus dem Forum.
Ich brauchte eine Möglichkeit, regelmäßig einen Speedtest meines Hybridanschlusses zu machen.
Im Regelfall hab ich dies händisch über die Website gemacht. Dann hab ich ein npm-Paket gefunden, welches auf der speedtest_cli aufsetzt und eine Ausgabe als Json-String ermöglicht.
Daraus ist dann das folgende Script geworden.
/* Speed-Test SpeedTest mit Ausgabe von Down- / Uploadgeschwindigkeit und Ping Erstellt 10.11.2016 by Cybertron */ /* Installation: npm install --global speed-test */ /* Aufruf: spped-test --json --verbose */ /* Beispiel: {"ping":118,"download":2.2,"upload":2.2,"data":{"speeds":{"download":2.179,"upload":2.209,"originalDownload":239941,"originalUpload":242389}, "client":{"ip":"xxx.xxx.xxx.xxx","lat":51.2993,"lon":9.491,"isp":"Deutsche Telekom","isprating":3,"rating":0,"ispdlavg":13.86,"ispulavg":3.108}, "server":{"host":"speedtest.hillcom.de","lat":50.7511,"lon":9.2711,"location":"Alsfeld","country":"Germany","cc":"DE","sponsor":"HillCom Solutions", "distance":62.87,"distanceMi":39.06,"ping":117.8,"id":"6599"}}} */ var logging = false; var instanz = 'javascript.0'; instanz = instanz + '.'; var pfad = 'Status.Speed-Test.'; var cronStr = "*/30 * * * *"; var forceCreation = false; createState('Status.Speed-Test.json'); createState('Status.Speed-Test.ping',{name: 'Ping',desc: 'Ping',type: 'number'}); // 118 createState('Status.Speed-Test.download',{name: 'Download',desc: 'Downloadgeschwindigkeit (Mbit/s)',type: 'number',unit:'Mbit/s'}); // 2.2 createState('Status.Speed-Test.upload',{name: 'Upload',desc: 'Uploadgeschwindigkeit (Mbit/s)',type: 'number',unit:'Mbit/s'}); // 2.2 createState('Status.Speed-Test.data.speeds.download',{name: 'Download',desc: 'Downloadgeschwindigkeit (Mbit/s)',type: 'number',unit:'Mbit/s'}); // 2.179 createState('Status.Speed-Test.data.speeds.upload',{name: 'Upload',desc: 'Uploadgeschwindigkeit (Mbit/s)',type: 'number',unit: 'Mbit/s'}); // 2.209 createState('Status.Speed-Test.data.speeds.orginalDownload',{name: 'OrginalDownload',desc: 'Downloadgeschwindigkeit (bit/s)',type: 'number',unit:'bit/s'}); // 239941 createState('Status.Speed-Test.data.speeds.orginalUpload',{name: 'OrginalUpload',desc: 'Uploadgeschwindigkeit (bit/s)',type: 'number',unit:'bit/s'}); // 242389 createState('Status.Speed-Test.data.client.ip',{name: 'IP',desc: 'Öffentliche IP-Adresse',type: 'string'}); // xxx.xxx.xxx.xxx createState('Status.Speed-Test.data.client.lat',{name: 'Latitude',desc: 'Latidude',type: 'string'}); // 51.2993 createState('Status.Speed-Test.data.client.lon',{name: 'Longitude',desc: 'Longitude',type: 'string'}); // 9.491 createState('Status.Speed-Test.data.client.isp',{name: 'ISP',desc: 'Internet-Service-provide',type: 'string'}); // Deutsche Telekom createState('Status.Speed-Test.data.client.isprating',{name: 'ISP-Rating',desc: 'ISP-Rating',type: 'number'}); // 3 createState('Status.Speed-Test.data.client.rating',{name: 'Rating',desc: 'Rating',type: 'number'}); // 0 createState('Status.Speed-Test.data.client.ispdlavg',{name: 'ISP-DL-AVG',desc: 'ISPDLAVG',type: 'number',unit:'Mbit/s'}); // 13.86 createState('Status.Speed-Test.data.client.ispulavg',{name: 'ISP-UL-AVG',desc: 'ISPULAVG',type: 'number',unit:'Mbit/s'}); // 3.108 createState('Status.Speed-Test.data.server.host',{name: 'Host',desc: 'Hostname des Servers',type: 'string'}); // speedtest.hillcom.de createState('Status.Speed-Test.data.server.lat',{name: 'Server-Latitude',desc: 'Latitude des Serverstandortes',type: 'long'}); // 50.7511 createState('Status.Speed-Test.data.server.lon',{name: 'Server-Longitude',desc: 'Longitude des Serverstandortes',type: 'long'}); // 9.2711 createState('Status.Speed-Test.data.server.location',{name: 'Server-Location',desc: 'Server-Standort',type: 'string'}); // Alsfeld createState('Status.Speed-Test.data.server.country',{name: 'Server-Country',desc: 'Land',type: 'string'}); // Germany createState('Status.Speed-Test.data.server.cc',{name: 'Server-CC',desc: 'Länderkürzel',type: 'string'}); // DE createState('Status.Speed-Test.data.server.sponsor',{name: 'Server-Sponsor',desc: 'Sponsor des Servers',type: 'string'}); // HillCom Solutions createState('Status.Speed-Test.data.server.distance',{name: 'DistanzToServer',desc: 'Distanz zum Server in km',type: 'number',unit:'km'}); // 62.87 createState('Status.Speed-Test.data.server.distanceMi',{name: 'DistanzToServerMeilen',desc: 'Distanz des Servers im Meilen',type: 'number',unit:'Meilen'}); // 39.06 createState('Status.Speed-Test.data.server.ping',{name: 'Server-Ping',desc: 'Ping zum Server',type: 'number'}); // 117.8 createState('Status.Speed-Test.data.server.id',{name: 'Server-ID',desc: 'Server ID',type: 'number'}); // 65599 function SpeedTest() { exec("speed-test --json --verbose", function(err, stdout, stderr) { if (err) { log(stderr,'error'); return; } writeDP(stdout); }); } function writeDP(jsonstring){ var objects = JSON.parse(jsonstring); var jsonStr = jsonstring; //log (jsonStr); var ping = objects.ping; var download = objects.download; var upload = objects.upload; //log ('Ping =' + ping); //log ('Download = ' + download); //log ('Upload = ' + upload); var Speed_Download = objects.data.speeds.download; var Speed_Upload = objects.data.speeds.upload; var Speed_OriginalDownload = objects.data.speeds.originalDownload; var Speed_OriginalUpload = objects.data.speeds.originalUpload; //log ('Speed_Download = ' + Speed_Download); //log ('Speed_Upload = ' + Speed_Upload); //log ('OriginalDownload = ' + Speed_OriginalDownload); //log ('OriginalUpload = ' + Speed_OriginalUpload); var Client_IP = objects.data.client.ip; var Client_lat = objects.data.client.lat; var Client_lon = objects.data.client.lon; var Client_isp = objects.data.client.isp; var Client_isprating = objects.data.client.isprating; var Client_rating = objects.data.client.rating; var Client_ispdlavg = objects.data.client.ispdlavg; var Client_ispulavg = objects.data.client.ispulavg.varvalue; var Server_host = objects.data.server.host; var Server_lat = objects.data.server.lat; var Server_lon = objects.data.server.lon; var Server_location = objects.data.server.location; var Server_country = objects.data.server.country; var Server_cc = objects.data.server.cc; var Server_sponsor = objects.data.server.sponsor; var Server_distance = objects.data.server.distance; var Server_distanceMi = objects.data.server.distanceMi; var Server_ping = objects.data.server.ping; var Server_id = objects.data.server.id; setState(instanz + pfad + "json",jsonStr); setState(instanz + pfad + "ping",ping); setState(instanz + pfad + "download",download); setState(instanz + pfad + "upload",upload); setState(instanz + pfad + "data.speeds.download",Speed_Download); setState(instanz + pfad + "data.speeds.upload",Speed_Upload); setState(instanz + pfad + "data.speeds.orginalDownload",Speed_OriginalDownload); setState(instanz + pfad + "data.speeds.orginalUpload",Speed_OriginalUpload); setState(instanz + pfad + "data.client.ip",Client_IP); setState(instanz + pfad + "data.client.lat",Client_lat); setState(instanz + pfad + "data.client.lon",Client_lon); setState(instanz + pfad + "data.client.isp",Client_isp); setState(instanz + pfad + "data.client.isprating",Client_isprating); setState(instanz + pfad + "data.client.rating",Client_rating); setState(instanz + pfad + "data.client.ispdlavg",Client_ispdlavg); setState(instanz + pfad + "data.client.ispulavg",Client_ispulavg); [url] Simulation Regroupement de prêt [/url] setState(instanz + pfad + "data.server.host",Server_host); setState(instanz + pfad + "data.server.lat",Server_lat); setState(instanz + pfad + "data.server.lon",Server_lon); setState(instanz + pfad + "data.server.location",Server_location); setState(instanz + pfad + "data.server.country",Server_country); setState(instanz + pfad + "data.server.cc",Server_cc); setState(instanz + pfad + "data.server.sponsor",Server_sponsor); setState(instanz + pfad + "data.server.distance",Server_distance); setState(instanz + pfad + "data.server.distanceMI",Server_distanceMi); setState(instanz + pfad + "data.server.ping",Server_ping); setState(instanz + pfad + "data.server.id",Server_id); } // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, SpeedTest);
Wer es nutzen möchte, nur darauf achten, dass man das npm-Paket installieren muss, so wie es im Script-Header steht.
Gruss
Silvio `
Hallo, was ist los damit? -
Ok, danke für die Antwort. Es funktioniert nun. Nur was genau macht dann die Funktion im Script Adapter? Ich dachte dass diese Funktion das npm auch installiert wenn nicht vorhanden… ` Hi, das Skript ist dafür da, regelmäßig einen Speedtest durchzuführen und das Ergebnis unter Objekte abzulegen. Nur das Programm selbst auf deiner Maschine macht ja nichts von selbst
VG Thorsten
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk `
Ich glaube ich habe mich nicht klar ausgedrückt. Mir ist klar was das script macht. Nur nicht wozu die Funktion der "Zusätzliche NPM-Module" im Script adapter ist. Ich hätte erwartet dass wenn ich das Modul hier angebe dass es installiert wird…
-
Habe jetzt nicht den ganzen Thread gelesen, aber das ist genau die Aufgabe der Option "zusätzliche npm Module".
Nach dem Eintragen muss die js-Instanz aber neu gestartet werden.
Gruß
Rainer
-
Hi.
Ich habe anscheinend ein Problem mit dem Speedtest.
Bisher lief es sehr gut und er hat mir immer die aktuelle Bandbreite gemessen.
Seit ca. 1 1/2 Tagen bekomme ich aber nur noch unrealistische Werte.
Es schwankt immer so um 0,5m/Bit Ping 3600.
Ein Test am PC liefert immer noch normale Werte.
Kann es sein, dass Speedtest.net was geändert hat?
Funktioniert es bei euch noch?
-
Hi.
Ich habe anscheinend ein Problem mit dem Speedtest.
Bisher lief es sehr gut und er hat mir immer die aktuelle Bandbreite gemessen.
Seit ca. 1 1/2 Tagen bekomme ich aber nur noch unrealistische Werte.
Es schwankt immer so um 0,5m/Bit Ping 3600.
Ein Test am PC liefert immer noch normale Werte.
Kann es sein, dass Speedtest.net was geändert hat?
Funktioniert es bei euch noch?
filename="2018-07-14 00_08_13-vis.jpg" index="0">~~ ` Hi, habe eben noch einen Test bekommen via Skript… Läuft alles bei mir noch einwandfrei...
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk
-
Hi, habe eben noch einen Test bekommen via Skript… Läuft alles bei mir noch einwandfrei...
Gesendet von meinem HUAWEI RIO-L01 mit Tapatalk `
Irgendwas ist kaputt.:(
Habe gerade nochmal mit komplett anderer Hardware (einem zweiten Raspi und meiner alten IOBroker Intallation) getestet.
__Das kann ich als Fehlerquelle auch ausschließen.
Bekomme auch dort das gleiche Ergebnis.__
Jemand noch eine Idee?
EDIT: Habe auf dem zweiten PI jetzt doch normale Werte. Liegt also anscheinend doch an der ersten Instanz.
Aber wo fange ich an zu suchen?
Netzwerkeinstellungen sind an sich gleich, habe das Modul mit npm install –global speed-test überinstalliert, das skript neu angelegt. Ergebnis bleibt immer gleich.