Skip to main content

A Python app that continuously polls your home WiFi and network uptime, logs any downtime, and serves a live status dashboard in your browser. The dashboard can be accessed by any device on the same network.

Project description

Heimdall logo

Upload Python Package

Heimdall Network Watcher

A Python app that continuously polls your home WiFi and network uptime, logs any downtime, and serves a live status dashboard in your browser. The dashboard can be accessed by any device on the same network.

Alt text

Features

  • Continuous monitoring - Pings a configurable target (default: 8.8.8.8) at a set interval
  • Downtime logging - Records each outage with start and end time in SQLite
  • Live dashboard - Web UI showing current status, 24h uptime %, and recent downtime events
  • Cross-platform - Uses the system ping command (Windows and Unix)

Install with pip

Install from PyPI:

pip install heimdall-network-monitor
python -m heimdall

Install from local source:

pip install .
python -m heimdall

Quick start

Project structure:

heimdall/
  pyproject.toml
  README.md
  src/
    heimdall/
      __main__.py
      app.py
      config.py
      database.py
      monitor.py
      templates/
        dashboard.html
      static/
        style.css
        logo.png
  1. Create a virtual environment and install dependencies

    python -m venv .venv
    .venv\Scripts\activate   # Windows
    # source .venv/bin/activate   # macOS/Linux
    pip install -e .
    

    pip install -e . installs this project in editable mode so local source changes are picked up without reinstalling.

  2. Run the app

    python -m heimdall
    
  3. Open the dashboard

    In your browser go to: http://localhost:9000 On the same WiFi, other devices can use http://:9000 (for example, http://192.168.1.42:9000).

The monitor runs in the background and the dashboard auto-refreshes every few seconds.

Configuration

Environment variables (optional):

Variable Description Default
HEIMDALL_PING_TARGET Host to ping (IP or hostname) 8.8.8.8
HEIMDALL_POLL_INTERVAL Seconds between checks 10
HEIMDALL_PING_TIMEOUT Ping timeout in seconds 5
HEIMDALL_DB SQLite database path heimdall.db
HEIMDALL_HOST Flask bind address 0.0.0.0
HEIMDALL_PORT Flask port 9000

Example: Monitor your router and check every 5 seconds:

set HEIMDALL_PING_TARGET=8.8.8.8
set HEIMDALL_POLL_INTERVAL=5
python -m heimdall

On Linux/macOS use export HEIMDALL_PING_TARGET=192.168.1.1 etc.

API

  • GET / - Dashboard (HTML)
  • GET /api/status - Current status (up/down, last check, current downtime)
  • GET /api/stats - 24h uptime % and sample count
  • GET /api/downtimes - Recent downtime intervals

Requirements

  • Python 3.8+
  • Flask (see requirements.txt)

No special permissions needed; uses standard ping and a local SQLite file.

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

heimdall_network_monitor-0.2.4.tar.gz (127.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

heimdall_network_monitor-0.2.4-py3-none-any.whl (126.9 kB view details)

Uploaded Python 3

File details

Details for the file heimdall_network_monitor-0.2.4.tar.gz.

File metadata

  • Download URL: heimdall_network_monitor-0.2.4.tar.gz
  • Upload date:
  • Size: 127.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for heimdall_network_monitor-0.2.4.tar.gz
Algorithm Hash digest
SHA256 4adc2c9e8c04d1f160d8d5f4fe26078edd876f13701e712caad106495e92ba47
MD5 5cae1d0bbd02eb63bdc013d862fc07c1
BLAKE2b-256 d85af23cb364a5d596092de944d10aff1ec77820a2c4481959259b268ae87147

See more details on using hashes here.

Provenance

The following attestation bundles were made for heimdall_network_monitor-0.2.4.tar.gz:

Publisher: python-publish.yml on vishnuupanickar/heimdall

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file heimdall_network_monitor-0.2.4-py3-none-any.whl.

File metadata

File hashes

Hashes for heimdall_network_monitor-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 dbaf4c1426763eca1f23fd727b98a497e712c0eb2d62ae83b75bac1db5c2c1f0
MD5 210b868b07af1e50c2e4359a76c6e310
BLAKE2b-256 c7c990c06685568df6dec0c0e603b9c348b3f4cc3b74cc75510034ff8c24c85d

See more details on using hashes here.

Provenance

The following attestation bundles were made for heimdall_network_monitor-0.2.4-py3-none-any.whl:

Publisher: python-publish.yml on vishnuupanickar/heimdall

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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