Zum Hauptinhalt springen

AllocateCommunityEnergyNodeConfiguration

Namespace: Meshmakers.Octo.MeshAdapter.Nodes.Transform

AllocateCommunityEnergy node configuration (AB#5634). Distributes the generation offered to an energy community among its participating consumers, slot by slot, for whole calendar days, with the dynamic key: every consumer is covered in proportion to its partition-weighted consumption and never above it, and what is left over stays with the producers as undistributed surplus.

public record AllocateCommunityEnergyNodeConfiguration : NodeConfiguration, INodeConfiguration, IEquatable<NodeConfiguration>, IEquatable<AllocateCommunityEnergyNodeConfiguration>

Inheritance Object → NodeConfiguration → AllocateCommunityEnergyNodeConfiguration
Implements INodeConfiguration, IEquatable<NodeConfiguration>, IEquatable<AllocateCommunityEnergyNodeConfiguration>

Remarks:

Inputs are the raw registers of the participating metering points (consumption for consumers, generation for producers), read from a time-range archive, plus the participation periods and the partition factor of every metering point. The output is one record per metering point, register and day in the shape the EDA ingest produces, so SaveTimeRangeSeriesInArchive@1 writes it with the configuration the EDA pipeline uses, unchanged: the community share for every consumer, and the offered generation plus the undistributed surplus for every producer, both for every participating slot, also when zero.

All arithmetic runs in whole multiples of AllocateCommunityEnergyNodeConfiguration.Resolution, so the billing identity "sum of offered minus surplus over the producers equals the sum of the consumer shares" holds exactly in every slot. A day on which a metering point participates whose data source is not allocatable (for example a real EDA metering point) is aborted as a whole and produces no records.

Properties​

Identity​

Identity this node runs as: Caller (default), ServiceAccount (the pipeline's service account with its full roles, even when a caller is present), or System (unfiltered, bypasses data permissions). A missing value resolves to Caller (AB#5127).

public NodeExecutionIdentity Identity { get; set; }

Property Value​

NodeExecutionIdentity

StartDay​

First calendar day to allocate, in AllocateCommunityEnergyNodeConfiguration.TimeZone. Only the date part is used. When neither this nor AllocateCommunityEnergyNodeConfiguration.StartDayPath resolves a value, the node picks the latest day whose cut-off has already passed and allocates exactly that one day.

public Nullable<DateTime> StartDay { get; set; }

Property Value​

Nullable<DateTime>

StartDayPath​

Optional JSONPath to the first day (for example $.startDay with the value 2026-11-01). Wins over AllocateCommunityEnergyNodeConfiguration.StartDay; a path that resolves to nothing or to null counts as not set.

public string StartDayPath { get; set; }

Property Value​

String

NumDays​

Number of consecutive days to allocate. Default 1.

public Nullable<int> NumDays { get; set; }

Property Value​

Nullable<Int32>

NumDaysPath​

Optional JSONPath to the number of days (for example $.numDays). Wins over AllocateCommunityEnergyNodeConfiguration.NumDays; a path that resolves to nothing counts as not set.

public string NumDaysPath { get; set; }

Property Value​

String

MaxDays​

Guard against accidental long backfills: a request for more days than this fails the node. Default 31.

public int MaxDays { get; set; }

Property Value​

Int32

TimeZone​

IANA or Windows time zone id the calendar days are cut in. Default Europe/Vienna, which gives 92 slots on the spring-forward day and 100 on the fall-back day.

public string TimeZone { get; set; }

Property Value​

String

TimeZonePath​

Optional JSONPath overriding AllocateCommunityEnergyNodeConfiguration.TimeZone.

public string TimeZonePath { get; set; }

Property Value​

String

CutOffDayOffset​

The cut-off of day D is local day D plus this many days, at AllocateCommunityEnergyNodeConfiguration.CutOffTime. Default 1. It is also the deterministic creation time stamped on every record of D.

public int CutOffDayOffset { get; set; }

Property Value​

Int32

CutOffTime​

Local time of day of the cut-off. Default 06:00.

public TimeSpan CutOffTime { get; set; }

Property Value​

TimeSpan

CutOffTimePath​

Optional JSONPath overriding AllocateCommunityEnergyNodeConfiguration.CutOffTime; the value is a time of day in the form HH:mm or HH:mm:ss.

public string CutOffTimePath { get; set; }

Property Value​

String

SlotLength​

Length of one allocation slot. Default 15 minutes. Must divide every day of the time zone without remainder.

public TimeSpan SlotLength { get; set; }

Property Value​

TimeSpan

ConsumerCkTypeId​

CkTypeId of the consumer metering points. Default EnergyCommunity/Consumer.

public string ConsumerCkTypeId { get; set; }

Property Value​

String

ProducerCkTypeId​

CkTypeId of the producer metering points. Default EnergyCommunity/Producer.

public string ProducerCkTypeId { get; set; }

Property Value​

String

MeteringPointCkTypeId​

CkTypeId of the base metering point type, used as the target type constraint when navigating from a measurement anchor or a participation period to its metering point. Default Basic.Energy/MeteringPoint.

public string MeteringPointCkTypeId { get; set; }

Property Value​

String

EnergyMeasurementCkTypeId​

CkTypeId of the measurement anchors (one per metering point and OBIS code). Default Basic.Energy/EnergyMeasurement.

public string EnergyMeasurementCkTypeId { get; set; }

Property Value​

String

ParentAssociationRoleId​

Association role from a measurement anchor to its metering point, navigated outbound from the anchor. Default System/ParentChild.

public string ParentAssociationRoleId { get; set; }

Property Value​

String

ParticipationPeriodCkTypeId​

CkTypeId of the participation periods. Default EnergyCommunity/ParticipationPeriod.

public string ParticipationPeriodCkTypeId { get; set; }

Property Value​

String

ParticipationPeriodAssociationRoleId​

Association role from a participation period to its metering point, navigated outbound from the period. Default EnergyCommunity/ParticipationPeriod.

public string ParticipationPeriodAssociationRoleId { get; set; }

Property Value​

String

ParticipationTimeRangeAttribute​

Record attribute on the participation period with From and To; a null To means open-ended. A metering point participates in a slot when one of its periods has From not after the slot start and To (if set) not before the slot end. Default TimeRange.

public string ParticipationTimeRangeAttribute { get; set; }

Property Value​

String

PartitionFactorAttribute​

Integer attribute on the metering point with its partition factor in percent (0 to 100). Default PartitionFactor.

public string PartitionFactorAttribute { get; set; }

Property Value​

String

DefaultPartitionFactor​

Partition factor used when the attribute is missing. Default 100.

public int DefaultPartitionFactor { get; set; }

Property Value​

Int32

MeteringPointNumberAttribute​

String attribute on the metering point copied into every output record. Default MeteringPointNumber.

public string MeteringPointNumberAttribute { get; set; }

Property Value​

String

DataSourceAttribute​

Enum attribute on the metering point naming where its data comes from (0 Eda, 1 Simulated, 2 SelfReported). Default MeteringDataSource.

public string DataSourceAttribute { get; set; }

Property Value​

String

AllocatableDataSources​

Data source keys the node may allocate for. A day on which any participating metering point has another data source is aborted. Default 1 (Simulated) and 2 (SelfReported).

public List<int> AllocatableDataSources { get; set; }

Property Value​

List<Int32>

DefaultDataSource​

Data source assumed when the attribute is missing. Default 0 (Eda), which is not allocatable, so a metering point without the attribute aborts its days rather than being overwritten.

public int DefaultDataSource { get; set; }

Property Value​

Int32

ObisCodeAttribute​

String attribute on the measurement anchor carrying its OBIS code. Default ObisCode.

public string ObisCodeAttribute { get; set; }

Property Value​

String

ArchiveRtId​

Runtime id of the time-range archive holding the raw registers.

public string ArchiveRtId { get; set; }

Property Value​

String

ValueColumn​

Archive column with the slot quantity in kWh. Default Amount.Value.

public string ValueColumn { get; set; }

Property Value​

String

QualityColumn​

Archive column with the data quality, stored as its enum key (1 L1, 2 L2, 3 L3). Default DataQuality.

public string QualityColumn { get; set; }

Property Value​

String

ConsumerInputObis​

OBIS code of the consumer input (total consumption). Default 1-1:1.9.0 G.01.

public string ConsumerInputObis { get; set; }

Property Value​

String

ProducerInputObis​

OBIS code of the producer input (total generation). Default 1-1:2.9.0 G.01.

public string ProducerInputObis { get; set; }

Property Value​

String

ConsumerShareObis​

OBIS code written for the consumer's community share. Default 1-1:2.9.0 G.03.

public string ConsumerShareObis { get; set; }

Property Value​

String

ProducerOfferedObis​

OBIS code written for the generation a producer offers to the community (partition factor times generation). Default 1-1:2.9.0 G.01T.

public string ProducerOfferedObis { get; set; }

Property Value​

String

ProducerSurplusObis​

OBIS code written for the part of the offered generation that was not distributed. Default 1-1:2.9.0 P.01T.

public string ProducerSurplusObis { get; set; }

Property Value​

String

Resolution​

Smallest quantity step in kWh; every output value is a whole multiple of it and every rounding rounds down. Default 0.001.

public decimal Resolution { get; set; }

Property Value​

Decimal

QuantityUnit​

Unit written into every record. Default kWh, as the EDA ingest writes it.

public string QuantityUnit { get; set; }

Property Value​

String

MissingQuality​

Quality of a missing input value (the value then counts as 0). Default L3. Present inputs are read as keys 1, 2, 3, 4 = L1, L2, L3, Manual (any other key = L1). Every register of a slot carries the WORST input quality of that slot (decision V-2), ranked L1 < L2 < Manual < L3, so one missing value makes every register of the slot MissingQuality.

public string MissingQuality { get; set; }

Property Value​

String

TargetPath​

JSONPath where the list of allocation records is written.

public string TargetPath { get; set; }

Property Value​

String

SummaryTargetPath​

Optional JSONPath where the per-day summary list is written.

public string SummaryTargetPath { get; set; }

Property Value​

String

Description​

public string Description { get; set; }

Property Value​

String

Constructors​

AllocateCommunityEnergyNodeConfiguration()​

Caution​

Constructors of types with required members are not supported in this version of your compiler.


public AllocateCommunityEnergyNodeConfiguration()