Skip to main content

wallmonitor

A local-only companion for the Tesla Wall Connector Gen 3 that grew well beyond reading data off the charger: it records everything the device reports, turns that history into a thermal model fitted to your install, forecasts derates before they happen (with the charge-current cap that avoids them), watches for connector degradation with honest statistics, and pushes actionable warnings to your browser or phone.

Everything stays on your machine and your LAN: the only network traffic is HTTP GETs to the charger's local API, storage is a local SQLite file, and the web UI serves no external assets (no CDNs, fonts, or analytics).

Reviewing a real charge session: the dashed line is what the forecast predicted at each 30 s tick, converging onto the measured handle temperature — and the event log shows the automatic amp control acting on those predictions

Try it in 30 seconds

No hardware needed — demo mode runs a built-in charger simulator:

uvx wallmonitor --demo

Then open http://127.0.0.1:8480.

Against your real Wall Connector (find its IP in your router's client list — it registers a DHCP hostname like TeslaWallConnector_XXXXXX, which some routers also make resolvable by name; add --split-phase on a North American split-phase install):

uvx wallmonitor --host 192.168.1.50 --split-phase

All history lands in a single wallmonitor.db SQLite file — back up that one file and you have everything. For every option, and for running it as a systemd service on an always-on box, see Running wallmonitor.

At a glance

  • Full-fidelity recording — every response stored with its complete raw JSON
  • Live dashboard (SSE) with rolling charts, an active-alert banner, and a live derate-forecast chart: measured handle temperature against the model's projected plateau and the trip threshold, projection drawn forward so the predicted trip intercept is visible on the chart
  • Session review: energy, peak/average power, per-phase telemetry, drillable charts
  • Event timeline with range presets, category filters, and paging
  • Alert decoding and EVSE-state labels, each marked verified vs community-reported
  • Wi-Fi health history and connectivity events
  • Thermal derate forecast — a per-install fitted model predicts alert 40 live and suggests the highest current that avoids the 50% foldback
  • Automatic derate prevention — an optional daemon caps the vehicle's charge current through a least-privilege BLE pairing when the forecast firms up, and restores it once the risk clears
  • Degradation watch — ambient-corrected heat-rise trend with confidence intervals and a verified-baseline anchor, so "getting worse" is a statistical claim, not a vibe
  • Actionable notifications, local-only — browser push and LAN webhook/self-hosted ntfy for phones, with a systemd + Docker deploy recipe
  • Resilience: seamless restarts, downtime recorded as explicit gap events, sensor-glitch quarantine

Works out of the box — everything else is additive

The core needs nothing but the charger. Integrations are optional, degrade gracefully when absent, and the absence paths are covered by the test suite: without an ambient sensor the charger doubles as its own thermometer, with no webhook configured notifications are a tested no-op, and TeslaMate / ntfy / ESP32-BLE each plug into a generic interface (POST /api/ambient, a plain LAN webhook, a REST call) rather than being wired into the core.

Documentation

Page What's in it
Running wallmonitor Every option, systemd service install, tests
What gets recorded Recording fidelity, sessions, events, alert/EVSE label verification, resilience
Thermal model The derate forecast and the degradation watch, in full detail
Amp control Automatic derate prevention over BLE: design, guards, backtesting
Ambient sensing Garage sensors (Ecowitt or any JSON poster), placement, contamination checks, the TeslaMate car bridge
Notifications Browser push and self-hosted ntfy phone alerts
Measured charging efficiency What three cross-referenced meters say about wall-to-battery efficiency

Tests

uv run pytest

The suite runs the full pipeline against the simulator — polling, session detection, alert lifecycle, the web API, and the thermal model end to end.

License

MIT. Built on the tesla-wall-connector library (MIT, by Einar Bragi Hauksson).

wallmonitor is an independent project, not affiliated with, endorsed by, or sponsored by Tesla, Inc. "Tesla" and "Tesla Wall Connector" are trademarks of Tesla, Inc., used here only to identify the hardware this software monitors.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wallmonitor-0.2.0.tar.gz (79.3 kB view details)

Uploaded Source

Built Distribution

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

wallmonitor-0.2.0-py3-none-any.whl (84.8 kB view details)

Uploaded Python 3

File details

Details for the file wallmonitor-0.2.0.tar.gz.

File metadata

  • Download URL: wallmonitor-0.2.0.tar.gz
  • Upload date:
  • Size: 79.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wallmonitor-0.2.0.tar.gz
Algorithm Hash digest
SHA256 9e6139915da431a1023b2321b055f2c753491d1ba7717d54d22cc7a30d5fb0c9
MD5 88a5769138c759d48531b78dd817a659
BLAKE2b-256 931a8d040a7bbec7cbd618dd6e8029f7764fbdf71e57fac606980eb35cfe199b

See more details on using hashes here.

Provenance

The following attestation bundles were made for wallmonitor-0.2.0.tar.gz:

Publisher: publish.yml on zebraengine/wallmonitor

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

File details

Details for the file wallmonitor-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: wallmonitor-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 84.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for wallmonitor-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 95990d9ff39165c4ec9a0bea02e2fdf75fc0577328a42b487bcde3ec8bfbc416
MD5 26c857011171f8370ad3ebadb8d6d3d7
BLAKE2b-256 d6e3232c0654555a5c09039accdf3c768c0a63a5592d0aac8b805c00e9acfa18

See more details on using hashes here.

Provenance

The following attestation bundles were made for wallmonitor-0.2.0-py3-none-any.whl:

Publisher: publish.yml on zebraengine/wallmonitor

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

Release history Release notifications | RSS feed

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page