Utility-Scale Batteries

Ingest, model, and control front-of-the-meter battery assets over DNP3 or a direct OEM integration

Front-of-the-meter (FTM) utility-scale batteries — battery energy storage systems, or BESS — are grid assets the utility owns and operates, distinct from the behind-the-meter batteries in homes and businesses. They connect to Texture one of two ways, and we're flexible to meet the asset where it is: through a direct OEM integration managed by Texture (available for supported manufacturers such as Tesla), or over a common utility protocol such as DNP3 — typically via an RTAC (real-time automation controller) at the site. Either way, Texture reads the telemetry in real time, normalizes it into the same battery model used everywhere else on the platform, and surfaces it alongside a dedicated view for the richer utility-scale data.

Why a separate path for these assets?#

Utility-scale batteries differ from behind-the-meter devices in how they connect and what they carry:

  • They connect more than one way — some expose a manufacturer integration (like behind-the-meter devices), while others are reachable only over a utility protocol such as DNP3; Texture supports both.
  • They may sit on the utility's field network — protocol-based assets are reached through an RTAC at the site, over a secured network path, not the public internet.
  • They're real-time — telemetry arrives as a live feed (for DNP3, integrity polls plus unsolicited updates), not on a fixed daily/interval cadence.
  • They're controllable — beyond monitoring, these assets can be dispatched, which raises safety and approval requirements monitoring alone does not.

How it connects#

Texture is flexible about the connection and meets the asset where it is. There are two common pathways, and a given fleet may use either:

PathwayWhen it appliesWhat Texture does
Direct OEM integrationManufacturer exposes a cloud or API (e.g., Tesla Megapack, with a growing set of other brands)Connects through the manufacturer's integration directly, the same way other devices integrate — Texture handles credentials and polling
DNP3 via RTACAsset is exposed over a utility protocol rather than an OEM cloudTexture acts as a DNP3 master and the asset's RTAC is the outstation; a lightweight connector maintains the live session, streams readings onto Texture's pipeline, and an adapter rolls them up into normalized device state and telemetry

A DNP3 connection is addressed by the RTAC's host and DNP3 TCP port, plus the DNP3 link-layer addresses that identify the master (Texture) and the outstation (the RTAC). The connector needs network reachability to the RTAC on the utility's field network (typically via VPN).

What's collected and how it's modeled#

Incoming DNP3 points are scaled and mapped onto Texture's normalized battery state — the same fields used for any battery — so a utility-scale battery behaves like a first-class battery on the platform. The core mapping:

Normalized fieldSourced from
State of charge (%)Battery SOC point
Charge (energy)Total kWh counter, or capacity × SOC where no counter exists
Charge rate (signed)Measured inverter real power; sign indicates charging vs. discharging
Backup reserveDER reserve SOC point
Charging stateBESS state point, or derived from the sign of power when absent
Max charge / dischargeStatic charge / discharge power limits

The raw DNP3 points are retained as telemetry — an irregular, event-driven SCADA feed with no fixed interval, distinct from AMI interval data — which powers the utility-scale telemetry view below.

:::note Inverter-level enrichment is planned Richer inverter-level fields — reactive power, DC bus voltage, voltage / frequency, faults and alarms — are a planned enrichment. Today, signed battery power is carried on the battery's charge rate. :::

Surfacing in the platform#

  • Like any other battery — once live, a utility-scale battery appears in Devices with the standard battery display (state of charge, power, charging state, history).
  • Utility-scale telemetry view — a dedicated widget exposes the raw DNP3 telemetry points beyond the standard battery fields, for operators who need the full picture. (In progress.)

Control#

Beyond monitoring, utility-scale batteries can be dispatched. Texture fits utility-scale control onto the platform's existing battery operating-mode commands (charge / discharge / idle, setpoints), with a dedicated utility-scale mode if the existing modes don't map cleanly (e.g., emergency shutoff).

:::important Control is gated on safety configuration Dispatch raises requirements that monitoring alone does not. Watchdog / timeout behavior and dispatch approval must be configured per site before any control phase is enabled. :::

Setting up a connection#

What Texture needs depends on the pathway.

For a direct OEM integration:

  • The manufacturer account or credentials for the asset.
  • The Texture workspace, site, and customer the battery belongs to.

Texture handles credentials and polling from there.

For the protocol-based (DNP3) path, per site / RTAC:

  • Network — the RTAC's host IP on the utility field network and its DNP3 TCP port, plus reachability (VPN) from Texture's connector.
  • DNP3 addresses — the master link-layer address (Texture) and the outstation link-layer address (the RTAC), agreed with the vendor.
  • Firmware revision — which revision the hardware runs, so the correct points map is used.
  • Texture mapping — the workspace, site, and customer the battery belongs to.
  • Safety config (for control) — watchdog / timeout behavior and dispatch approval, required before any control phase.

Relationship to other concepts#

  • Transformer Loading — utility-scale batteries are common drivers of transformer load (charging) and unloading (discharging); their normalized power flows into the same loading view.
  • SCADA — both are real-time, event-driven feeds; DNP3 telemetry for utility-scale batteries is the same shape of data SCADA carries elsewhere.
  • Grid Topology & GIS — the workspace, site, and customer mapping is how a utility-scale battery is located on the modeled grid.