Skip to main content

A web connected local internet speed and connectivity monitor

Project description

internet_monitor_webthing

A web connected local internet speed and connectivity monitor

This project implements an internet monitor agent providing a speed monitor webthing API as well as a connectivity monitor webthing API.

The internet_monitor_webthing package exposes an http webthing endpoint which supports reading the internet speed results as well as an endpoint to read the internet connectivity results via http E.g.

# webthing has been started on host 192.168.0.23

# internet speed
curl http://192.168.0.23:8433/0/properties
{
   "test_period": 900,
   "downloadspeed": 215.2,
   "uploadspeed": 11,
   "ping": 17.763,
   "testdate": "2020-10-11T13:44:51.346706",
   "speedtest_server": "Mobile Breitbandnetze GmbH/Freisbach",
   "speedtest_report_uri": "http://www.speedtest.net/result/10231336474.png"
}

# connectivity 
curl http://192.168.0.23:8433/1/properties
{
   "test_url": "http://google.com",
   "test_period": 5,
   "connected": true,
   "ip_address": "95.88.57.72"
}

To run this software you may use Docker or PIP package manager such as shown below

Docker approach

sudo docker run -p 8433:8433 grro/internet-monitor:0.1.1

PIP approach

sudo pip install internet_monitor_webthing

After this installation you may start the webthing http endpoint inside your python code or via command line using

sudo netmonitor --command listen --port 8433 --speedtest_period 900 --connecttest_period 5 

Here, the webthing API will be bind to on port 8433. The internet speed monitor as well as the connectivity monitor will be started by performing the listen command above. The speed test will be executed each 15 min (900 sec), the connectivity test will be executed each 5 sec. THe WebThing server provides mDNS to enable clients discovering the WebThing interfaces.

By running a systemd-based Linux distribution you may use the register command to register and start the webthing service as systemd unit. By doing this the webthing service will be started automatically on boot. Starting the server manually using the listen command is no longer necessary.

sudo netmonitor --command register --port 8433 --speedtest_period 900 --connecttest_period 5 

To start the speedtest monitor only just omit the --connecttest_period parameter

sudo netmonitor --command listen --port 8433 --speedtest_period 900

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

internet_monitor_webthing-0.1.2.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file internet_monitor_webthing-0.1.2.tar.gz.

File metadata

  • Download URL: internet_monitor_webthing-0.1.2.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.0 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.7

File hashes

Hashes for internet_monitor_webthing-0.1.2.tar.gz
Algorithm Hash digest
SHA256 485b347bfe6cf7a7b253c00506cc64b4b579040c6c604003afaa9dae64fcce00
MD5 a98687fadbd4802fba9b371597c8d3b5
BLAKE2b-256 fd53a39cb8aed5c4e076accb3b085c8bfb8c63f11129823ff1c16fc44f5b3455

See more details on using hashes here.

File details

Details for the file internet_monitor_webthing-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: internet_monitor_webthing-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.1.0 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.8.7

File hashes

Hashes for internet_monitor_webthing-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9c6f4dcb40750067ce9b828574073b091bea5dae43a33d2e8d606be89773e125
MD5 668c96e55412fdf0b5348f8bc746377a
BLAKE2b-256 521efa7dfb69092e8da53229e672570bf638edd3f274add5ea5e97b60ed1e11d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page