Guides

BESS Setup

Monitor a battery energy storage system with OPC UA and Modbus devices.

This guide walks you through setting up monitoring for a Battery Energy Storage System (BESS). BESS installations typically include battery racks, a power conversion system (PCS), a battery management system (BMS), and environmental monitoring. By the end of this guide, you will have a fully monitored BESS site with data flowing from the edge to the cloud.

Prerequisites

  • A Fleetera account with an organization set up
  • A Linux server at the BESS site (see hardware requirements)
  • Access to the BESS data sources (OPC UA for the BMS/PCS, Modbus for auxiliary equipment)

Step 1 — Create the site

  1. Navigate to Sites and click + New Site
  2. Fill in the form:
    • Name — for example, "Grid Storage Facility East"
    • Site Category — select Energy Storage Facility
    • Status — set to Active
    • Location — set the GPS coordinates
  3. Click Create Site

Step 2 — Create templates

BESS systems have a deeper hierarchy than wind or solar. Create templates for each level.

Battery container template

  1. Navigate to Templates and click + New Template
  2. Enter a name (for example, "Battery Container 40ft")
  3. Add child templates for the internal components:
    • Battery Rack — represents a rack of battery modules
    • PCS (Power Conversion System) — the inverter that converts DC to AC
    • HVAC — the cooling system for the container
    • Fire Suppression — fire detection and suppression system

Add variables from the BESS library

The platform includes a built-in BESS variable library. Add relevant variables to each level:

Battery Rack:

  • State of charge (SOC), state of health (SOH)
  • Rack voltage, rack current
  • Min/max cell voltage, min/max cell temperature
  • Number of cycles, available energy
  • Alarm and fault flags

PCS:

  • AC power (charge/discharge), AC voltage, AC current
  • DC bus voltage, DC bus current
  • Operating mode (charging, discharging, standby, off)
  • PCS temperature, efficiency

HVAC:

  • Supply air temperature, return air temperature
  • Cooling capacity, fan speed
  • Compressor status, operating mode

Container level:

  • Total active power, total energy throughput
  • Container internal temperature, humidity
  • Grid connection status

Step 3 — Build the asset hierarchy

  1. Open your site and go to the Asset Hierarchy tab
  2. Instantiate the battery container template:
    • For a single container, use single instantiation
    • For multiple containers, use bulk instantiation with a naming pattern (for example, "Container-A", "Container-B")
  3. The hierarchy is created automatically:
Grid Storage Facility East
├── Container-A
│   ├── Battery Rack 1
│   ├── Battery Rack 2
│   ├── ...
│   ├── PCS
│   ├── HVAC
│   └── Fire Suppression
└── Container-B
    ├── Battery Rack 1
    ├── ...

If each container has a different number of battery racks, instantiate the container template first, then manually add or remove rack assets as needed.

Step 4 — Create connectors

BESS sites often combine OPC UA and Modbus protocols.

OPC UA connector for the BMS

  1. Go to the Connectors tab and click + New Connector
  2. Select OPC UA as the protocol
  3. Enter the BMS endpoint URL (for example, opc.tcp://192.168.1.10:4840/UA/BMS)
  4. Configure security settings
  5. Attach the connector to the site or container level

Modbus TCP connector for auxiliary equipment

If the HVAC or PCS uses Modbus:

  1. Create a new connector with protocol Modbus TCP
  2. Enter the device IP and port
  3. Set the unit ID
  4. Attach the connector to the specific asset (for example, the HVAC asset)

Multiple connectors

Large BESS sites may have separate data sources per container. Create a connector for each:

  • Container A BMS → OPC UA connector 1
  • Container B BMS → OPC UA connector 2
  • Site-level meter → Modbus connector

Step 5 — Bind variables

BMS bindings (OPC UA)

First, populate the OPC UA connector's data model by running a discovery crawl from the Data Model tab. Then use match suggestions:

  1. Open the OPC UA connector and go to the Bindings tab
  2. Click Run Matching to start the AI matching process
  3. Review the inline suggestions — typical mappings include:
    • ns=2;s=Rack01.SOC to State of Charge
    • ns=2;s=Rack01.Voltage to Rack Voltage
    • ns=2;s=Rack01.MinCellTemp to Minimum Cell Temperature
  4. Click Accept All High-Confidence to create bindings in bulk
  5. Set sampling intervals:
    • SOC, voltage, current: 5--10 seconds
    • Cell temperatures: 10--30 seconds
    • Alarm flags: 5 seconds

PCS and HVAC bindings (Modbus)

  1. Open the Modbus connector and go to the Bindings tab
  2. Click the binding action on each variable to open the binding editor
  3. Use the Modbus address form to configure register type, start address, data format, and byte/word order
  4. Apply scale and offset transforms as needed (for example, temperature reported in tenths of a degree requires scale 0.1)

Step 6 — Deploy the edge gateway

  1. Go to the Edge Gateway tab
  2. Click + Add Deployment
  3. Enter a name (for example, "BESS Gateway East") and select the architecture
  4. Copy and run the installation command on the Linux server:
curl -sSL https://api.fleetera.ai/api/edge/install.sh | \
  sudo bash -s -- --api-url https://api.fleetera.ai --token <TOKEN>

Wait for the deployment to come Online.

Step 7 — Publish and verify

  1. Check the Config Sync Status on the deployment detail page
  2. Publish the configuration if needed
  3. Wait for the sync status to reach In Sync
  4. Verify data flow through the deployment heartbeats and service statuses

What's next

  • Define KPIs for computed metrics like round-trip efficiency and available capacity, or install a ready-made KPI pack
  • Create asset associations to link PCS units to their battery racks
  • Monitor the deployment on the deployment detail page
  • If the site has grid meters or revenue meters, add additional connectors and bindings for those data sources

On this page