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.6.tar.gz (128.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.6-py3-none-any.whl (127.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: heimdall_network_monitor-0.2.6.tar.gz
  • Upload date:
  • Size: 128.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.6.tar.gz
Algorithm Hash digest
SHA256 4aef3599271f780a35e5df38b6b96862c4e83726ba64882404c7f9b162147e45
MD5 c7cf28c0c68f09295e96ce76523b29d0
BLAKE2b-256 7d21c79fe589aa949b6b233b214cf3a70fc163c96a0bddc64318cebd05cec789

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for heimdall_network_monitor-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 21ea13af76aa920eda6462e3ef5c446e0b17ed7e1bf2390d5a5fa7957d4e4f20
MD5 bc236f40beb3380a36cdc40fc7153db3
BLAKE2b-256 d7fd72fdcb31db877d3d06e6ad78ac96e149fcc0bb7b964be6773cbe63229a82

See more details on using hashes here.

Provenance

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