NEWS
Script für einen SpeedTest über speedtest.net
-
Ich benutze das Script auch schon ein paar Jahre.
Allerdings kommt seit einiger Zeit folgender Fehler im Log:javascript.0 2023-01-21 11:50:00.608 error script.js.common.Speedtest.Internet_Speedtest: Speedtest Daten konnten nicht abgefragt werden javascript.0 2023-01-21 11:50:00.607 error script.js.common.Speedtest.Internet_Speedtest: {"error":{}}
Kann man da noch was machen?
Hier das Script:
/* Speed-Test SpeedTest mit Ausgabe von Down- / Uploadgeschwindigkeit und Ping http://forum.iobroker.net/viewtopic.php?f=21&t=4170 Erstellt 10.11.2016 by Cybertron angepasst 14.03.2017 by Pix 20.03.2017 Unit ms für Datenpunkt ping (danke 0018) Installation: npm install --global speed-test Aufruf: speed-test --json --verbose Beispiel-Ausgabe: {"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 = true; var instanz = 'javascript.' + instance + '.'; var pfad = 'Speed-Test.'; var cronStr = "*/5 * * * *"; function createStates() { // Allgemein createState(pfad + 'json', { name: 'JSON', desc: 'JSON Ausgabe', type: 'string', role: 'json' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'json erstellt'); }); createState(pfad + 'ping', { name: 'Ping', desc: 'Ping', type: 'number', unit: 'ms', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'ping erstellt'); }); createState(pfad + 'forceRefresh', { name: 'aktualisieren', desc: 'Werte neu einlesen', type: 'boolean', def: false, role: 'indicator' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'forceRefresh erstellt'); }); // Speed createState(pfad + 'data.speeds.download', { name: 'Download', desc: 'Downloadgeschwindigkeit (Mbit/s)', type: 'number', unit: 'Mbit/s', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.speeds.download erstellt'); }); createState(pfad + 'data.speeds.upload', { name: 'Upload', desc: 'Uploadgeschwindigkeit (Mbit/s)', type: 'number', unit: 'Mbit/s', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.speeds.upload erstellt'); }); createState(pfad + 'data.speeds.orginalDownload', { name: 'OrginalDownload', desc: 'Downloadgeschwindigkeit (bit/s)', type: 'number', unit: 'bit/s', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.speeds.original Download erstellt'); }); createState(pfad + 'data.speeds.orginalUpload', { name: 'OrginalUpload', desc: 'Uploadgeschwindigkeit (bit/s)', type: 'number', unit: 'bit/s', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.speeds.originalUpload erstellt'); }); // Client createState(pfad + 'data.client.ip', { name: 'IP', desc: 'Öffentliche IP-Adresse', type: 'string', role: 'text' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.client.ip erstellt'); }); createState(pfad + 'data.client.lat', { name: 'Latitude', desc: 'Latidude', type: 'number', // ########################## unit: '°', role: 'value.gps.latitude' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.client.lat erstellt'); }); createState(pfad + 'data.client.lon', { name: 'Longitude', desc: 'Longitude', type: 'number', // ########################## unit: '°', role: 'value.gps.longitude' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.client.lomg erstellt'); }); createState(pfad + 'data.client.isp', { name: 'ISP', desc: 'Internet-Service-provider', type: 'string', role: 'text' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.client.isp erstellt'); }); createState(pfad + 'data.client.isprating', { name: 'ISP-Rating', desc: 'ISP-Rating', type: 'number', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.client.isprating erstellt'); }); createState(pfad + 'data.client.rating', { name: 'Rating', desc: 'Rating', type: 'number', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.client.rating erstellt'); }); createState(pfad + 'data.client.ispdlavg', { name: 'ISP-DL-AVG', desc: 'ISPDLAVG', type: 'number', unit: 'Mbit/s', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.client.ispdlavg erstellt'); }); createState(pfad + 'data.client.ispulavg', { name: 'ISP-UL-AVG', desc: 'ISPULAVG', type: 'number', unit: 'Mbit/s', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.client.ispulavg erstellt'); }); // Server createState(pfad + 'data.server.host', { name: 'Host', desc: 'Hostname des Servers', type: 'string', role: 'text' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.host erstellt'); }); createState(pfad + 'data.server.lat', { name: 'Server-Latitude', desc: 'Latitude des Serverstandortes', type: 'number', // ########################## unit: '°', role: 'value.gps.latitude' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.lat erstellt'); }); createState(pfad + 'data.server.lon', { name: 'Server-Longitude', desc: 'Longitude des Serverstandortes', type: 'number', // ########################## unit: '°', role: 'value.gps.longitude' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.lon erstellt'); }); createState(pfad + 'data.server.location', { name: 'Server-Location', desc: 'Server-Standort', type: 'string', role: 'text.city' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.location erstellt'); }); createState(pfad + 'data.server.country', { name: 'Server-Country', desc: 'Land', type: 'string', role: 'text.country' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.country erstellt'); }); createState(pfad + 'data.server.cc', { name: 'Server-CC', desc: 'Länderkürzel', type: 'string', role: 'text' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.cc erstellt'); }); createState(pfad + 'data.server.sponsor', { name: 'Server-Sponsor', desc: 'Sponsor des Servers', type: 'string', role: 'text' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.sponsor erstellt'); }); createState(pfad + 'data.server.distance', { name: 'DistanzToServer', desc: 'Distanz zum Server in km', type: 'number', unit: 'km', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.distance erstellt'); }); createState(pfad + 'data.server.distanceMi', { name: 'DistanzToServerMeilen', desc: 'Distanz des Servers im Meilen', type: 'number', unit: 'Meilen', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.distanceMi erstellt'); }); createState(pfad + 'data.server.ping', { name: 'Server-Ping', desc: 'Ping zum Server', type: 'number', unit: 'ms', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.ping erstellt'); }); createState(pfad + 'data.server.id', { name: 'Server-ID', desc: 'Server ID', type: 'number', role: 'value' }, function() { if (logging) log('Objekt ' + instanz + pfad + 'data.server.id erstellt'); }); } function SpeedTest() { exec("speed-test --json --verbose", function(err, stdout, stderr) { if (err) { log(stderr, 'error'); log('Speedtest Daten konnten nicht abgefragt werden', '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; 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", parseFloat(ping)); //setState(instanz + pfad + "download", parseFloat(download)); //setState(instanz + pfad + "upload", parseFloat(upload)); setState(instanz + pfad + "data.speeds.download", parseFloat(Speed_Download)); setState(instanz + pfad + "data.speeds.upload", parseFloat(Speed_Upload)); setState(instanz + pfad + "data.speeds.orginalDownload", parseFloat(Speed_OriginalDownload)); setState(instanz + pfad + "data.speeds.orginalUpload", parseFloat(Speed_OriginalUpload)); setState(instanz + pfad + "data.client.ip", Client_IP); setState(instanz + pfad + "data.client.lat", parseFloat(Client_lat)); setState(instanz + pfad + "data.client.lon", parseFloat(Client_lon)); setState(instanz + pfad + "data.client.isp", Client_isp); setState(instanz + pfad + "data.client.isprating", parseFloat(Client_isprating)); setState(instanz + pfad + "data.client.rating", parseFloat(Client_rating)); setState(instanz + pfad + "data.client.ispdlavg", parseFloat(Client_ispdlavg)); setState(instanz + pfad + "data.client.ispulavg", parseFloat(Client_ispulavg)); setState(instanz + pfad + "data.server.host", Server_host); setState(instanz + pfad + "data.server.lat", parseFloat(Server_lat)); setState(instanz + pfad + "data.server.lon", parseFloat(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", parseFloat(Server_distance)); setState(instanz + pfad + "data.server.distanceMi", parseFloat(Server_distanceMi)); setState(instanz + pfad + "data.server.ping", parseFloat(Server_ping)); setState(instanz + pfad + "data.server.id", parseFloat(Server_id)); setState(instanz + pfad + 'forceRefresh', false); log('Speedtest Daten aktualisiert'); } // regelmässige Wiederholungen schedule(cronStr, SpeedTest); // einmaliger Start bei Skriptstart createStates(); setTimeout(SpeedTest, 1500); // Start beim Setzen auf true on(instanz + pfad + 'forceRefresh', function(obj) { if (!obj.state.ack && obj.state.val) SpeedTest(); });
-
das scheint mir ein altes Skript zu sein für die neueste version von spendetest:
* Skript Name: Speedtest * Skript Version: 1.3 * Erstell-Datum: 29. November 2021
-
Ich kann an der Stelle als Alternative das Skript von @SKB empfehlen. Das läuft superrund bei mir.
-
@thomas-braun sagte in Script für einen SpeedTest über speedtest.net:
das Skript von @SKB empfehlen
hast du da einen Link? Finde nichts.
-
-
-
@segway ist es möglich das alte zu aktualisieren, damit es wieder läuft?
-
-
@thomas-braun sagte in Script für einen SpeedTest über speedtest.net:
Ich kann an der Stelle als Alternative das Skript von @SKB empfehlen. Das läuft superrund bei mir.
Was ist daran anders (besser?) als das bisherige ?
-
@segway sagte in Script für einen SpeedTest über speedtest.net:
Was ist daran anders (besser?) als das bisherige ?
Das musst du du @SKB fragen.
Bei mir läuft es einfach. Im Gegensatz zu allen anderen Versuchen zuvor mit dem vofo-speedtest und dem 'hab-den-Namen-nicht-parat'-Adapter. -
@segway sagte in Script für einen SpeedTest über speedtest.net:
Was ist daran anders (besser?) als das bisherige ?
sehr genau bei großen Tarifen.
-
@negalein
Jetzt bin ich verwirrt.
Genau das hab ich doch oben referenziert ! -
@segway sagte in Script für einen SpeedTest über speedtest.net:
Jetzt bin ich verwirrt.
Genau das hab ich doch oben referenziert !Ok, das hab ich nicht gesehn.
Ich bezog mich auf deine Frage an @Thomas -
@negalein sagte in Script für einen SpeedTest über speedtest.net:
Ok, das hab ich nicht gesehn.
Ich bezog mich auf deine Frage an @ThomasJa klar, aber @Thomas-Braun hat ja auch dasgleiche verlinkt wie ich auch.....komisch
-
@segway sagte in Script für einen SpeedTest über speedtest.net:
dasgleiche verlinkt wie ich auch
Ja, komisch.
Ich finde keinen Link. Nur das.@segway sagte in Script für einen SpeedTest über speedtest.net:
das scheint mir ein altes Skript zu sein für die neueste version von spendetest:
* Skript Name: Speedtest * Skript Version: 1.3 * Erstell-Datum: 29. November 2021
-
@negalein sagte in Script für einen SpeedTest über speedtest.net:
@segway sagte in Script für einen SpeedTest über speedtest.net:
dasgleiche verlinkt wie ich auch
Ja, komisch.
Ich finde keinen Link. Nur das.Hätte ich reinposten sollen --> HIER
-
Ok, wie kann ich das alte script denn ordentlich deinstallieren? Erinnere mich daran irgendwelche Pakete über ssh installiert zu haben. Weißt du zufällig die Befehle?
Und welches muss ich jetzt installieren? (Link?)
Oder gibt es eventuell ein Adapter dafür?Vielen Dank im Voraus!!
-
Such mal durch meine Themen durch. Ich hab die Installation des Skriptes mal irgendwann beschrieben.
-
@segway Welches "bisherige" meinst Du denn?
-