Skip to main content

OpenFMB Fields Used by the Oneline

This document details which OpenFMB fields from which Equipment types are integrated into the One-Line UI application.

Overview

The One-Line UI integrates with OpenFMB (Open Field Message Bus) profiles through NATS messaging to display real-time readings, statuses, and controls for electrical grid equipment. All equipment communicates using standardized OpenFMB profiles transmitted as Protocol Buffer messages over NATS.

Equipment Types Supported

The following equipment types are supported in the One-Line UI:

  • Breaker
  • Capacitor/CapBank
  • ESS/Battery
  • EVSE/EV Charger
  • Generation
  • Load
  • Meter
  • Recloser
  • Regulator
  • Solar/PV
  • Switch

OpenFMB Profile Types

Each equipment type uses three profile categories:

  1. Reading Profiles - Telemetry and measurement data
  2. Status Profiles - Equipment state and operational status
  3. Control Profiles - Command and control operations

Reading Fields (Measurements/Telemetry)

All equipment types extract measurement data through the readingMMXU field using standardized JSONPath queries.

Reading Values Displayed

Reading TypeDescriptionUnitsDisplay ConversionPhases
PhVPhase To Ground VoltageVolts÷ 1000 = kVA, B, C
PPVPhase-to-Phase VoltageVolts÷ 1000 = kVAB, BC, CA
WReal PowerWatts÷ 1000 = kWA, B, C
VArReactive PowerVolt-Ampere Reactive÷ 1000 = kVArA, B, C
VAApparent PowerVolt-Ampere÷ 1000 = kVAA, B, C
PFPower FactorDimensionless0.0 - 1.0A, B, C
ACurrent (shown for EV's)AmperesAA, B, C

Equipment Reading Profile Paths

Equipment TypeJSONPath for ReadingsProfile Name
Breaker$.breakerReading..readingMMXUBreakerReadingProfile
Capacitor$..readingMMXUCapBankReadingProfile
ESS/Battery$..readingMMXUESSReadingProfile
EVSE/EV Charger$..readingMMXUEVSEReadingProfile
Generation$..readingMMXUGenerationReadingProfile
Load$..readingMMXULoadReadingProfile
Meter$..readingMMXUMeterReadingProfile
Recloser$..readingMMXURecloserReadingProfile
Regulator$..readingMMXURegulatorReadingProfile
Solar/PV$..readingMMXUSolarReadingProfile
Switch$..readingMMXUSwitchReadingProfile

Status Fields (Device Status)

Status fields are equipment-specific and extracted from OpenFMB Status Profiles. The UI displays these as status chips or indicators.

Status Fields by Equipment Type

Equipment TypeStatus JSONPathPossible ValuesDisplay FormatProfile Name
Breaker$.breakerStatus..Pos.phs3.stVal0, 1"Closed", "Open"BreakerStatusProfile
Switch$.switchStatus..stVal0, 1"Closed", "Open"SwitchStatusProfile
Recloser$.recloserStatus..Pos.phs3.stVal0, 1"Closed", "Open"RecloserStatusProfile
Capacitor$.capBankStatus..Pos.phs3.stVal0, 1"Closed", "Open"CapBankStatusProfile
Load$.loadStatus..state.valueStateKind enum"On", "Off" + controllabilityLoadStatusProfile
Generation$.generationStatus..valueStateKind enum"On", "Off", "Standby"GenerationStatusProfile
Solar/PV$.solarStatus..valueStateKind enum"On", "Off", "Standby"SolarStatusProfile
Regulator$.regulatorStatus..phs3.stValnumberStep position (numeric)RegulatorStatusProfile
ESS/Battery$.essStatus.essStatusZBATMultiple fieldsSee ESS Status Fields belowESSStatusProfile
EVSE/Charger$.evseStatus.eventAndStatusDESEMultiple fieldsSee EVSE Status Fields belowEVSEStatusProfile

ESS/Battery Status Fields

Battery/ESS equipment displays multiple status fields extracted from essStatusZBAT:

Field NameDescriptionDisplay Format
stateOperational state"On", "Off", "Standby"
SoCState of ChargePercentage (0-100)
Grid ModeGrid connection mode"Grid Following", "Grid Forming"
Power valuesActive/Reactive powerkW, kVAr
Voltage valuesVoltage measurementskV

EVSE/EV Charger Status Fields

EVSE equipment displays multiple status fields extracted from eventAndStatusDESE:

OpenFMB Field PathFriendly LabelDescriptionDisplay Format
eventAndStatusDESE[].PointStatus.state.valueCharging State KindCurrent charging state"Idle", "Charging", "EVConnected", "SuspendedEV", "SuspendedEVSE"
eventAndStatusDESE[].PointStatus.limitWOperation.maxLimParameter.modEnaMax Limit W EnabledMax power limit flag"true", "false"
eventAndStatusDESE[].PointStatus.limitWOperation.wMaxSptValLimit W Operation SetpointMax power limit valuekW (value ÷ 1000)
eventAndStatusDESE[].eventAndStatusDEAO.eventAndStatusDEEV.Soc.magDEAO.DEEV.SocState of ChargePercentage (0-100)
eventAndStatusDESE[].eventAndStatusDEDO.eventAndStatusDEEV.Soc.magDEDO.DEEV.SocState of ChargePercentage (0-100)

Control Fields

Control fields allow operators to send commands to equipment. Each equipment type has specific control profiles and fields.

Breaker/Switch/Recloser/Capacitor Controls

Equipment TypeControl Field PathValue TypeControl ActionProfile Name
BreakerbreakerDiscreteControl.breakerDiscreteControlXCBR.discreteControlXCBR.Pos.phs3.ctlValboolean1 = Open, 0 = ClosedBreakerDiscreteControlProfile
SwitchswitchDiscreteControl.switchDiscreteControlXSWI.Pos.phs3.ctlValboolean1 = Open, 0 = ClosedSwitchDiscreteControlProfile
RecloserrecloserDiscreteControl.recloserDiscreteControlRCLO.Pos.phs3.ctlValboolean1 = Open, 0 = ClosedRecloserDiscreteControlProfile
CapacitorcapBankControl.capBankDiscreteControlYPSH.control.Pos.phs3.ctlValboolean1 = Open, 0 = ClosedCapBankDiscreteControlProfile

UI Control: Open/Close buttons

Load Controls

Control FieldFull PathValue TypeDisplay UnitProfile Name
W (Real Power)loadControl.loadControlFSCC.loadControlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_magnumberkWLoadControlProfile
VAr (Reactive Power)loadControl.loadControlFSCC.loadControlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_VAr_net_magnumberkVArLoadControlProfile
PF (Power Factor)loadControl.loadControlFSCC.loadControlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_PF_net_magnumber0.0 - 1.0LoadControlProfile

UI Control: Sliders for W, VAr, PF setpoints

Regulator/Transformer Step Controls

Control FieldFull PathValue TypeControl ActionProfile Name
Raise (Step Up)regulatorControl.regulatorDiscreteControlATCC.TapOpR.phs3.ctlValbooleantrue = Raise stepRegulatorDiscreteControlProfile
Lower (Step Down)regulatorControl.regulatorDiscreteControlATCC.TapOpL.phs3.ctlValbooleantrue = Lower stepRegulatorDiscreteControlProfile

UI Control: Raise/Lower step buttons

Battery/ESS Controls

Control FieldFull PathValue TypePossible ValuesProfile Name
State ControlessControl.essControlFSCC.essControlScheduleFSCH.ValDCSG.crvPts[0].control.state.valueenumStateKind_on, StateKind_off, StateKind_standbyESSControlProfile
Grid Mode ControlessControl.essControlFSCC.essControlScheduleFSCH.ValDCSG.crvPts[0].control.mode.setValenumGridConnectModeKind_VSI_PQ (Grid Following), GridConnectModeKind_VSI_ISO (Grid Forming)ESSControlProfile
Power (P) ControlessControl.essControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_magnumberkWESSControlProfile
Reactive Power (Q) ControlessControl.essControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_VAr_net_magnumberkVArESSControlProfile
Reset ControlessControl.essControlFSCC.essControlScheduleFSCH.ValDCSG.crvPts[0].control.reset.ctlValbooleantrue = ResetESSControlProfile

UI Control: State dropdown, Grid Mode dropdown, P/Q text fields, Reset button

Solar/PV Controls

Control FieldFull PathValue TypePossible ValuesProfile Name
State ControlsolarControl.solarControlFSCC.SolarControlScheduleFSCH.ValDCSG.crvPts[0].control.state.valueenumStateKind_on, StateKind_off, StateKind_standbySolarControlProfile
Power (P) ControlsolarControl.solarControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_magnumberkWSolarControlProfile
Reactive Power (Q) ControlsolarControl.solarControlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_VAr_net_magnumberkVArSolarControlProfile

UI Control: State dropdown, P/Q text fields

EVSE/EV Charger Controls

Control FieldFull PathValue TypePossible ValuesProfile Name
Charging State ControlevseControl.deseControlScheduleFSCH.ValDCSG.crvPts[0].control.state.valueenumChargingStateKind_Idle, ChargingStateKind_Charging, ChargingStateKind_EVConnected, ChargingStateKind_SuspendedEV, ChargingStateKind_SuspendedEVSEEVSEControlProfile
Power (P) ControlevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].scheduleParameter.ScheduleParameterKind_W_net_magnumberkWEVSEControlProfile
Maximum Power Limit EnabledevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.maxLimParameter.modEnabooleantrue/falseEVSEControlProfile
Maximum Power Limit ValueevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.wMaxSptValnumberkWEVSEControlProfile
Minimum Power Limit EnabledevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.minLimParameter.modEnabooleantrue/falseEVSEControlProfile
Minimum Power Limit ValueevseControl.controlFSCC.controlScheduleFSCH.ValACSG.schPts[0].limitWOperation.wMinSptValnumberkWEVSEControlProfile
Reset ControlevseControl.controlFSCC.controlScheduleFSCH.ValDCSG.crvPts[0].control.reset.ctlValbooleantrue = ResetEVSEControlProfile

