> For the complete documentation index, see [llms.txt](https://renewables.docs.helinplatform.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://renewables.docs.helinplatform.com/sgm-product-docs/reference-docs/site-control.md).

# Site Control

Coordinated multi-asset orchestration. Global limits, BESS load shifting, EV balancing, and SDE compliance.

Site Control is the orchestration layer in SGM. Rather than controlling assets individually, it monitors everything happening on your site in real time and manages all assets together, keeping the site within its physical and contractual limits automatically, even as conditions change.

Use Site Control when your site has multiple asset types that need to work together, or when your grid connection is limited and a single asset can't absorb the excess production or consumption on its own.

## Limited vs unlimited grid connections

The most important concept for understanding Site Control is the difference between a limited and an unlimited grid connection.

```mermaid
flowchart LR
    subgraph UG [Unlimited Grid]
        direction TB
        U1[Peak production\nor consumption] -->|always fits within| U2[Grid connection\ncapacity]
        U2 --> U3[Peak shaving sufficient\nAsset or Site Control]
    end

    subgraph LG [Limited Grid]
        direction TB
        L1[Peak production\nor consumption] -->|can exceed| L2[Grid connection\ncapacity]
        L2 --> L3[Buffer needed\nSite Control + BESS required]
    end

    style U3 fill:#dcfce7,stroke:#22c55e,color:#000
    style L3 fill:#fee2e2,stroke:#ef4444,color:#000
```

* **Unlimited grid:** Your grid connection is always large enough to absorb whatever the site produces or consumes. Peak shaving, scaling assets down when you approach the limit, is enough to stay compliant.
* **Limited grid:** Your peak production *or* consumption, or both, can exceed your grid connection capacity. Scaling down alone isn't enough; you need a buffer (typically a BESS) to shift energy across time. This always requires Site Control. For example: a 100 kW grid connection on a site with 150 kW of PV (production limited), or a 100 kW connection with 130 kW of peak consumption from EVs and HVAC (consumption limited).

{% hint style="info" %}
For plain-language explanations of peak shaving and load shifting, see [Energy concepts](/sgm-product-docs/concepts/energy-concepts.md).
{% endhint %}

## Strategies

Site Control operates through a set of configurable strategies. Each strategy targets a specific site scenario. Multiple strategies can be active at the same time, see [Combined strategies](#combined-strategies) below.

Strategies are enabled for your site by Helin during commissioning. If you need to add, remove, or adjust a strategy on an active site, contact Helin support. The order in which conflicting limits are resolved is also set at commissioning.

***

### Global Setpoint Limiter, passive peak shaving

This strategy is always active when Site Control is enabled. It defines the upper and lower bounds the site must stay within, and automatically scales asset setpoints up or down to stay inside those limits.

When consumption or production approaches a boundary, SGM reduces the relevant asset setpoints. When headroom opens up again, it restores them. This happens continuously without any input from your system.

**Good for:**

* Unlimited grid connections with production or consumption limits (SDE, CBC, physical)
* Sites where local consumption varies and needs to be factored into asset setpoints automatically

**Not sufficient for:**

* Limited grid connections where peaks can exceed capacity, a load-shifting strategy is also needed

**What you control via API:**

* Asset setpoints and grid limit (CBC) are dynamically adjustable
* All other limits are configured by Helin at commissioning

***

### EV Power Distribution and Balancing

This strategy manages a group of EV chargers, distributing available charging power across them intelligently based on what each charger is actually drawing.

Not all chargers draw the same current, some cars accept full power, others taper off as they approach a full charge. The EV balancer accounts for this when distributing power, so available capacity isn't wasted on chargers that aren't using it.

If total available power drops below what all chargers are requesting, the strategy scales down charging currents proportionally.

**Good for:**

* Sites with multiple EV chargers that need collective power management

**Limitations:**

* The current implementation does not read the car's state of charge, it works purely from observed charger draw
* Individual charger limits are set at commissioning; only the total current cap is adjustable via API

**Supported assets:** AC and DC EV chargers (Modbus-controlled, or OCPP handled by a third party)

***

### BESS Power Assist, consumption load shifting

Use this when your grid connection is too small for peak consumption. The battery acts as a buffer, supplying energy during peaks so the grid connection never needs to exceed its limit.

```mermaid
stateDiagram-v2
    [*] --> Monitoring
    Monitoring --> Discharging : Grid consumption\nexceeds limit
    Monitoring --> Charging : Consumption within limit\nAND SOC below minimum
    Discharging --> Monitoring : Consumption\nback within limit
    Charging --> Monitoring : SOC reaches\nminimum threshold

    state Discharging {
        direction LR
        d1: BESS supplies deficit\nGrid held at limit
    }
    state Charging {
        direction LR
        c1: BESS recharges\nReady for next peak
    }
```

The strategy has two states:

**State A, Discharging:** Grid consumption is exceeding the limit. The BESS discharges to supply the shortfall, keeping grid draw at the configured cap.

**State B, Charging:** Consumption is within limits and the BESS SOC is below its minimum threshold. The BESS recharges to ensure there is capacity available for the next peak.

**Good for:**

* Sites where uncontrolled consumption can exceed the grid connection
* CBC contracts with a consumption cap
* Physical grid connection limits

{% hint style="warning" %}
When Power Assist is active, the BESS does not respond to direct setpoints from the API. The strategy has full control of the battery. If you need to override the battery temporarily, contact Helin to disable the strategy for that window.
{% endhint %}

**What you control via API:** Grid power limit and minimum SOC threshold (self-service SOC configuration is planned for a future release)

***

### BESS Protective Mode, production load shifting

The mirror image of Power Assist. Use this when your site produces more than the grid can accept. The battery absorbs the excess to prevent feed-in from exceeding the grid limit.

```mermaid
stateDiagram-v2
    [*] --> Monitoring
    Monitoring --> Charging : Grid feed-in\nexceeds limit
    Monitoring --> Discharging : Feed-in within limit\nAND SOC above maximum
    Charging --> Monitoring : Feed-in\nback within limit
    Discharging --> Monitoring : SOC reaches\nmaximum threshold

    state Charging {
        direction LR
        c1: BESS absorbs excess\nGrid held at limit
    }
    state Discharging {
        direction LR
        d1: BESS releases stored energy\nReady for next peak
    }
```

**State A, Charging:** Grid feed-in is exceeding the limit. The BESS charges to absorb the excess, holding feed-in at the cap.

**State B, Discharging:** Feed-in is within limits and the BESS SOC is above its maximum threshold. The BESS discharges to make room for the next production peak.

**Good for:**

* Sites where PV production can exceed the grid connection
* CBC contracts with a feed-in cap
* SDE subsidy compliance (feed-in must stay within a defined maximum)

{% hint style="warning" %}
When Protective Mode is active, the BESS does not respond to direct setpoints from the API. If you need to override the battery temporarily, contact Helin to disable the strategy for that window.
{% endhint %}

**What you control via API:** Grid power limit and maximum SOC threshold

***

### BESS Self-consumption Optimisation

When the BESS SOC is between its Power Assist minimum and Protective Mode maximum, this strategy actively balances the site at 0 kW grid exchange, maximising the use of locally generated energy before either importing from or exporting to the grid.

**Good for:**

* Sites with PV production that exceeds local consumption during the day
* Scenarios where self-consumption is more cost-effective than selling to the grid

{% hint style="info" %}
This strategy is currently in development. Contact Helin for availability on your site.
{% endhint %}

***

### SDE Feed-in Control

Manages PV feed-in to ensure it stays within the production cap defined by your SDE subsidy contract. If grid feed-in is approaching the SDE limit, the strategy scales down PV output to maintain compliance.

***

### Combined strategies

Most production sites run more than one strategy simultaneously. Common combinations include:

* **Global Setpoint Limiter + BESS Protective**, for sites with limited feed-in capacity and solar overproduction
* **Global Setpoint Limiter + BESS Power Assist**, for sites with limited grid takeoff and variable consumption
* **Global Setpoint Limiter + EV Balancing**, for sites with EV chargers on an unlimited grid
* **BESS Protective + SDE Control**, for sites with both physical and contractual feed-in limits

When strategies are combined, SGM enforces all active limits simultaneously. The order in which asset limits are enforced is configured by Helin during commissioning.

***

## RTI, Real Time Interface

SGM is a DNV-certified RTI customer endpoint. RTI is a two-way protocol used by Dutch grid operators to send curtailment setpoints to distributed energy resources (DERs) and receive real-time status data back.

RTI compliance is mandatory for newly installed DERs between 1 MWp and 50 MWp in the Netherlands. SGM can receive RTI setpoints from the grid operator and combine them with your site-specific strategies, ensuring both regulatory compliance and your own operational objectives are met simultaneously.

More information: [Netbeheer Nederland, RTI](https://www.netbeheernederland.nl)

## Relevant pages

<table data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><p><i class="fa-sliders">:sliders:</i></p><p><a href="/sgm-product-docs/reference-docs/asset-control.md"><strong>Asset Control</strong></a></p></td><td>Direct, per-asset setpoint control.</td></tr><tr><td><p><i class="fa-clock">:clock:</i></p><p><a href="/sgm-product-docs/reference-docs/scheduling-setpoints.md"><strong>Scheduling setpoints</strong></a></p></td><td>Direct vs scheduled setpoints.</td></tr><tr><td><p><i class="fa-square-dashed">:square-dashed:</i></p><p><a href="/sgm-product-docs/guides/configuration-examples.md"><strong>Configuration examples</strong></a></p></td><td>Pick the right Site Control setup.</td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://renewables.docs.helinplatform.com/sgm-product-docs/reference-docs/site-control.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
