epsolar

package module
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 13, 2025 License: MIT Imports: 8 Imported by: 0

README

epever-solar

EPEVER solar charge controller driver.

Supports XTRA, TRIRON, TracerAN series controllers.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BatteryRatedVoltageLevel

type BatteryRatedVoltageLevel uint16
const (
	BatteryRatedVoltageLevelAutoRecognize BatteryRatedVoltageLevel = iota
	BatteryRatedVoltageLevel12V
	BatteryRatedVoltageLevel24V
	BatteryRatedVoltageLevel36V
	BatteryRatedVoltageLevel48V
	BatteryRatedVoltageLevel60V
	BatteryRatedVoltageLevel110V
	BatteryRatedVoltageLevel120V
	BatteryRatedVoltageLevel220V
	BatteryRatedVoltageLevel240V
)

func (BatteryRatedVoltageLevel) String

func (v BatteryRatedVoltageLevel) String() string

type BatteryStatus

type BatteryStatus uint16

func (BatteryStatus) Details

func (v BatteryStatus) Details() BatteryStatusDetails

type BatteryStatusDetails

type BatteryStatusDetails struct {
	Raw                                uint16
	VoltageStatus                      VoltageStatus
	TemperatureStatus                  TemperatureStatus
	BatteryInternalResistanceAbnormal  bool
	WrongIdentificationForRatedVoltage bool
}

type BatteryType

type BatteryType uint16
const (
	BatteryTypeUserDefined BatteryType = iota
	BatteryTypeSealed
	BatteryTypeGEL
	BatteryTypeFlooded
	BatteryTypeLiFePO4_4s
	BatteryTypeLiFePO4_8s
	BatteryTypeLiFePO4_15s
	BatteryTypeLiFePO4_16s
	BatteryTypeLiNiCoMnO2_3s
	BatteryTypeLiNiCoMnO2_6s
	BatteryTypeLiNiCoMnO2_7s
	BatteryTypeLiNiCoMnO2_13s
	BatteryTypeLiNiCoMnO2_14s
)

func (BatteryType) String

func (v BatteryType) String() string

type ChargingEquipmentStatus

type ChargingEquipmentStatus uint16

func (ChargingEquipmentStatus) Details

type ChargingEquipmentStatusDetails

type ChargingEquipmentStatusDetails struct {
	Raw                                uint16
	Running                            bool
	Fault                              bool
	ChargingStatus                     ChargingStatus
	PVInputIsShort                     bool
	LoadMOSFETIsShort                  bool
	LoadIsShort                        bool
	LoadIsOverCurrent                  bool
	InputIsOverCurrent                 bool
	AntiReverseMOSFETIsShort           bool
	ChargingOrAntiReverseMOSFETIsShort bool
	ChargingMOSFETIsShort              bool
	InputVoltageStatus                 InputVoltageStatus
}

type ChargingMode

type ChargingMode uint16
const (
	ChargingModeVoltageCompensation ChargingMode = iota
	ChargingModeSOC
)

func (ChargingMode) String

func (v ChargingMode) String() string

type ChargingStatus

type ChargingStatus uint8
const (
	ChargingStatusNoCharging ChargingStatus = iota
	ChargingStatusFloat
	ChargingStatusBoost
	ChargingStatusEqualization
)

func (ChargingStatus) MarshalJSON

func (v ChargingStatus) MarshalJSON() ([]byte, error)

func (ChargingStatus) String

func (v ChargingStatus) String() string

type Dev

type Dev struct {
	// contains filtered or unexported fields
}

func New

func New(mc *modbus.ModbusClient, unitId uint8, mutex *sync.Mutex) *Dev

func (*Dev) ReadParameters

func (dev *Dev) ReadParameters() (Parameters, error)

func (*Dev) ReadRatedData

func (dev *Dev) ReadRatedData() (RatedData, error)

func (*Dev) ReadRealTimeClock added in v0.7.0

func (dev *Dev) ReadRealTimeClock() (RTCData, error)

func (*Dev) ReadRealTimeData

func (dev *Dev) ReadRealTimeData() (RealTimeData, error)

func (*Dev) ReadRealTimeStatus

func (dev *Dev) ReadRealTimeStatus() (RealTimeStatus, error)