UI Control: P Value field, P Value Max field, Min/Max Operation Limit checkboxes, Reset button

Generation Controls

Control FieldFull PathValue TypePossible ValuesProfile Name
State ControlgenerationControl.generationControlFSCC.GenerationControlScheduleFSCH.ValDCSG.crvPts[0].state.valueenumStateKind_on, StateKind_off, StateKind_standbyGenerationControlProfile

UI Control: State dropdown


NATS Message Subject Patterns

All OpenFMB messages follow a standardized NATS subject pattern:

openfmb.{module}.{ProfileType}.{mrid}

Subject Pattern Components

ComponentDescriptionExample
openfmbNamespace prefixopenfmb
moduleOpenFMB module namebreakermodule, loadmodule, essmodule
ProfileTypeMessage typeReadingProfile, StatusProfile, ControlProfile
mridUnique equipment identifier550e8400-e29b-41d4-a716-446655440000 (UUID)

Subject Pattern Examples by Profile Type

Profile TypeSubject Pattern Example
Readingopenfmb.breakermodule.BreakerReadingProfile.550e8400-e29b-41d4-a716-446655440000
Statusopenfmb.loadmodule.LoadStatusProfile.550e8400-e29b-41d4-a716-446655440001
Controlopenfmb.essmodule.ESSControlProfile.550e8400-e29b-41d4-a716-446655440002
Discrete Controlopenfmb.breakermodule.BreakerDiscreteControlProfile.550e8400-e29b-41d4-a716-446655440000

