Skip to content

Commit 72cdffe

Browse files
Move all electrical component types to a single file (#380)
This commit moves all the electrical component types from their individual files into `electrical_components.proto`. closes #377
2 parents a5750fc + 3cd4856 commit 72cdffe

File tree

9 files changed

+140
-294
lines changed

9 files changed

+140
-294
lines changed

RELEASE_NOTES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
+ `ComponentCategoryMetadataVariant.metadata.grid` to `ElectricalComponentCategorySpecificInfo.kind.grid_connection_point`
3737
* `InverterType.INVERTER_TYPE_SOLAR` to `InverterType.INVERTER_TYPE_PV` (to align with the more colloquial term "PV inverter")
3838
* `ComponentCategory.COMPONENT_CATEGORY_RELAY` to `ElectricalComponentCategory.ELECTRICAL_COMPONENT_CATEGORY_BREAKER` (to better align with the common terminology used in electrical engineering).
39+
* All contents of all the files in the `electrical_components` directory (previously `components`) are now moved into the `electrical_components.proto` file.
3940

4041
+ `microgrid.sensors`:
4142

proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/battery.proto

Lines changed: 0 additions & 29 deletions
This file was deleted.

proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/electrical_components.proto

Lines changed: 139 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,6 @@ package frequenz.api.common.v1alpha7.microgrid.electrical_components;
1313

1414
import "frequenz/api/common/v1alpha7/metrics/bounds.proto";
1515
import "frequenz/api/common/v1alpha7/metrics/metrics.proto";
16-
import "frequenz/api/common/v1alpha7/microgrid/electrical_components/battery.proto";
17-
import
18-
"frequenz/api/common/v1alpha7/microgrid/electrical_components/ev_charger.proto";
19-
import "frequenz/api/common/v1alpha7/microgrid/electrical_components/fuse.proto";
20-
import "frequenz/api/common/v1alpha7/microgrid/electrical_components/grid.proto";
21-
import "frequenz/api/common/v1alpha7/microgrid/electrical_components/inverter.proto";
22-
import
23-
"frequenz/api/common/v1alpha7/microgrid/electrical_components/transformer.proto";
2416
import "frequenz/api/common/v1alpha7/microgrid/lifetime.proto";
2517

2618
import "google/protobuf/timestamp.proto";
@@ -447,6 +439,137 @@ enum ElectricalComponentDiagnosticCode {
447439
ELECTRICAL_COMPONENT_DIAGNOSTIC_CODE_INVERTER_DC_OVERVOLTAGE = 81;
448440
}
449441

442+
// Enumerated battery types.
443+
enum BatteryType {
444+
// Unspecified.
445+
BATTERY_TYPE_UNSPECIFIED = 0;
446+
447+
// Li-ion batteries.
448+
BATTERY_TYPE_LI_ION = 1;
449+
450+
// Sodium-ion batteries
451+
BATTERY_TYPE_NA_ION = 2;
452+
}
453+
454+
// A representation of a battery.
455+
message Battery {
456+
// The battery type.
457+
BatteryType type = 1;
458+
}
459+
460+
// Enumerated EV charger types.
461+
enum EvChargerType {
462+
// Default type.
463+
EV_CHARGER_TYPE_UNSPECIFIED = 0;
464+
465+
// The EV charging station supports AC charging only.
466+
EV_CHARGER_TYPE_AC = 1;
467+
468+
// The EV charging station supports DC charging only.
469+
EV_CHARGER_TYPE_DC = 2;
470+
471+
// The EV charging station supports both AC and DC.
472+
EV_CHARGER_TYPE_HYBRID = 3;
473+
}
474+
475+
// A representation of an EV charging station.
476+
message EvCharger {
477+
// The EV charger type.
478+
EvChargerType type = 1;
479+
}
480+
481+
// A representation of a fuse.
482+
// The fuse component represents a fuse in the microgrid. It is used to protect
483+
// components from overcurrents.
484+
message Fuse {
485+
// The rated current of the fuse in amperes.
486+
// This is the maximum current that the fuse can withstand for a long time.
487+
// This limit applies to currents both flowing in or out of each of the 3
488+
// phases individually.
489+
//
490+
// In other words, a current _i_ A at one of the phases of the node must
491+
// comply with the following constraint:
492+
// `-rated_fuse_current <= i <= rated_fuse_current`
493+
uint32 rated_current = 1;
494+
}
495+
496+
// A representation of a grid connection point. This is the point where a
497+
// microgrid connects to the grid.
498+
//
499+
// The terms "Grid Connection Point" and "Point of Common Coupling" (PCC) are
500+
// commonly used in the context.
501+
//
502+
// While both terms describe a connection point to the grid, the
503+
// `GridConnectionPoint` is specifically the physical connection point of the
504+
// generation facility to the grid, often concerned with the technical and
505+
// ownership aspects of the connection.
506+
//
507+
// In contrast, the PCC is is more specific in terms of electrical engineering.
508+
// It refers to the point where a customer's local electrical system (such as a
509+
// microgrid) connects to the utility distribution grid in such a way that it
510+
// can affect other customers’ systems connected to the same network. It is the
511+
// point where the grid and customer's electrical systems interface and where
512+
// issues like power quality and supply regulations are assessed.
513+
//
514+
// The term `GridConnectionPoint` is used to make it clear that what is referred
515+
// to here is the physical connection point of the local facility to the grid.
516+
// Note that this may also be the PCC in some cases.
517+
message GridConnectionPoint {
518+
// This refers to the maximum amount of electrical current, in amperes, that a
519+
// fuse at the grid connection point is designed to safely carry under normal
520+
// operating conditions.
521+
//
522+
// This limit applies to currents both flowing in or out of each of the 3
523+
// phases individually.
524+
//
525+
// In other words, a current _i_ A at one of the phases of the grid connection
526+
// point must comply with the following constraint:
527+
// `-rated_fuse_current <= i <= rated_fuse_current`
528+
uint32 rated_fuse_current = 1;
529+
}
530+
531+
// Enumerated inverter types.
532+
enum InverterType {
533+
// Unspecified.
534+
INVERTER_TYPE_UNSPECIFIED = 0;
535+
536+
// Battery inverter.
537+
INVERTER_TYPE_BATTERY = 1;
538+
539+
// PV (photovoltaic) inverter.
540+
INVERTER_TYPE_PV = 2;
541+
542+
// Hybrid inverter.
543+
INVERTER_TYPE_HYBRID = 3;
544+
545+
// Wind turbine inverter.
546+
INVERTER_TYPE_WIND_TURBINE = 4;
547+
}
548+
549+
// A representation of an inverter.
550+
// The inverter metadata.
551+
message Inverter {
552+
// The inverter type.
553+
InverterType type = 1;
554+
}
555+
556+
// A representation of a voltage transformer.
557+
// Voltage transformers are used to step up or step down the voltage, keeping
558+
// the power somewhat constant by increasing or decreasing the current.
559+
// If voltage is stepped up, current is stepped down, and vice versa.
560+
// Note that voltage transformers have efficiency losses, so the output power
561+
// is always less than the input power.
562+
message VoltageTransformer {
563+
// The primary voltage of the transformer.
564+
// This is the input voltage that is stepped up or down.
565+
float primary = 1;
566+
567+
// The secondary voltage of the transformer.
568+
// This is the output voltage that is the result of stepping the primary
569+
// voltage up or down.
570+
float secondary = 2;
571+
}
572+
450573
// MetricConfigBounds describes a set of limits for a specific metric consisting
451574
// of a lower and upper bound for said metric.
452575
//
@@ -464,19 +587,16 @@ message MetricConfigBounds {
464587
frequenz.api.common.v1alpha7.metrics.Bounds config_bounds = 2;
465588
}
466589

467-
// Metadata specific to a microgrid component.
590+
// Information specific to a microgrid electrical component, based upon its
591+
// category.
468592
message ElectricalComponentCategorySpecificInfo {
469593
oneof kind {
470-
frequenz.api.common.v1alpha7.microgrid.electrical_components.Battery battery = 1;
471-
frequenz.api.common.v1alpha7.microgrid.electrical_components.EvCharger
472-
ev_charger = 2;
473-
frequenz.api.common.v1alpha7.microgrid.electrical_components.Fuse fuse = 3;
474-
frequenz.api.common.v1alpha7.microgrid.electrical_components.GridConnectionPoint
475-
grid_connection_point = 4;
476-
frequenz.api.common.v1alpha7.microgrid.electrical_components.Inverter
477-
inverter = 5;
478-
frequenz.api.common.v1alpha7.microgrid.electrical_components.VoltageTransformer
479-
voltage_transformer = 6;
594+
Battery battery = 1;
595+
EvCharger ev_charger = 2;
596+
Fuse fuse = 3;
597+
GridConnectionPoint grid_connection_point = 4;
598+
Inverter inverter = 5;
599+
VoltageTransformer voltage_transformer = 6;
480600
}
481601
}
482602

proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/ev_charger.proto

Lines changed: 0 additions & 32 deletions
This file was deleted.

proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/fuse.proto

Lines changed: 0 additions & 26 deletions
This file was deleted.

proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/grid.proto

Lines changed: 0 additions & 46 deletions
This file was deleted.

proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/inverter.proto

Lines changed: 0 additions & 36 deletions
This file was deleted.

proto/frequenz/api/common/v1alpha7/microgrid/electrical_components/transformer.proto

Lines changed: 0 additions & 28 deletions
This file was deleted.

0 commit comments

Comments
 (0)