Documentation
¶
Index ¶
- func NewBoschBpts5HybridFromConfig(other map[string]any) (api.Meter, error)
- func NewCCUFromConfig(other map[string]any) (api.Meter, error)
- func NewCfosPowerBrainFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewConfigurableFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewDanfossTLX(ctx context.Context, cfg comlynx.Config, maxACPower func() float64) (api.Meter, error)
- func NewDanfossTLXFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewDiscovergyFromConfig(other map[string]any) (api.Meter, error)
- func NewDsmr(ctx context.Context, uri string, timeout time.Duration) (api.Meter, error)
- func NewDsmrFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewE3dc(cfg rscp.ClientConfig, usage templates.Usage, dischargeLimit uint32, ...) (api.Meter, error)
- func NewE3dcFromConfig(other map[string]any) (api.Meter, error)
- func NewEEBus(ctx context.Context, ski, ip string, usage *templates.Usage) (api.Meter, error)
- func NewEEBusFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewEcoFlowFromConfig(other map[string]any) (api.Meter, error)
- func NewFritzDECTFromConfig(other map[string]any) (api.Meter, error)
- func NewFromConfig(ctx context.Context, typ string, other map[string]any) (api.Meter, error)
- func NewFromTemplateConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewGoodWeWiFi(uri, usage string, capacity func() float64, timeout time.Duration) (api.Meter, error)
- func NewGoodWeWifiFromConfig(other map[string]any) (api.Meter, error)
- func NewHomeAssistantFromConfig(other map[string]any) (api.Meter, error)
- func NewHomeWizardFromConfig(other map[string]any) (api.Meter, error)
- func NewHoymilesDTUModbusTcpFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewLgEss(uri, usage, registration, password string, cache time.Duration, ...) (api.Meter, error)
- func NewLgEss8FromConfig(other map[string]any) (api.Meter, error)
- func NewLgEss15FromConfig(other map[string]any) (api.Meter, error)
- func NewLgEssFromConfig(other map[string]any, essType lgpcs.Model) (api.Meter, error)
- func NewMbmdFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewMovingAverageFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewMyStromFromConfig(other map[string]any) (api.Meter, error)
- func NewOpenWBFromConfig(other map[string]any) (api.Meter, error)
- func NewPowerWall(uri, usage, user, password string, cache time.Duration, refreshToken string, ...) (api.Meter, error)
- func NewPowerWallFromConfig(other map[string]any) (api.Meter, error)
- func NewRCT(ctx context.Context, uri, usage string, batterySocLimits batterySocLimits, ...) (api.Meter, error)
- func NewRCTFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewSMAFromConfig(other map[string]any) (api.Meter, error)
- func NewShellyFromConfig(other map[string]any) (api.Meter, error)
- func NewTPLinkFromConfig(other map[string]any) (api.Meter, error)
- func NewTapoFromConfig(other map[string]any) (api.Meter, error)
- func NewTasmota(uri, user, password, usage string, channels []int, cache time.Duration) (api.Meter, error)
- func NewTasmotaFromConfig(other map[string]any) (api.Meter, error)
- func NewTibberFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
- func NewTqEm420FromConfig(other map[string]any) (api.Meter, error)
- func NewTqEmFromConfig(other map[string]any) (api.Meter, error)
- func NewZendureFromConfig(other map[string]any) (api.Meter, error)
- func Types() []string
- type BoschBpts5Hybrid
- type CCU
- type CfosPowerBrain
- type DanfossTLX
- type Discovergy
- type Dsmr
- type E3dc
- type EEBus
- func (c *EEBus) Connect(connected bool)
- func (c *EEBus) CurrentPower() (float64, error)
- func (c *EEBus) Currents() (float64, float64, float64, error)
- func (c *EEBus) Curtailed() (bool, error)
- func (c *EEBus) Dim(dim bool) error
- func (c *EEBus) Dimmed() (bool, error)
- func (c *EEBus) SetCurtailPercent(percent int) error
- func (c *EEBus) TotalEnergy() (float64, error)
- func (c *EEBus) UseCaseEvent(_ spineapi.DeviceRemoteInterface, entity spineapi.EntityRemoteInterface, ...)
- func (c *EEBus) Voltages() (float64, float64, float64, error)
- type EcoFlow
- type HomeWizard
- func (c *HomeWizard) CurrentPower() (float64, error)
- func (c *HomeWizard) Currents() (float64, float64, float64, error)
- func (c *HomeWizard) Powers() (float64, float64, float64, error)
- func (c *HomeWizard) TotalEnergy() (float64, error)
- func (c *HomeWizard) Voltages() (float64, float64, float64, error)
- type LgEss
- type Mbmd
- type Meter
- type MovingAverage
- type PowerWall
- type RCT
- type SMA
- type Shelly
- type Tasmota
- type Tibber
- type TqEM420
- type TqEm
- type TqEm420Data
- type Zendure
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewBoschBpts5HybridFromConfig ¶
NewBoschBpts5HybridFromConfig creates a Bosch BPT-S 5 Hybrid Meter from generic config
func NewCCUFromConfig ¶
NewCCUFromConfig creates a Homematic meter from generic config
func NewCfosPowerBrainFromConfig ¶
NewCfosPowerBrainFromConfig creates a cFos meter from generic config
func NewConfigurableFromConfig ¶
NewConfigurableFromConfig creates a new meter from config
func NewDanfossTLX ¶
func NewDanfossTLXFromConfig ¶
func NewDiscovergyFromConfig ¶
NewDiscovergyFromConfig creates a new configurable meter
func NewDsmr ¶
NewDsmr creates a DSMR meter. The transport is selected from the uri scheme: ws:// or wss:// uses a WebSocket, anything else a raw TCP socket (host:port).
func NewDsmrFromConfig ¶
NewDsmrFromConfig creates a DSMR meter from generic config
func NewEEBus ¶
NewEEBus creates an EEBus meter Uses MGCP only when usage="grid", otherwise uses MPC (default)
func NewEEBusFromConfig ¶
NewEEBusFromConfig creates an EEBus meter from generic config
func NewEcoFlowFromConfig ¶
NewEcoFlowFromConfig creates an EcoFlow meter from generic config
func NewFritzDECTFromConfig ¶
NewFritzDECTFromConfig creates a fritzdect meter from generic config
func NewFromConfig ¶
NewFromConfig creates meter from configuration
func NewFromTemplateConfig ¶
func NewGoodWeWiFi ¶
func NewGoodWeWifiFromConfig ¶
func NewHomeAssistantFromConfig ¶
NewHomeAssistantFromConfig creates a HomeAssistant meter from generic config
func NewHomeWizardFromConfig ¶
NewHomeWizardFromConfig creates a HomeWizard meter from generic config
func NewHoymilesDTUModbusTcpFromConfig ¶
func NewHoymilesDTUModbusTcpFromConfig(ctx context.Context, other map[string]any) (api.Meter, error)
NewHoymilesDTUModbusTcpFromConfig creates a Hoymiles DTU meter from generic config
func NewLgEss ¶
func NewLgEss(uri, usage, registration, password string, cache time.Duration, batteryCapacity batteryCapacity, batterySocLimits batterySocLimits, batteryPowerLimits batteryPowerLimits, essType lgpcs.Model) (api.Meter, error)
NewLgEss creates an LgEss Meter
func NewLgEssFromConfig ¶
NewLgEssFromConfig creates an LgEss Meter from generic config
func NewMbmdFromConfig ¶
NewMbmdFromConfig creates api.Meter from config
func NewMovingAverageFromConfig ¶
NewMovingAverageFromConfig creates api.Meter from config
func NewMyStromFromConfig ¶
NewMyStromFromConfig creates a myStrom meter from generic config
func NewOpenWBFromConfig ¶
NewOpenWBFromConfig creates a new configurable meter
func NewPowerWall ¶
func NewPowerWall(uri, usage, user, password string, cache time.Duration, refreshToken string, siteId int64, batterySocLimits batterySocLimits, batteryPowerLimits batteryPowerLimits) (api.Meter, error)
NewPowerWall creates a Tesla PowerWall Meter
func NewPowerWallFromConfig ¶
NewPowerWallFromConfig creates a PowerWall Powerwall Meter from generic config
func NewRCT ¶
func NewRCT(ctx context.Context, uri, usage string, batterySocLimits batterySocLimits, batteryPowerLimits batteryPowerLimits, cache time.Duration, externalPower bool, capacity, capacity2 float64, maxACPower func() float64) (api.Meter, error)
NewRCT creates an RCT meter
func NewRCTFromConfig ¶
NewRCTFromConfig creates an RCT from generic config
func NewSMAFromConfig ¶
NewSMAFromConfig creates an SMA meter from generic config
func NewShellyFromConfig ¶
NewShellyFromConfig creates a Shelly charger from generic config
func NewTPLinkFromConfig ¶
NewTPLinkFromConfig creates a tapo meter from generic config
func NewTapoFromConfig ¶
NewTapoFromConfig creates a tapo meter from generic config
func NewTasmota ¶
func NewTasmota(uri, user, password, usage string, channels []int, cache time.Duration) (api.Meter, error)
NewTasmota creates Tasmota meter
func NewTasmotaFromConfig ¶
NewTasmotaFromConfig creates a Tasmota meter from generic config
func NewTibberFromConfig ¶
func NewTqEm420FromConfig ¶
NewTqEm420FromConfig creates a new configurable meter
func NewTqEmFromConfig ¶
NewTqEmFromConfig creates a new configurable meter
func NewZendureFromConfig ¶
NewZendureFromConfig creates a Zendure meter from generic config
Types ¶
type BoschBpts5Hybrid ¶
func NewBoschBpts5Hybrid ¶
func NewBoschBpts5Hybrid(uri, usage string, cache time.Duration, capacity func() float64, batterySocLimits, batteryPowerLimits func() (float64, float64)) (*BoschBpts5Hybrid, error)
NewBoschBpts5Hybrid creates a Bosch BPT-S 5 Hybrid Meter
func (*BoschBpts5Hybrid) CurrentPower ¶
func (m *BoschBpts5Hybrid) CurrentPower() (float64, error)
CurrentPower implements the api.Meter interface
type CCU ¶
type CCU struct {
// contains filtered or unexported fields
}
Homematic CCU meter implementation
func NewCCU ¶
func NewCCU(uri, deviceid, meterid, switchid, user, password, usage string, cache time.Duration) (*CCU, error)
NewCCU creates a new connection with usage for meter
func (*CCU) CurrentPower ¶
CurrentPower implements the api.Meter interface
func (*CCU) TotalEnergy ¶
TotalEnergy implements the api.MeterEnergy interface
type CfosPowerBrain ¶
type CfosPowerBrain struct {
// contains filtered or unexported fields
}
CfosPowerBrain is a meter implementation for cFos PowerBrain wallboxes. It uses Modbus TCP to communicate at modbus client id 1 and power meters at id 2 and 3. https://www.cfos-emobility.de/en-gb/cfos-power-brain/modbus-registers.htm
func NewCfosPowerBrain ¶
NewCfosPowerBrain creates a cFos meter
func (*CfosPowerBrain) CurrentPower ¶
func (wb *CfosPowerBrain) CurrentPower() (float64, error)
CurrentPower implements the api.Meter interface
func (*CfosPowerBrain) TotalEnergy ¶
func (wb *CfosPowerBrain) TotalEnergy() (float64, error)
TotalEnergy implements the api.MeterEnergy interface
type DanfossTLX ¶
DanfossTLX is a PV meter for Danfoss TripleLynx TLX inverters via ComLynx RS485.
func (*DanfossTLX) CurrentPower ¶
func (m *DanfossTLX) CurrentPower() (float64, error)
type Discovergy ¶
type Discovergy struct {
// contains filtered or unexported fields
}
func (*Discovergy) CurrentPower ¶
func (m *Discovergy) CurrentPower() (float64, error)
func (*Discovergy) TotalEnergy ¶
func (m *Discovergy) TotalEnergy() (float64, error)
type Dsmr ¶
Dsmr is a DSMR P1 meter. The raw P1 byte stream is provided by a pluggable transport: a raw TCP socket for classic P1-to-LAN gateways, or a WebSocket.
func (*Dsmr) CurrentPower ¶
CurrentPower implements the api.Meter interface
type E3dc ¶
func (*E3dc) CurrentPower ¶
type EEBus ¶
type EEBus struct {
// contains filtered or unexported fields
}
EEBus is an EEBus meter implementation supporting MGCP, MPC, LPC and LPP use cases Uses MGCP (Monitoring of Grid Connection Point) only when usage="grid" Uses MPC (Monitoring & Power Consumption) for all other cases (default) Additionally supports LPC (Limitation of Power Consumption) and LPP (Limitation of Power Production)
func (*EEBus) Connect ¶
Connect implements the eebus.Device interface. On SHIP/SPINE disconnect we drop cached remote-entity references so a subsequent re-pair re-populates them from fresh UseCaseSupportUpdate events. Without this, Power/Currents/Voltages would keep serving the last value of an orphaned entity (see https://github.com/evcc-io/evcc/issues/28518).
func (*EEBus) CurrentPower ¶
func (*EEBus) SetCurtailPercent ¶
SetCurtailPercent implements the api.Curtailer interface
func (*EEBus) TotalEnergy ¶
func (*EEBus) UseCaseEvent ¶
func (c *EEBus) UseCaseEvent(_ spineapi.DeviceRemoteInterface, entity spineapi.EntityRemoteInterface, event eebusapi.EventType)
UseCaseEvent implements the eebus.Device interface
type EcoFlow ¶
EcoFlow represents the EcoFlow meter
func NewEcoFlow ¶
func NewEcoFlow(accessKey, secretKey, serial, usage, uri string, power, soc string, cache time.Duration, capacity func() float64, batterySocLimits, batteryPowerLimits func() (float64, float64)) (*EcoFlow, error)
NewEcoFlow constructs the EcoFlow struct
func (*EcoFlow) CurrentPower ¶
CurrentPower implements the api.Meter interface
type HomeWizard ¶
type HomeWizard struct {
// contains filtered or unexported fields
}
HomeWizard meter implementation
func NewHomeWizard ¶
NewHomeWizard creates HomeWizard meter
func (*HomeWizard) CurrentPower ¶
func (c *HomeWizard) CurrentPower() (float64, error)
CurrentPower implements the api.Meter interface
func (*HomeWizard) Currents ¶
func (c *HomeWizard) Currents() (float64, float64, float64, error)
Currents implements the api.PhaseCurrents interface
func (*HomeWizard) Powers ¶
func (c *HomeWizard) Powers() (float64, float64, float64, error)
Powers implements the api.PhasePowers interface
func (*HomeWizard) TotalEnergy ¶
func (c *HomeWizard) TotalEnergy() (float64, error)
TotalEnergy implements the api.MeterEnergy interface
type LgEss ¶
LgEss implements the api.Meter interface
func (*LgEss) CurrentPower ¶
CurrentPower implements the api.Meter interface
type Mbmd ¶
type Mbmd struct {
// contains filtered or unexported fields
}
Mbmd is an api.Meter implementation with configurable getters and setters.
type Meter ¶
Meter is an api.Meter implementation with configurable getters and setters.
func NewConfigurable ¶
NewConfigurable creates a new meter
func (*Meter) CurrentPower ¶
CurrentPower implements the api.Meter interface
type MovingAverage ¶
type MovingAverage struct {
// contains filtered or unexported fields
}
func (*MovingAverage) CurrentPower ¶
func (m *MovingAverage) CurrentPower() (float64, error)
type PowerWall ¶
PowerWall is the tesla powerwall meter
func (*PowerWall) CurrentPower ¶
CurrentPower implements the api.Meter interface
type RCT ¶
RCT implements the api.Meter interface
func (*RCT) CurrentPower ¶
CurrentPower implements the api.Meter interface
type SMA ¶
SMA supporting SMA Home Manager 2.0, SMA Energy Meter 30 and SMA inverter
func NewSMA ¶
func NewSMA(uri, password, iface string, serial uint32, scale float64, usage string, dc bool, capacity func() float64, batterySocLimits, batteryPowerLimits func() (float64, float64)) (*SMA, error)
NewSMA creates an SMA meter
func (*SMA) CurrentPower ¶
CurrentPower implements the api.Meter interface
func (*SMA) TotalEnergy ¶
TotalEnergy implements the api.MeterEnergy interface
type Shelly ¶
Shelly meter considering usage
func NewShelly ¶
func NewShelly(uri, user, password, usage string, channel int, cache time.Duration) (*Shelly, error)
NewShelly creates Shelly meter
func (*Shelly) CurrentPower ¶
CurrentPower implements the api.Meter interface
type Tasmota ¶
Tasmota meter implementation
func (*Tasmota) CurrentPower ¶
CurrentPower implements the api.Meter interface
func (*Tasmota) TotalEnergy ¶
TotalEnergy implements the api.MeterEnergy interface
type Tibber ¶
type Tibber struct {
// contains filtered or unexported fields
}
func (*Tibber) CurrentPower ¶
type TqEM420 ¶
type TqEM420 struct {
// contains filtered or unexported fields
}
func (*TqEM420) CurrentPower ¶
func (*TqEM420) TotalEnergy ¶
type TqEm420Data ¶
type TqEm420Data struct {
SmartMeter struct {
ConfigurationID string `json:"configuration_id"`
Status string `json:"status"`
Timestamp struct {
Seconds float64 `json:"seconds"`
Nanos float64 `json:"nanos"`
} `json:"timestamp"`
Values struct {
ActiveEnergyP float64 `json:"active_energy_+"`
ActiveEnergyL1P float64 `json:"active_energy_+_L1"`
ActiveEnergyL2P float64 `json:"active_energy_+_L2"`
ActiveEnergyL3P float64 `json:"active_energy_+_L3"`
ActiveEnergyM float64 `json:"active_energy_-"`
ActiveEnergyL1M float64 `json:"active_energy_-_L1"`
ActiveEnergyL2M float64 `json:"active_energy_-_L2"`
ActiveEnergyL3M float64 `json:"active_energy_-_L3"`
ActivePowerP float64 `json:"active_power_+"`
ActivePowerL1P float64 `json:"active_power_+_L1"`
ActivePowerL2P float64 `json:"active_power_+_L2"`
ActivePowerL3P float64 `json:"active_power_+_L3"`
ActivePowerM float64 `json:"active_power_-"`
ActivePowerL1M float64 `json:"active_power_-_L1"`
ActivePowerL2M float64 `json:"active_power_-_L2"`
ActivePowerL3M float64 `json:"active_power_-_L3"`
ApparentEnergyP float64 `json:"apparent_energy_+"`
ApparentEnergyL1P float64 `json:"apparent_energy_+_L1"`
ApparentEnergyL2P float64 `json:"apparent_energy_+_L2"`
ApparentEnergyL3P float64 `json:"apparent_energy_+_L3"`
ApparentEnergyM float64 `json:"apparent_energy_-"`
ApparentEnergyL1M float64 `json:"apparent_energy_-_L1"`
ApparentEnergyL2M float64 `json:"apparent_energy_-_L2"`
ApparentEnergyL3M float64 `json:"apparent_energy_-_L3"`
ApparentPowerP float64 `json:"apparent_power_+"`
ApparentPowerL1P float64 `json:"apparent_power_+_L1"`
ApparentPowerL2P float64 `json:"apparent_power_+_L2"`
ApparentPowerL3P float64 `json:"apparent_power_+_L3"`
ApparentPowerM float64 `json:"apparent_power_-"`
ApparentPowerL1M float64 `json:"apparent_power_-_L1"`
ApparentPowerL2M float64 `json:"apparent_power_-_L2"`
ApparentPowerL3M float64 `json:"apparent_power_-_L3"`
CurrentL1 float64 `json:"current_L1"`
CurrentL2 float64 `json:"current_L2"`
CurrentL3 float64 `json:"current_L3"`
PowerFactor float64 `json:"power_factor"`
PowerFactorL1 float64 `json:"power_factor_L1"`
PowerFactorL2 float64 `json:"power_factor_L2"`
PowerFactorL3 float64 `json:"power_factor_L3"`
ReactiveEnergyP float64 `json:"reactive_energy_+"`
ReactiveEnergyL1P float64 `json:"reactive_energy_+_L1"`
ReactiveEnergyL2P float64 `json:"reactive_energy_+_L2"`
ReactiveEnergyL3P float64 `json:"reactive_energy_+_L3"`
ReactiveEnergyM float64 `json:"reactive_energy_-"`
ReactiveEnergyL1M float64 `json:"reactive_energy_-_L1"`
ReactiveEnergyL2M float64 `json:"reactive_energy_-_L2"`
ReactiveEnergyL3M float64 `json:"reactive_energy_-_L3"`
ReactivePowerP float64 `json:"reactive_power_+"`
ReactivePowerL1P float64 `json:"reactive_power_+_L1"`
ReactivePowerL2P float64 `json:"reactive_power_+_L2"`
ReactivePowerL3P float64 `json:"reactive_power_+_L3"`
ReactivePowerM float64 `json:"reactive_power_-"`
ReactivePowerL1M float64 `json:"reactive_power_-_L1"`
ReactivePowerL2M float64 `json:"reactive_power_-_L2"`
ReactivePowerL3M float64 `json:"reactive_power_-_L3"`
SupplyFrequency float64 `json:"supply_frequency"`
VoltageL1 float64 `json:"voltage_L1"`
VoltageL2 float64 `json:"voltage_L2"`
VoltageL3 float64 `json:"voltage_L3"`
} `json:"values"`
} `json:"smart-meter"`
}
Source Files
¶
- bosch_bpts5_hybrid.go
- cfos.go
- config.go
- danfoss.go
- discovergy.go
- dsmr.go
- dsmr_ws.go
- e3dc.go
- ecoflow.go
- eebus.go
- eebus_events.go
- fritzdect.go
- goodwe-wifi.go
- homeassistant.go
- homematic.go
- homewizard.go
- hoymiles-dtu-mbtcp.go
- lgess.go
- mbmd.go
- mbmd_operation.go
- meter.go
- meter_average.go
- mystrom.go
- openwb.go
- powerwall.go
- rct.go
- shelly.go
- sma.go
- tapo.go
- tasmota.go
- template.go
- tibber-pulse.go
- tplink.go
- tq-em.go
- tq-em420.go
- usage_battery.go
- usage_pv.go
- zendure.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package lgpcs implements access to the LG pcs device (aka inverter).
|
Package lgpcs implements access to the LG pcs device (aka inverter). |