Summary Tables

OpenFMB Equipment Profiles Used By Equipment

Equipment TypeReading ProfileStatus ProfileControl Profile
BreakerBreakerReadingProfileBreakerStatusProfileBreakerDiscreteControlProfile
Capacitor/CapBankCapBankReadingProfileCapBankStatusProfileCapBankDiscreteControlProfile
ESS/BatteryESSReadingProfileESSStatusProfileESSControlProfile
EVSE/EV ChargerEVSEReadingProfileEVSEStatusProfileEVSEControlProfile
GenerationGenerationReadingProfileGenerationStatusProfileGenerationControlProfile
LoadLoadReadingProfileLoadStatusProfileLoadControlProfile
RecloserRecloserReadingProfileRecloserStatusProfileRecloserDiscreteControlProfile
RegulatorRegulatorReadingProfileRegulatorStatusProfileRegulatorDiscreteControlProfile
Solar/PVSolarReadingProfileSolarStatusProfileSolarControlProfile
SwitchSwitchReadingProfileSwitchStatusProfileSwitchDiscreteControlProfile

Additional Resources

  • OpenFMB Official Documentation: https://openfmb.github.io/
  • Protocol Buffers Documentation: https://protobuf.dev/
  • NATS Messaging: All messages use NATS pub/sub
  • Message Format: Protocol Buffer (binary) over network, converted to JSON in UI Code for UI processing