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

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

  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 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 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.1.tar.gz (10.8 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.1-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: heimdall_network_monitor-0.2.1.tar.gz
  • Upload date:
  • Size: 10.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for heimdall_network_monitor-0.2.1.tar.gz
Algorithm Hash digest
SHA256 2a09ee8b97991db31c6ff7ee0d9cc102d9676c115cd692fe9438c1c8510c78b4
MD5 6ece8e71be8542a0d5198956cb2c4d77
BLAKE2b-256 53001a8d8efa5c1c44ad95fca142d19ec001c263f90361a819240e2143c631f4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: heimdall_network_monitor-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for heimdall_network_monitor-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1ad928e28bc01126cf719b9a9f853088b1b1f2bcf2e90ee68dbc194146468336
MD5 af2be60d8d07ec1857186f23df9d701d
BLAKE2b-256 82e4c95706c09b542e7788830621c9e0c5e7f8439445aed8e4e7b07c6c61a062

See more details on using hashes here.

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