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)

Quick start

Project structure:

heimdall/
  pyproject.toml
  README.md
  src/
    app.py
    config.py
    database.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/app.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/app.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.2.tar.gz (10.4 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.2-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: heimdall_network_monitor-0.2.2.tar.gz
  • Upload date:
  • Size: 10.4 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.2.tar.gz
Algorithm Hash digest
SHA256 fd4aaa6c9894a7d1339f8279cd954cd02d0fc1bfad6eb6347bd22b6f2e6ca0e5
MD5 1bf3679473c65252af05b441a3693cb8
BLAKE2b-256 f80788fdfb2e0b5fabf4cd4ef3d6933e106cef9383d3cf051ac60428bc3dc344

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for heimdall_network_monitor-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 16ead599ce2b9342e6233809da7af5dd7275e7cb6ef4e5116ef2c418cd59dc68
MD5 8caf5aa86f4d60134b3d03aba2eb23e1
BLAKE2b-256 f23e0ab29aa249fd42cd964c56d736c9d5471b31eee94c810c2a9908506ba6ae

See more details on using hashes here.

Provenance

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