Documentation ¶
Index ¶
- Variables
- type CemCEVCInterface
- type CemEVCCInterface
- type CemEVCEMInterface
- type CemEVSECCInterface
- type CemEVSOCInterface
- type CemOPEVInterface
- type CemOSCEVInterface
- type CemVABDInterface
- type CemVAPDInterface
- type ChargePlan
- type ChargePlanSlotValue
- type CsLPCInterface
- type CsLPPInterface
- type Demand
- type DurationSlotValue
- type EVChargeStateType
- type EVChargeStrategyType
- type EgLPCInterface
- type EgLPPInterface
- type IdentificationItem
- type IncentiveDescription
- type IncentiveSlotConstraints
- type IncentiveTableDescriptionTier
- type IncentiveTariffDescription
- type LoadLimit
- type LoadLimitsPhase
- type MaMGCPInterface
- type MaMPCInterface
- type TierBoundaryDescription
- type TimeSlotConstraints
Constants ¶
This section is empty.
Variables ¶
Functions ¶
This section is empty.
Types ¶
type CemCEVCInterface ¶
type CemCEVCInterface interface { api.UseCaseInterface // returns the current charging stratey // // parameters: // - entity: the entity of the EV // // returns EVChargeStrategyTypeUnknown if it could not be determined, e.g. // if the vehicle communication is via IEC61851 or the EV doesn't provide // any information about its charging mode or plan ChargeStrategy(remoteEntity spineapi.EntityRemoteInterface) EVChargeStrategyType // returns the current energy demand // // parameters: // - entity: the entity of the EV // // return values: // - EVDemand: details about the actual demands from the EV // - error: if no data is available // // if duration is 0, direct charging is active, otherwise timed charging is active EnergyDemand(remoteEntity spineapi.EntityRemoteInterface) (Demand, error) TimeSlotConstraints(entity spineapi.EntityRemoteInterface) (TimeSlotConstraints, error) // send power limits to the EV // // parameters: // - entity: the entity of the EV // - data: the power limits // // if no data is provided, default power limits with the max possible value for 7 days will be sent WritePowerLimits(entity spineapi.EntityRemoteInterface, data []DurationSlotValue) error // return the current incentive constraints // // parameters: // - entity: the entity of the EV IncentiveConstraints(entity spineapi.EntityRemoteInterface) (IncentiveSlotConstraints, error) // send new incentives to the EV // // parameters: // - entity: the entity of the EV // - data: the incentive descriptions WriteIncentiveTableDescriptions(entity spineapi.EntityRemoteInterface, data []IncentiveTariffDescription) error // send incentives to the EV // // parameters: // - entity: the entity of the EV // - data: the incentives // // if no data is provided, default incentives with the same price for 7 days will be sent WriteIncentives(entity spineapi.EntityRemoteInterface, data []DurationSlotValue) error // return the current charge plan constraints // // parameters: // - entity: the entity of the EV ChargePlanConstraints(entity spineapi.EntityRemoteInterface) ([]DurationSlotValue, error) // return the current charge plan of the EV // // parameters: // - entity: the entity of the EV ChargePlan(entity spineapi.EntityRemoteInterface) (ChargePlan, error) }
Actor: Customer Energy Management UseCase: Coordinated EV Charging
type CemEVCCInterface ¶
type CemEVCCInterface interface { api.UseCaseInterface // return the current charge state of the EV // // parameters: // - entity: the entity of the EV ChargeState(entity spineapi.EntityRemoteInterface) (EVChargeStateType, error) // return if the EV is connected // // parameters: // - entity: the entity of the EV EVConnected(entity spineapi.EntityRemoteInterface) bool // return the current communication standard type used to communicate between EVSE and EV // // parameters: // - entity: the entity of the EV CommunicationStandard(entity spineapi.EntityRemoteInterface) (model.DeviceConfigurationKeyValueStringType, error) // return if the EV supports asymmetric charging // // parameters: // - entity: the entity of the EV AsymmetricChargingSupport(entity spineapi.EntityRemoteInterface) (bool, error) // return the identifications of the currently connected EV or nil if not available // these can be multiple, e.g. PCID, Mac Address, RFID // // parameters: // - entity: the entity of the EV Identifications(entity spineapi.EntityRemoteInterface) ([]IdentificationItem, error) // the manufacturer data of an EVSE // returns deviceName, serialNumber, error // // parameters: // - entity: the entity of the EV ManufacturerData(entity spineapi.EntityRemoteInterface) (api.ManufacturerData, error) // return the minimum, maximum charging and, standby power of the connected EV // // parameters: // - entity: the entity of the EV ChargingPowerLimits(entity spineapi.EntityRemoteInterface) (float64, float64, float64, error) // is the EV in sleep mode // // parameters: // - entity: the entity of the EV IsInSleepMode(entity spineapi.EntityRemoteInterface) (bool, error) }
Actor: Customer Energy Management UseCase: EV Commissioning and Configuration
type CemEVCEMInterface ¶
type CemEVCEMInterface interface { api.UseCaseInterface // return the number of ac connected phases of the EV or 0 if it is unknown // // parameters: // - entity: the entity of the EV PhasesConnected(entity spineapi.EntityRemoteInterface) (uint, error) // return the last current measurement for each phase of the connected EV // // parameters: // - entity: the entity of the EV CurrentPerPhase(entity spineapi.EntityRemoteInterface) ([]float64, error) // return the last power measurement for each phase of the connected EV // // parameters: // - entity: the entity of the EV PowerPerPhase(entity spineapi.EntityRemoteInterface) ([]float64, error) // return the charged energy measurement in Wh of the connected EV // // parameters: // - entity: the entity of the EV EnergyCharged(entity spineapi.EntityRemoteInterface) (float64, error) }
Actor: Customer Energy Management UseCase: EV Charging Electricity Measurement
type CemEVSECCInterface ¶
type CemEVSECCInterface interface { api.UseCaseInterface // the manufacturer data of an EVSE // // parameters: // - entity: the entity of the EV // // returns deviceName, serialNumber, error ManufacturerData(entity spineapi.EntityRemoteInterface) (api.ManufacturerData, error) // the operating state data of an EVSE // // parameters: // - entity: the entity of the EV // // returns operatingState, lastErrorCode, error OperatingState(entity spineapi.EntityRemoteInterface) (model.DeviceDiagnosisOperatingStateType, string, error) }
Actor: Customer Energy Management UseCase: EVSE Commissioning and Configuration
type CemEVSOCInterface ¶
type CemEVSOCInterface interface { api.UseCaseInterface // return the EVscurrent state of charge of the EV or an error it is unknown // // parameters: // - entity: the entity of the EV StateOfCharge(entity spineapi.EntityRemoteInterface) (float64, error) }
Actor: Customer Energy Management UseCase: EV State Of Charge
type CemOPEVInterface ¶
type CemOPEVInterface interface { api.UseCaseInterface // return the min, max, default limits for each phase of the connected EV // // parameters: // - entity: the entity of the EV CurrentLimits(entity spineapi.EntityRemoteInterface) ([]float64, []float64, []float64, error) // return the current loadcontrol obligation limits // // parameters: // - entity: the entity of the EV // // return values: // - limits: per phase data // // possible errors: // - ErrDataNotAvailable if no such limit is (yet) available // - and others LoadControlLimits(entity spineapi.EntityRemoteInterface) (limits []LoadLimitsPhase, resultErr error) // send new LoadControlLimits to the remote EV // // parameters: // - entity: the entity of the EV // - limits: a set of limits containing phase specific limit data // - resultCB: callback function for handling the result response // // Sets a maximum A limit for each phase that the EV may not exceed. // Mainly used for implementing overload protection of the site or limiting the // maximum charge power of EVs when the EV and EVSE communicate via IEC61851 // and with ISO15118 if the EV does not support the Optimization of Self Consumption // usecase. // // note: // For obligations to work for optimizing solar excess power, the EV needs to // have an energy demand. Recommendations work even if the EV does not have an active // energy demand, given it communicated with the EVSE via ISO15118 and supports the usecase. // In ISO15118-2 the usecase is only supported via VAS extensions which are vendor specific // and needs to have specific EVSE support for the specific EV brand. // In ISO15118-20 this is a standard feature which does not need special support on the EVSE. WriteLoadControlLimits( entity spineapi.EntityRemoteInterface, limits []LoadLimitsPhase, resultCB func(result model.ResultDataType), ) (*model.MsgCounterType, error) }
Actor: Customer Energy Management UseCase: Overload Protection by EV Charging Current Curtailment
type CemOSCEVInterface ¶
type CemOSCEVInterface interface { api.UseCaseInterface // return the min, max, default limits for each phase of the connected EV // // parameters: // - entity: the entity of the EV CurrentLimits(entity spineapi.EntityRemoteInterface) ([]float64, []float64, []float64, error) // return the current loadcontrol recommendation limits // // parameters: // - entity: the entity of the EV // // return values: // - limits: per phase data // // possible errors: // - ErrDataNotAvailable if no such limit is (yet) available // - and others LoadControlLimits(entity spineapi.EntityRemoteInterface) (limits []LoadLimitsPhase, resultErr error) // send new LoadControlLimits to the remote EV // // parameters: // - entity: the entity of the EV // - limits: a set of limits containing phase specific limit data // - resultCB: callback function for handling the result response // // recommendations: // Sets a recommended charge power in A for each phase. This is mainly // used if the EV and EVSE communicate via ISO15118 to support charging excess solar power. // The EV either needs to support the Optimization of Self Consumption usecase or // the EVSE needs to be able map the recommendations into oligation limits which then // works for all EVs communication either via IEC61851 or ISO15118. WriteLoadControlLimits( entity spineapi.EntityRemoteInterface, limits []LoadLimitsPhase, resultCB func(result model.ResultDataType), ) (*model.MsgCounterType, error) }
Actor: Customer Energy Management UseCase: Optimization of Self-Consumption During EV Charging
type CemVABDInterface ¶
type CemVABDInterface interface { api.UseCaseInterface // return the current (dis)charging power // // parameters: // - entity: the entity of the inverter Power(entity spineapi.EntityRemoteInterface) (float64, error) // return the cumulated battery system charge energy // // parameters: // - entity: the entity of the inverter EnergyCharged(entity spineapi.EntityRemoteInterface) (float64, error) // return the cumulated battery system discharge energy // // parameters: // - entity: the entity of the inverter EnergyDischarged(entity spineapi.EntityRemoteInterface) (float64, error) // return the current state of charge of the battery system // // parameters: // - entity: the entity of the inverter StateOfCharge(entity spineapi.EntityRemoteInterface) (float64, error) }
Actor: Customer Energy Management UseCase: Visualization of Aggregated Battery Data
type CemVAPDInterface ¶
type CemVAPDInterface interface { api.UseCaseInterface // return the current production power // // parameters: // - entity: the entity of the inverter Power(entity spineapi.EntityRemoteInterface) (float64, error) // return the nominal peak power // // parameters: // - entity: the entity of the inverter PowerNominalPeak(entity spineapi.EntityRemoteInterface) (float64, error) // return total PV yield // // parameters: // - entity: the entity of the inverter PVYieldTotal(entity spineapi.EntityRemoteInterface) (float64, error) }
Actor: Customer Energy Management UseCase: Visualization of Aggregated Photovoltaic Data
type ChargePlan ¶
type ChargePlan struct {
Slots []ChargePlanSlotValue // Individual charging slot details
}
Contains details about an EV generated charging plan
type ChargePlanSlotValue ¶
type ChargePlanSlotValue struct { Start time.Time // The start time of the slot End time.Time // The duration of the slot Value float64 // planned power value MinValue float64 // minimum power value MaxValue float64 // maximum power value }
Contains details about a charging plan slot
type CsLPCInterface ¶
type CsLPCInterface interface { api.UseCaseInterface // return the current consumption limit data // // return values: // - limit: load limit data // // possible errors: // - ErrDataNotAvailable if no such limit is (yet) available // - and others ConsumptionLimit() (LoadLimit, error) // set the current loadcontrol limit data SetConsumptionLimit(limit LoadLimit) (resultErr error) // return the currently pending incoming consumption write limits PendingConsumptionLimits() map[model.MsgCounterType]LoadLimit // accept or deny an incoming consumption write limit // // parameters: // - msg: the incoming write message // - approve: if the write limit for msg should be approved or not // - reason: the reason why the approval is denied, otherwise an empty string ApproveOrDenyConsumptionLimit(msgCounter model.MsgCounterType, approve bool, reason string) // return Failsafe limit for the consumed active (real) power of the // Controllable System. This limit becomes activated in "init" state or "failsafe state". // // return values: // - value: the power limit in W // - changeable: boolean if the client service can change the limit FailsafeConsumptionActivePowerLimit() (value float64, isChangeable bool, resultErr error) // set Failsafe limit for the consumed active (real) power of the // Controllable System. This limit becomes activated in "init" state or "failsafe state". // // parameters: // - value: the power limit in W // - changeable: boolean if the client service can change the limit SetFailsafeConsumptionActivePowerLimit(value float64, changeable bool) (resultErr error) // return minimum time the Controllable System remains in "failsafe state" unless conditions // specified in this Use Case permit leaving the "failsafe state" // // return values: // - value: the power limit in W // - changeable: boolean if the client service can change the limit FailsafeDurationMinimum() (duration time.Duration, isChangeable bool, resultErr error) // set minimum time the Controllable System remains in "failsafe state" unless conditions // specified in this Use Case permit leaving the "failsafe state" // // parameters: // - duration: has to be >= 2h and <= 24h // - changeable: boolean if the client service can change this value SetFailsafeDurationMinimum(duration time.Duration, changeable bool) (resultErr error) // this is automatically covered by the SPINE implementation // // returns true, if the last heartbeat is within 2 minutes, otherwise false IsHeartbeatWithinDuration() bool // return nominal maximum active (real) power the Controllable System is allowed to consume. // // If the local device type is an EnergyManagementSystem, the contractual consumption // nominal max is returned, otherwise the power consumption nominal max is returned. ConsumptionNominalMax() (float64, error) // set power nominal maximum active (real) power the Controllable System is allowed to consume. // // If the local device type is an EnergyManagementSystem, the contractual consumption // nominal max is set, otherwise the power consumption nominal max is set. // // parameters: // - value: nominal max power consumption in W SetConsumptionNominalMax(value float64) (resultErr error) }
Actor: Controllable System UseCase: Limitation of Power Consumption
type CsLPPInterface ¶
type CsLPPInterface interface { api.UseCaseInterface // return the current loadcontrol limit data // // return values: // - limit: load limit data // // possible errors: // - ErrDataNotAvailable if no such limit is (yet) available // - and others ProductionLimit() (LoadLimit, error) // set the current loadcontrol limit data SetProductionLimit(limit LoadLimit) (resultErr error) // return the currently pending incoming production write limits PendingProductionLimits() map[model.MsgCounterType]LoadLimit // accept or deny an incoming production write limit // // parameters: // - msg: the incoming write message // - approve: if the write limit for msg should be approved or not // - reason: the reason why the approval is denied, otherwise an empty string ApproveOrDenyProductionLimit(msgCounter model.MsgCounterType, approve bool, reason string) // return Failsafe limit for the produced active (real) power of the // Controllable System. This limit becomes activated in "init" state or "failsafe state". // // return values: // - value: the power limit in W // - changeable: boolean if the client service can change the limit FailsafeProductionActivePowerLimit() (value float64, isChangeable bool, resultErr error) // set Failsafe limit for the produced active (real) power of the // Controllable System. This limit becomes activated in "init" state or "failsafe state". // // parameters: // - value: the power limit in W // - changeable: boolean if the client service can change the limit SetFailsafeProductionActivePowerLimit(value float64, changeable bool) (resultErr error) // return minimum time the Controllable System remains in "failsafe state" unless conditions // specified in this Use Case permit leaving the "failsafe state" // // return values: // - value: the power limit in W // - changeable: boolean if the client service can change the limit FailsafeDurationMinimum() (duration time.Duration, isChangeable bool, resultErr error) // set minimum time the Controllable System remains in "failsafe state" unless conditions // specified in this Use Case permit leaving the "failsafe state" // // parameters: // - duration: has to be >= 2h and <= 24h // - changeable: boolean if the client service can change this value SetFailsafeDurationMinimum(duration time.Duration, changeable bool) (resultErr error) // this is automatically covered by the SPINE implementation // // returns true, if the last heartbeat is within 2 minutes, otherwise false IsHeartbeatWithinDuration() bool // return nominal maximum active (real) power the Controllable System is allowed to produce. // // If the local device type is an EnergyManagementSystem, the contractual production // nominal max is returned, otherwise the power production nominal max is returned. ProductionNominalMax() (float64, error) // set power nominal maximum active (real) power the Controllable System is allowed to produce. // // If the local device type is an EnergyManagementSystem, the contractual production // nominal max is set, otherwise the power production nominal max is set. // // parameters: // - value: nominal max power production in W SetProductionNominalMax(value float64) (resultErr error) }
Actor: Controllable System UseCase: Limitation of Power Production
type Demand ¶
type Demand struct { MinDemand float64 // minimum demand in Wh to reach the minSoC setting, 0 if not set OptDemand float64 // demand in Wh to reach the timer SoC setting MaxDemand float64 // the maximum possible demand until the battery is full DurationUntilStart float64 // the duration in s from now until charging will start, this could be in the future but usualy is now DurationUntilEnd float64 // the duration in s from now until minDemand or optDemand has to be reached, 0 if direct charge strategy is active }
Contains details about the actual demands from the EV
General:
- If duration and energy is 0, charge mode is EVChargeStrategyTypeNoDemand
- If duration is 0, charge mode is EVChargeStrategyTypeDirectCharging and the slots should cover at least 48h
- If both are != 0, charge mode is EVChargeStrategyTypeTimedCharging and the slots should cover at least the duration, but at max 168h (7d)
type DurationSlotValue ¶
type DurationSlotValue struct { Duration time.Duration // Duration of this slot Value float64 // Energy Cost or Power Limit }
Contains details about power limits or incentives for a defined timeframe
type EVChargeStateType ¶
type EVChargeStateType string
const ( EVChargeStateTypeUnknown EVChargeStateType = "Unknown" EVChargeStateTypeUnplugged EVChargeStateType = "unplugged" EVChargeStateTypeError EVChargeStateType = "error" EVChargeStateTypePaused EVChargeStateType = "paused" EVChargeStateTypeActive EVChargeStateType = "active" EVChargeStateTypeFinished EVChargeStateType = "finished" )
type EVChargeStrategyType ¶
type EVChargeStrategyType string
const ( EVChargeStrategyTypeUnknown EVChargeStrategyType = "unknown" EVChargeStrategyTypeNoDemand EVChargeStrategyType = "nodemand" EVChargeStrategyTypeDirectCharging EVChargeStrategyType = "directcharging" EVChargeStrategyTypeMinSoC EVChargeStrategyType = "minsoc" EVChargeStrategyTypeTimedCharging EVChargeStrategyType = "timedcharging" )
type EgLPCInterface ¶
type EgLPCInterface interface { api.UseCaseInterface // return the current consumption limit data // // parameters: // - entity: the entity of the e.g. EVSE // // return values: // - limit: load limit data // // possible errors: // - ErrDataNotAvailable if no such limit is (yet) available // - and others ConsumptionLimit(entity spineapi.EntityRemoteInterface) (limit LoadLimit, resultErr error) // send new LoadControlLimits // // parameters: // - entity: the entity of the e.g. EVSE // - limit: load limit data // - resultCB: callback function for handling the result response WriteConsumptionLimit( entity spineapi.EntityRemoteInterface, limit LoadLimit, resultCB func(result model.ResultDataType), ) (*model.MsgCounterType, error) // return Failsafe limit for the consumed active (real) power of the // Controllable System. This limit becomes activated in "init" state or "failsafe state". // // parameters: // - entity: the entity of the e.g. EVSE // // return values: // - positive values are used for consumption FailsafeConsumptionActivePowerLimit(entity spineapi.EntityRemoteInterface) (float64, error) // send new Failsafe Consumption Active Power Limit // // parameters: // - entity: the entity of the e.g. EVSE // - value: the new limit in W WriteFailsafeConsumptionActivePowerLimit(entity spineapi.EntityRemoteInterface, value float64) (*model.MsgCounterType, error) // return minimum time the Controllable System remains in "failsafe state" unless conditions // specified in this Use Case permit leaving the "failsafe state" // // parameters: // - entity: the entity of the e.g. EVSE // // return values: // - negative values are used for production FailsafeDurationMinimum(entity spineapi.EntityRemoteInterface) (time.Duration, error) // send new Failsafe Duration Minimum // // parameters: // - entity: the entity of the e.g. EVSE // - duration: the duration, between 2h and 24h WriteFailsafeDurationMinimum(entity spineapi.EntityRemoteInterface, duration time.Duration) (*model.MsgCounterType, error) // return nominal maximum active (real) power the Controllable System is // able to consume according to the contract (EMS), device label or data sheet. // // parameters: // - entity: the entity of the e.g. EVSE ConsumptionNominalMax(entity spineapi.EntityRemoteInterface) (float64, error) }
Actor: Energy Guard UseCase: Limitation of Power Consumption
type EgLPPInterface ¶
type EgLPPInterface interface { api.UseCaseInterface // return the current production limit data // // parameters: // - entity: the entity of the e.g. EVSE // // return values: // - limit: load limit data // // possible errors: // - ErrDataNotAvailable if no such limit is (yet) available // - and others ProductionLimit(entity spineapi.EntityRemoteInterface) (limit LoadLimit, resultErr error) // send new LoadControlLimits // // parameters: // - entity: the entity of the e.g. EVSE // - limit: load limit data // - resultCB: callback function for handling the result response WriteProductionLimit( entity spineapi.EntityRemoteInterface, limit LoadLimit, resultCB func(result model.ResultDataType), ) (*model.MsgCounterType, error) // return Failsafe limit for the produced active (real) power of the // Controllable System. This limit becomes activated in "init" state or "failsafe state". // // parameters: // - entity: the entity of the e.g. EVSE // // return values: // - positive values are used for production FailsafeProductionActivePowerLimit(entity spineapi.EntityRemoteInterface) (float64, error) // send new Failsafe Production Active Power Limit // // parameters: // - entity: the entity of the e.g. EVSE // - value: the new limit in W WriteFailsafeProductionActivePowerLimit(entity spineapi.EntityRemoteInterface, value float64) (*model.MsgCounterType, error) // return minimum time the Controllable System remains in "failsafe state" unless conditions // specified in this Use Case permit leaving the "failsafe state" // // parameters: // - entity: the entity of the e.g. EVSE // // return values: // - negative values are used for production FailsafeDurationMinimum(entity spineapi.EntityRemoteInterface) (time.Duration, error) // send new Failsafe Duration Minimum // // parameters: // - entity: the entity of the e.g. EVSE // - duration: the duration, between 2h and 24h WriteFailsafeDurationMinimum(entity spineapi.EntityRemoteInterface, duration time.Duration) (*model.MsgCounterType, error) // return nominal maximum active (real) power the Controllable System is // able to produce according to the contract (EMS), device label or data sheet. // // parameters: // - entity: the entity of the e.g. EVSE ProductionNominalMax(entity spineapi.EntityRemoteInterface) (float64, error) }
Actor: Energy Guard UseCase: Limitation of Power Production
type IdentificationItem ¶
type IdentificationItem struct { // the identification value Value string // the type of the identification value, e.g. ValueType model.IdentificationTypeType }
identification
type IncentiveDescription ¶
type IncentiveDescription struct { // the id of the incentive Id uint // the type of the incentive Type model.IncentiveTypeType // the currency of the incentive, if it is price based Currency model.CurrencyType }
details about incentive
type IncentiveSlotConstraints ¶
type IncentiveSlotConstraints struct { MinSlots uint // the minimum number of slots, no minimum if 0 MaxSlots uint // the maximum number of slots, unlimited if 0 }
Details about the incentive slot constraints
type IncentiveTableDescriptionTier ¶
type IncentiveTableDescriptionTier struct { // the id of the tier Id uint // the tiers type Type model.TierTypeType // each tear has 1 to 3 boundaries // used for different power limits, e.g. 0-1kW x€, 1-3kW y€, ... Boundaries []TierBoundaryDescription // each tier has 1 to 3 incentives // - price/costs (absolute or relative) // - renewable energy percentage // - CO2 emissions Incentives []IncentiveDescription }
Contains about one tier in a tariff
type IncentiveTariffDescription ¶
type IncentiveTariffDescription struct { // each tariff can have 1 to 3 tiers Tiers []IncentiveTableDescriptionTier }
Contains details about a tariff
type LoadLimit ¶
type LoadLimit struct { Duration time.Duration // the duration of the limit, IsChangeable bool // if the value can be changed via write, ignored when writing data IsActive bool // if the limit is active Value float64 // the limit }
Defines a limit data set
type LoadLimitsPhase ¶
type LoadLimitsPhase struct { Phase model.ElectricalConnectionPhaseNameType // the phase IsChangeable bool // if the value can be changed via write, ignored when writing data IsActive bool // if the limit is active Value float64 // the limit }
Defines a phase specific limit data set
type MaMGCPInterface ¶
type MaMGCPInterface interface { api.UseCaseInterface // return the current power limitation factor // // parameters: // - entity: the entity of the device (e.g. SMGW) // // possible errors: // - ErrDataNotAvailable if no such limit is (yet) available // - and others PowerLimitationFactor(entity spineapi.EntityRemoteInterface) (float64, error) // return the momentary power consumption or production at the grid connection point // // parameters: // - entity: the entity of the device (e.g. SMGW) // // return values: // - positive values are used for consumption // - negative values are used for production Power(entity spineapi.EntityRemoteInterface) (float64, error) // return the total feed in energy at the grid connection point // // parameters: // - entity: the entity of the device (e.g. SMGW) // // return values: // - negative values are used for production EnergyFeedIn(entity spineapi.EntityRemoteInterface) (float64, error) // return the total consumption energy at the grid connection point // // parameters: // - entity: the entity of the device (e.g. SMGW) // // return values: // - positive values are used for consumption EnergyConsumed(entity spineapi.EntityRemoteInterface) (float64, error) // return the momentary current consumption or production at the grid connection point // // parameters: // - entity: the entity of the device (e.g. SMGW) // // return values: // - positive values are used for consumption // - negative values are used for production CurrentPerPhase(entity spineapi.EntityRemoteInterface) ([]float64, error) // return the voltage phase details at the grid connection point // // parameters: // - entity: the entity of the device (e.g. SMGW) VoltagePerPhase(entity spineapi.EntityRemoteInterface) ([]float64, error) // return frequency at the grid connection point // // parameters: // - entity: the entity of the device (e.g. SMGW) Frequency(entity spineapi.EntityRemoteInterface) (float64, error) }
Actor: Monitoring Appliance UseCase: Monitoring of Grid Connection Point
type MaMPCInterface ¶
type MaMPCInterface interface { api.UseCaseInterface // return the momentary active power consumption or production // // parameters: // - entity: the entity of the device (e.g. EVSE) // // possible errors: // - ErrDataNotAvailable if no such limit is (yet) available // - and others Power(entity spineapi.EntityRemoteInterface) (float64, error) // return the momentary active phase specific power consumption or production per phase // // parameters: // - entity: the entity of the device (e.g. EVSE) // // possible errors: // - ErrDataNotAvailable if no such limit is (yet) available // - and others PowerPerPhase(entity spineapi.EntityRemoteInterface) ([]float64, error) // return the total consumption energy // // parameters: // - entity: the entity of the device (e.g. EVSE) // // - positive values are used for consumption EnergyConsumed(entity spineapi.EntityRemoteInterface) (float64, error) // return the total feed in energy // // parameters: // - entity: the entity of the device (e.g. EVSE) // // return values: // - negative values are used for production EnergyProduced(entity spineapi.EntityRemoteInterface) (float64, error) // return the momentary phase specific current consumption or production // // parameters: // - entity: the entity of the device (e.g. EVSE) // // return values // - positive values are used for consumption // - negative values are used for production CurrentPerPhase(entity spineapi.EntityRemoteInterface) ([]float64, error) // return the phase specific voltage details // // parameters: // - entity: the entity of the device (e.g. EVSE) VoltagePerPhase(entity spineapi.EntityRemoteInterface) ([]float64, error) // return frequency // // parameters: // - entity: the entity of the device (e.g. EVSE) Frequency(entity spineapi.EntityRemoteInterface) (float64, error) }
Actor: Monitoring Appliance UseCase: Monitoring of Power Consumption
type TierBoundaryDescription ¶
type TierBoundaryDescription struct { // the id of the boundary Id uint // the type of the boundary Type model.TierBoundaryTypeType // the unit of the boundary Unit model.UnitOfMeasurementType }
details about the boundary
type TimeSlotConstraints ¶
type TimeSlotConstraints struct { MinSlots uint // the minimum number of slots, no minimum if 0 MaxSlots uint // the maximum number of slots, unlimited if 0 MinSlotDuration time.Duration // the minimum duration of a slot, no minimum if 0 MaxSlotDuration time.Duration // the maximum duration of a slot, unlimited if 0 SlotDurationStepSize time.Duration // the duration has to be a multiple of this value if != 0 }
Details about the time slot constraints