#[repr(i32)]pub enum ElectricalComponentCategory {
Show 19 variants
Unspecified = 0,
GridConnectionPoint = 1,
Meter = 2,
Inverter = 3,
Converter = 4,
Battery = 5,
EvCharger = 6,
Breaker = 7,
Precharger = 8,
Chp = 9,
Electrolyzer = 10,
PowerTransformer = 11,
Hvac = 12,
Plc = 13,
CryptoMiner = 14,
StaticTransferSwitch = 15,
UninterruptiblePowerSupply = 16,
CapacitorBank = 17,
WindTurbine = 18,
}Expand description
Enumerated electrical component categories.
This enum lists key microgrid components, most of which are typically capable of being remotely controlled via digital interfaces (e.g., Modbus, MQTT, OPC-UA).
Variants§
Unspecified = 0
The component category is unspecified. This should not be used.
GridConnectionPoint = 1
The point where the local microgrid is connected to the grid.
Represents the interface between a local microgrid and the public electricity grid, typically used for metering, protection, and isolation. This category itself is not remotely controllable, but can be associated with other devices (inverters, relays, etc.) that can be controlled to affect the grid connection point.
Meter = 2
A meter for measuring electrical parameters.
Measures electrical parameters such as voltage, current, power, energy, and frequency. Meters typically cannot be controlled remotely, but they can provide telemetry data. Examples: Janitza UMG 604, Janitza B24, ABB B24, etc.
Inverter = 3
An inverter.
Converts DC to AC power and vice-versa, enabling integration of batteries, PV arrays, or other renewables. Remotely controllable via digital protocols for power setpoints, modes, and status. Examples: SMA Sunny Tripower, Kaco Blueplanet, Refu RefuStore88k, etc.
Converter = 4
A DC-DC converter.
Converts electrical energy between different DC voltage levels. Typically remotely controllable for voltage, current, or mode adjustment. Examples: Victron Orion, Delta Electronics DC-DC converters, TDK Lambda.
Battery = 5
A battery energy storage system.
Stores electrical energy and can be dispatched for load balancing, backup, or arbitrage. Remotely controllable for charging, discharging, and operational mode. Examples: Tesla Megapack, LG Chem RESU, etc.
EvCharger = 6
An EV charger.
Provides controlled charging for electric vehicles. Remotely controllable for starting/stopping charging and setting power limits. Examples: Alfen NG 9xx, KEBA KeContact P30, Siemens VersiCharge, etc.
Breaker = 7
A circuit breaker.
Provides protection and switching by disconnecting circuits as needed. Remotely controllable for opening/closing and status monitoring. Examples: Finder Series 62, Phoenix Contact PLC-Interface, Siemens Sirius, Schneider Electric Zelio, etc.
Precharger = 8
A pre-charge module.
Ramps up DC voltage gradually to protect components during power-up. Remotely controllable to initiate or manage the pre-charge sequence. Examples: Precharge modules from Bender, Precharge controllers by Elcon, custom PLC-controlled circuits.
Chp = 9
A combined heat and power (CHP) plant.
Generates electricity and useful heat from a single energy source. Remotely controllable for start/stop commands and setpoint adjustments. Examples: 2G Agenitor, Viessmann Vitobloc, TEDOM Micro series, Bosch CHP.
Electrolyzer = 10
An electrolyzer.
Converts electrical energy into hydrogen and oxygen by electrolyzing water. Remotely controllable for operating mode and production rate. Examples: Siemens Silyzer, Nel Hydrogen PEM, ITM Power electrolyzers.
PowerTransformer = 11
A power transformer.
A power transformer is designed for the bulk transfer of electrical energy. Its main job is to “step-up” or “step-down” voltage levels for efficient transmission and distribution of power.
Since power transformers try to keep the output power same as the input power (ignoring losses), when they step-up the voltage, the current gets proportionally reduced, and vice versa.
Hvac = 12
An HVAC system (Heating, Ventilation, and Air Conditioning).
Manages indoor climate by controlling heating, cooling, and ventilation. Remotely controllable for setpoint and operational scheduling. Examples: Siemens Desigo, Trane Voyager, Daikin VRV, Schneider Electric SmartStruxure.
Plc = 13
An industrial controller or PLC (Programmable Logic Controller).
Automates industrial processes, load shedding, and custom logic. Remotely controllable for process execution and telemetry via digital protocols. Examples: Siemens SIMATIC S7-1200/1500, Beckhoff CX-series IPC, Schneider M340, Wago PFC 200.
CryptoMiner = 14
A crypto miner.
Consumes power for blockchain computations and can be remotely curtailed or powered down. Examples: Bitmain Antminer, MicroBT WhatsMiner, Canaan AvalonMiner.
StaticTransferSwitch = 15
A static transfer switch (STS).
Switches between multiple power sources with minimal transfer time to maintain continuity. Remotely controllable for source selection and transfer commands. Examples: Socomec ATyS, ABB TruONE, Eaton Automatic Transfer Switch, ASCO Series 7000.
UninterruptiblePowerSupply = 16
An uninterruptible power supply (UPS).
Provides immediate backup power with battery and inverter integration. Remotely controllable for status, diagnostics, and sometimes operational commands. Examples: APC Symmetra PX, Eaton 93PM, Schneider Electric Galaxy, Vertiv Liebert EXL.
CapacitorBank = 17
A capacitor bank for power factor correction.
Improves power quality by compensating reactive power. Remotely controllable for switching capacitors in or out. Examples: Siemens 3FK, ABB Capacitor Banks, Schneider Electric VarSet, Eaton PowerXL.
WindTurbine = 18
A wind turbine.
Converts wind energy into electricity. Remotely controllable (in most commercial systems) for start/stop, output regulation, and status. Examples: Siemens Gamesa SG, Vestas V series, GE Cypress, Nordex Delta.
Implementations§
Source§impl ElectricalComponentCategory
impl ElectricalComponentCategory
Sourcepub fn is_valid(value: i32) -> bool
pub fn is_valid(value: i32) -> bool
Returns true if value is a variant of ElectricalComponentCategory.
Sourcepub fn from_i32(value: i32) -> Option<ElectricalComponentCategory>
👎Deprecated: Use the TryFrom<i32> implementation instead
pub fn from_i32(value: i32) -> Option<ElectricalComponentCategory>
Use the TryFrom<i32> implementation instead
Converts an i32 to a ElectricalComponentCategory, or None if value is not a valid variant.
Source§impl ElectricalComponentCategory
impl ElectricalComponentCategory
Sourcepub fn as_str_name(&self) -> &'static str
pub fn as_str_name(&self) -> &'static str
String value of the enum field names used in the ProtoBuf definition.
The values are not transformed in any way and thus are considered stable (if the ProtoBuf definition does not change) and safe for programmatic use.
Sourcepub fn from_str_name(value: &str) -> Option<Self>
pub fn from_str_name(value: &str) -> Option<Self>
Creates an enum from field names used in the ProtoBuf definition.
Trait Implementations§
Source§impl Clone for ElectricalComponentCategory
impl Clone for ElectricalComponentCategory
Source§fn clone(&self) -> ElectricalComponentCategory
fn clone(&self) -> ElectricalComponentCategory
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ElectricalComponentCategory
impl Debug for ElectricalComponentCategory
Source§impl Default for ElectricalComponentCategory
impl Default for ElectricalComponentCategory
Source§fn default() -> ElectricalComponentCategory
fn default() -> ElectricalComponentCategory
Source§impl From<ElectricalComponentCategory> for i32
impl From<ElectricalComponentCategory> for i32
Source§fn from(value: ElectricalComponentCategory) -> i32
fn from(value: ElectricalComponentCategory) -> i32
Source§impl Hash for ElectricalComponentCategory
impl Hash for ElectricalComponentCategory
Source§impl Ord for ElectricalComponentCategory
impl Ord for ElectricalComponentCategory
Source§fn cmp(&self, other: &ElectricalComponentCategory) -> Ordering
fn cmp(&self, other: &ElectricalComponentCategory) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialOrd for ElectricalComponentCategory
impl PartialOrd for ElectricalComponentCategory
Source§impl TryFrom<i32> for ElectricalComponentCategory
impl TryFrom<i32> for ElectricalComponentCategory
Source§type Error = UnknownEnumValue
type Error = UnknownEnumValue
Source§fn try_from(value: i32) -> Result<ElectricalComponentCategory, UnknownEnumValue>
fn try_from(value: i32) -> Result<ElectricalComponentCategory, UnknownEnumValue>
impl Copy for ElectricalComponentCategory
impl Eq for ElectricalComponentCategory
impl StructuralPartialEq for ElectricalComponentCategory
Auto Trait Implementations§
impl Freeze for ElectricalComponentCategory
impl RefUnwindSafe for ElectricalComponentCategory
impl Send for ElectricalComponentCategory
impl Sync for ElectricalComponentCategory
impl Unpin for ElectricalComponentCategory
impl UnsafeUnpin for ElectricalComponentCategory
impl UnwindSafe for ElectricalComponentCategory
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request