Skip to content

Commit a5750fc

Browse files
Extend the ElectricalComponentCategory enum with new variants (#378)
This PR - 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.
2 parents 2eb69e4 + 940c1c1 commit a5750fc

File tree

2 files changed

+136
-30
lines changed

2 files changed

+136
-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: 124 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -26,66 +26,160 @@ 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 UMG 604, Janitza B24, 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, Refu RefuStore88k, 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.
68+
// Examples: Victron Orion, Delta Electronics DC-DC converters, TDK Lambda.
4369
ELECTRICAL_COMPONENT_CATEGORY_CONVERTER = 4;
4470

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

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

51-
// A crypto miner.
52-
ELECTRICAL_COMPONENT_CATEGORY_CRYPTO_MINER = 7;
87+
// A circuit breaker.
88+
//
89+
// Provides protection and switching by disconnecting circuits as needed.
90+
// Remotely controllable for opening/closing and status monitoring.
91+
// Examples: Finder Series 62, Phoenix Contact PLC-Interface, Siemens Sirius,
92+
// Schneider Electric Zelio, etc.
93+
ELECTRICAL_COMPONENT_CATEGORY_BREAKER = 7;
5394

54-
// An electrolyzer for converting water into hydrogen and oxygen.
55-
ELECTRICAL_COMPONENT_CATEGORY_ELECTROLYZER = 8;
95+
// A pre-charge module.
96+
//
97+
// Ramps up DC voltage gradually to protect components during power-up.
98+
// Remotely controllable to initiate or manage the pre-charge sequence.
99+
// Examples: Precharge modules from Bender, Precharge controllers by Elcon,
100+
// custom PLC-controlled circuits.
101+
ELECTRICAL_COMPONENT_CATEGORY_PRECHARGER = 8;
56102

57-
// A heat and power combustion plant (CHP stands for combined heat and power).
103+
// A combined heat and power (CHP) plant.
104+
//
105+
// Generates electricity and useful heat from a single energy source.
106+
// Remotely controllable for start/stop commands and setpoint adjustments.
107+
// Examples: 2G Agenitor, Viessmann Vitobloc, TEDOM Micro series, Bosch CHP.
58108
ELECTRICAL_COMPONENT_CATEGORY_CHP = 9;
59109

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;
110+
// An electrolyzer.
111+
//
112+
// Converts electrical energy into hydrogen and oxygen by electrolyzing water.
113+
// Remotely controllable for operating mode and production rate.
114+
// Examples: Siemens Silyzer, Nel Hydrogen PEM, ITM Power electrolyzers.
115+
ELECTRICAL_COMPONENT_CATEGORY_ELECTROLYZER = 10;
78116

79117
// A voltage transformer.
118+
//
80119
// Voltage transformers are used to step up or step down the voltage, keeping
81120
// the power somewhat constant by increasing or decreasing the current.
82121
// If voltage is stepped up, current is stepped down, and vice versa.
83122
// Note that voltage transformers have efficiency losses, so the output power
84123
// is always less than the input power.
85-
ELECTRICAL_COMPONENT_CATEGORY_VOLTAGE_TRANSFORMER = 13;
124+
ELECTRICAL_COMPONENT_CATEGORY_VOLTAGE_TRANSFORMER = 11;
86125

87-
// An HVAC (Heating, Ventilation, and Air Conditioning) system.
88-
ELECTRICAL_COMPONENT_CATEGORY_HVAC = 14;
126+
// An HVAC system (Heating, Ventilation, and Air Conditioning).
127+
//
128+
// Manages indoor climate by controlling heating, cooling, and ventilation.
129+
// Remotely controllable for setpoint and operational scheduling.
130+
// Examples: Siemens Desigo, Trane Voyager, Daikin VRV, Schneider Electric
131+
// SmartStruxure.
132+
ELECTRICAL_COMPONENT_CATEGORY_HVAC = 12;
133+
134+
// An industrial controller or PLC (Programmable Logic Controller).
135+
//
136+
// Automates industrial processes, load shedding, and custom logic.
137+
// Remotely controllable for process execution and telemetry via digital
138+
// protocols.
139+
// Examples: Siemens SIMATIC S7-1200/1500, Beckhoff CX-series IPC, Schneider
140+
// M340, Wago PFC 200.
141+
ELECTRICAL_COMPONENT_CATEGORY_PLC = 13;
142+
143+
// A crypto miner.
144+
//
145+
// Consumes power for blockchain computations and can be remotely curtailed or
146+
// powered down.
147+
// Examples: Bitmain Antminer, MicroBT WhatsMiner, Canaan AvalonMiner.
148+
ELECTRICAL_COMPONENT_CATEGORY_CRYPTO_MINER = 14;
149+
150+
// A static transfer switch (STS).
151+
//
152+
// Switches between multiple power sources with minimal transfer time to
153+
// maintain continuity.
154+
// Remotely controllable for source selection and transfer commands.
155+
// Examples: Socomec ATyS, ABB TruONE, Eaton Automatic Transfer Switch, ASCO
156+
// Series 7000.
157+
ELECTRICAL_COMPONENT_CATEGORY_STATIC_TRANSFER_SWITCH = 15;
158+
159+
// An uninterruptible power supply (UPS).
160+
//
161+
// Provides immediate backup power with battery and inverter integration.
162+
// Remotely controllable for status, diagnostics, and sometimes operational
163+
// commands.
164+
// Examples: APC Symmetra PX, Eaton 93PM, Schneider Electric Galaxy, Vertiv
165+
// Liebert EXL.
166+
ELECTRICAL_COMPONENT_CATEGORY_UNINTERRUPTIBLE_POWER_SUPPLY = 16;
167+
168+
// A capacitor bank for power factor correction.
169+
//
170+
// Improves power quality by compensating reactive power.
171+
// Remotely controllable for switching capacitors in or out.
172+
// Examples: Siemens 3FK, ABB Capacitor Banks, Schneider Electric VarSet,
173+
// Eaton PowerXL.
174+
ELECTRICAL_COMPONENT_CATEGORY_CAPACITOR_BANK = 17;
175+
176+
// A wind turbine.
177+
//
178+
// Converts wind energy into electricity.
179+
// Remotely controllable (in most commercial systems) for start/stop, output
180+
// regulation, and status.
181+
// Examples: Siemens Gamesa SG, Vestas V series, GE Cypress, Nordex Delta.
182+
ELECTRICAL_COMPONENT_CATEGORY_WIND_TURBINE = 18;
89183
}
90184

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

0 commit comments

Comments
 (0)