Internetgeschwindigkeit überwachen

Begonnen von wkarl, 21 Juni 2013, 10:30:30

Vorheriges Thema - Nächstes Thema

Hausautomat

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.

oxidizer

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.

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

oxidizer

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.  :)

Chris_Worms

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
Raspberry Pi 2/HM-CFG-LAN/HM-ES-PMSw1-PI/HM-LC-Sw1-PL/HM-Sec-MDIR-2/JeeLink V3/LaCrosse Temp/Humidity/Bluetooh USB Dongle/PebbleBee Bluetooth Tags

FHEM/MySQL/Apache/SmarVisu

AndreasR

Hallo Chris,
Hallo Forum,

ich habe exakt das gleiche Problem wie Chris.

Hat den keiner eine Idee??

Danke
Andreas

Chris_Worms

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.
Raspberry Pi 2/HM-CFG-LAN/HM-ES-PMSw1-PI/HM-LC-Sw1-PL/HM-Sec-MDIR-2/JeeLink V3/LaCrosse Temp/Humidity/Bluetooh USB Dongle/PebbleBee Bluetooth Tags

FHEM/MySQL/Apache/SmarVisu

AndreasR

Hallo Chris,

Danke .. bei mir gehts jetzt auch wieder :-)

Gruß nach Worms

Andreas

ckn

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

justme1968

die posts genau über deinen hast du aber schon gesehen? das es da um die gleiche fehlermeldung geht und eine lösung beschrieben ist?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ckn

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

justme1968

wenn es auf der kommandozeile geht mach mal ein which python und trage genau das mit komplettem pfad hinter dem #! ein.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

ckn

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

Pythonf

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

Intruder1956

#134
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
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,