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
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
NumDays
Number of consecutive days to allocate. Default 1.
public Nullable<int> NumDays { get; set; }
Property Value
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
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
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
TimeZonePath
Optional JSONPath overriding AllocateCommunityEnergyNodeConfiguration.TimeZone.
public string TimeZonePath { get; set; }
Property Value
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
CutOffTime
Local time of day of the cut-off. Default 06:00.
public TimeSpan CutOffTime { get; set; }
Property Value
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
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
ConsumerCkTypeId
CkTypeId of the consumer metering points. Default EnergyCommunity/Consumer.
public string ConsumerCkTypeId { get; set; }
Property Value
ProducerCkTypeId
CkTypeId of the producer metering points. Default EnergyCommunity/Producer.
public string ProducerCkTypeId { get; set; }
Property Value
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
EnergyMeasurementCkTypeId
CkTypeId of the measurement anchors (one per metering point and OBIS code). Default
Basic.Energy/EnergyMeasurement.
public string EnergyMeasurementCkTypeId { get; set; }
Property Value
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
ParticipationPeriodCkTypeId
CkTypeId of the participation periods. Default EnergyCommunity/ParticipationPeriod.
public string ParticipationPeriodCkTypeId { get; set; }
Property Value
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
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
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
DefaultPartitionFactor
Partition factor used when the attribute is missing. Default 100.
public int DefaultPartitionFactor { get; set; }
Property Value
MeteringPointNumberAttribute
String attribute on the metering point copied into every output record. Default
MeteringPointNumber.
public string MeteringPointNumberAttribute { get; set; }
Property Value
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
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
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
ObisCodeAttribute
String attribute on the measurement anchor carrying its OBIS code. Default ObisCode.
public string ObisCodeAttribute { get; set; }
Property Value
ArchiveRtId
Runtime id of the time-range archive holding the raw registers.
public string ArchiveRtId { get; set; }
Property Value
ValueColumn
Archive column with the slot quantity in kWh. Default Amount.Value.
public string ValueColumn { get; set; }
Property Value
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
ConsumerInputObis
OBIS code of the consumer input (total consumption). Default 1-1:1.9.0 G.01.
public string ConsumerInputObis { get; set; }
Property Value
ProducerInputObis
OBIS code of the producer input (total generation). Default 1-1:2.9.0 G.01.
public string ProducerInputObis { get; set; }
Property Value
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
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
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
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
QuantityUnit
Unit written into every record. Default kWh, as the EDA ingest writes it.
public string QuantityUnit { get; set; }
Property Value
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
TargetPath
JSONPath where the list of allocation records is written.
public string TargetPath { get; set; }
Property Value
SummaryTargetPath
Optional JSONPath where the per-day summary list is written.
public string SummaryTargetPath { get; set; }
Property Value
Description
public string Description { get; set; }
Property Value
Constructors
AllocateCommunityEnergyNodeConfiguration()
Caution
Constructors of types with required members are not supported in this version of your compiler.
public AllocateCommunityEnergyNodeConfiguration()