Skip to content

Models

Models are objects that are referred to in endpoints.

LimitProductionPower

Limit the power production of an inverter or turbine. The Teleport device will send an extra measurement report immediately after startAt and endAt (unless a report is already scheduled within 3 seconds).

MODEL
{
type: 'limitProductionPower';
percentage: number;
startAt: Date;
endAt: Date;
}
details
percentage
Non-negative and <= 100. 0 will turn power production off, 100 will not curtail it at all.

SetSolarOperation

Set the operating mode for an inverter.

MODEL
{
operation: {
limit: {
activePower: number;
} | {
activePowerPercentage: number;
} | null;
reactivePower: {
reactivePower: number;
} | null;
};
startAt: Date;
endAt: Date;
type: 'setSolarOperation';
}
details
operation.limit(type 1).activePower
Non-negative, in W. 0 will turn power production off, power above nominal active power will not curtail it at all.
operation.limit(type 2).activePowerPercentage
Non-negative and <= 100. 0 will turn power production off, 100 will not curtail it at all.
operation.reactivePower.reactivePower
In var. Positive means injecting, negative absorbing.

SetWindOperation

Set the operating mode for a turbine.

MODEL
{
operation: {
limit: {
activePower: number;
} | {
activePowerPercentage: number;
} | null;
reactivePower: {
reactivePower: number;
} | null;
};
startAt: Date;
endAt: Date;
type: 'setWindOperation';
}
details
operation.limit(type 1).activePower
Non-negative, in W. 0 will turn power production off, power above nominal active power will not curtail it at all.
operation.limit(type 2).activePowerPercentage
Non-negative and <= 100. 0 will turn power production off, 100 will not curtail it at all.
operation.reactivePower.reactivePower
In var. Positive means injecting, negative absorbing.

ApplyAfrrDeltaSetpoint

Adjust the power production of an inverter or turbine with the specified power, compared to the minimum of the available power given the weather conditions and the regular curtailment instructions. This can be used when providing automatic Frequency Restoration Reserve (aFRR) services. For PV assets this requires at least one pyranometer or irradiance sensor on site. As the active power need to be produced every 4 seconds (possibly 1 second in the future), the assets need to respond fast enough. Especially PV assets where each inverter in an RS485 string needs to be read out might be problematic.

LimitProductionPower commands for the same asset can be active in parallel: the Teleport will apply the delta on the lowest active setpoint.

MODEL
{
type: 'applyAfrrDeltaSetpoint';
deltaSetpoint: number;
startAt: Date;
endAt: Date;
}
details
deltaSetpoint
In W. Positive for aFRR-up and negative for aFRR-down.

SetBatteryOperation

Set the operating mode for a battery.

MODEL
{
type: 'setBatteryOperation';
operation: {
dispatchPower: {
activePower: number;
} | null;
deliverFCR: {
maxRate: number;
} | null;
chargeToState: {
percentage: number;
} | null;
};
startAt: Date;
endAt: Date;
}
details
operation.dispatchPower.activePower
In W. Positive means discharging, negative charging.
operation.deliverFCR.maxRate
In W and non-negative.
operation.chargeToState.percentage
Non-negative and <= 100.

SetEVOperation

Set the operating mode for a set of EV charger stations.

MODEL
{
type: 'setEVOperation';
operation: {
limit: {
power?: number | null;
current?: number | null;
} | null;
};
startAt: Date;
endAt: Date;
}
details
operation.limit.power?
In W. Active power for AC chargers. For non-bidirectional chargers this value should not be positive. Use null or leave the property out to indicate that no limit should be set.
operation.limit.current?
In A. For non-bidirectional chargers this value should not be positive. Use null or leave the property out to indicate that no limit should be set. This is the phase current. In wye configurations it is the same as the line current. For delta configurations the phase current has to be multiplied by √3 to get the line current

SetGeneratorOperation

Set the operating mode for a generator.

MODEL
{
type: 'setGeneratorOperation';
operation: {
activePower: number | null;
reactivePower: {
reactivePower: number;
} | {
powerFactor: number;
} | null;
};
startAt: Date;
endAt: Date;
}
details
operation.activePower
In W. For generators digital input controls, any non-zero setpoint turns on the asset to deliver a predetermined fixed power output.
operation.reactivePower(type 1).reactivePower
In var. Positive means injecting, negative absorbing.
operation.reactivePower(type 2).powerFactor
Value between -1 and 1. Positive means injecting, negative absorbing.

SetRelayOperation

Set the operating mode for a relay.

MODEL
{
type: 'setRelayOperation';
operation: "on" | "off"[];
startAt: Date;
endAt: Date;
}
details
operation
An array describing the state of all channels in the relay. If there are more elements than channels the superfluous ones are ignored. If less elements are present the other channels are put in their default state.

LimitPower

Set an active power limit at the grid connection or designated metering point with dynamic control where startAt defines the start period of the limit and endAt defined the end period. Once the control schedule ends, the limits revert to their preconfigured static settings. The Teleport will apply the limitation on the lowest active setpoint.

If a negative value is set for feedIn, its absolute value must be lower than both the static and configured consumption limits; otherwise, it will be clamped to the nearest permissible value. Similarly, if a negative value is set for consume, its absolute value must be lower than both the static and configured feed-in limits; otherwise, it will also be clamped to the nearest permissible value.

MODEL
{
type: 'limitPower';
feedIn: number | null;
consume: number | null;
startAt: Date;
endAt: Date;
}
details
feedIn
The inverted feed-in limit must not exceed the consume limit, and vice versa
consume
The inverted consume limit must not exceed the feed-in limit, and vice versa

SagerFurnace

Parameters for a Sager Furnace.

MODEL
{
type: 'sagerFurnace';
schedule: {
charge: boolean;
startAt: string;
endAt: string;
}[] | null;
}
details
schedule
A daily recurring schedule that is stored in the thermal store. Elements should not be overlapping. Not more than 11 elements.
schedule[].startAt
In hh:mm (UTC).
schedule[].endAt
In hh:mm (UTC). Not including.

DemoBattery

Parameters for controlling the errors and warnings of a demo battery. The demo battery will use these warnings and errors in the batteryPower messages.

MODEL
{
type: 'demoBattery';
errors: string[];
warnings: string[];
}