Hallo,
nachdem meine Mädchen sich über ein langsames Internet beschwert haben, bin ich auf die Suche gegangen wie der Durchsatz überwacht werden kann. Meine Lösung folgend kurz beschrieben.
- Basis ist das Tool speedtest-cli > http://binarynature.blogspot.de/2013/03/measure-internet-connection-speed-from-linux-command-line.html (//binarynature.blogspot.de/2013/03/measure-internet-connection-speed-from-linux-command-line.html)
- dazu habe ich folgendes script geschrieben
#!/usr/bin/perl
use strict;
use warnings;
use autodie;
use DateTime;
my $is = "InternetSpeedTest";
my $dt = DateTime->now(time_zone=>"local");
my $y = $dt->year;
$dt =~ s/T/_/g;
open (FILE, ">> /opt/fhem/MyFHEM/Toolz/InternetSpeedTest/InternetSpeedTest-$y.log") || die;
my $speedstr = `/opt/fhem/MyFHEM/Toolz/InternetSpeedTest/speedtest-cli --simple`;
my @speedarr = split(/\n/, $speedstr);
print FILE "$dt $is $speedarr[0]\n";
print FILE "$dt $is $speedarr[1]\n";
print FILE "$dt $is $speedarr[2]\n";
close (FILE);
- das script wird über cron stündlich ausgeführt
- die Auswertung der log-Datei übernimmt folgender fhem-code
define FileLog_CheckInternetSpeed FileLog /opt/fhem/MyFHEM/Toolz/InternetSpeedTest/InternetSpeedTest-%Y.log .*Download:.*
attr FileLog_CheckInternetSpeed group Internet
attr FileLog_CheckInternetSpeed logtype text
attr FileLog_CheckInternetSpeed room SystemLog
- der plot dazu sieht dann so aus
(siehe Anhang / see attachement)
Viel Spass dabei, falls der ein oder andere seinen Provider und dessen Vertragsdaten überprüfen möchte.
ciao walter
Hallo,
schreit das nicht förmlich nach einem Wiki-Eintrag?
Grüße
P.S.: Ich werd das heut abend mal auf unserem RasPi ausprobieren - Danke schonmal dafür.
klasse idee!
ich hab mir mal erlaubt die idee direkt zu klauen ein 'richtiges' fhem modul draus zu machen. damit kann man:
- das ganze auch per dblog loggen (das war der eigentliche grund)
- in einem notify auf werte reagieren die zu klein sind
- die aktuellen werte per stateFormat direkt in der raum übersicht oder einem floorplan anzeigen
zur zeit ist der pfad zu speedtest-cli im code fest vorgegeben und muss von hand geändert werden. falls es noch mehr interessenten gibt würde ich das konfigurierbar machen.
gruss
andre
Hallo,
das wird ja immer besser - danke.
Grüße
Edith:
Zitatdas ganze auch per dblog loggen (das war der eigentliche grund)
Ich hab mir die 32_speedtest.pm noch nicht durchgeschaut aber d.h. es werden auch Logfile-Events generiert die ich per FHEM2FHEM LOG:.* in mein dblog bekomme?
Sorry für die Frage aber ich bin noch meinen Rollo-Schnippsel am sunset/sunrise-tauglich machen und hab nur mal kurz im Forum vorbei geschaut was es neues gibt.
Edith2: Ich hab die 32_speedtest.pm jetzt mal auf meinen RasPi installiert und auch angepasst (die Pfadangabe hab ich gefunden). Eine Anleitung wie man Speedtest auf seinem RasPi installieren kann reiche ich nach wenn gewünscht.
Kann man den Test (kann man sicher nur wie) per at auch aufrufen und die Werte in einen Dummy schreiben lassen?
Hallo Andre,
freut mich mächtig, dass meine Lösung so gut ankommt.
Eines muss ich noch ergänzen - zuerst hatt ich die Lösung in fhem am laufen (Aufruf von speedtest-cli, etc). Dabei habe ich im fhem.log (tail ...) festgestellt, dass fhem während des Testes des Internets stillsteht. Da dies doch ein paar Sekunden sind, habe ich den Test 'ausgelagert' und werte in fhem nur die Daten aus.
Mag ein Missverständnis meinerseits sein. Ich bin noch nicht so lange dabei.
ciao walter
Hallo,
wie hast du den Aufruf aus FHEM heraus getätigt?
Dank Rudi frage ich meine I2C-Sensoren am RasPi so ab
Zitatmy ($befehl) = "sudo i2cget -y 1 ".$sensor." 0x00 w &";
Das & am Ende startet die Abfrage wohl in einem eigenen "Task" der FHEM nicht blockiert.
Bitte nicht schlagen wenn ich daneben liege.
Grüße
Edith: Ich hab mir grad die 32_Speedtest.pm durchgeschaut.
Wirklich nur geschaut (wie ein Ochs vorm Tor).
Mensch muss ich noch dazu lernen (zum Glück, sonst wärs ja fad ^^).
Ein Aufruf aus FHEM per at und die Werte dann in einen Dummy schreiben wäre nice ;-)
Ich stell mal die Installation für einen RasPi zusammen wenn das ok ist (nicht jeder kann Englisch und auch ich musste mich durch die Meldungen quälen ^^)
Hallo,
das mit dem '&' stimmt, aber dann kommst Du nicht an die Ausgabe von speedtest-cli. Zumindest fällt mir auf keine passende Lösung ein.
ciao walter
Hallo,
in meinem Script (Sub in der 99_myUtils.pm) bekomme ich den Rückgabewert den Sensors dann so:
my ($result) = `$befehl`;
Gesamt sieht die Abfrage des Sensors mit Rückgabe dann so aus:
my ($befehl) = "sudo i2cget -y 1 ".$sensor." 0x00 w &";
my ($result) = `$befehl`;
wobei $sensor durch den aufrufenden Sensor ersetzt wird - bei mir 0x48 / 0x49 / 0x4c für 3 I2C-Sensoren.
Grüße
Edith: Hier mal eine erste "Anleitung" für die Installation auf einem RasPi mit wheezy
also meine version verwendet BlockingCall und ruft speedtest-cli damit im hintergrund auf. fhem steht wärden der ausfürung nicht!
warum at und dummy?
du machst einfach eindefine speedtest speedtest
und hast automatisch jede stunde die werte im device. es werden ganz normale readings und events generiert die du mit dblog oder filelog loggn kannst und die du ganz normal per notify weiterverarbeiten kannst. wenn die jede stunde nicht gefällt gibst du einfach das intervall mit an.
als zusätzlichen 2. paramter kannst du beim define auch den server angeben. wenn du den server weg lässt dann verwendet speedtest-cli automatisch den nächstgelegenen.
gruss
andre
Hallo,
Danke für den Tipp. Hab vor 15 Jahren das letzte Mal professionell programmiert, die letzten Jahre etwas JavaScript. Es fehlt einfach die Erfahrung und Übung.
Aber dafür gibt es ja dieses Forum und Leute denen es Spaß macht sich gegenseitig zu helfen und auszutauschen.
ciao walter
Hallo,
@andre
Zitatdefine speedtest speedtest
das ist natürlich genial (hast du das vorher schonmal geschrieben??).
Das ist natürlich perfekt - gleich ins pdf aufnehm.
Grüße
Edith1:
Zitatwenn du den server weg lässt dann verwendet speedtest-cli automatisch den nächstgelegenen.
Den geografisch nächtgelegenen nehm ich mal an.
Hier das überarbeitete File
ich gebe zu ich hatte nur geschrieben das es ein 'richtiges' fhem modul ist :)
gruss
andre
edit: die komplette dokumentation fehlt auch noch. ich hab es nur schnell in einer halben stunde pause zusammengestückelt weil ich BlockingCall ausprobieren wollte.
edit2: wenn es wirklich interessenten gibt kann ich es zumindest in contrib einchecken. falls es noch mehr werden vielleicht auch ganz offiziell.
Hallo,
Zitatich gebe zu ich hatte nur geschrieben das es ein 'richtiges' fhem modul ist :)
Ich bin auch nur ein 'richtiger' FHEM-User :)
Zitatund die dokumentation fehlt auch noch. ich hab es nur schnell in einer halben stunde pause zusammengestückelt weil ich BlockingCall ausprobieren wollte.
Wenn du willst kann ich dir das pdf-File gerne als Word-Dokument schicken und du baust es aus - wenn dir das als Anfang genügt.
Grüße
Hallo,
wenn ich mich richtig erinnere, werden die geographisch am nächsten liegend ermittelt und dann angepingt. Der Server mit dem besten Ping wird dann zum Testen genommen.
ciao walter
Hallo,
@andre
das $interval ist vermutlich die Abfragezeit.
Du hast aber noch eine if-Abfrage drinnen wenn $interval <10*60 ist wird $interval auf 10*60 gesetzt.
Ist soweit natürlich ok - wenn man das weiß ;-)
Ich hab aber ein 15*60 eingegeben und nach einem reload des Moduls steht in fhem immer noch 3600 (also jede Stunde)
Hast du da nochmal eine Abfrage drinnen (ich hab auf die schnelle keine gefunden) oder wo liegt schon wieder mein Denkfehler.
Grüße
< 10 minuten ist nicht wirklich sinnvoll weil der test fast eine minute läuft und du dann 10% deiner bandbreite nur mit dem speedtest verbringst. eine andere beschränkung gibt es nicht.
wenn du das intervall änderst musst du natürlich save machen damit es auch so geänder gespeichert wird.
wenn du das intervall mit modify änderst brauchst du keinen neustart. der wert wird söfort übernommen und das intervall started neu. save brauchst du trozdem.
gruss
andre
Hallo,
bei mir kommen aktuell Bedenken auf, wenn jeder diesen Test dauerhaft laufen lässt. Ca 1800 fhem Benutzer, dazu eine gewisse Dunkelziffer. Das wird das Netz nicht in die Knie zwingen, aber wir sollten doch hier mit Verantwortung rangehen.
Diesbezüglich habe ich zwei Punkte
- gibt es eine Möglichkeit, dass ich das Testen über fhem mittels eines buttons An/Aus schalten kann?
- wie kann ich über fhem einstellen, dass der Test n-Tage durchgeführt werden soll?
ciao walter
du kannst mit einem dummy das speedtest device enablen oder disablen. wobei der teil in meinem modul noch fehlt.
was meinst du mit n-tage? alle n-tage? das geht mit einem at nicht direkt. du müsstest das at jeden tag laufen lassen und in deinem code prüfen welcher wochentag ist. oder in meinem modul das Intervall gross genug wählen. z.b. 259200 -> alle 3 tage.
gruss
andre
Hallo Andre,
ich meinte, wenn ich es aktivierte soll es n-Tage den Test durchführen mit der eingestellten Periode. Danach soll es automatisch auf Aus gehen.
ciao walter
Hallo,
also ich hab
my $interval =15*60;
(siehe Anhang / see attachement)
eingestellt.
Mit <CTRL-X> j gespeichert (in Putty) und dann ein
reload 32_speedtest.pm
in fhem durchgeführt.
Aber ich denke mal das Problem ist mal wieder zwischen Bildschirm und Tastatur ...
Ich bekomm keine Readings angezeigt und INTERVAL steht immer noch auf 3600.
(siehe Anhang / see attachement)
Der "10-minütliche" Test war auch nur zu Testzwecke um schneller Ergebnisse sehen zu können.
Später stell ich das auf alle 6 oder 12 Stunden da mir das mehr als ausreichend erscheint für Kabel-BW.
Grüße
so. hier das erste update :)
- es gibt ein attrubut disable. wenn das auf 1 steht wird kein test durchgeführt.
- es gibt ein set statusRequest. damit kann man den test manuell auslösen. auch wenn disable auf 1 steht.
- ich habe das minimale intervall auf eine halbe stunde vergrössert.
@walter: das geht out of the box nicht. in das modul könnte man recht einfach einbauen das es n mal prüft und sich dann von selber auf disabled setzt.
gruss
andre
Hallo,
du kannst per Dummy ein at mit einem Zähler starten der dann deine n-Tage (n-Stunden oder wie auch immer) den Test durchführt und dann auf disabled geht bis du de nDumy wieder startest (und damit den Zähler wieder auf disabled 0 setzt).
Grüße
2. update, diesmal aber ungetestet:
- es gibt ein attribut checks-till-disable. das wird bei jedem automatischen test eins runtergezhält. wenn es 0 ist wird disable autmatisch auf 1 gesetzt.
gruss
andre
edit: @puschel: hab ich dir schon mal gesagt das ich dummys meist gar nicht mag :)
um das intervall zu ändern musst du nichts am quelltext machen.
du gibts es beim define mit an:define speedtest speedtest 900
um es zu ändern: modify speedtest 3600
was genau beim reload passiert hängt in deinem fall vom define ab. wenn da ein intervall mit angegeben ist kannst du es an der stelle die du geändert hast eh nicht ändern weil es vom wert aus dem define wieder überschrieben wird.
gruss
andre
Hallo,
Zitatedit: @puschel: hab ich dir schon mal gesagt das ich dummys meist gar nicht mag :)
Stimmt, da war mal was - ich werd auch nicht jünger :-)
Aber in AmigaBasic (oder C-64 Basic) waren Variablen schön innerhalb des gesamten Programms gültig.
Hier "programmieren" wir ja ausserhalb von Perl (fhem.pl oder wie auch immer).
Hier schreib ich mir Stati gern in einen Dummy um ihn später oder in einem anderen Script wieder abfragen zu können - für alles andere bin ich leider etwas zu lern-resistent.
Grüße
Edith:
Zitatdefine speedtest speedtest 900
Da hab ich wohl was überlesen - sorry.
Wer ich gleich im pdf anpassen.
hat sich erledigt :)
Hallo,
@andre
Ich hab jetzt speedtest mit Zusatz 900 definiert und in fhem erscheint folgendes:
(siehe Anhang / see attachement)
INTERVAL ist immer noch 1800 obwohl DEF auf 900 steht.
Oder ist das mal wieder, schon wieder, das Problem zwischen Bildschirm und Tastatur (und/oder ich bin einfach nur zu "faul" zum warten wielange es dauert)?
Grüße
schau mal etwas weiter oben... ich hatte im update das minimum intervall auf eine halbe stunde gesetzt. es tut mir leid dich so zu ärgern :)
wenn du mit einem kleineren intervall testen willst kommentier die zeile 37: #if( $interval < 30*60 ) { $interval = 30*60; }
aus.
gruss
andre
Hallo,
Zitates tut mir leid dich so zu ärgern :)
Du ärgerst mich nicht ;-) eher umgekehrt ...
Die Zeile
if( $interval < 30*60 ) { $interval = 30*60; }
lautet bei mir in 32_speedtest.pm
if( $interval < 10*60 ) { $interval = 10*60; }
(siehe weiter oben der Screenshoot).
Zitatwenn du mit einem kleineren intervall testen willst kommentier die zeile 37:
Will ich ja nicht unbedingt - das Intervall steht in der 32_speedtest.pm auf 10*60 (heisst für mich alle 10 Minuten - 10*60 Sekunden)
Irgendwie, vermute ich, reden wir grad aneinander vorbei.
Grüße
Edith: Ich hab vorhin - wie von dir erwähnt - define speedtest speedtest 900 definiert - das INTERVAL steht aber immer noch auf 1800,
Ich vermute mal ich denk mal wieder etwas verkehrt oder zu kompliziert.
Zitatdefine speedtest speedtest 900 definiert - das INTERVAL steht aber immer noch auf 1800
hmmm... dann stimmt wirklich irgendwo etwas nicht. ausser aus dem letzten update kommt nirgends eine 1800 bei mir vor.
gib mal
modify speedtest 900
ein. worauf steht es dann? wenn immer noch auf 1800 lösch es mal bitte und leg es neu an. worauf steht es dann? wenn immer noch 1800 editierst du nicht die version die fhem verwendet.
edit: ich hab noch mal meine aktuelle version dran gehängt. da ist jetzt auch checks-till-disable geprüft und geht. die version von oben hat den check ein mal zu wenig gemacht.
gruss
andre
Hallo,
ein
Zitatmodify speedtest 900
bringt leider auch nur ein INTERVAL 1800.
Ein
Zitatdelete speedtest
mit anschliessendem
define speedtest speedtest 900
bringt auch
(siehe Anhang / see attachement)
Grüße
Edith: Letzte Version eingespielt
zeig mir mal die zeile 37 aus der version die du jetzt verwendest. wenn es die letzte ist geht < eine halbe stunde nicht mehr ohne die zeile auszukomentieren.
gruss
andre
Hallo,
wenn du mir sagst wie das geht :-(
Ich liefer dir mal einen Screenshot der 32_speedtest.pm die ich zur zeit in Verwendung habe.
(siehe Anhang / see attachement)
Das ist die letze Version die ich aus dem beitrag von dir heruntergeladen und per WinSCP auf den RasPi übertragen und dort per reload 32_speedtest.pm nachgeladen habe.
Grüße
alles ist gut ...
bei der version die du verwendest (und die version davor) kannst du ohne änderung am quelltext kein intervall kleiner 1800 sekunden einstellen.
also entweder geduld haben oder wie oben geschrieben die zeile auskommentieren.
oder per statusRequest den test von hand starten.
gruss
andre
Hallo,
ich hoffe mal ich hab im Quelltext die richtige Stelle erwischt -
(siehe Anhang / see attachement)
und hab my $interval = 10*60;
gesetzt.
Ich hab dann in fhem ein reload 32_speedtest.pm
durchgeführt und auch ein
delete speedtest
mit anschliessendem define speedtest speedtest
bewusst ohne Zeitangabe im define aber in FHEM hab ich immer noch das stehen:
(siehe Anhang / see attachement)
ich glaube wir reden wirklich aneinander vorbei. also ganz ausführlich: 35 my $interval = 60*60;
36 $interval = $a[2] if(int(@a)>=3);
37 if( $interval < 30*60 ) { $interval = 30*60; }
- in zeile 35 wird der default auf 3600 gesetzt -> eine stunde
- in zeile 36 wird das intervall mit dem wert aus dem define überschrieben wenn dort etwas angegeben ist
- in zeile 37 wird alles was kleiner als 1800 ist auf 1800 gesetzt -> eine halbe stunde minimum
wenn weniger als eine halbe stunde einstellen willst musst du zeile 37 auskomentieren. wenn du nur den ausfruf testen willst reicht ein set statusRequest
gruss
andre
Hallo Andre,
ich habe disable auf 1 gesetzt, trotzdem wird weiter getestet. Hab ich da was missverstanden?
ciao walter
hallo walter,
du hast recht. ich habe nicht aufgepasst beim einbauen von checks-till-disable und es geht in deiner version nur in kombination damit.
eine reparierte version hängt an. jetzt gehen beide attribute auch wirklich unabhängig voneinander.
gruss
andre
noch ein kleines update:
- es ist jetzt möglich den pfad zu speedtest-cli im attribut path anzugeben.
gruss
andre
Hallo Andre,
super funktioniert. Danke für tolle und professionelle Umsetzung.
ciao walter
Hallo,
von mir auch ein Danke - auch für das beantworten meiner etwas "dümmlichen" Fragen.
Im pdf-File sind noch Fehler und die attr-Angaben werde ich heute noch anpassen und dann neu hochladen.
Das kann aber noch ein bischen dauern - ich muss jetzt erstmal mit meiner Frau zum Not-Zahnarzt einen Backenzahn reissen.
Soviel noch schnell:
Die Pfadangabe im pdf ist falsch.
Es heisst nicht
Zitat/usr/locale/bin/speedtest-cli/speedtest-cli --simple
sondern
Zitatusr/local/bin/speedtest-cli --simple
Das wird aber dann durch das
Zitatattr speedtest path ____
ersetzt.
Grüße
Edith: v2_3 ist aktuell noch um das define für das LogFile ergänzt worden.
Fehler oder Änderugswünsche bitte melden - diese Anleitung ist nur für den privaten Gebrauch bestimmt und erhebt keinen Anspruch auf Vollständigkeit.
Edith2: v2_4 - Fehler im Define des FileLog ausgebessert - sorry aber mir fehlen ein paar Stunden Schlaf *schnarch*
hallo puschel,
ich würde vorschlagen alles was änderungen im quelltext betrifft aus dem pdf raus zu streichen. mit dem path attribut sollte es keinen grund mehr geben noch hand anzulegen.
der server als zweiten parameter muss wie im beispiel zum testen auch mit der nummer und nicht mit dem ort angegeben werden.
anbei noch ein plot file. das ist zwar für dblog aber das ist ja einfach anzupassen. da up- und download zumindest bei mir sehr unterschiedlich ist hab ich beides nicht auf der gleichen y-achse aufgetragen und ping verwendet eine dritte y-achse. fhem kann leider noch keine diese 3. y-achse leider noch nicht darstellen und beschriften.
(siehe Anhang / see attachement)
gruss
andre
Hallo,
Zitatich würde vorschlagen alles was änderungen im quelltext betrifft aus dem pdf raus zu streichen. mit dem path attribut sollte es keinen grund mehr geben noch hand anzulegen.
Wird gemacht.
Zitatder server als zweiten parameter muss wie im beispiel zum testen auch mit der nummer und nicht mit dem ort angegeben werden.
Lass ich besser weg - es wird ja der geografisch nächste genommen zur Prüfung.
Chart sieht bei mir so aus:
(siehe Anhang / see attachement)
Edith: V_2_5 ist nun die bereinigte Version (Pfadangabe im Quellcode entfernt).
Den Server hab ich mal drinnen gelassen aber auf die Nummer geändert.
Ich hab erst heut mittag geschnallt das die Pfad-Angabe falsch war ^^ - daher der Chart erst seit heute 15:21 (es dürfen mal alle lachen) :-)
Grüße
ich hab das modul eben offiziell eingecheckt. es sollte morgen im update mit kommen.
@puschel: wie wäre es du machst aus dem pdf einen wiki beitrag?
gruss
andre
Hallo,
Zitat@puschel: wie wäre es du machst aus dem pdf einen wiki beitrag?
Äh - ich??
Wieso ich? Es ist dein Modul.
Ich weiß ja garnicht wie man sowas macht - ich hab noch nichtmal einen Acc fürs Wiki (ja, den hat man recht flott, Mail an den Admin reicht - ich weiß).
Aber in welche Rubrik?
Welcher Titel?
Ich kann das pdf noch öffentlich-tauglich gestalten aber gleich einen ganzen Wiki-Beitrag ...
Ah - nochmal drüberlesen und jetzt hab ichs kapiert.
Kein Problem.
Ich überarbeit das pdf nochmal und mach es sauber dann kannst du es gerne in den Wiki-Beitrag mit aufnehmen.
Und ich dachte schon du meinst das ich den Wiki-Beitrag mache *schwitz*
Das pdf mach ich dir gern öffentlich-tauglich (wie schon geschrieben) *schnauf*
Grüße
lach. 2000 beiträge und angst vom wiki. dabei war es sogar deine idee ganz oben :)
wenn du den text schreibst kopiere ich es ins wiki.
gruss
andre
Hallo,
von den 2000 Beiträgen rechnest du mal knapp nur 1/3 die mit fhem zu tun haben und davon nochmal, wenn es hoch kommt, 1/3 die sinnvoll mit fhem zu tun haben und dann nochmal grosszügig 1/10 - laut Adam-Riese dann so zwischen 20 und 30 Beiträge die wirklich Sinn ergeben haben.
Also nix mit 2000 - da zählt ja auch mit wenn ich im OT mal ein Hallo reinschreib.
Den Text bereite ich dir gern auf - morgen im laufe des Tages.
Aber einen Wiki-Eintrag, ne sorry.
Das ist dein Modul, das hast du geschrieben - also beschreib es auch im Wiki (wer kann das besser als der Modulautor).
Ich steuer gern die Installationsanleitung für den RasPi bei aber auf anderen Plattformen auf denen FHEM läuft - keine Ahnung (das muss einer machen der die Hardware dazu hat).
Grüße
es war mit dem falschen pfad eingecheckt. habs eben repariert. morgen sollte es dann stimmen.
gruss
andre
Hallo,
anbei die versprochene Anleitung für den RasPi.
Änderungswünsche/Anpassungen/Korrekturen kann ich gerne jederzeit vornehmen - teilt mir Eure Wünsche einfach mit.
Grüße
Hallo Leute,
ich habe auf meinem RPi nun auch den Speedtest nach Anleitung installiert - schöne Sache übrigens!! Über die Kommandozeile klappt die Abfrage super. Ich erhalte folgende Ergebnisse:
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Deutsche Telekom AG (93.219.107.174)...
Hosted by Netsign GmbH (Berlin) [27.16 km]: 701.269 ms
Testing download speed........................................
Download: 38.53 Mbit/s
Testing upload speed..................................................
Upload: 2.59 Mbit/s
Share results: http://www.speedtest.net/result/2798048145.png
Meine Definitionen im fhem.cfg sieht folgendermaßen aus:
define speedtest speedtest 1800 2292
attr speedtest path /usr/local/bin
define FileLog_speedtest FileLog ./log/InternetSpeedTest-%Y.log .*Download:.*
attr FileLog_speedtest logtype text
attr FileLog_speedtest room Logs
Mein Problem ist nun, dass ich folgende Fehlermeldungen erhalte und das Logfile von FHEM zwar angelegt wurde, aber leer ist.
speedtest-cli: error: unrecognized arguments: --simple--server 2292
Use of uninitialized value in concatenation (.) or string at ./FHEM/32_speedtest.pm line 138.
Use of uninitialized value in concatenation (.) or string at ./FHEM/32_speedtest.pm line 138.
Use of uninitialized value in concatenation (.) or string at ./FHEM/32_speedtest.pm line 138.
Offensichtlich hat das Reading aber irgenwann, bzw. um 12:46 mal korrekte Ergebnisse erhalten - siehe Bild.
Kann mir jemand sagen was ich falsch gemacht habe, bzw. vergessen habe??
vielen Dank
der wolf
Hallo,
lösch mal im DEF die 2292 raus bitte und setz nochmal ein
set speedtest statusRequest
ab.
Grüße
Edith: Ich hab mich grad per update auf die letzte 32_speedtest.pm gehoben und bekomme, egal ob mit oder ohne Serverangabe, keine Werte mehr abgefragt/angezeigt.
arggg
das mit dem server hab ich versaut. es ist repariert und eingecheckt.
ohne server sollte es aber funktionieren. tut es beim mir zumindest. bist du sicher das disable nicht gesetzt ist? oder checks-till-disable != 0 ist ?
gruss
andre
Ok, hab ich gemacht. Die Fehlermeldung scheint weg zu sein. Auch habe ich wieder ein frisches Reading erhalten.
Soweit so gut. Allerdings ist mein Logfile (was ich gern für den Plot verwenden würde) immernoch leer.
Hat noch jemand eine Idee??
Danke
Hallo,
der Fehler war mal wieder zwischen Bildschirm und Tastatur.
Ich sollte auch den richtigen Pfad angeben zur speedtest-cli ;-)
Grüße
die logfile definition ist falsch.
es sollte so aussehen:
define FileLog_speedtest FileLog ./log/InternetSpeedTest-%Y.log speedtest:.*
gruss
andre
Hallo,
hmm.
Also ich habs wie im pdf angegeben definiert und bekomme ich Charting Frontend brav die Kurven angezeigt.
Grüße
Ok, also mit dieser Definition für das Logfile habe ich nun auch Werte im Logfile.
define FileLog_speedtest FileLog ./log/InternetSpeedTest-%Y.log speedtest:.*
Allerdings wird kein Plot ausgegeben....So sieht mein Plot derzeit aus (siehe Anhang).
Grüße
wolf
nimm mal das speedtest.gplot file das mit eingecheckt ist.
ich denke du musst nur die DbLog zeilen auf FileLog ändern und die spalte anpassen.
gruss
andre
Hallo Wolf,
Du musst Deine Einstellungen mit Write gplot file sichern. Dann bekommst Du ein Ergebnis.
ciao walter
(siehe Anhang / see attachement)
Hallo,
ich habe das Modul eingebunden. Hat etwas gedauert bis es funktioniert hat. Die Anleitung von Roland weicht etwas von meiner Installation ab.... Und ich musste noch folgende Änderungen durchführen:
fhem.cfg
define FileLog_Speedtest FileLog /var/log/fhem/InternetSpeedTest-%Y.log speedtest:.*
-> download:.* hat keine Werte gebracht, mit speedtest:.* ging es dann
speedtest.gplot:
#FileLog 4:speedtest.download\x3a::
-> die Werte sind bei mir an der 4. Stelle
Zitat2013-06-26_21:53:40 speedtest ping: 684.659 ms
2013-06-26_21:53:40 speedtest download: 12.16 Mbit/s
2013-06-26_21:53:40 speedtest upload: 0.35 Mbit/s
32_speedtest.pm
Zeile 125
$cmd .= "/speedtest-cli --simple ";
$cmd .= "--server $server" if( $server );
-> ich habe hinter simple ein Leerzeichen gemacht. Der Grund ist die Fehlermeldung im Logfile
Zitatusage: speedtest-cli [-h] [--share] [--simple] [--list] [--server SERVER]
speedtest-cli: error: unrecognized arguments: --simple--server 2364
Ich finde solche Systemüberwachungstool gut. Da hat man schon mal eine Datenbasis auf die man zurückgreifen kann wenn es irgendwelche Probleme gibt.
MfG Achim
Hallo,
@Achim - auch auf einem RasPi?
Das
Zitatdefine FileLog_Speedtest FileLog /var/log/fhem/InternetSpeedTest-%Y.log speedtest:.*
habe ich bei mir auch schon geändert.
Bei mir hat der "fehlerhafte" Eintrag nur deshalb einen Chart gebracht weil ich auf meinem RasPi sqlite3 in Verbindung mit dem Chart-Frontend verwende.
Wird morgen eingepflegt (danke für den Hinweis).
Zum weblink in FHEM kann ich leider nichts beitragen - diesen verwende ich nicht.
evtl. kannst du das ja machen und andre kann es dann ins Wiki mit einfliessen lassen?
Grüße
das mit dem leerzeichen hatte ich heute mittag schon repariert. das ist dann morgen im update. ich hab keine ahnung wie das zwischendurch verloren gegangen ist und es die ganze zeit noch keiner bemerkt hat. aber egal.
gruss
andre
Hallo,
hier die geänderte Version.
Angepasst: Definition des FileLog - regexp auf speedtest:.* geändert
Grüße
Hallo,
hier nochmal eine korrigierte Version (danke an Achim).
Angepasst: Diverse Schreibfehler korrigiert.
Grüße
Hallo,
und nochmal eine korrigierte Version (jetzt können aber bald keine Fehler mehr drinnen sein ^^).
Danke an Klaus.
Angepasst: Weitere Schreibfehler korrigiert
Grüße
Hallo Andre,
gestern schriebst Du, ich solle mal das von dir eingecheckte - bei mir auch vorhandene(!) - speedtest.gplot verwenden. Was mir nicht klar ist: WIE?
Wegen des neuen frontends habe ich in meiner Config folgendes für die sqlite definiert:
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
define myDbLog DbLog /opt/fehem/db.conf .*:.*
und nun mein Speedtest:
define speedtest speedtest 1800
attr speedtest path /usr/local/bin
define FileLog_speedtest FileLog ./log/InternetSpeedTest-%Y.log speedteset:.*
Wie geb ich denn jetzt an, dass ich DEINEN Plot speedtest.gplot verwenden kann??
Sorry für's blöde Fragen aber manche Dinge sind mir noch nicht ganz klar.
Grüße
Wolf
Hallo,
nochmal danke Klaus.
Jetzt haben wir aber wirklich bald jede Zeile ausgebessert.
Ich frag mich wie ich das Tool installiert bekommen hab mit so einer schlechten Anleitung ^^
Grüße
du brauchst einen weblink:define wl_speedtest weblink fileplot FileLog_speedtest:speedtest:CURRENT
weil das eingecheckte speedtest.gplot für dblog ist musst du dann noch die DbLog zeilen in FileLog ändern:#FileLog 4:speedtest.download\x3a::
#FileLog 4:speedtest.upload\x3a::
#FileLog 4:speedtest.ping\x3a::
gruss
nadre
Hallo,
@andre
Könntest du bitte mal das define des weblink für deine speedtest.gplot posten?
Grüße
schau doch mal in den post genau über deinem ...
gruss
andre
Hallo,
ah. Ok.
Ich wusste nicht das die weblinks gleich sind für FileLog und DBLog.
Danke dir.
Grüße
wir reden mal wieder aneinander vorbei. sorry...
du hast recht. oben ist die version für filelog.
für dblog schaut es so aus:define wl_speedtest weblink dbplot <dein dblog device>:speedtest
und dann natürlich ohne änderungen am gplot file.
gruss
andre
Hallo,
Zitatwir reden mal wieder aneinander vorbei.
Naja, ich hab noch überlegt ob ich dazu schreiben soll für dblog hab mir dann aber gedacht du wirst das schon merken da das FileLog ja grad drübersteht ;-)
Danke für das define
Ich werd mir das wohl auch für meine Plots einbauen - ein DBLog hab ich ja schon.
Grüße
Edith: Wunderbar - danke andre.
Kleine Frage am Rande (ich will den Beitrag hier ja nicht kapern):
Wie machst du das bei einer Temperatur? z.B. anstelle der temp4.gplot
In den gplot-Files ist ja überall FileLog definiert.
Ein einfach FileLog gegen DBLog tauschen wird da ja wohl nicht reichen.
Hallo,
herzlichen Dank, für das Modul und die Beschreibung. Gefällt mir sehr gut!
Danke auch an justme1968 für die Beschreibung zum ändern von DBLog in FileLog.
Gruß,
Alex
Hallo,
mal schauen - wenn mich heute noch die Muse küsst werd ich die Definitionen für FileLog und DBLog in die Beschreibung mit aufnehmen.
Hoffentlich bau ich dann nicht wieder jede Menge Fehler ein ^^
Grüße
Edith: Die Muse kam grad vorbei ;-)
Hallo Andre,
super gemacht. Jetzt habe ich auch einen Plot der aus der DB kommt und es sieht gut aus!!!
Vielen Dank für die Hilfe!
Eine Frage hab ich dann aber doch noch:
Ich erhalte auf der Konsole trotz (scheinbar) korrektem Plot Meldungen folgender Art:
Argument "704.606 ms" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 190.
Argument "29.73 Mbit/s" isn't numeric in sprintf at ./FHEM/98_SVG.pm line 190.
Oder hab ich jetzt wieder was falsch gemacht??
hier noch einmal meine Definitionen:
speedtest.gplot
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title 'speedtest'
set ylabel "Mbit/s"
set y2label "Mbit/s"
set y3label "ms"
#DbLog speedtest:download::
#DbLog speedtest:upload::
#DbLog speedtest:ping::
plot
using 1:2 ls l0 axes x1y2 title 'download (Mbit/s)' with lines,
using 1:2 ls l1 axes x1y1 title 'upload (Mbit/s)' with lines,
using 1:2 ls l2 axes x1y3 title 'ping (ms)' with lines,
und die Config:
define speedtest speedtest 1800 2292
attr speedtest path /usr/local/bin
define wl_speedtest weblink dbplot myDbLog:speedtest
attr wl_speedtest room Plots
Grüße
Wolf
die meldungen kommen weil ich beim reading die einheiten stehen lasse und im plot min,max und current für die überschrift berechnet werden. ich bin mir nicht sicher ob sich da etwas gegen tun lässt ohne am svg file etwas zu ändern.
gruss
andre
Hallo Andre,
danke auch für diese Aufklärung, dann bin ich jetzt - zumindest bei diesem Thema - rundum zufrieden!!
Wolf
Hallo,
feine Sache, ich hatte ähnlich Anstrengungen unternommen, aber aus Zeitgründen abgebrochen!
Gibt es eine ALternative der speedtest-cli für eine Installation auf der 7390?
-resyncer
ich habe eben hier: http://forum.fhem.de/index.php?t=msg&goto=84648&rid=430#msg_84648 (//forum.fhem.de/index.php?t=msg&goto=84648&rid=430#msg_84648) einen patch vorgestellt um eine dritte y-achse in den svg plots anzeigen zu können.
gruss
andre
Hallo,
ein kleiner Fehler hat sich noch in der Anleitung eingeschlichen.
Im Abschnitt "Filelog definieren" ist der Punkt zwischen log und speedtest im define Befehl zu viel. Mit dem Punkt bleibt das Logfile bei mir leer, ohne den Punkt klappt alles.
Ansonsten super Anleitung. Hat bei mir auf einem Ubuntu 12.04 bestens funktioniert.
BR
Dirk
Hallo,
danke für den Hinweis.
Anbei die geänderte Version.
Grüße
Hallo zusammen,
vielen Dank für diesen Thread. Er hat für persönliche Erheiterung gesorgt, die ich euch natürlich nicht vorenthalten möchte:
Es ist nämlich überaus dämlich, sich tierisch über den Kabelinternetprovider aufzuregen, dass nur 80MBit statt theoretischer 150MBit aus der Dose kommen, wenn man den Speedtest auf einem Raspberry laufen lässt, der "nur" eine 100MBit-Netzwerkschnittstelle hat.
Soviel dazu...
...die Probleme hätte ich gerne ;)
Hallo,
Zitat...die Probleme hätte ich gerne ;)
Dem kann ich mich nur anschliessen ^^ (Sorry ;-) ).
ZitatRaspberry laufen lässt, der "nur" eine 100MBit-Netzwerkschnittstelle hat.
Ja nun, das steht in der Produktbeschreibung zum RasPi aber so drinnen.
Da hilft auch kein GBit-Switch ;-)
Aber wie schon gesagt.
DAS Problem hätte ich auch gern (150 MBit *surrr*).
Grüße
P.S.: Ganz leise. Bei unserem Provider habe ich einen 30 MBit-Zugang geordert - der Speedtest sagt knapp unter 50 MBit *grübel*
Auf meinem RPi komme ich auch nie über 80Mbit obwohl die Leitung 150 hergeben sollte, aber das 100mbit netzwerkinterface ist ja natürlich hinderlich ;)
Wobei sicher auch die Server nicht so gut mit den richtig hohen Bandbreiten klarkommen.
Hallo,
nach Änderungen im Toolnamen musste die Datei angepasst werden.
Ich hoffe ich hab nicht mehr Fehler eingebaut als ich gelöscht habe 8)
Bitte querlesen und Korrekturen hier posten - nicht per PM.
Danke.
Grüße
Hi,
ich habe probiert - nach Anleitung 1.4 - das ganze ans laufen zu kriegen, bekomme aber bei Schritt 7 immer diese Fehlermeldung:
cp: cannot stat `/home/pi/repo/remote/speedtest-cli/speedtest-cli': No such file or directory
Wie in der Anleitung steht, probiere ich das ganze zu kopieren:
sudo cp ~/repo/remote/speedtest-cli/speedtest-cli /usr/local/bin
Hab auch schon in den Order speedtest-cli geschaut. Dort liegen die folgenden Dateien:
LICENSE
MANIFEST.in
README.rst
setup.py
speedtest_cli.py
Kenne mich leider kaum mit Linux aus, um mir hier selber weiter zu helfen.
ciao
Martin
du musst speedtest_cli.py in speedtest_cli umbenennen.
die entwickler haben irgendwann den namen geändert und das fhem modul erwartet noch den alten namen.
gruss
andre
Hi justme,
vielen Dank. Das hat geholfen.
Ich hab jetzt nur noch das Problem, dass das mit dem Plot noch nicht klappt.
Der Befehl:
define wl_speedtest SVG FileLog_speedtest:speedtest3:CURRENT
hat bei mir zu der folgenden Fehlermeldung geführt:
2014.01.17 17:24:03 1: Cannot read ./www/gplot/speedtest3.gplot
Hab bisher noch gar keine visuelle Ausgabe eingerichtet, muß ich da noch irgendetwas anlegen?
ciao
Martin
Hallo,
Zitat2014.01.17 17:24:03 1: Cannot read ./www/gplot/speedtest3.gplot
Die speedtest3.gplot hast du in das Verzeichniss ./www/gplot kopiert?
Grüße
Im Log steht jetzt 0,74 Upstream und 0,6 Downstream. Etwas komische Werte bei einer 16Down/1 Up Leitung. Da sollte der gemessene Downstream doch deutlich größer als der Upstream sein, oder?
Über meinen Laptop bekomme ich bei speedtest.net 15,8 und 0,96 als Werte angezeigt.
Hi Puschel,
nein hab ich noch nicht. Den Schritt hatte ich leider überlesen. In dem Verzeichnis www/gplot befindet sich bereits eine speedtest.gplot, allerdings ohne die 3 im Namen. Wo bekomme ich die speedtest3.gplot her?
---> Ok habs in Posting #74 als Anhang gefunden. Gut versteckt :)
Kann ich die Datei irgendwie direkt auf meinen PI runterladen? wget hat leider nicht geklappt.
ciao
Martin
Hallo,
mach doch in deiner weblink-Definition aus speedtest3.gplot einfach ein speedtest.gplot ;)
Ich lade mir die Files auch immer über meinen Windows-Rechner runter und kopier sie dann mit WinSCP auf den RasPi.
Grüße
Hi,
danke. Hab ich gemacht und es taucht jetzt Upstream und Downstream und Ping an den Achsen auf.
Leider werden mir noch keine Daten angezeigt, obwohl das Log File schon Werte von 4 Messungen hat.
Muß ich da noch einen "Refresh" machen?
Die Definition der Attribute etc hab ich ja alle über die Kommandozeile des Web-Frontends eingegeben. Sind die eigentlich weg, wenn ich mein FHEM Server mal neu starte?
Ich hätte jetzt entweder dies erwartet, oder das die Eingaben im Config File landen. Dort habe ich aber noch nichts gesehen.
ciao
Martin
Hallo,
ZitatSind die eigentlich weg, wenn ich mein FHEM Server mal neu starte?
So wie alles was vorher nicht durch einen Klick auf <Save Config> gerettet wurde ;)
Grüße
P.S.: Ach ja. Ratespiele sind durchaus lustig - die Definition deines speedtest würde Rätselraten vermeiden helfen.
Hi Puschel74,
danke für die Erklärung mit der Config. Bin erst seid kurzem bei FHEM und hab mich noch nicht durch alle Themen gewurschtelt. Finde es manchmal schwierig die Informationen zu allen Sachen zu bekommen.
Das steht jetzt in meinem Config File, nachdem ich <Save Config> geklickt habe:
define FileLog_speedtest FileLog ./log/InternetSpeedTest-%Y.log speedtest:.*
attr FileLog_speedtest logtype text
define wl_speedtest SVG FileLog_speedtest:speedtest:CURRENT
define speedtest speedtest 4012
4012 ist der Server der hier in der Nähe steht und auch bei meinem Test über mein Laptop genutzt wurde.
ciao
Martin
Hi,
helfen die Angaben zur config um den Fehler einzugrenzen?
ciao
Martin
Hallo,
achso du hast noch einen Fehler - sorry das habe ich verdrängt 8)
Was klappt den nicht?
Wird der Plot dargestellt?
Stimmen nur die Werte nicht?
Wird die Geschwindigkeit abgefragt?
Hast du Fehlermeldungen im FHEM-Logfile?
Leider benutze ich kein FileLog mehr und kann dir diesbezüglich auch nicht helfen aber du kannst dennoch mal 3 oder 4 Zeilen aus dem speedtest-Logfile posten.
Ich werd mir heutemorgen mal deine Konfig zusammen schrauben und schauen was da los ist.
Evtl. meldet sich ja noch jemand der auf einen Blick erkennt was daneben geht.
Grüsse
Hi,
ich hab noch das Problem, das mein Plot keine Daten anzeigt und das die Werte die gemessen werden sehr niedrig erscheinen bzw. Upload und Downloadwerte relativ identisch sind obwohl meine Leitung tatsächlich ein viel schnelleren Download als Upload hat. Als ich das letzte mal ins Log geschaut hab schien das Skript auch nicht mehr regelmässig ausgeführt zu werden.
Wenn ich die Einträge zum speedtest aus der config lösche und die Config speicher. Ist es dann erstmal komplett "raus" aus dem System?
Überlege ob ich die Einrichtung nochmal von vorne mache. Vielleicht geht das schneller als das Debugging.
Wg dem Anschauen, kein Streß. Ich bin für jede Hilfe dankbar und ihr habt ja als Moderatoren keine Supportverpflichtung. Schätze jede Antwort, die jemand in seiner Freizeit hier postet.
ciao
Martin
Hi,
also ein Problem hab ich gefunden. Im Log stand
ZitatCan't exec "/usr/local/speedtest-cli/speedtest-cli": No such file or directory at ./FHEM/32_speedtest.pm line 130.
Die Anleitung beschreibt das man es nach usr/local/bin installieren soll und das hatte ich auch gemacht. Verstehe nicht ganz warum da dann überhaupt Messwerte generiert wurden, kann mich nicht entsinnen das ganze nachträglich noch verschoben zu haben. Hab es jetzt von
bin nach
local verschoben.
Jetzt sollte es ja hoffentlich wieder laufen.
ciao
Martin
Hallo,
kann man die speedtest_cli auch auf der FritzBox 7390 zum Laufen bringen, bzw. wie kann man dies installieren?
Danke
Sven
Hallo,
Zitatkann man die speedtest_cli auch auf der FritzBox 7390 zum Laufen bringen, bzw. wie kann man dies installieren?
Wenn ich das noch richtig im Kopf habe brauchst du Phyton dafür.
Wenn du das auf deiner FB nachinstallierst bekommst sollte das gehen.
Grüße
das ding ist ein python programm. je nach fritzbox sollte es zumindest unter freetz gehen.
die installation ist z.b hier https://pypi.python.org/pypi/speedtest-cli (https://pypi.python.org/pypi/speedtest-cli) und hier https://github.com/sivel/speedtest-cli (https://github.com/sivel/speedtest-cli) beschrieben.
gruss
andre
Hallo Andre,
ich habe vor ein paar Tagen meinen RasPi neu gestartet. Danach ging mein speedtest nicht mehr. Es kamen immer irgendwelche Python Errors, auch wenn ich speedtest von der Kommandozeile aus gestartet habe. Dann habe ich mir die Anleitung von Puschel (wie heißt er eigentlich mit richtigem Namen?) genommen und speedtest erneut auf meinen RasPi geladen. Und da fingen die "Probleme" erst richtig an...
pi@raspberry-prod /usr/local/bin $ ls -l s*
-rwxr-xr-x 1 root staff 12452 Jun 26 2013 speedtest-cli
-rwxr-xr-x 1 root staff 20031 Feb 16 17:33 speedtest_cli.py
Die neue Version funktionierte wieder. Allerdings durch den geänderten Dateinamen dein Modul nicht mehr. Ich habe in deinem Modul die Zeile 126 wie folgt geändert.
$cmd .= "/speedtest_cli.py --simple";
und auch gleich noch eine Zeile 130 eingefügt
Log3 $name, 5, $cmd;
um zu Testen was wie der Kommandozeilenaufruf aussieht. Warum das "alte" speedtest Script nicht mehr läuft, kann ich nicht sagen. Ob du dein Modul ändern willst, musst du entscheiden.
Viele Grüße
Achim
das modul kann ich nicht so einfach ändern. dann geht es ja bei den anderen nicht mehr.
das einfachste ist wenn du einfach das speedtest script umbenennst und das .py weg machst.
wenn es genug Interessenten gibt mache ich es im modul konfigurierbar.
gruss
andre
Hi,
ich hab grad das Modul in Betrieb genommen und derPfad, indem die speedtest-cli erwartet wird, hat sich anscheinend geändert.
Es könnte hilfreich sein, hier die Doku upzudaten:
ich hatte nen Fehler drin: PERL WARNING: Can't exec "/usr/local/speedtest-cli/speedtest-cli"
ln -s /usr/local/bin/speedtest-cli /usr/local/speedtest-cli/speedtest-cli
hatte das dann schnell behoben.
Viele Grüße
Frank
den pfad kannst du über das path attribut einstellen.
das sollte eigentlich schon an ein paar stellen stehen.
gruss
andre
Leider habe ich zu wenig Ahnung von Linux als das ich jetzt weiter wüsste:
SSH Zugang auf den Raspi, dann:
1)sudo apt-get install git
ergibt: already installed...
2)python –V
: python: can't open file '–V': [Errno 2] No such file or directory
3) und 4) update und upgrade funktioniert
5) mkdir –p ~/repo/remote; cd $_
: mkdir: cannot create directory `–p': File exists
mkdir: cannot create directory `/root/repo/remote': No such file or directory
-bash: cd: /root/repo/remote: No such file or directory
Kann ich 1) wieder Rückgängig machen? Falls da was schief gelaufen ist?
Andere Ideen um das Problem zu lösen?
Danke
Der Thread ist zwar schon etwas älter, aber einen WikiEintrag gibt es leider noch nicht.
Hab Ihr etwas dagegen, wenn ich den in den nächsten Tagen anlege? Er ist bei mir schon recht weit vorbereitet aber noch nicht ganz reif zur Veröffentlichung. Ich wollte noch ein paar Troubleshooting Hilfestellungen hinzufügen und er muss auch sonst noch ein wenig aufgehübscht werden.
Und natürlich darf der hier gerne konstruktiv kommentiert werden.
@ Puschel74, Danke für Deine Zusammenfassung, mit der habe ich das auch installiert bekommen.
natürlich nicht. tob dich aus.
gruss
andre
@ Andre, 2:24 bis zu Antwort, Respekt!
Der Artikel ist online:
http://www.fhemwiki.de/wiki/Speedtest (http://www.fhemwiki.de/wiki/Speedtest)
Konstruktive Kritik ist herzlich z.B. hier im Forum willkommen, oder Ihr ändert direkt im Wiki.
@ RitterSport, schau mal in den Artikel, falls Du noch nicht weitergekommen bist. Bei Dir scheint es ein Problem mit Deiner Python-Installation zu geben z.B. ggf. nicht installiert.
Wenn git vorher schon installiert war, warum möchtest Du das dann wieder rückgängig machen?
Aber, wenn ich mir das erlauben darf, ich finde es immer gut, wenn man versteht, was man macht, auch wenn ich ein Freund von copy und paste bin (meine Gedächtnis...).
Nicht unterkriegen lassen ;)
Schöne Grüße,
John
Danke, an andre für das Modul und an alle Leut hier, die durch ihre Fragen und
Antworten dazu beigetragen haben, dass ich das Modul zum laufen gebracht habe :)
Eine einzige Frage habe ich aber dann doch:
Ich habe das Modul meinem Arbeitszimmer zugewiesen.
Da ist es auch. Nur nicht der Plot. Eingentlich klar,
aber wie bekomme ich den Plot ins Arbeitszimmer?
Ein kleiner Tip sollte vielleicht genügen.
Danke und Gruß
Uwe
in dem du für den plot auch das room attribut passend setzt.
gruss
andre
Danke!
Hat geklappt :)
Hallo Foris,
ich habe mir heute gemäß Wiki den Internet-Speedtest auf meinem RaspPi installiert.
Jetzt bekomme ich jedoch die Fehlermeldung:
PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_speedtest.pm line 140.
Wo finde ich die Line 140 und was muss ich dort ändern?
TfH
was steht noch im log? am besten mit verbose 5.
die zeile 140 passt glaube ich nicht zur aktuellen version.
ist dein fhem aktuell?
gruss
andre
Hallo Andre,
mein fhem ist aktuell (aktualisiert vor 2 Tagen-und eben noch einmal).
Ausser der Fehlermeldung stehen nur meine Schaltlog im Logfile.
Ich wünschte auch, ich hätte mehr Informationen.
In welcher Datei (Pfadangabe) finde ich die betreffende Zeile?
Hallo Zusammen,
ich glaube ich habe den Fehler gefunden.
Ich habe in der fhem.cfg die Ping-Server-Angabe rausgelöscht.
Meine Zeile lautet jetzt wie folgt:
define speedtest speedtest 1800
Jetzt läuft zumindest der Test, nur in der Grafischen Anzeige bekomme ich noch keine Werte.
Da muss ich nochmal suchen.
Jetzt habe ich ein paar Versuche mit der Grafischen Anzeige gemacht.
Das ergebnis ist, das ich keine Grafische Anzeige mehr bekomme.
Es wird nur "No Logdevice myDbLog" angezeigt.
Was habe ich jetzt schon wieder falsch gemacht?
Meine speedtest.gplot schaut so aus:
############################
# Display speedtest results
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ylabel "Mbit/s"
set y2label "Mbit/s"
set y3label "ms"
#FileLog 4:speedtest.download\x3a::
#FileLog 4:speedtest.upload\x3a::
#FileLog 4:speedtest.ping\x3a::
plot
using 1:2 ls l0 axes x1y2 title 'download (Mbit/s)' with lines,
using 1:2 ls l1 axes x1y1 title 'upload (Mbit/s)' with lines,
using 1:2 ls l2 axes x1y3 title 'ping (ms)' with lines,
und meine fhem.cfg-Eintäge des Tests:
define speedtest speedtest 1800
attr speedtest path /usr/local/bin
define FileLog_speedtest FileLog ./log/speedtest-%Y.log speedtest:.*
attr FileLog_speedtest logtype text
define wl_speedtest SVG myDbLog:wl_speedtest:CURRENT
attr wl_speedtest room Plots
Kann mir da jemand weiter Helfen?
Danke
Tolles Modul, vielen Dank dafür 8)
Es geht auch remote - ich habe in Path einfach eingetragen "ssh <remote-system> /usr/local/bin" und den pub-key als authorized_key im Zielsystem eingetragen.
Funktioniert tadellos!
Mein Problem hier is, dass der Raspi nicht den vollen Durchsatz schafft, weil einige (lokale) IPCams ungefähr die Hälfte der 100MBit Bandbreite des Raspi dauerhaft in Anspruch nehmen.
Bei mir läuft Speedtest 1a. So 1x im Jahr fällt mal das Internet aus aufgrund von Provider Problemen (Kabelmodem). Ist es möglich das Script oder das Modul so anzupassen, dass es den Wert 0 ausspuckt wenn keine Internetverbindung hergestellt werden konnte? Im Plot sieht man den Ausfall nicht. Ein Ausfall könnte man dann auch über eine Sprachaussage verknüpfen.
wenn ein erkennbarer fehler zurück kommt wird state auf failed gesetzt. funktioniert das bei dir nicht?
ruf das kommandozeilen tool in diesem fall mal von hand auf und zeige mir die ausgabe.
zum überwachen ob es einen ausfall gibt ist aber PRESENCE besser geeignet. das kannst du auch im minuten intervall aufrufen ohne das es resourcen probleme gibt und hast dann sehr viel zeitnäher einen status.
gruss
andre
die PRESENCE Lösung war mir auch im Hinterkopf. Aber ich dachte, wenn ich das damit gleich mit abhandeln kann brauch ich nicht noch eine Regel erstellen. Aber du hast recht, mit PRESENCE wird das wohl dann besser gehen.
Danke dir. :)
Hi,
ich habe speedtest.cli in /usr/local/bin installiert:
pi@raspberrypi /opt/fhem $ ls -lah /usr/local/bin/speed*
-rwxr-xr-x 1 pi pi 25K Oct 7 13:49 /usr/local/bin/speedtest-cli
pi@raspberrypi /opt/fhem $
speedtest funktioniert über die Konsole:
pi@raspberrypi /opt/fhem $ speedtest-cli
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Deutsche Telekom AG (80.139.211.85)...
Selecting best server based on latency...
Hosted by SoftLayer Technologies, Inc. (Frankfurt) [47.70 km]: 48.993 ms
Testing download speed........................................
Download: 6.76 Mbit/s
Testing upload speed..................................................
Upload: 1.50 Mbit/s
pi@raspberrypi /opt/fhem $
Das define in der fhem.cfg sieht so aus:
# Speedtest
define speedtest speedtest 1800
attr speedtest path /usr/local/bin
attr speedtest room Zentral
define FileLog_speedtest FileLog ./log/speedtest-%Y.log speedtest:.*
attr FileLog_speedtest logtype text
Wenn ich nun speedtest mit set speedtest statusRequest über die Befehlszeile aufrufe ändert sich der STATE von initilized auf failed und im fhem-LOG steht folgendes:
2015.10.07 14:28:07 3: CUL_HM set Sz.LED statusRequest
Traceback (most recent call last):
File "/usr/local/bin/speedtest-cli", line 796, in <module>
main()
File "/usr/local/bin/speedtest-cli", line 790, in main
speedtest()
File "/usr/local/bin/speedtest-cli", line 610, in speedtest
build_user_agent()
File "/usr/local/bin/speedtest-cli", line 197, in build_user_agent
'(%s; U; %s; en-us)' % (platform.system(), platform.architecture()[0]),
File "/usr/lib/python2.7/platform.py", line 1306, in system
return uname()[0]
File "/usr/lib/python2.7/platform.py", line 1273, in uname
processor = _syscmd_uname('-p','')
File "/usr/lib/python2.7/platform.py", line 1030, in _syscmd_uname
rc = f.close()
IOError: [Errno 10] No child processes
2015.10.07 14:28:24 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_speedtest.pm line 140.
2015.10.07 14:28:24 1: PERL WARNING: Use of uninitialized value $a[1] in string eq at ./FHEM/32_speedtest.pm line 158.
FHEM Update habe ich heute gemacht, Python ist Version 2.7.x
Was läuft falsch?
Danke&Gruß
Chris
Hallo Chris,
Hallo Forum,
ich habe exakt das gleiche Problem wie Chris.
Hat den keiner eine Idee??
Danke
Andreas
Zitat von: AndreasR am 12 Oktober 2015, 23:58:06
Hallo Chris,
Hallo Forum,
ich habe exakt das gleiche Problem wie Chris.
Hat den keiner eine Idee??
Danke
Andreas
Ich habe das Problem heute gelöst.
Im Script speedtest.cli (erste Zeile vom Script)
#!/usr/bin/env python
durch
#!/usr/bin/env python3
ersetzen. Bei mir läuft es jetzt.
Hallo Chris,
Danke .. bei mir gehts jetzt auch wieder :-)
Gruß nach Worms
Andreas
Hallo in die Runde.
Eigentlich wollte ich meinen Hybrid über den Tag anschauen, aber ohne Hilfe geht es nicht.
Status: Anfänger ++
Speedest über die Konsole funktioniert perfekt.
In FHEM so eingetragen wie in der Anleitung steht.
Den einzigen Anhaltspunkt ist die Logdatei:
Traceback (most recent call last):
File "/usr/local/speedtest-cli/speedtest-cli", line 796, in <module>
main()
File "/usr/local/speedtest-cli/speedtest-cli", line 790, in main
speedtest()
File "/usr/local/speedtest-cli/speedtest-cli", line 610, in speedtest
build_user_agent()
File "/usr/local/speedtest-cli/speedtest-cli", line 197, in build_user_agent
'(%s; U; %s; en-us)' % (platform.system(), platform.architecture()[0]),
File "/usr/lib/python2.7/platform.py", line 1306, in system
return uname()[0]
File "/usr/lib/python2.7/platform.py", line 1273, in uname
processor = _syscmd_uname('-p','')
File "/usr/lib/python2.7/platform.py", line 1030, in _syscmd_uname
rc = f.close()
IOError: [Errno 10] No child processes
2015.10.18 15:09:51 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_speedtest.pm line 140.
2015.10.18 15:09:51 1: PERL WARNING: Use of uninitialized value $a[1] in string eq at ./FHEM/32_speedtest.pm line 158.
Kann damit jemand was anfangen ?
Danke ckn
die posts genau über deinen hast du aber schon gesehen? das es da um die gleiche fehlermeldung geht und eine lösung beschrieben ist?
Hallo justme1968 !
Danke für die schnelle Nachricht.
Die Änderung hatte ich in der speedtest-cli gemacht, ohne Erfolg.
Ich vermute dann mal, mein Python 2.7... ist dann wohl nicht ok.
Ich hatte irgendwo was mit Python 3.xx gelesen. ch weiß nur nicht wie ich das
dann auf meinen Raspberry bekommen. Mit apt-get upgrade kommt es nicht.
ckn
wenn es auf der kommandozeile geht mach mal ein which python und trage genau das mit komplettem pfad hinter dem #! ein.
gruss
andre
Danke Andre, für die Unterstützung - 50% sind geschafft.
Was habe ich gemacht:
- which python zeigt auf den Pfad
- #!/usr/bin/env python3 nochmal neu eingetragen
- die ganzen Zeilen in der fhem.cfg gelöscht und durch die, siehe oben - ersetzt:
# Speedtest
define speedtest speedtest 1800
attr speedtest path /usr/local/bin
attr speedtest room Zentral
define FileLog_speedtest FileLog ./log/speedtest-%Y.log speedtest:.*
attr FileLog_speedtest logtype text
- Neustart
Status: es gibt im Logfile die ersten 2 Einträge und der Status ist nicht mehr failed
Es fehlt jetzt noch die grafische Aufarbeitung .
ckn
Ich wollte das speedtest modul auf einem Intel NUC mit Debian Jessie installieren.
pip install git+https://github.com/sivel/speedtest-cli.git
Im Terminal lässt sich das skript ausführen und "which python" liefert genau den Pfad, der eingetragen ist : /usr/bin/python
Leider liefert mir das Modul "failed" mit nachfolgendem Logeintrag:
File "/usr/local/bin/speedtest-cli", line 9, in <module>
load_entry_point('speedtest-cli==0.3.4', 'console_scripts', 'speedtest-cli')()
File "/usr/local/lib/python2.7/dist-packages/speedtest_cli.py", line 790, in main
speedtest()
File "/usr/local/lib/python2.7/dist-packages/speedtest_cli.py", line 610, in speedtest
build_user_agent()
File "/usr/local/lib/python2.7/dist-packages/speedtest_cli.py", line 197, in build_user_agent
'(%s; U; %s; en-us)' % (platform.system(), platform.architecture()[0]),
File "/usr/lib/python2.7/platform.py", line 1333, in system
return uname()[0]
File "/usr/lib/python2.7/platform.py", line 1300, in uname
processor = _syscmd_uname('-p','')
File "/usr/lib/python2.7/platform.py", line 1035, in _syscmd_uname
rc = f.close()
IOError: [Errno 10] No child processes
Selbiges wenn ich die erste Zeile in /usr/local/lib/python2.7/dist-packages/speedtest_cli.py anpasse.
Kann mir jemand hier weiterhelfen? Wenn ich ins Terminal nur "speedtest-cli --simple" bzw nur "speedtest --simple" eingebe funktioniert ebenfalls alles.
Beste Grüße
Fabian
hallo,
gehe in das Verzeichnis /usr/local/bin
rufe dort die Datei speedtest-cli im Editor auf und ersetze in der ersten Zeile
#!/usr/bin/env python
in
#!/usr/bin/env python3
dann sollte es passen
gruß Werner
Wie bereits geschrieben hatte ich dies schon getan:
#!/usr/bin/python
lautet die erste Zeile.
Wenn ich diese abänderer lässt sich der speedtest nicht mal mehr im Terminal ausführen:
Traceback (most recent call last):
File "/usr/local/bin/speedtest-cli", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2876, in <module>
working_set = WorkingSet._build_master()
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 449, in _build_master
ws.require(__requires__)
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 745, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 639, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: speedtest-cli==0.3.4
die Datei sollte speedtest-cli heissen und nicht speedtest_cli.py (ich meine es ist eine alte Version)
du hast ein anderes Verzeichnis angegeben als ich
bei mir ist es in /usr/local/bin/speedtest-cli
gruß Werner
Es hilft auch in Google nach "Fhem speedtest" zu suchen, dort gibt es Anleitungen
gruß Werner
Da hätte ich mich doch mal gleich nach dem Wiki richten sollen. Die Installation wie im Github des Entwicklers beschrieben über "pip install git+https://github.com/sivel/speedtest-cli.git" ist demnach nicht zu empfehlen!
Danke für die Hilfe!
Ich hatte gerade ein ähnliches Problem. Über die Shell lies sich der Speedtest starten, aber in FHEM kam immer nur ein "failed". Geholfen hat ein ändern des Pfades in der "speedtest-cli". Über which python
den Pfad zu Python ausgelesen.
Ursprüngliche Zeile:
#/usr/bin/env python
Geändert in:
#/usr/bin/python
Danach lief es in FHEM trotz Neustart immer noch nicht. Erst nachdem das Device gelöscht und neu angelegt wurde, kamen Ergebnisse. Eventuell sollte das Anpassen der "speedtest-cli" an den lokalen Installationspfad von Python mit im Wiki beschrieben werden.
egal wie ich es versuche ..
The file speedtest_cli.py has been deprecated in favor of speedtest.py
and is available for download at:
https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
2016.12.14 17:39:32 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_speedtest.pm line 140.
Auch in der konsole immer:
he file speedtest_cli.py has been deprecated in favor of speedtest.py
and is available for download at:
https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
Per konsole "speedtest" geht es speedtest-cli nicht
Lösung: habe nun den inhalt der speedtest und speedtest-cli Kopiert ..
KA was das soll aber funktioniert
Guten Morgen,
ich habe auch ein paar Herausforderungen mit meinem Speedtest.
Das Script als solches läuft. sowohl manuell im SSH als auch über FHEM getriggert. Eine grafische Ausgabe bekommen ich aber nicht hin :-(
Ich könnte mit Vorstellen, dass mein Logfile das falsche Format hat, zu viele Informationen enthält (OK und running) oder aber das SVG nicht definiert ist in der config. Habe aber auch noch nichts gefunden, ob ich das extra definieren muss oder ein Modul einbinden muss.
Das hier sind meine Daten:
Meine Servierversion auf einem Pi B
Featurelevel: 5.7
Server started with 12 defined entities (version $Id: fhem.pl 9893 2015-11-15 08:43:05Z rudolfkoenig $, os linux, user fhem, pid 7596)
Puhhh, fällt mir gerade auf, die Version ist ja ganz schön alt....
Werde mal checken was es für ein Aufwand ist ein Update zu machen.
Meine python Versin
which python
/usr/bin/python
Speedtest-cli im SSH
/usr/local/bin/speedtest-cli --simple
Ping: 40.971 ms
Download: 50.00 Mbit/s
Upload: 5.94 Mbit/s
Auszug aus meiner Logdatei
nano /opt/fhem/log/speedtest-2016.log
2016-12-17_04:44:18 speedtest running
2016-12-17_04:44:57 speedtest ping: 42.129 ms
2016-12-17_04:44:57 speedtest download: 49.12 Mbit/s
2016-12-17_04:44:57 speedtest upload: 5.77 Mbit/s
2016-12-17_04:44:57 speedtest ok
2016-12-17_05:44:18 speedtest running
2016-12-17_05:44:56 speedtest ping: 45.259 ms
2016-12-17_05:44:56 speedtest download: 55.38 Mbit/s
2016-12-17_05:44:56 speedtest upload: 5.29 Mbit/s
2016-12-17_05:44:56 speedtest ok
2016-12-17_06:44:18 speedtest running
2016-12-17_06:44:58 speedtest ping: 41.899 ms
2016-12-17_06:44:58 speedtest download: 16.66 Mbit/s
2016-12-17_06:44:58 speedtest upload: 5.73 Mbit/s
2016-12-17_06:44:58 speedtest ok
2016-12-17_07:44:18 speedtest running
2016-12-17_07:44:57 speedtest ping: 44.989 ms
2016-12-17_07:44:57 speedtest download: 40.98 Mbit/s
2016-12-17_07:44:57 speedtest upload: 5.67 Mbit/s
2016-12-17_07:44:57 speedtest ok
2016-12-17_08:44:18 speedtest running
2016-12-17_08:44:53 speedtest ping: 45.924 ms
2016-12-17_08:44:53 speedtest download: 55.89 Mbit/s
2016-12-17_08:44:53 speedtest upload: 5.70 Mbit/s
2016-12-17_08:44:53 speedtest ok
2016-12-17_09:44:18 speedtest running
2016-12-17_09:46:21 speedtest ping: 2573.626 ms
2016-12-17_09:46:21 speedtest download: 8.65 Mbit/s
2016-12-17_09:46:21 speedtest upload: 1.97 Mbit/s
2016-12-17_09:46:21 speedtest ok
Auszug aus meiner config
attr global userattr cmdIcon devStateIcon devStateStyle icon sortby webCmd widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd none
attr global statefile ./log/fhem.save
attr global updateInBackground 1
attr global verbose 5
define telnetPort telnet 7072 global
define WEB FHEMWEB 8083 global
attr WEB editConfig 1
define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
define autocreate autocreate
attr autocreate filelog ./log/%NAME-%Y.log
define eventTypes eventTypes ./log/eventTypes.txt
# define pilight
define pilight pilight_ctrl localhost:5000 [7.0]
# Disable this to avoid looking for new USB devices on startup
#define initialUsbCheck notify global:INITIALIZED usb create
#------ Info -----------------------
# Speedtest Graph
define speedtest speedtest 1800 5255
attr speedtest path /usr/local/bin
define FileLog_speedtest FileLog ./log/speedtest-%Y.log speedtest:.*
attr FileLog_speedtest logtype text
define SVG_FileLog_speedtest_1 SVG FileLog_speedtest:SVG_FileLog_speedtest_1:CURRENT
attr SVG_FileLog_speedtest_1 room Info
#define FileLog_speedtest FileLog ./log/speedtest-%Y.log speedtest:.*
#attr FileLog_speedtest logtype text
#define speedtest speedtest
#attr speedtest path /usr/local/bin
#attr speedtest verbose 5
#define SVG_FileLog_speedtest_1 SVG FileLog_speedtest:SVG_FileLog_speedtest_1:CURRENT
#attr SVG_FileLog_speedtest_1 room Info
speedtest gplot Datei Ein Screenshot von meinem "preprocessed input" hängt mit an.
SVG_FileLog_speedtest_1.gplot
# Created by FHEM/98_SVG.pm, 2016-12-17 13:00:24
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<TL>'
set ytics
set y2tics
set grid
set ylabel "Mbit/s"
set y2label "Mbit/s"
#FileLog_speedtest 3:download::
#FileLog_speedtest 3:upload::
plot "<IN>" using 1:2 axes x1y2 title 'download (Mbit/s)' ls l0 lw 1 with lines,\
"<IN>" using 1:2 axes x1y1 title 'upload (Mbit/s)' ls l1 lw 1 with lines
Fällt euch denn sonst noch was auf, wenn man von der Version der Fhme.pl absieht?
Grüße, Chris
schau mal im wiki. da gibt es beispiel plot file zu speedtest.
bei dir ist zumindest die spalte in den beiden FileLog zeilen falsch. es muss 4 statt 3 sein.
gruss
andre
Zitat von: justme1968 am 19 Dezember 2016, 17:04:51
schau mal im wiki. da gibt es beispiel plot file zu speedtest.
bei dir ist zumindest die spalte in den beiden FileLog zeilen falsch. es muss 4 statt 3 sein.
gruss
andre
Hallo Andre,
Danke für den Tipp. Du Hast recht, jetzt zeigt er mir zumindest mal Werte an. Leider wird immer noch keine Linie gezeichnet.
Gibt es eine Möglichkeit zu testen, ob die SVG Funktionen funktionieren? Könnte ich nicht eine fixe Linie einzeichnen um zu schauen, ob das zeichnen überhaupt funktioniert.
Danke für eure Hilfe.
Chris
Hallo zusammen,
super es klappt doch. Nach dem nächsten Ausführen des Tests hat er dann auch einen 2. Wert gehabt und kann einen Graph zeichnen. Eigentlich logisch :-) Dachte nur, er würde die bisherigen Werte aus dem Logfile auch mit einbeziehen.
Danke für die Hilfe, Andre.
Chris
er bezieht auch die bisherigen einträge mit ein aber nur wenn sie im dargestellten zeitraum liegen.
Hallo zusammen,
so wie es scheint wurde das speedtest script auf gitub aktualisiert und umbenannt. Es heist jetzt speedtest.py anstatt speedtest-cli.py
https://github.com/sivel/speedtest-cli
Ich wollte demnächst mal meinen Fhem Server neu aufsetzen. Muss ich da was beachten? Hat das neue Script neue Funktionen?
je nach dem wie alt deine aktuelle version ist geht die jetzt/demnächst nicht mehr. einfach die neue version verwenden und den namen anpassen.
Habe mir gerade mal die CommandRef dazu angeschaut und festgestellt, dass hier was nicht stimmt. Folgender Text steht am Ende:
Zitat=item helper =item summary Calculates for statistical values and adds them to the devices. =item summary_DE Berechnet statistische Werte und fügt sie dem Gerät hinzu.
danke für den hinweis.
das fehler kommt aber nicht aus dem speedtest modul sondern es ist der anfang der statistics doku.
dort steht das =begin html vor den =item tags statt danach.
gruss
andre
Hallo,
kurze Frage, wieviel Downloadvolumen wird so pro Speedtest "verbraten"? Hat da jemand Infos darüber?
Dankeschön
Hallo zusammen. Seit einer Woche (14.01.19) ist der rapportieret Download in FHEM viel zu klein. Es schein fast als wäre es ein Faktor 10 und das Komma der Download zahl ist ein versetzt.
Habe es auch im Terminal getestet und dort ist es auch so. Liegt also nicht an FHEM sondern am speedtest-cli script oder an speedtest.net selbst.
Bei mir läuft alles auf einem Mac mini mit Python 2.7.10.
Jemand eine Idee?
Danke für die Hilfe.
Mhh seit heute (28.01.) scheint es wieder zu gehen ... werte wieder gut.
Nabend,
Speedtest gerade hinzugefügt - Top-Modul, danke dafür.
Wäre es evtl. möglich ein zusätzliches Reading zu erzeugen, welches den aktuell genutzten Server ausgibt?
Zitat von: ComputerZOO am 14 April 2019, 22:49:11
Wäre es evtl. möglich ein zusätzliches Reading zu erzeugen, welches den aktuell genutzten Server ausgibt?
Hatte ich mir mal gebaut, siehe Anhang.
Vielleicht hat Andre ja Lust, das bei Gelegenheit mal in die offizielle Version zu übernehmen.
Ich teste gerade erstmals das speedtest modul basierend auf dem speedtest-cli Skript.
Ich habe eine Vodafone Kabel 100MBit Leitung und wundere mich, dass es auch nach mehreren Wiederholungen komplett andere Werte zurückliefert als der speedtest von Vodafone (https://speedtest.vodafone.de/):
Vodafone speedtest: Download: 89MBit/s, Upload 8 Mbit/s, 24ms ping
speedtest-cli Skript: Download: 4.10 Mbit/s, Upload: 0.14 Mbit/s, 126ms
Version ist:
speedtest-cli 2.1.4b1
Python 2.7.16 (default, Oct 10 2019, 22:02:15) [GCC 8.3.0])
Kann das jemand erklären?
Hallo,
vorsichtige Frage, sorry falls im falschen Thread: wird das Modul noch gepflegt?
Hintergrund (außer dass ich die Ergänzungen von ComputerZOO schon nützlich finde ;)) : speedtest meldet sehr häufig einen 403 Fehler, da es ohne "--secure" aufgerufen wird. Passiert per Kommandozeile genauso. Ergänzt man die Option im Aufruf im Modul, läuft es wieder rund... Wäre evtl gut das offiziell einzubauen?
Zitat von: hapege am 25 September 2022, 13:07:05
Hallo,
vorsichtige Frage, sorry falls im falschen Thread: wird das Modul noch gepflegt?
Hintergrund (außer dass ich die Ergänzungen von ComputerZOO schon nützlich finde ;)) : speedtest meldet sehr häufig einen 403 Fehler, da es ohne "--secure" aufgerufen wird. Passiert per Kommandozeile genauso. Ergänzt man die Option im Aufruf im Modul, läuft es wieder rund... Wäre evtl gut das offiziell einzubauen?
Ich wäre auch interessiert, dass das Modul wieder läuft :o ;D
Hi,
mein aktueller workaround:
- /opt/fhem/FHEM/32_speedtest.pm sichern ;) und editieren
- in Zeile 144 ändern ("--secure" ergänzen):
$cmd .= "/speedtest-cli --simple --secure";
Geht leider bei einem update wieder verloren, lässt sich verhindern durch
attr global exclude_from_update 32_speedtest.pm
Wie gesagt, nur ein Workaround bis sich der Maintainer des Moduls erbarmt...
Zitat von: hapege am 02 Oktober 2022, 18:28:34
Hi,
mein aktueller workaround:
- /opt/fhem/FHEM/32_speedtest.pm sichern ;) und editieren
- in Zeile 144 ändern ("--secure" ergänzen):
$cmd .= "/speedtest-cli --simple --secure";
Geht leider bei einem update wieder verloren, lässt sich verhindern durch
attr global exclude_from_update 32_speedtest.pm
Wie gesagt, nur ein Workaround bis sich der Maintainer des Moduls erbarmt...
Danke Dir - hatte das auch schon geändert, nur das mit dem Update Ausschluss hatte ich vergessen - überschrieben heißt generell bei einem Fhem Update oder nur wenn das Modul upgedatet wurde? Erkennt fhem, wenn ein Modul manuell geändert wurde?
Hi,
Ja, fhem update erkennt manuelle Änderungen und aktualisiert = überschreibt das geänderte Modul. Deshalb das exclude ;)
Zitat von: hapege am 02 Oktober 2022, 21:21:56
Hi,
Ja, fhem update erkennt manuelle Änderungen und aktualisiert = überschreibt das geänderte Modul. Deshalb das exclude ;)
Ah danke dir :-)
Ich schaffe das nicht, in Terminal geht es
speedtest-cli --simple --secure
Ping: 17.783 ms
Download: 24.61 Mbit/s
Upload: 7.14 Mbit/s
Und im Modul nicht
2022.10.02 22:26:29 5: starting speedtest
Traceback (most recent call last):
File "/home/pi/.local/bin/speedtest-cli", line 6, in <module>
from speedtest import main
ImportError: No module named speedtest
2022.10.02 22:26:29 5: speedtest done
2022.10.02 22:26:29 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/32_speedtest.pm line 164.
2022.10.02 22:26:29 5: speedtest_SpeedtestDone: speedtest
Anscheinend ist das Python-Modul speedtest nicht installiert. Aber ich habe das doch da, weil es von der Kommandozeile aus funktioniert?!
Und ändere ich die erste Zeile in python3, so geht es auch in der Kommandozeile nicht mehr,
./speedtest-cli --simple --secure
Traceback (most recent call last):
File "./speedtest-cli", line 7, in <module>
from speedtest import main
ModuleNotFoundError: No module named 'speedtest'
Hm,
Ich verstehe Dich nicht ganz, aber klappt der Aufruf auch, wenn Du konkret
/home/pi/.local/bin/speedtest-cli --simple --secure
aufrufst? Bei mir liegen speedtest und speedtest-cli im selben Ordner (/usr/bin)
Was zeigt denn "which speedtest-cli"?
Es scheint, dass durch FHEM irgendeine andere Version aufgerufen wird:
pi@raspfhem:~ $ cd /home/pi/.local/bin
pi@raspfhem:~/.local/bin $ which speedtest-cli
/home/pi/.local/bin/speedtest-cli
pi@raspfhem:~/.local/bin $ /home/pi/.local/bin/speedtest-cli --simple --secure
Ping: 19.719 ms
Download: 25.22 Mbit/s
Upload: 6.83 Mbit/s
pi@raspfhem:~/.local/bin $ cd /opt/fhem
pi@raspfhem:/opt/fhem $ which speedtest-cli
/home/pi/.local/bin/speedtest-cli
Und beide liegen im selben Ordner.
Gelöst: ich musste das Paket mit sudo installieren.
die 'offizielle' version des speedtest cli von ookla die man hier: https://www.speedtest.net/apps/cli findet kennt keine --secure option und benötigt diese auch nicht. ich kann nur empfehlen auf diese version umzusteigen da sie aktueller ist, weniger cpu last erzeugt und bei größeren up/download geschwindigkeiten auch korrektere ergebnisse anzeigt.
Ich kam da nicht weiter
sudo apt-get install speedtest
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket speedtest kann nicht gefunden werden.
Man muss da die install Anleitung (https://www.speedtest.net/apps/cli#ubuntu) beachten:
sudo apt-get install curl
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest
Dann im Modul attr ookla setzen.
Das hatte ich gemacht...
ok ich mache es bei mir remote über den Router, da lade ich einfach das passende tgz runter, packe die binary aus und starte diese über das attr path ... ;)
Zitat von: andies am 20 Oktober 2022, 10:54:35
Ich kam da nicht weiter
sudo apt-get install speedtest
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
E: Paket speedtest kann nicht gefunden werden.
Das Paket heißt speedtest-cli:
sudo apt-get install speedtest-cli
Zitat von: justme1968 am 16 Oktober 2022, 14:44:21
die 'offizielle' version des speedtest cli von ookla die man hier: https://www.speedtest.net/apps/cli findet kennt keine --secure option und benötigt diese auch nicht. ich kann nur empfehlen auf diese version umzusteigen da sie aktueller ist, weniger cpu last erzeugt und bei größeren up/download geschwindigkeiten auch korrektere ergebnisse anzeigt.
Hi,
Danke für den Hinweis! Die ookla Version lässt sich unter einem raspi mit raspi-OS auf Basis Buster offenbar nicht ohne Weiteres wie beschrieben per Skript installieren (oder ich habe was falsch gemacht - das in der sources.list konfigurierte repository gibts wohl nicht für raspi buster). Manuell runterladen und starten geht. Und wenn man den richtigen Server "erzwingt" kann der Test tatsächlich sehr hohe Bandbreiten :-)
Zitat von: hapege am 20 Oktober 2022, 12:56:35
Das Paket heißt speedtest-cli:
sudo apt-get install speedtest-cli
da wird aber nicht ookla installiert. Aber das Script von ookla funktioniert unter Raspbian offenbar nicht...
Hi,
nein, apt-get installiert das non-ookla tool. Das funktioniert auch, wenn man "--secure" einfügt und Bandbreiten unter 400MBit/s (Erfahrungswert) messen will.
ookla kannst Du manuell herunterladen, passend abspeichern und halt von dort starten (der Hinweis auf attr path ist hilfreich ;) )
Das wäre sowas wie setup in der Raw Definition, erledigt den ersten Start mit der Lizenz Bestätigung mit
Achtung den downloadlink muss man an die Hardware anpassen!!!
Achtung das attribute wird bei allen speedtest definiton gesetzt, also notfalls anpassen / vorher prüfen ob man mehrere hat: list TYPE=speedtest
{system ('wget -qO speedtest.tgz https://install.speedtest.net/app/cli/ookla-speedtest-1.2.0-linux-armhf.tgz;;tar -zxvf speedtest.tgz speedtest;;./speedtest --accept-license --accept-gdpr -f json' ) }
attr TYPE=speedtest ookla 1
attr TYPE=speedtest path ./
Oder falls man eine abgesetzte Maschine (Router) hat und ssh mit public key schon eingerichtet ist:
Hier muss die Binary für die Hardware des Routers stimmen!
{system ('ssh user@192.168.56.1 '.q('wget -qO speedtest.tgz https://install.speedtest.net/app/cli/ookla-speedtest-1.1.1-linux-armhf.tgz;;tar -zxvf speedtest.tgz speedtest;;./speedtest --accept-license --accept-gdpr -f json' &) ) }
attr TYPE=speedtest ookla 1
attr TYPE=speedtest ssh user@192.168.56.1 ./