JSON REST API
One endpoint, all the data.
GET /api.json returns SOC, SOH, voltage, current, power, state, per-cell voltages, per-battery detail, temperatures, WiFi/MQTT status and more as structured JSON — ready for Home Assistant, Node-RED, Jeedom, Domoticz, openHAB or your own scripts.(Optional) Private Public URL — check it from anywhere
Flip one checkbox in Settings to publish your battery data to the cloud, for free, at a private link secured by your own access key. Handy for checking the battery from the office or while traveling — no VPN, no Cloudflare Tunnel, no Home Assistant, no port forwarding, no dynamic DNS. Off by default; turn it back off and it stops immediately.
Home Assistant, MQTT auto-discovery
Fill in your broker's IP and credentials and 10 sensors appear automatically — SOC, SOH, voltage, current, power, battery & MOSFET temperature, cycles, state and cell imbalance — grouped under one device card, plus an online/offline availability signal. Zero YAML.
Web dashboard
Open
http://<DEVICE-IP> (the IP shown on the TFT screen) or http://pylon-monitor.local in any browser. Live cards refresh every few seconds without ever reloading the page:- Charge: SOC, voltage, current, power, state
- Health: SOH, cycles, cell imbalance, charge/discharge counts
- Temperatures: base & MOSFET
- System: IP, WiFi signal, MQTT status, uptime
- Cells & Charge history: per-cell voltages and a 24h graph
Built-in TFT display, self-healing
A crisp 1.8" IPS TFT shows the State of Charge in giant digits, with voltage and current beside it and SOH, cycles and temperature below — you choose exactly which of these show up (see Screen Display). The panel is fully re-initialised every ~90 seconds while running, plus a boot self-test, so a stray power glitch never leaves it stuck white or corrupted.
Built-in diagnostics
No serial monitor needed: an Event log page shows recent activity plus a boot history that survives crashes, a Raw data page shows the battery console's unparsed replies, and a Network page tracks WiFi signal over time with a one-click gateway reachability test.
Configurable alarms
Set your own SOC and temperature thresholds (with hysteresis, so a single noisy reading won't spam you) and get a push notification on your phone via Pushover the moment either is crossed — plus a one-click test button to confirm it works.
24h history & CSV export
The dashboard graphs SOC, voltage and current over the last 24 hours (sampled every 5 minutes) and exports the same data as a CSV file in one click — handy for a spreadsheet or a support request.
Low voltage and high voltage
One box for both Pylontech families. The low-voltage US series — US5000, US3000, US2000, UP2500, Force-L1 — on every unit; and high-voltage Force H2 towers and H48050 modules behind a management unit since firmware 2.8, on the hardware generation shipped with orders placed from 5 September 2026. The device tells the two apart from the battery's very first reply and switches by itself: nothing to configure, and it switches back if you move the cable. A high-voltage tower also gets a card of its own for what only it reports — lowest and highest cell and module, charge limits, detailed status and error code.
Multi-battery support — up to 16 batteries
Supports up to 16 batteries chained together — for example 16× US5000 (≈76.8 kWh total), 16× US2000 (≈38.4 kWh), or any mix like 2× US2000 + 2× US3000 + 1× US5000. Battery-level data (SOC, voltage, SOH, cycles, state) is detected and shown individually for all of them — a selector on the Charge and Temperatures cards switches between "all batteries combined" and any single battery. Only the per-cell voltage detail (a technical reading most people never check) is limited to the first ~4 batteries; every other reading works for all 16.

The mistake almost everyone makes: LINK PORT 1, not LINK PORT 0
The cable that chains your master battery to the first slave must leave LINK PORT 1 on the master — never LINK PORT 0. It plugs into LINK PORT 0 on the slave, and every further battery repeats the same 1 → 0 pattern. Wired the other way round the master never sees the rest of the stack, so Pylon-Monitor reports a single battery no matter how many you own.
The cable that chains your master battery to the first slave must leave LINK PORT 1 on the master — never LINK PORT 0. It plugs into LINK PORT 0 on the slave, and every further battery repeats the same 1 → 0 pattern. Wired the other way round the master never sees the rest of the stack, so Pylon-Monitor reports a single battery no matter how many you own.
Screen Display customization
A dedicated settings page lets you tick which elements the physical screen shows — header, voltage/current/power, gauge, state, SOH, cycles, temperature, IP/hostname footer — with a live preview that mirrors the exact real layout before you save.
Captive portal WiFi setup
On first boot the device creates its own WiFi network called
PylonMonitor-Setup, with its own wildcard DNS so the setup page opens by itself on your phone whatever URL you type. Connect, pick your home WiFi, type the password — done. No app to install, no QR code to scan.Over-the-air firmware updates
The dashboard's Update firmware page has one button: the device fetches and installs the latest version from our firmware page's fixed URL by itself. Prefer to do it manually? Download the
.bin and upload it through the browser instead. No cables, no soldering, settings preserved either way.Local & secure by default
No cloud, no account, no telemetry — the device only talks to your local network and to the battery. The optional login uses a real random session cookie you can't forge, and saved passwords are never sent back to the browser.
Two levels of reset
Moved house or changed your WiFi? The reset button is on the back of the enclosure — 2 quick taps in a row (each within 8 seconds of the last) reopen the setup portal so you can pick a network again — nothing else is touched. Want a clean slate (WiFi, MQTT, alarms, login all wiped)? Use Factory reset from the dashboard.
Frequent, console-friendly polling
The dashboard refreshes what it already has every ~4 seconds for a live feel. Behind the scenes, the four Pylontech console commands (
pwr, bat, stat, info) are round-robined one every 10 seconds — a full data refresh every ~40 seconds — deliberately paced so the battery's console port is never hammered.Built to last
Solid-state electronics, 1.8" IPS TFT, sturdy enclosure. No moving parts, no fans, no failures. Powered by any 5V USB source (under 0.5 W).