func (*Dev) ReadStatistics

func (dev *Dev) ReadStatistics() (Statistics, error)

func (*Dev) SetRealTimeClock added in v0.8.0

func (dev *Dev) SetRealTimeClock(r RTCData) error

type DischargingEquipmentInputVoltageStatus

type DischargingEquipmentInputVoltageStatus uint8
const (
	DischargingEquipmentInputVoltageStatusNormal DischargingEquipmentInputVoltageStatus = iota
	DischargingEquipmentInputVoltageStatusInputVoltageLow
	DischargingEquipmentInputVoltageStatusInputVoltageHigh
	DischargingEquipmentInputVoltageStatusNoAccess
)

func (DischargingEquipmentInputVoltageStatus) MarshalJSON

func (v DischargingEquipmentInputVoltageStatus) MarshalJSON() ([]byte, error)

func (DischargingEquipmentInputVoltageStatus) String

type DischargingEquipmentStatus

type DischargingEquipmentStatus uint16

func (DischargingEquipmentStatus) Details

type DischargingEquipmentStatusDetails

type DischargingEquipmentStatusDetails struct {
	Raw                           uint16
	Running                       bool
	Fault                         bool
	OutputOverVoltage             bool
	BoostOverVoltage              bool
	ShortCircuitInHighVoltageSide bool
	InputOverVoltage              bool
	OutputVoltageAbnormal         bool
	UnableToStopDischarging       bool
	UnableToDischarge             bool
	ShortCircuit                  bool
	OutputPowerStatus             OutputPowerStatus
	InputVoltageStatus            DischargingEquipmentInputVoltageStatus
}

type InputVoltageStatus

type InputVoltageStatus uint8
const (
	InputVoltageStatusNormal InputVoltageStatus = iota
	InputVoltageStatusNoInputPowerConnected
	InputVoltageStatusHigherInputVoltage
	InputVoltageStatusInputVoltageError
)

func (InputVoltageStatus) MarshalJSON

func (v InputVoltageStatus) MarshalJSON() ([]byte, error)

func (InputVoltageStatus) String

func (v InputVoltageStatus) String() string

type LiBatteryProtectionAndOverTemperatureDropPower

type LiBatteryProtectionAndOverTemperatureDropPower uint16

func (LiBatteryProtectionAndOverTemperatureDropPower) Details

type LiBatteryProtectionAndOverTemperatureDropPowerDetails

type LiBatteryProtectionAndOverTemperatureDropPowerDetails struct {
	Raw                                    uint16
	LowTemperatureProtectionForCharging    bool
	LowTemperatureProtectionForDischarging bool
	OverTemperatureDropPower               bool
}

type OutputPowerStatus

type OutputPowerStatus uint8
const (
	OutputPowerStatusLightLoad OutputPowerStatus = iota
	OutputPowerStatusModerateLoad
	OutputPowerStatusRatedLoad
	OutputPowerStatusOverload
)

func (OutputPowerStatus) MarshalJSON

func (v OutputPowerStatus) MarshalJSON() ([]byte, error)

func (OutputPowerStatus) String

func (v OutputPowerStatus) String() string

type Parameters

type Parameters struct {
	BatteryType                                    *BatteryType
	BatteryCapacity                                *float64 // AH
	TemperatureCompensationCoefficient             *float64 // mV / C / 2V
	OverVoltageDisconnectVoltage                   *float64 // V
	ChargingLimitVoltage                           *float64 // V
	OverVoltageReconnectVoltage                    *float64 // V
	EqualizeChargingVoltage                        *float64 // V
	BoostChargingVoltage                           *float64 // V
	FloatChargingVoltage                           *float64 // V
	BoostReconnectChargingVoltage                  *float64 // V
	LowVoltageReconnectVoltage                     *float64 // V
	UnderVoltageWarningRecoverVoltage              *float64 // V
	UnderVoltageWarningVoltage                     *float64 // V
	LowVoltageDisconnectVoltage                    *float64 // V
	DischargingLimitVoltage                        *float64 // V
	BatteryRatedVoltageLevel                       *BatteryRatedVoltageLevel
	DefaultLoadOnOffInManualMode                   *uint16
	EqualizeDuration                               *uint16  // minutes
	BoostDuration                                  *uint16  // minutes
	BatteryDischarge                               *float64 // %
	BatteryCharge                                  *float64 // %
	ChargingMode                                   *ChargingMode
	LiBatteryProtectionAndOverTemperatureDropPower *LiBatteryProtectionAndOverTemperatureDropPowerDetails
}

