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/
    app.py
    config.py
    database.py
    monitor.py
    heimdall.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 -r requirements.txt
    
  2. Run the app

    python src/heimdall.py
    
  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 src/heimdall.py

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.3.tar.gz (10.5 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.3-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: heimdall_network_monitor-0.2.3.tar.gz
  • Upload date:
  • Size: 10.5 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.3.tar.gz
Algorithm Hash digest
SHA256 2a04c2f198718f268141b05250121c96ba260bb1610f9c98bce68f4cc570221c
MD5 59263681a10adfa3cbd56b8283d34cfb
BLAKE2b-256 f548d34a1c8145a524ce7c8edf86ebe2c98e31bc5587e931d1b8f8f288d8b570

See more details on using hashes here.

Provenance

The following attestation bundles were made for heimdall_network_monitor-0.2.3.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.3-py3-none-any.whl.

File metadata

File hashes

Hashes for heimdall_network_monitor-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3902d8c70c8ffb36d96e5e6e829189495d2fc5218aabcebb0ee9677d319c7fc5
MD5 98a933a4872d1e60600a180eb0a1dd40
BLAKE2b-256 fb7a86faa87ce3e3a5584f333ad8624eb744f57f194e1efd970ece1979f22291

See more details on using hashes here.

Provenance

The following attestation bundles were made for heimdall_network_monitor-0.2.3-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