SimulateEnergyMeasurementsNodeConfiguration
Namespace: Meshmakers.Octo.MeshAdapter.Nodes.Transform
SimulateEnergyMeasurements node configuration. Backfills historical per-15-min-slot archive
datapoints for the EnergyMeasurement entities that ALREADY EXIST in the rt-model. The
node does NOT create any EnergyMeasurement entities and does NOT emit association updates — it
loads the existing EMs of SimulateEnergyMeasurementsNodeConfiguration.EnergyMeasurementCkTypeId, resolves each EM's parent
MeteringPoint type to pick a profile (Producer → PV curve, Consumer → load profile), and emits
one EntityUpdateInfo<RtEntity>.CreateInsert datapoint per slot keyed by the existing
EM's stable RtId / RtWellKnownName. Uses the deterministic BDEW load-profile and PV
curve math from EnergyProfiles so the produced amount values are realistic enough to
validate chained rollups and time-range archive idempotency.
public record SimulateEnergyMeasurementsNodeConfiguration : NodeConfiguration, INodeConfiguration, IEquatable<NodeConfiguration>, IEquatable<SimulateEnergyMeasurementsNodeConfiguration>
Inheritance Object → NodeConfiguration → SimulateEnergyMeasurementsNodeConfiguration
Implements INodeConfiguration, IEquatable<NodeConfiguration>, IEquatable<SimulateEnergyMeasurementsNodeConfiguration>
Remarks:
Output is meant to flow straight into SaveTimeRangeStreamDataInArchive@1 for the archive
write. Because every datapoint carries the rtId of an existing EnergyMeasurement entity, the
archive-write integrity guard will accept it. No RT-entity creation / dedup step is involved.
Properties
StartDate
Inclusive UTC start of the simulation window (the first slot is [StartDate, StartDate + PT15M)). Optional: a pipeline may instead supply it at execution time via
SimulateEnergyMeasurementsNodeConfiguration.StartDateAttributePath (e.g. a FromExecutePipelineCommand payload). Exactly one
of the two must resolve a value.
public Nullable<DateTime> StartDate { get; set; }
Property Value
NumDays
Number of full UTC days to backfill (each day produces 96 slots per existing EnergyMeasurement). Optional: may instead be supplied at execution time via SimulateEnergyMeasurementsNodeConfiguration.NumDaysAttributePath. Exactly one of the two must resolve a value.
public Nullable<int> NumDays { get; set; }
Property Value
StartDateAttributePath
Optional JSONPath into the input DataContext for the start date (AB#4306). When set, it
overrides SimulateEnergyMeasurementsNodeConfiguration.StartDate — lets a parameterised pipeline take the window start from
its ExecutePipelineCommand input (e.g. $.startDate) so the same pipeline can generate
data for any requested range on demand.
public string StartDateAttributePath { get; set; }
Property Value
NumDaysAttributePath
Optional JSONPath into the input DataContext for the day count (AB#4306). When set, it
overrides SimulateEnergyMeasurementsNodeConfiguration.NumDays (e.g. $.numDays).
public string NumDaysAttributePath { get; set; }
Property Value
EnergyMeasurementCkTypeId
CkTypeId of the EnergyMeasurement type whose existing entities are backfilled (e.g. Basic.Energy/EnergyMeasurement).
public string EnergyMeasurementCkTypeId { get; set; }
Property Value
TimeRangeCkRecordId
CkRecordId of the TimeRange record on the EnergyMeasurement (e.g. Basic/TimeRange).
public string TimeRangeCkRecordId { get; set; }
Property Value
AmountCkRecordId
CkRecordId of the Amount record on the EnergyMeasurement (e.g. Basic/Amount). Carries Value: Double + Unit: Enum.
public string AmountCkRecordId { get; set; }
Property Value
AmountUnit
UnitOfMeasure enum value to stamp on each Amount record. Default 1 (KWh in Basic.UnitOfMeasure).
public int AmountUnit { get; set; }
Property Value
ParentAssociationRoleId
Association role used to navigate from an existing EnergyMeasurement to its parent
MeteringPoint (e.g. System/ParentChild). The parent MeteringPoint type decides the
profile family (PV vs load).
public string ParentAssociationRoleId { get; set; }
Property Value
MeteringPointCkTypeId
CkTypeId of the (base) MeteringPoint type the parent association points at (e.g.
Basic.Energy/MeteringPoint). Required as the target-type constraint of the
EM → MeteringPoint navigation; concrete Producer/Consumer subtypes are returned.
public string MeteringPointCkTypeId { get; set; }
Property Value
ProducerCkTypeId
CkTypeId of the producer MeteringPoint type (e.g. Basic.Energy/Producer). EMs whose
parent MeteringPoint is of this type use the PV profile; all others use the load profile.
public string ProducerCkTypeId { get; set; }
Property Value
LoadProfileSubKey
BDEW load-profile sub-key for consumer EMs (e.g. H0 / G0 / L0). Default H0.
public string LoadProfileSubKey { get; set; }
Property Value
ConsumerDailyKWh
Daily energy in kWh for consumer (load-profile) EMs. Default 500.
public double ConsumerDailyKWh { get; set; }
Property Value
ProducerPeakKWp
Peak power in kWp for producer (PV-profile) EMs. Default 50.
public double ProducerPeakKWp { get; set; }
Property Value
EntityUpdatesOutputPath
JSONPath where the list of EntityUpdateInfo<RtEntity> datapoints is written.
public string EntityUpdatesOutputPath { get; set; }
Property Value
DataQuality
DataQuality enum value to stamp on every generated slot. Default 1 (BasicEnergy/DataQuality.L1 — 15-min meter readings).
public int DataQuality { get; set; }
Property Value
Description
public string Description { get; set; }
Property Value
Constructors
SimulateEnergyMeasurementsNodeConfiguration()
Caution
Constructors of types with required members are not supported in this version of your compiler.
public SimulateEnergyMeasurementsNodeConfiguration()