Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
#!/usr/bin/env python
import datetime
import speedtest
from influxdb import InfluxDBClient
# influx configuration - edit these
ifuser = "grafana"
ifpass = "<yourpassword>"
ifdb = "home"
ifhost = ""
ifport = 8086
measurement_name = "speedtest"
# take a timestamp for this measurement
time = datetime.datetime.utcnow()
# run a single-threaded speedtest using default server
s = speedtest.Speedtest()
res = s.results.dict()
# format the data as a single measurement for influx
body = [
"measurement": measurement_name,
"time": time,
"fields": {
"download": res["download"],
"upload": res["upload"],
"ping": res["ping"]
# connect to influx
ifclient = InfluxDBClient(ifhost,ifport,ifuser,ifpass,ifdb)
# write the measurement

This comment has been minimized.

Copy link

@aglerj aglerj commented May 23, 2020

for supporting python v3 I had to update this item #!/usr/bin/env python

to #!/usr/bin/env python3

maybe add a comment?


This comment has been minimized.

Copy link

@j-n-s-k-n-r j-n-s-k-n-r commented May 27, 2020


i always get the following error when running the script. I run the script with sudo ./

Traceback (most recent call last):
  File "./", line 4, in <module>
    import speedtest
  File "/home/pi/", line 19, in <module>
    s = speedtest.Speedtest()
AttributeError: 'module' object has no attribute 'Speedtest'

I have followed the instructions so far.

My Python version is 2.7.16
Hardware: RPi 2 with Debian Buster



This comment has been minimized.

Copy link

@matthuff20 matthuff20 commented Aug 21, 2020

If I wanted to specify a server to use in the python script (an ID that shows from the 'speedtest-cli --list' command) - How would I go about adding that into the code?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment