Skip to main content

UpdateSiteConfigurationDTO

site_configuration object
anyOf
device_list object[]required
  • Array [
  • oneOf
    nameName (string)required

    The name of the device itself. This value will be used as the asset ID in the rest of the API.

    collectorCollector (string)required

    The name of the collector to which this device is connected.

    ingress_validation object

    Overrides the site-level ingress validation config for this asset. When set, controls how often measurements are expected during active and inactive transactions. When null, the site-level configuration is used.

    anyOf
    with_transaction_expected_measurement_intervalstring<duration>

    Expected measurement interval for the asset while it has an active transaction. Measurements arriving less frequently than this are flagged as stale by ingress validation. Note: the UCL calculation requires measurements at least every 5 minutes to produce accurate results, so this value should not exceed 5 minutes for assets that participate in the uncontrollable-load computation.

    without_transaction_expected_measurement_interval object

    Expected measurement interval for the asset when no transaction is active. When null, the asset is always considered valid while idle. Note: the UCL calculation requires measurements at least every 5 minutes to produce accurate results, so if this asset contributes to the uncontrollable-load computation it should still report at least every 5 minutes.

    anyOf
    string
    typeType (string)
    Constant value: charging_pole_3phase
    Default value: charging_pole_3phase
    line_currentLine Current (integer)required

    The line current in Ampere.

    pin_to_phase_mapping objectrequired

    Defines how charging pole pins map to the collectors' phases. For more information see the 'Key Concepts - Site configuration' section in the documentation.

    pin_liststring[]required

    Possible values: [pin1, pin2, pin3]

    phase_liststring[]required

    Possible values: [L1, L2, L3]

  • ]
  • collector_list object[]required

    The site's root collector, its grid connection. A site has exactly one; collectors below the grid connection belong in its children.

    Possible values: <= 1

  • Array [
  • phase_permutations object

    Specify the phase mapping between this asset (child) and its parent collector (parent). Leave unset when the wiring is unknown; phase-aware control (use_topology) requires every asset's mapping to be declared, so a single unset mapping makes the controller fall back to the worst case. The root collector is exempt: it is the grid connection, whose phases are the reference frame every other mapping is expressed against, so the controller always treats it as the identity and it may only be left unset or declared as the identity.

    anyOf
    parentstring[]required

    Possible values: [L1, L2, L3]

    childstring[]required

    Possible values: [L1, L2, L3]

    nameName (string)required
    children object

    The children of this collector. This is used to create a tree structure.

    anyOf
  • Array [
  • 0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
  • ]
  • line_currentLine Current (integer)required

    The line current in Ampere.

    safe_line_current object

    An optional, safer line current in Ampere used by the optimizer instead of line_current when set.

    anyOf
    integer
    min_phase_current object

    An optional lower bound in Ampere per phase. Set it to 0 on the main collector to forbid injection into the grid.

    anyOf
    number
    phase_voltagePhase Voltage (integer)required

    The phase voltage is in Volt.

    commodityCommodity (string)
    Default value: electricity
    1P_3PCollectorType (string)

    Specifies whether the collector is single-phase (1P) or three-phase (3P).

    Possible values: [1P, 3P]

    Default value: 3P
  • ]
  • optimization_configuration object
    anyOf
    peak_minimization object
    anyOf
    active object

    Boolean field that indicates if the peak minimization is activated or not.

    anyOf
    boolean
    peak_limit object

    Specifies a line under which the peak price does not apply. The value specified will be applied to all the phases of the collector separately. By default the peak_limit is set to 0.

    anyOf
    integer
    negative_peak_minimization object
    anyOf
    active object

    Boolean field that indicates if the peak minimization is activated or not.

    anyOf
    boolean
    peak_limit object

    Specifies a line under which the peak price does not apply. The value specified will be applied to all the phases of the collector separately. By default the peak_limit is set to 0.

    anyOf
    integer
    cost_minimization_activeCost Minimization Active (boolean)

    Boolean field that indicates if cost minimization (energy price optimization) is activated or not.

    Default value: true
    planning_frequencyPlanning Frequency (string)

    The planned frequency at which a site will be optimized. Should follow the python timedelta notation. Currently this field is disabled as we only support 15 minutes long optimization configuration. Notation is in Pandas Timedelta notation.

    Constant value: PT15M
    Default value: PT15M
    planning_horizonPlanning Horizon (string)

    The planning horizon for which the optimization will be done. Should follow the ISO-8601 duration notation.

    Possible values: [PT2H, PT4H, PT6H, PT8H, PT10H, PT12H, PT15H, PT18H, P1D, P2D, P3D]

    Default value: P1D
    energy_contract object
    anyOf
    contract_type

    Possible values: [day_night_be, dynamic, fixed]

    day_offtake_cost_per_mwhDay Offtake Cost Per Mwh (number)required
    night_offtake_cost_per_mwhNight Offtake Cost Per Mwh (number)required
    day_injection_cost_per_mwhDay Injection Cost Per Mwh (number)required
    night_injection_cost_per_mwhNight Injection Cost Per Mwh (number)required
    dso_connection object
    anyOf
    dsorequired

    Possible values: [AIEG, AIESH, Fluvius, German, ORES, RESA, REW, Sibelga]

    regionRegion (string)required
    Constant value: All
    connection_typeConnection Type (string)required

    Possible values: [T-MT avec terme capacitaire, T-MT sans terme capacitaire, MT avec terme capacitaire, MT sans terme capacitaire, T-BT avec terme capacitaire, T-BT sans terme capacitaire, BT>56kVA - heures normales, BT>56kVA - heures pleines/creuses, BT - heures normales, BT - heures pleines/creuses, BT - heures incitative]

    ingress_validation object
    anyOf
    main_collector_expected_measurement_interval object

    Expected measurement interval applied to every collector on the site. When null, collectors are always considered valid. Note: the UCL calculation requires grid measurements at least every 5 minutes to produce accurate results, so the main collector should not exceed a 5-minute interval.

    anyOf
    string
    asset object

    Default ingress validation for assets. Used when an asset has no ingress_validation override and no per_asset_type entry matches.

    with_transaction_expected_measurement_intervalstring<duration>

    Expected measurement interval for the asset while it has an active transaction. Measurements arriving less frequently than this are flagged as stale by ingress validation. Note: the UCL calculation requires measurements at least every 5 minutes to produce accurate results, so this value should not exceed 5 minutes for assets that participate in the uncontrollable-load computation.

    without_transaction_expected_measurement_interval object

    Expected measurement interval for the asset when no transaction is active. When null, the asset is always considered valid while idle. Note: the UCL calculation requires measurements at least every 5 minutes to produce accurate results, so if this asset contributes to the uncontrollable-load computation it should still report at least every 5 minutes.

    anyOf
    string
    per_asset_type object

    Per-asset-type defaults that override the site-level asset defaults. An asset without its own ingress_validation falls back to the per-type config (if present) before falling back to asset.

    property name* AssetIngressValidationConfig
    with_transaction_expected_measurement_intervalstring<duration>

    Expected measurement interval for the asset while it has an active transaction. Measurements arriving less frequently than this are flagged as stale by ingress validation. Note: the UCL calculation requires measurements at least every 5 minutes to produce accurate results, so this value should not exceed 5 minutes for assets that participate in the uncontrollable-load computation.

    without_transaction_expected_measurement_interval object

    Expected measurement interval for the asset when no transaction is active. When null, the asset is always considered valid while idle. Note: the UCL calculation requires measurements at least every 5 minutes to produce accurate results, so if this asset contributes to the uncontrollable-load computation it should still report at least every 5 minutes.

    anyOf
    string
    UpdateSiteConfigurationDTO
    {
    "site_configuration": {
    "device_list": [
    {
    "name": "LR34_001",
    "collector": "main_collector",
    "ingress_validation": {
    "with_transaction_expected_measurement_interval": "string",
    "without_transaction_expected_measurement_interval": "string"
    },
    "type": "charging_pole_3phase",
    "line_current": 32,
    "pin_to_phase_mapping": {
    "pin_list": [
    "pin1"
    ],
    "phase_list": [
    "L1"
    ]
    }
    },
    {
    "phase_permutations": {
    "parent": [
    "L1"
    ],
    "child": [
    "L1"
    ]
    },
    "name": "LR34_001",
    "collector": "main_collector",
    "ingress_validation": {
    "with_transaction_expected_measurement_interval": "string",
    "without_transaction_expected_measurement_interval": "string"
    },
    "type": "dc_charging_pole",
    "max_power": 250000,
    "strategy": "load-balancing"
    },
    {
    "phase_permutations": {
    "parent": [
    "L1"
    ],
    "child": [
    "L1"
    ]
    },
    "name": "LR34_001",
    "collector": "main_collector",
    "ingress_validation": {
    "with_transaction_expected_measurement_interval": "string",
    "without_transaction_expected_measurement_interval": "string"
    },
    "type": "forecasted_series_3phase",
    "line_current": 32,
    "forecast_type": "pv",
    "should_be_aggregated": false,
    "curtailment_mode": "none"
    },
    {
    "phase_permutations": {
    "parent": [
    "L1"
    ],
    "child": [
    "L1"
    ]
    },
    "name": "LR34_001",
    "collector": "main_collector",
    "ingress_validation": {
    "with_transaction_expected_measurement_interval": "string",
    "without_transaction_expected_measurement_interval": "string"
    },
    "type": "battery_energy_storage_system",
    "charging_efficiency": 0.95,
    "discharging_efficiency": 0.95,
    "maximum_charging_power": 50000,
    "maximum_discharging_power": 50000,
    "operational_battery_capacity": 100000,
    "charging_priority": 5,
    "discharging_priority": 5,
    "policies": [
    {
    "type": "schedule",
    "schedule": {
    "frequency": "weekly",
    "day_of_week": [
    "monday",
    "friday"
    ],
    "time": "09:00",
    "timezone": "America/New_York"
    },
    "minimum_state_of_charge": 20,
    "maximum_state_of_charge": 80,
    "violation_price_euros_per_mwh": 3000000
    },
    {
    "type": "charge-hysteresis",
    "start_charging_below": 10,
    "stop_charging_at": 20
    }
    ]
    }
    ],
    "collector_list": [
    {
    "phase_permutations": {
    "parent": [
    "L1"
    ],
    "child": [
    "L1"
    ]
    },
    "name": "main_collector",
    "children": [
    null
    ],
    "line_current": 400,
    "safe_line_current": 300,
    "min_phase_current": 0,
    "phase_voltage": 230,
    "commodity": "electricity",
    "1P_3P": "3P"
    }
    ]
    },
    "optimization_configuration": {
    "peak_minimization": {
    "active": true,
    "peak_limit": 100000
    },
    "negative_peak_minimization": {
    "active": true,
    "peak_limit": 100000
    },
    "cost_minimization_active": true,
    "planning_frequency": "PT15M",
    "planning_horizon": "P1D"
    },
    "energy_contract": {
    "fixed_offtake_cost_per_mwh": 0,
    "fixed_injection_cost_per_mwh": 0,
    "contract_type": "fixed"
    },
    "dso_connection": {
    "dso": "string",
    "region": "Imewo",
    "connection_type": "Low Voltage Network",
    "toegangsvermogen": 0
    },
    "ingress_validation": {
    "main_collector_expected_measurement_interval": "string",
    "asset": {
    "with_transaction_expected_measurement_interval": "string",
    "without_transaction_expected_measurement_interval": "string"
    },
    "per_asset_type": {}
    }
    }