NEWS
Script für einen SpeedTest über speedtest.net
-
Ist es möglich den Speedtest-net-Server (javascript.0.Speed-Test.data.server) manuell zu definieren, anstelle von lat/lon?
Mein Problem ist, dass ich immer einen langsamen Server zugewiesen bekomme (speedtest.stadtwerke-schorndorf.de:8080) und somit die Werte hinten und vorne nicht stimmen. -
@tr1plx sagte in Script für einen SpeedTest über speedtest.net:
Ist es möglich den Speedtest-net-Server (javascript.0.Speed-Test.data.server) manuell zu definieren, anstelle von lat/lon?
Mein Problem ist, dass ich immer einen langsamen Server zugewiesen bekomme (speedtest.stadtwerke-schorndorf.de:8080) und somit die Werte hinten und vorne nicht stimmen.https://forum.iobroker.net/topic/30118/web-speedy-teste-deine-internetverbindung
-
@tr1plx sagte in Script für einen SpeedTest über speedtest.net:
Mein Problem ist, dass ich immer einen langsamen Server zugewiesen bekomme (speedtest.stadtwerke-schorndorf.de:8080) und somit die Werte hinten und vorne nicht stimmen.
schau dir mal den neuen Adapter an.
https://forum.iobroker.net/topic/30118/web-speedy-teste-deine-internetverbindung -
Moin,
ich nutze das Script schon länger, bin sehr zufrieden.
Nun habe ich vor 2 Tagen die Ausführung per Cron verändert in var cronStr = '4 7-23 * * *'; (Jede Stunde zur 4. Minute zwischen 7 und 23 Uhr)
Was mir jedoch auffällt:
Letzte Nacht wurde es minütlich ausgeführt... Was ist an dem Cron falsch? Ich kann nichts erkennen.
-
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