Seven step-by-step, interactive animations of the flows that make the product work — local Bluetooth charging, power-panel setup, dynamic load management (with a live simulator you can drive), gateway repair, security-key rotation, and the all-important offline → OCPP CMS ingest. Every step maps to the live firmware, mobile app, and backend code. Type a URL, drag the breaker, toggle the panel — the diagrams react.
A technician opens Local only mode, connects to the gateway over the BLE-Op service, and starts/stops a charger — even with no signal. Control commands are gated by the current auth key; the gateway relays them to the charger over the wired LAN.
The power-panel node measures the building’s live load. In Node config, the installer joins the node’s Wi-Fi, tells it which gateway and DLM panel number it belongs to, and connects it to the site router. After that the node firmware reports on its own — the phone drops out.
From the phone (online), the user assigns chargers to panels and sets each panel’s breaker/buffer. The backend auto-matches each DLM panel to its power-panel node (panel i ↔ node i+1), subtracts the live building load, and water-fills the remaining amps. Want to drive it yourself? See the simulator in Chapter 4.
This is the real allocation logic from dlm.js, running in your browser: every charger holds a 6 A minimum, the rest is water-filled, a live building load subtracts ⌈kW·1000/240⌉ A, and if there isn’t enough everyone is held at 6 A. Key point: the power-panel node is optional — turn it off and DLM still balances against your breaker/buffer alone. Change anything, or hit ▶ Play for a guided scenario.
“Repair gateway” safely resets a unit for re-provisioning. It first offers to turn DLM off (so a stale config isn’t enforced), takes every charger offline, waits for them to go dormant, then sends Provision or Factory reset and hands off to the provisioning screen. Progress shows as a live ✓/✗ log.
BLE-Op is protected by a rotating key. The backend rotates the whole fleet on a schedule, issues an interim key the moment a new / factory-reset gateway comes online (30 s settle + retry), and offers a manual “Issue key” button for installers. The current key rides the live snapshot to the console and the mobile app, which presents it over BLE.
The most important flow. When a gateway loses internet, chargers keep working and every session is buffered to SD. On reconnect the gateway replays the buffer, and the backend rebuilds each session as real OCPP 1.6J transactions — backdated to when they happened — plus status/fault events, and streams them to your CMS with no double-billing. Type your CMS URL and pick a mode, then hit ▶ Start.
Phone bonds to the gateway over BLE, sends site Wi-Fi + the charger list; the gateway hops each charger AP → LAN mode. One tap onboards the whole fleet.
AUTH:<key>:node_<serial>_… → gateway → LAN. Start/stop, set current, offline & reboot per bay.
Backend → MQTT /cmd → gateway → LAN. Full control per bay.
Assign each of the 5 chargers to a panel (Panel 1 is the catch-all). Drives which budget balances it.
Add a node, map it to a panel, set its live kW — its load (⌈kW·1000/240⌉ A) is subtracted from that panel’s DLM budget. Delete with ✕.