Skip to content

Commit 24a015f

Browse files
Extend the ElectricalComponentCategory enum with new variants
Signed-off-by: Tiyash Basu <[email protected]> This commit - renumbers the variants in the `ElectricalComponentCategory` enum. - adds new variants to the `ElectricalComponentCategory` enum: - `ELECTRICAL_COMPONENT_CATEGORY_PLC` - `ELECTRICAL_COMPONENT_CATEGORY_STATIC_TRANSFER_SWITCH` - `ELECTRICAL_COMPONENT_CATEGORY_UNINTERRUPTIBLE_POWER_SUPPLY` - `ELECTRICAL_COMPONENT_CATEGORY_CAPACITOR_BANK` - `ELECTRICAL_COMPONENT_CATEGORY_SMART_LOAD` - `ELECTRICAL_COMPONENT_CATEGORY_WIND_TURBINE` - Renames the variant `ELECTRICAL_COMPONENT_CATEGORY_RELAY` to `ELECTRICAL_COMPONENT_CATEGORY_BREAKER` to better align with the common terminology used in electrical engineering.
1 parent 2eb69e4 commit 24a015f

File tree

2 files changed

+117
-30
lines changed

2 files changed

+117
-30
lines changed

RELEASE_NOTES.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
* The whole package and all proto files, messages, field, enums were renamed to `electrical_components`
2424
* `ComponentCategoryMetadataVariant` to `ElectricalComponentCategorySpecificInfo`
25+
* `ComponentCategory` to `ElectricalComponentCategory`
2526
* `Component.category_type` to `ElectricalComponent.category_specific_info`
2627
* `ComponentCategoryMetadataVariant.metadata` to `ElectricalComponentCategorySpecificInfo.kind`
2728
* `ComponentErrorCode` to `ElectricalComponentDiagnosticCode`
@@ -34,6 +35,7 @@
3435
+ `COMPONENT_CATEGORY_GRID` to `ELECTRICAL_COMPONENT_CATEGORY_GRID_CONNECTION_POINT`
3536
+ `ComponentCategoryMetadataVariant.metadata.grid` to `ElectricalComponentCategorySpecificInfo.kind.grid_connection_point`
3637
* `InverterType.INVERTER_TYPE_SOLAR` to `InverterType.INVERTER_TYPE_PV` (to align with the more colloquial term "PV inverter")
38+
* `ComponentCategory.COMPONENT_CATEGORY_RELAY` to `ElectricalComponentCategory.ELECTRICAL_COMPONENT_CATEGORY_BREAKER` (to better align with the common terminology used in electrical engineering).
3739

3840
+ `microgrid.sensors`:
3941

@@ -78,6 +80,8 @@
7880

7981
- The `v1` package has been renamed to `v1alpha7`. The current `v1` package now consists of the contents the same directory from the v0.6.x branch, which is the latest stable version of the API.
8082

83+
- The enum `ComponentCategory` (now `ElectricalComponentCategory`) has been extended with new variants.
84+
8185
## New Features
8286

8387
Added many new messages and enum values:
@@ -93,6 +97,14 @@ Added many new messages and enum values:
9397
+ `ElectricalComponentDiagnosticCode` (previously `ComponentErrorCode`): New diagnostic codes to cover more cases, especially for inverters
9498
+ `InverterType.INVERTER_TYPE_WIND_TURBINE`: Enum value to represent wind turbine inverters
9599

100+
- `microgrid.ElectricalComponentCategory` (previously `microgrid.ComponentCategory`) has been extended with new enum values:
101+
+ `ELECTRICAL_COMPONENT_CATEGORY_PLC`
102+
+ `ELECTRICAL_COMPONENT_CATEGORY_STATIC_TRANSFER_SWITCH`
103+
+ `ELECTRICAL_COMPONENT_CATEGORY_UNINTERRUPTIBLE_POWER_SUPPLY`
104+
+ `ELECTRICAL_COMPONENT_CATEGORY_CAPACITOR_BANK`
105+
+ `ELECTRICAL_COMPONENT_CATEGORY_SMART_LOAD`
106+
+ `ELECTRICAL_COMPONENT_CATEGORY_WIND_TURBINE`
107+
96108
- `microgrid.sensors`
97109

98110
+ Message linking microgrid and sensor IDs

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

