Limiters
One or more limiters can be configured to set the operating envelope of the site.
All limiters are restrictive, that is a combination of multiple limiters will evaluate all limiters and enforce the most prohibitive value of each control type at any one time.
Control modes
The software supports 6 control modes mapped to the CSIP-AUS Dynamic Operating Envelope (DOE) modes.
Mode | Description | Overlap resolution | Default value |
---|---|---|---|
opModConnect | Connection to the grid | Prioritize disconnect | Connect |
opModEnergize | Generate or consume energy (in practice for most inverters this is the same as opModConnect ) | Prioritize de-energize | Energized |
opModExportLimW | Maximum site export limit (in watts) | Lower limit | Unlimited |
opModGenLimW | Maximum inverter generation limit (in watts) | Lower limit | Unlimited |
opModImpLimW | Maximum site import limit (in watts) | Lower limit | Unlimited |
opModLoadLimW | Maximum controllable load limit (in watts) | Lower limit | Unlimited |
CSIP-AUS dynamic connection
Apply dynamic limits from an Australian energy utility CSIP-AUS/SEP2 server.
IMPORTANT
This CSIP-AUS client cannot run without device certificates (and manufacturer certificates). See the CSIP-AUS section for more information.
To use the CSIP-AUS limiter, add following property to config.json
{
"limiters": {
"sep2": {
"host": "https://sep2-test.energyq.com.au", // (string) required: the SEP2 server host
"dcapUri": "/api/v2/dcap" // (string) required: the device capability discovery URI
"nmi": "1234567890" // (string) optional: for utilities that require in-band registration, the NMI of the site
}
}
...
}
Fixed limit
To set fixed limits (such as for fixed export limits), add the following property to config.json
{
"limiters": {
"fixed": {
"connect": true, // (true/false) optional: whether the inverters should be connected to the grid
"exportLimitWatts": 5000, // (number) optional: the maximum export limit in watts
"generationLimitWatts": 10000 // (number) optional: the maximum generation limit in watts
"importLimitWatts": 5000 // (number) optional: the maximum import limit in watts (not currently used)
"loadLimitWatts": 10000 // (number) optional: the maximum load limit in watts (not currently used)
}
}
...
}
MQTT
To set limits based on a MQTT topic, add the following property to config.json
{
"limiters": {
"mqtt": {
"host": "mqtt://192.168.1.123",
"topic": "limits"
}
}
...
}
The MQTT topic must contain a JSON message that meets the following schema
z.object({
opModConnect: z.boolean().optional(),
opModEnergize: z.boolean().optional(),
opModExpLimW: z.number().optional(),
opModGenLimW: z.number().optional(),
opModImpLimW: z.number().optional(),
opModLoadLimW: z.number().optional(),
});
For example
{
"opModEnergize": true,
"opModExpLimW": 5000,
"opModGenLimW": 10000
}
Negative feed-in
To set a zero export limit based on negative feed-in, add the following property to config.json
For Amber Electric:
{
"limiters": {
"negativeFeedIn": {
"type": "amber", // (string) required: the source of the negative feed-in data
"apiKey": "asdf", // (string) required: the Amber API key
"siteId": "12345" // (string) optional: the Amber site ID. If not supplied, it will automatically select the first site in the account (will error if there are multiple sites)
}
}
...
}
Two-way tariffs
To set a zero export limit based on two-way tariffs, add the following property to config.json
For Ausgrid solar tariff EA029:
{
"limiters": {
"twoWayTariff": {
"type": "ausgridEA029"
}
}
...
}
For SAPN RELE2W tariff:
{
"limiters": {
"twoWayTariff": {
"type": "sapnRELE2W"
}
}
...
}