type PrometheusCollectorHelper

type PrometheusCollectorHelper struct {
	// contains filtered or unexported fields
}

func NewPrometheusCollectorHelper

func NewPrometheusCollectorHelper(variableLabels []string, constLabels prometheus.Labels) *PrometheusCollectorHelper

func (*PrometheusCollectorHelper) Collect

func (c *PrometheusCollectorHelper) Collect(dev *Dev, ch chan<- prometheus.Metric, labelValues ...string)

func (*PrometheusCollectorHelper) Describe

func (c *PrometheusCollectorHelper) Describe(ch chan<- *prometheus.Desc)

type RTCData added in v0.7.0

type RTCData struct {
	Year   uint8
	Month  uint8
	Day    uint8
	Hour   uint8
	Minute uint8
	Second uint8
}

type RatedData

type RatedData struct {
	ArrayRatedVoltage       *float64 // V
	ArrayRatedCurrent       *float64 // A
	ArrayRatedPower         *float64 // W
	BatteryRatedVoltage     *float64 // V
	BatteryRatedCurrent     *float64 // A
	BatteryRatedPower       *float64 // W
	LoadRatedVoltage        *float64 // V
	LoadRatedCurrent        *float64 // A
	LoadRatedPower          *float64 // W
	BatteryRealRatedVoltage *float64 // V
}

type RealTimeData

type RealTimeData struct {
	PVArrayInputVoltage *float64 // V
	PVArrayInputCurrent *float64 // A
	PVArrayInputPower   *float64 // W
	LoadVoltage         *float64 // V
	LoadCurrent         *float64 // A
	LoadPower           *float64 // W
	BatteryTemperature  *float64 // C
	DeviceTemperature   *float64 // C
	BatterySOC          *float64 // %
	BatteryVoltage      *float64 // V
	BatteryCurrent      *float64 // A
}

type RealTimeStatus

type RealTimeStatus struct {
	OverTemperatureInsideTheDevice *bool
	Night                          *bool
	BatteryStatus                  *BatteryStatusDetails
	ChargingEquipmentStatus        *ChargingEquipmentStatusDetails
	DischargingEquipmentStatus     *DischargingEquipmentStatusDetails
}

type Statistics

type Statistics struct {
	MaximumArrayVoltageToday   *float64 // V
	MinimumArrayVoltageToday   *float64 // V
	MaximumBatteryVoltageToday *float64 // V
	MinimumBatteryVoltageToday *float64 // V
	ConsumedEnergyToday        *float64 // kWh
	ConsumedEnergyThisMonth    *float64 // kWh
	ConsumedEnergyThisYear     *float64 // kWh
	TotalConsumedEnergy        *float64 // kWh
	GeneratedEnergyToday       *float64 // kWh
	GeneratedEnergyThisMonth   *float64 // kWh
	GeneratedEnergyThisYear    *float64 // kWh
	TotalGeneratedEnergy       *float64 // kWh
}

type TemperatureStatus

type TemperatureStatus uint8
const (
	TemperatureStatusNormal TemperatureStatus = iota
	TemperatureStatusOverTemp
	TemperatureStatusLowTemp
)

func (TemperatureStatus) MarshalJSON

func (v TemperatureStatus) MarshalJSON() ([]byte, error)

func (TemperatureStatus) String

func (v TemperatureStatus) String() string

type VoltageStatus

type VoltageStatus uint8
const (
	VoltageStatusNormal VoltageStatus = iota
	VoltageStatusOverVoltage
	VoltageStatusUnderVoltage
	VoltageStatusOverDischarge
	VoltageStatusFault
)

func (VoltageStatus) MarshalJSON

func (v VoltageStatus) MarshalJSON() ([]byte, error)

func (VoltageStatus) String

func (v VoltageStatus) String() string

Directories

Path Synopsis
tools
cli command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL