Skip to content

OSTEC-Flex Module

Type: OSTEC_FLEX Category: Flexibility Maturity: DEVELOPMENT 🟡

Two-mode OSTEC for flexibility market participation:

  • OFFER_CURVES — generates flexibility offer curves to submit to a market operator
  • DISPATCH — calculates setpoints to dispatch flexible resources when an offer has been activated

Both modes support REC-AGG (energy sharing within the community) or AGG_HEDGE_IOT (no sharing, used for the Hedge-IoT project).

Configuration Schema

Field Type Default Required Description
operation_mode string — Yes OFFER_CURVES · DISPATCH
energy_sharing_mode string — Yes REC_AGG · AGG_HEDGE_IOT
flexibility_resources UUID[] — No Resource IDs available for flexibility
solver string "CPLEX" No CPLEX · GUROBI · CBC
l_extra number 10 No Extra penalty weight
optimization_timeout integer 300 No Max solver time in seconds
offer_price_min number 0.0 No Min offer price (€/kWh) — OFFER_CURVES only
offer_price_max number 0.5 No Max offer price (€/kWh) — OFFER_CURVES only
offer_curve_points integer 10 No Number of price/quantity points in the offer curve
{
  "operation_mode": "OFFER_CURVES",
  "energy_sharing_mode": "REC_AGG",
  "offer_price_min": 0.0,
  "offer_price_max": 0.5,
  "offer_curve_points": 10,
  "solver": "CPLEX"
}

Activation

curl -X POST \
  https://<host>/core/api/communities/{community_id}/energy_management/configs \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "module_type": "OSTEC_FLEX",
    "horizon": 24,
    "delta_t": 1.0,
    "config_data": {
      "operation_mode": "OFFER_CURVES",
      "energy_sharing_mode": "REC_AGG",
      "offer_price_min": 0.0,
      "offer_price_max": 0.5
    }
  }'
curl -X POST \
  https://<host>/core/api/communities/{community_id}/energy_management/configs \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "module_type": "OSTEC_FLEX",
    "horizon": 24,
    "delta_t": 1.0,
    "config_data": {
      "operation_mode": "DISPATCH",
      "energy_sharing_mode": "REC_AGG",
      "solver": "CPLEX"
    }
  }'

Triggering a Calculation

curl -X POST \
  "https://<host>/core/api/communities/{community_id}/energy_management/configs/{config_id}/calculate?target_date=2026-04-18" \
  -H "Authorization: Bearer <token>"