Zum Hauptinhalt springen

SimulateEnergyMeasurementsV2NodeConfiguration

Namespace: Meshmakers.Octo.MeshAdapter.Nodes.Transform

SimulateEnergyMeasurements@2 node configuration (AB#5631). Backfills per-15-min-slot archive datapoints for the raw channels of EXISTING EnergyMeasurement anchors, sized per metering point from its own attributes (annual consumption in kWh, PV capacity in kWp, load profile, production type) and steered by revisions of the community's SimulationSettings entity.

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

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

Remarks:

Differences to version 1 (which stays unchanged): only the raw channels SimulateEnergyMeasurementsV2NodeConfiguration.ConsumptionObisCode (consumer) and SimulateEnergyMeasurementsV2NodeConfiguration.ProductionObisCode (producer) are written, never allocation registers; only metering points whose data source marks them as simulated are touched, so EDA and self-reported values are never overwritten; the PV curve is calibrated to a specific annual yield with the solar noon of the site; every random value is derived from the settings seed and the metering point NUMBER, never from an rtId, so two rebuilds with new rtIds produce bit-identical values.

Settings revisions are read from the DataContext at SimulateEnergyMeasurementsV2NodeConfiguration.SettingsPath. The intended wiring is a preceding GetRtEntitiesByType@1 with ckTypeId: EnergyCommunity/SimulationSettings and targetPath: $.settings, and settingsPath: $.settings.Items on this node. For a simulated day D the non-superseded revision with the greatest effective date not after D applies; the effective date of every revision except the base revision (smallest EffectiveFrom) is the later of its EffectiveFrom date and its creation date in Europe/Vienna, so a change never acts retroactively.

Output is meant to flow straight into SaveTimeRangeStreamDataInArchive@1.

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.

public NodeExecutionIdentity Identity { get; set; }

Property Value​

NodeExecutionIdentity

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 SimulateEnergyMeasurementsV2NodeConfiguration.StartDateAttributePath. Exactly one of the two must resolve a value.

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

Property Value​

Nullable<DateTime>

NumDays​

Number of full UTC days to backfill (each day produces 96 slots per simulated anchor). Optional: may instead be supplied at execution time via SimulateEnergyMeasurementsV2NodeConfiguration.NumDaysAttributePath. Exactly one of the two must resolve a value.

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

Property Value​

Nullable<Int32>

StartDateAttributePath​

Optional JSONPath into the input DataContext for the start date. When set, it overrides SimulateEnergyMeasurementsV2NodeConfiguration.StartDate (e.g. $.startDate).

public string StartDateAttributePath { get; set; }

Property Value​

String

NumDaysAttributePath​

Optional JSONPath into the input DataContext for the day count. When set, it overrides SimulateEnergyMeasurementsV2NodeConfiguration.NumDays (e.g. $.numDays).

public string NumDaysAttributePath { get; set; }

Property Value​

String

EnergyMeasurementCkTypeId​

CkTypeId of the EnergyMeasurement type whose existing anchors are backfilled (e.g. Basic.Energy/EnergyMeasurement).

public string EnergyMeasurementCkTypeId { get; set; }

Property Value​

String

TimeRangeCkRecordId​

CkRecordId of the TimeRange record on the EnergyMeasurement (e.g. Basic/TimeRange).

public string TimeRangeCkRecordId { get; set; }

Property Value​

String

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​

String

AmountUnit​

UnitOfMeasure enum value to stamp on each Amount record. Default 1 (KWh in Basic.UnitOfMeasure).

public int AmountUnit { get; set; }

Property Value​

Int32

ParentAssociationRoleId​

Association role used to navigate from an existing EnergyMeasurement to its parent MeteringPoint (e.g. System/ParentChild). Anchors without a parent are skipped.

public string ParentAssociationRoleId { get; set; }

Property Value​

String

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 anchor to MeteringPoint navigation; concrete Producer/Consumer subtypes are returned.

public string MeteringPointCkTypeId { get; set; }

Property Value​

String

ProducerCkTypeId​

CkTypeId of the producer MeteringPoint type (e.g. EnergyCommunity/Producer). Anchors whose parent is of this type are producer anchors; every other parent is a consumer.

public string ProducerCkTypeId { get; set; }

Property Value​

String

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​

Int32

ConsumptionObisCode​

OBIS code of the raw consumption channel. Only consumer anchors carrying exactly this code are simulated. Default 1-1:1.9.0 G.01.

public string ConsumptionObisCode { get; set; }

Property Value​

String

ProductionObisCode​

OBIS code of the raw production channel. Only producer anchors carrying exactly this code are simulated; allocation registers such as 1-1:2.9.0 G.03, 1-1:2.9.0 G.01T or 1-1:2.9.0 P.01T are never written. Default 1-1:2.9.0 G.01.

public string ProductionObisCode { get; set; }

Property Value​

String

MeteringPointNumberAttribute​

Attribute name of the metering point number on the parent metering point. The number (not the rtId) is the identity all deterministic randomness is derived from. Default MeteringPointNumber.

public string MeteringPointNumberAttribute { get; set; }

Property Value​

String

AnnualConsumptionAttribute​

Attribute name of the annual consumption in kWh on a consumer metering point. Default EnergyConsumption.

public string AnnualConsumptionAttribute { get; set; }

Property Value​

String

ProductionCapacityAttribute​

Attribute name of the installed capacity in kWp on a producer metering point. Default EnergyProductionCapacity.

public string ProductionCapacityAttribute { get; set; }

Property Value​

String

ProductionTypeAttribute​

Attribute name of the production type on a producer metering point (enum, Unknown=0, Solar=1, HEP=2, Wind=3, Other=4, Biomass=5, CHP=6). Unknown, Solar or a missing value use the PV curve; every other type is skipped with a warning. Default ProductionType.

public string ProductionTypeAttribute { get; set; }

Property Value​

String

LoadProfileAttribute​

Attribute name of the load profile on a consumer metering point (enum, H0=0, G0=1, L0=2, HeatPump=3, Ev=4). HeatPump and Ev fall back to H0 with a warning. Default LoadProfile.

public string LoadProfileAttribute { get; set; }

Property Value​

String

DataSourceAttribute​

Attribute name of the metering data source on the parent metering point (enum, Eda=0, Simulated=1, SelfReported=2). Default MeteringDataSource.

public string DataSourceAttribute { get; set; }

Property Value​

String

SimulatedOnly​

When true (default), only anchors whose parent metering point carries SimulateEnergyMeasurementsV2NodeConfiguration.SimulatedDataSourceValue in SimulateEnergyMeasurementsV2NodeConfiguration.DataSourceAttribute are simulated; EDA, self-reported and unmarked metering points are skipped so reported values are never overwritten. When false, every metering point is simulated.

public bool SimulatedOnly { get; set; }

Property Value​

Boolean

SimulatedDataSourceValue​

Value of SimulateEnergyMeasurementsV2NodeConfiguration.DataSourceAttribute that marks a simulated metering point. Default 1 (Simulated).

public int SimulatedDataSourceValue { get; set; }

Property Value​

Int32

DefaultConsumerAnnualKWh​

Annual consumption in kWh used for consumer metering points without SimulateEnergyMeasurementsV2NodeConfiguration.AnnualConsumptionAttribute. Default 3500.

public double DefaultConsumerAnnualKWh { get; set; }

Property Value​

Double

DefaultProducerKWp​

Installed capacity in kWp used for producer metering points without SimulateEnergyMeasurementsV2NodeConfiguration.ProductionCapacityAttribute. Default 10.

public double DefaultProducerKWp { get; set; }

Property Value​

Double

DefaultLoadProfile​

Load profile (H0, G0 or L0) used for consumer metering points without SimulateEnergyMeasurementsV2NodeConfiguration.LoadProfileAttribute. Default H0.

public string DefaultLoadProfile { get; set; }

Property Value​

String

SolarNoonUtcHour​

UTC hour (fractional) of the solar noon the PV curve peaks at. Default 11.1667, i.e. 11:10 UTC for a site at 13 degrees east (Salzburg).

public double SolarNoonUtcHour { get; set; }

Property Value​

Double

SettingsPath​

Optional JSONPath to the settings revisions in the DataContext: either one object or an array of objects. Accepted shapes, matched case-insensitively: a serialized runtime entity as written by GetRtEntitiesByType@1 (RtId, RtCreationDateTime and the settings below Attributes), or a flat object such as { "seed": 7, "consumptionFactor": 1.2 }. Recommended: $.settings.Items after GetRtEntitiesByType@1 with targetPath: $.settings. Unset or empty means the simulation defaults (seed 1, factors 1.0, specific yield 1050, spread 0) with a warning.

public string SettingsPath { get; set; }

Property Value​

String

EntityUpdatesOutputPath​

JSONPath where the list of EntityUpdateInfo<RtEntity> datapoints is written.

public string EntityUpdatesOutputPath { get; set; }

Property Value​

String

SummaryOutputPath​

Optional JSONPath where a summary object is written: anchors simulated and skipped by reason, datapoint count, energy in kWh per OBIS code, the settings revisions used with their effective dates, and the warnings raised.

public string SummaryOutputPath { get; set; }

Property Value​

String

Description​

public string Description { get; set; }

Property Value​

String

Constructors​

SimulateEnergyMeasurementsV2NodeConfiguration()​

Caution​

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


public SimulateEnergyMeasurementsV2NodeConfiguration()