Lines changed: 105 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -26,66 +26,141 @@ import "frequenz/api/common/v1alpha7/microgrid/lifetime.proto";
2626
import "google/protobuf/timestamp.proto";
2727

2828
// Enumerated electrical component categories.
29+
//
30+
// This enum lists key microgrid components, most of which are typically capable
31+
// of being remotely controlled via digital interfaces (e.g., Modbus, MQTT,
32+
// OPC-UA).
2933
enum ElectricalComponentCategory {
3034
// The component category is unspecified. This should not be used.
3135
ELECTRICAL_COMPONENT_CATEGORY_UNSPECIFIED = 0;
3236

3337
// The point where the local microgrid is connected to the grid.
38+
//
39+
// Represents the interface between a local microgrid and the public
40+
// electricity grid, typically used for metering, protection, and isolation.
41+
// This category itself is not remotely controllable, but can be associated
42+
// with other devices (inverters, relays, etc.) that can be controlled to
43+
// affect the grid connection point.
3444
ELECTRICAL_COMPONENT_CATEGORY_GRID_CONNECTION_POINT = 1;
3545

36-
// A meter, for measuring electrical metrics, e.g., current, voltage, etc.
46+
// A meter for measuring electrical parameters.
47+
//
48+
// Measures electrical parameters such as voltage, current, power, energy,
49+
// and frequency.
50+
// Meters typically cannot be controlled remotely, but they can provide
51+
// telemetry data.
52+
// Examples: Janitza UNG 604, ABB B24, etc.
3753
ELECTRICAL_COMPONENT_CATEGORY_METER = 2;
3854

39-
// An electricity generator, with batteries or solar energy.
55+
// An inverter.
56+
//
57+
// Converts DC to AC power and vice-versa, enabling integration of batteries,
58+
// PV arrays, or other renewables.
59+
// Remotely controllable via digital protocols for power setpoints, modes,
60+
// and status.
61+
// Examples: SMA Sunny Tripower, Kaco Blueplanet, etc.
4062
ELECTRICAL_COMPONENT_CATEGORY_INVERTER = 3;
4163

4264
// A DC-DC converter.
65+
//
66+
// Converts electrical energy between different DC voltage levels.
67+
// Typically remotely controllable for voltage, current, or mode adjustment.
4368
ELECTRICAL_COMPONENT_CATEGORY_CONVERTER = 4;
4469

45-
// A storage system for electrical energy, used by inverters.
70+
// A battery energy storage system.
71+
//
72+
// Stores electrical energy and can be dispatched for load balancing, backup,
73+
// or arbitrage.
74+
// Remotely controllable for charging, discharging, and operational mode.
75+
// Examples: Tesla Megapack, LG Chem RESU, etc.
4676
ELECTRICAL_COMPONENT_CATEGORY_BATTERY = 5;
4777

48-
// A station for charging electrical vehicles.
78+
// An EV charger.
79+
//
80+
// Provides controlled charging for electric vehicles.
81+
// Remotely controllable for starting/stopping charging and setting power \
82+
// limits.
83+
// Examples: Alfen NG 9xx, KEBA KeContact P30, etc.
4984
ELECTRICAL_COMPONENT_CATEGORY_EV_CHARGER = 6;
5085

51-
// A crypto miner.
52-
ELECTRICAL_COMPONENT_CATEGORY_CRYPTO_MINER = 7;
86+
// A circuit breaker.
87+
//
88+
// Provides protection and switching by disconnecting circuits as needed.
89+
// Remotely controllable for opening/closing and status monitoring.
90+
ELECTRICAL_COMPONENT_CATEGORY_BREAKER = 7;
5391

54-
// An electrolyzer for converting water into hydrogen and oxygen.
55-
ELECTRICAL_COMPONENT_CATEGORY_ELECTROLYZER = 8;
92+
// A pre-charge module.
93+
//
94+
// Ramps up DC voltage gradually to protect components during power-up.
95+
// Remotely controllable to initiate or manage the pre-charge sequence.
96+
ELECTRICAL_COMPONENT_CATEGORY_PRECHARGER = 8;
5697

57-
// A heat and power combustion plant (CHP stands for combined heat and power).
98+
// A combined heat and power (CHP) plant.
99+
//
100+
// Generates electricity and useful heat from a single energy source.
101+
// Remotely controllable for start/stop commands and setpoint adjustments.
58102
ELECTRICAL_COMPONENT_CATEGORY_CHP = 9;
59103

60-
// A relay.
61-
// Relays generally have two states: open (connected) and closed
62-
// (disconnected).
63-
// They are generally placed in front of a component, e.g., an inverter, to
64-
// control whether the component is connected to the grid or not.
65-
ELECTRICAL_COMPONENT_CATEGORY_RELAY = 10;
66-
67-
// A precharge module.
68-
// Precharging involves gradually ramping up the DC voltage to prevent any
69-
// potential damage to sensitive electrical components like capacitors.
70-
// While many inverters and batteries come equipped with in-built precharging
71-
// mechanisms, some may lack this feature. In such cases, we need to use
72-
// external precharging modules.
73-
ELECTRICAL_COMPONENT_CATEGORY_PRECHARGER = 11;
74-
75-
// A fuse.
76-
// Fuses are used to protect electrical components from overcurrents.
77-
ELECTRICAL_COMPONENT_CATEGORY_FUSE = 12;
104+
// An electrolyzer.
105+
//
106+
// Converts electrical energy into hydrogen and oxygen by electrolyzing water.
107+
// Remotely controllable for operating mode and production rate.
108+
ELECTRICAL_COMPONENT_CATEGORY_ELECTROLYZER = 10;
78109

79110
// A voltage transformer.
111+
//
80112
// Voltage transformers are used to step up or step down the voltage, keeping
81113
// the power somewhat constant by increasing or decreasing the current.
82114
// If voltage is stepped up, current is stepped down, and vice versa.
83115
// Note that voltage transformers have efficiency losses, so the output power
84116
// is always less than the input power.
85-
ELECTRICAL_COMPONENT_CATEGORY_VOLTAGE_TRANSFORMER = 13;
117+
ELECTRICAL_COMPONENT_CATEGORY_VOLTAGE_TRANSFORMER = 11;
86118

87-
// An HVAC (Heating, Ventilation, and Air Conditioning) system.
88-
ELECTRICAL_COMPONENT_CATEGORY_HVAC = 14;
119+
// An HVAC system (Heating, Ventilation, and Air Conditioning).
120+
//
121+
// Manages indoor climate by controlling heating, cooling, and ventilation.
122+
// Remotely controllable for setpoint and operational scheduling.
123+
ELECTRICAL_COMPONENT_CATEGORY_HVAC = 12;
124+
125+
// An industrial controller or PLC (Programmable Logic Controller).
126+
//
127+
// Automates industrial processes, load shedding, and custom logic.
128+
// Remotely controllable for process execution and telemetry via digital
129+
// protocols.
130+
ELECTRICAL_COMPONENT_CATEGORY_PLC = 13;
131+
132+
// A static transfer switch (STS).
133+
//
134+
// Switches between multiple power sources with minimal transfer time to
135+
// maintain continuity.
136+
// Remotely controllable for source selection and transfer commands.
137+
ELECTRICAL_COMPONENT_CATEGORY_STATIC_TRANSFER_SWITCH = 14;
138+
139+
// An uninterruptible power supply (UPS).
140+
//
141+
// Provides immediate backup power with battery and inverter integration.
142+
// Remotely controllable for status, diagnostics, and sometimes operational
143+
// commands.
144+
ELECTRICAL_COMPONENT_CATEGORY_UNINTERRUPTIBLE_POWER_SUPPLY = 15;
145+
146+
// A capacitor bank for power factor correction.
147+
//
148+
// Improves power quality by compensating reactive power.
149+
// Remotely controllable for switching capacitors in or out.
150+
ELECTRICAL_COMPONENT_CATEGORY_CAPACITOR_BANK = 16;
151+
152+
// A smart controllable load or demand response device.
153+
//
154+
// Dynamically adjusts consumption in response to grid or EMS commands.
155+
// Remotely controllable for load shedding, curtailment, or scheduling.
156+
ELECTRICAL_COMPONENT_CATEGORY_SMART_LOAD = 17;
157+
158+
// A wind turbine.
159+
//
160+
// Converts wind energy into electricity.
161+
// Remotely controllable (in most commercial systems) for start/stop, output
162+
// regulation, and status.
163+
ELECTRICAL_COMPONENT_CATEGORY_WIND_TURBINE = 18;
89164
}
90165

91166
// Enum to represent the various states that a component can be in.

0 commit comments

Comments
 (0)