Documentation ¶
Index ¶
- func BuildMeasurements(power, energy *provider.Config) (func() (float64, error), func() (float64, error), error)
- func BuildPhaseMeasurements(currents, voltages, powers []provider.Config) (func() (float64, float64, float64, error), ...)
- func NewBoschBpts5Hybrid(uri, usage string, cache time.Duration) (api.Meter, error)
- func NewBoschBpts5HybridFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewCCUFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewCfosPowerBrainFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewConfigurableFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewDiscovergyFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewDsmr(uri, energy string, timeout time.Duration) (api.Meter, error)
- func NewDsmrFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewE3dc(cfg rscp.ClientConfig, usage templates.Usage, dischargeLimit uint32, ...) (api.Meter, error)
- func NewE3dcFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewFritzDECTFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewFromConfig(typ string, other map[string]interface{}) (api.Meter, error)
- func NewGoodWeWiFi(uri, usage string, timeout time.Duration) (api.Meter, error)
- func NewGoodWeWifiFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewHomeWizardFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewLgEss(uri, usage, registration, password string, cache time.Duration, ...) (api.Meter, error)
- func NewLgEssFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewMeterFromTemplateConfig(other map[string]interface{}) (api.Meter, error)
- func NewModbusMbmdFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewMovingAverageFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewMyStromFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewOpenWBFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewPowerWall(uri, usage, user, password string, cache time.Duration, refreshToken string, ...) (api.Meter, error)
- func NewPowerWallFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewRCT(uri, usage string, cache time.Duration, capacity func() float64) (api.Meter, error)
- func NewRCTFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewSMA(uri, password, iface string, serial uint32, scale float64, ...) (api.Meter, error)
- func NewSMAFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewShellyEnergyMeterFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewShellyFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewTPLinkFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewTapoFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewTasmota(uri, user, password, usage string, channels []int, cache time.Duration) (api.Meter, error)
- func NewTasmotaFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewTibberFromConfig(other map[string]interface{}) (api.Meter, error)
- func NewTqEm420FromConfig(other map[string]interface{}) (api.Meter, error)
- func NewTqEmFromConfig(other map[string]interface{}) (api.Meter, error)
- type BoschBpts5Hybrid
- type CCU
- type CfosPowerBrain
- type Discovergy
- type Dsmr
- type E3dc
- type HomeWizard
- type LgEss
- type Meter
- type ModbusMbmd
- type MovingAverage
- type PowerWall
- type RCT
- type SMA
- type Tasmota
- type Tibber
- type TqEM420
- type TqEm
- type TqEm420Data
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildMeasurements ¶
func BuildMeasurements(power, energy *provider.Config) (func() (float64, error), func() (float64, error), error)
BuildMeasurements returns typical meter measurement getters from config
func BuildPhaseMeasurements ¶
func BuildPhaseMeasurements(currents, voltages, powers []provider.Config) ( func() (float64, float64, float64, error), func() (float64, float64, float64, error), func() (float64, float64, float64, error), error, )
BuildPhaseMeasurements returns typical meter measurement getters from config
func NewBoschBpts5Hybrid ¶
NewBoschBpts5Hybrid creates a Bosch BPT-S 5 Hybrid Meter
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 api.Meter from config
func NewDiscovergyFromConfig ¶
NewDiscovergyFromConfig creates a new configurable meter
func NewDsmrFromConfig ¶
NewDsmrFromConfig creates a DSMR meter from generic config
func NewFritzDECTFromConfig ¶
NewFritzDECTFromConfig creates a fritzdect meter from generic config
func NewFromConfig ¶
NewFromConfig creates meter from configuration
func NewGoodWeWiFi ¶
func NewGoodWeWifiFromConfig ¶
func NewHomeWizardFromConfig ¶
NewHomeWizardFromConfig creates a HomeWizard meter from generic config
func NewLgEss ¶
func NewLgEss(uri, usage, registration, password string, cache time.Duration, capacity func() float64) (api.Meter, error)
NewLgEss creates an LgEss Meter
func NewLgEssFromConfig ¶
NewLgEssFromConfig creates an LgEss Meter from generic config
func NewModbusMbmdFromConfig ¶
NewModbusMbmdFromConfig 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, battery battery) (api.Meter, error)
NewPowerWall creates a Tesla PowerWall Meter
func NewPowerWallFromConfig ¶
NewPowerWallFromConfig creates a PowerWall Powerwall Meter from generic config
func NewRCTFromConfig ¶
NewRCTFromConfig creates an RCT from generic config
func NewSMA ¶
func NewSMA(uri, password, iface string, serial uint32, scale float64, capacity func() float64) (api.Meter, error)
NewSMA creates an SMA meter
func NewSMAFromConfig ¶
NewSMAFromConfig creates an SMA meter from generic config
func NewShellyEnergyMeterFromConfig ¶
NewShellyFromConfig creates a Shelly charger 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
Types ¶
type BoschBpts5Hybrid ¶
type BoschBpts5Hybrid struct {
// contains filtered or unexported fields
}
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 ¶
func NewCfosPowerBrain(uri string, id uint8) (*CfosPowerBrain, error)
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 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 ¶
type Dsmr struct {
// contains filtered or unexported fields
}
Dsmr meter implementation
func (*Dsmr) CurrentPower ¶
CurrentPower implements the api.Meter interface
type E3dc ¶
type E3dc struct {
// contains filtered or unexported fields
}
func (*E3dc) CurrentPower ¶
type HomeWizard ¶
type HomeWizard struct {
// contains filtered or unexported fields
}
HomeWizard meter implementation
func NewHomeWizard ¶
func NewHomeWizard(uri string, cache time.Duration) (*HomeWizard, error)
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) TotalEnergy ¶
func (c *HomeWizard) TotalEnergy() (float64, error)
TotalEnergy implements the api.MeterEnergy interface
type LgEss ¶
type LgEss struct {
// contains filtered or unexported fields
}
LgEss implements the api.Meter interface
func (*LgEss) CurrentPower ¶
CurrentPower implements the api.Meter interface
type Meter ¶
type Meter struct {
// contains filtered or unexported fields
}
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
func (*Meter) Decorate ¶
func (m *Meter) Decorate( totalEnergy func() (float64, error), currents func() (float64, float64, float64, error), voltages func() (float64, float64, float64, error), powers func() (float64, float64, float64, error), batterySoc func() (float64, error), capacity func() float64, setBatteryMode func(api.BatteryMode) error, ) api.Meter
Decorate attaches additional capabilities to the base meter
type ModbusMbmd ¶
type ModbusMbmd struct {
// contains filtered or unexported fields
}
ModbusMbmd is an api.Meter implementation with configurable getters and setters.
func (*ModbusMbmd) CurrentPower ¶
func (m *ModbusMbmd) CurrentPower() (float64, error)
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 ¶
type PowerWall struct {
// contains filtered or unexported fields
}
PowerWall is the tesla powerwall meter
func (*PowerWall) CurrentPower ¶
CurrentPower implements the api.Meter interface
type RCT ¶
type RCT struct {
// contains filtered or unexported fields
}
RCT implements the api.Meter interface
func (*RCT) CurrentPower ¶
CurrentPower implements the api.Meter interface
type SMA ¶
type SMA struct {
// contains filtered or unexported fields
}
SMA supporting SMA Home Manager 2.0, SMA Energy Meter 30 and SMA inverter
func (*SMA) CurrentPower ¶
CurrentPower implements the api.Meter interface
func (*SMA) TotalEnergy ¶
TotalEnergy implements the api.MeterEnergy interface
type Tasmota ¶
type Tasmota struct {
// contains filtered or unexported fields
}
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 TqEm ¶
type TqEm struct {
// contains filtered or unexported fields
}
func (*TqEm) CurrentPower ¶
func (*TqEm) 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 ¶
- battery.go
- bosch_bpts5_hybrid.go
- bosch_bpts5_hybrid_decorators.go
- capacity.go
- cfos.go
- config.go
- discovergy.go
- dsmr.go
- dsmr_decorators.go
- e3dc.go
- e3dc_decorators.go
- fritzdect.go
- goodwe-wifi.go
- goodwe-wifi_decorators.go
- helper.go
- homematic.go
- homewizard.go
- lgess.go
- lgess_decorators.go
- mbmd.go
- mbmd_decorators.go
- meter.go
- meter_average.go
- meter_decorators.go
- mystrom.go
- openwb.go
- powerwall.go
- powerwall_decorators.go
- rct.go
- rct_decorators.go
- shelly.go
- shelly_energymeter.go
- sma.go
- sma_decorators.go
- tapo.go
- tasmota.go
- tasmota_decorators.go
- template.go
- tibber-pulse.go
- tplink.go
- tq-em.go
- tq-em420.go
- tq-em_decorators.go