Tariffs: add outdoor temperature type and OpenMeteo (#27780)
Co-authored-by: Michael Geers <michael@geers.tv>
This commit is contained in:
parent
68db0b7727
commit
d68e5e5809
34 changed files with 449 additions and 135 deletions
|
|
@ -166,33 +166,35 @@ func (c Messaging) IsConfigured() bool {
|
|||
}
|
||||
|
||||
type Tariffs struct {
|
||||
Currency string
|
||||
Grid config.Typed
|
||||
FeedIn config.Typed
|
||||
Co2 config.Typed
|
||||
Planner config.Typed
|
||||
Solar []config.Typed
|
||||
Currency string
|
||||
Grid config.Typed
|
||||
FeedIn config.Typed
|
||||
Co2 config.Typed
|
||||
Planner config.Typed
|
||||
Solar []config.Typed
|
||||
Temperature config.Typed
|
||||
}
|
||||
|
||||
func (c Tariffs) IsConfigured() bool {
|
||||
return c.Currency != "" || c.Grid.Type != "" || c.FeedIn.Type != "" || c.Co2.Type != "" || c.Planner.Type != "" || len(c.Solar) > 0
|
||||
return c.Currency != "" || c.Grid.Type != "" || c.FeedIn.Type != "" || c.Co2.Type != "" || c.Planner.Type != "" || len(c.Solar) > 0 || c.Temperature.Type != ""
|
||||
}
|
||||
|
||||
type TariffRefs struct {
|
||||
Grid string `json:"grid"`
|
||||
FeedIn string `json:"feedIn"`
|
||||
Co2 string `json:"co2"`
|
||||
Planner string `json:"planner"`
|
||||
Solar []string `json:"solar"`
|
||||
Grid string `json:"grid"`
|
||||
FeedIn string `json:"feedIn"`
|
||||
Co2 string `json:"co2"`
|
||||
Planner string `json:"planner"`
|
||||
Solar []string `json:"solar"`
|
||||
Temperature string `json:"temperature"`
|
||||
}
|
||||
|
||||
func (refs TariffRefs) IsConfigured() bool {
|
||||
return refs.Grid != "" || refs.FeedIn != "" || refs.Co2 != "" || refs.Planner != "" || len(refs.Solar) > 0
|
||||
return refs.Grid != "" || refs.FeedIn != "" || refs.Co2 != "" || refs.Planner != "" || len(refs.Solar) > 0 || refs.Temperature != ""
|
||||
}
|
||||
|
||||
func (refs TariffRefs) Used() iter.Seq[string] {
|
||||
return func(yield func(string) bool) {
|
||||
for _, ref := range append([]string{refs.Grid, refs.FeedIn, refs.Co2, refs.Planner}, refs.Solar...) {
|
||||
for _, ref := range append([]string{refs.Grid, refs.FeedIn, refs.Co2, refs.Planner, refs.Temperature}, refs.Solar...) {
|
||||
if ref != "" {
|
||||
if !yield(ref) {
|
||||
return
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ const (
|
|||
TariffTypePriceForecast
|
||||
TariffTypeCo2
|
||||
TariffTypeSolar
|
||||
TariffTypeTemperature // outdoor temperature forecast in °C
|
||||
)
|
||||
|
||||
type TariffUsage int
|
||||
|
|
@ -23,4 +24,5 @@ const (
|
|||
TariffUsageGrid
|
||||
TariffUsagePlanner
|
||||
TariffUsageSolar
|
||||
TariffUsageTemperature // outdoor temperature forecast
|
||||
)
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
const _TariffTypeName = "pricestaticpricedynamicpriceforecastco2solar"
|
||||
const _TariffTypeName = "pricestaticpricedynamicpriceforecastco2solartemperature"
|
||||
|
||||
var _TariffTypeIndex = [...]uint8{0, 11, 23, 36, 39, 44}
|
||||
var _TariffTypeIndex = [...]uint8{0, 11, 23, 36, 39, 44, 55}
|
||||
|
||||
const _TariffTypeLowerName = "pricestaticpricedynamicpriceforecastco2solar"
|
||||
const _TariffTypeLowerName = "pricestaticpricedynamicpriceforecastco2solartemperature"
|
||||
|
||||
func (i TariffType) String() string {
|
||||
i -= 1
|
||||
|
|
@ -30,9 +30,10 @@ func _TariffTypeNoOp() {
|
|||
_ = x[TariffTypePriceForecast-(3)]
|
||||
_ = x[TariffTypeCo2-(4)]
|
||||
_ = x[TariffTypeSolar-(5)]
|
||||
_ = x[TariffTypeTemperature-(6)]
|
||||
}
|
||||
|
||||
var _TariffTypeValues = []TariffType{TariffTypePriceStatic, TariffTypePriceDynamic, TariffTypePriceForecast, TariffTypeCo2, TariffTypeSolar}
|
||||
var _TariffTypeValues = []TariffType{TariffTypePriceStatic, TariffTypePriceDynamic, TariffTypePriceForecast, TariffTypeCo2, TariffTypeSolar, TariffTypeTemperature}
|
||||
|
||||
var _TariffTypeNameToValueMap = map[string]TariffType{
|
||||
_TariffTypeName[0:11]: TariffTypePriceStatic,
|
||||
|
|
@ -45,6 +46,8 @@ var _TariffTypeNameToValueMap = map[string]TariffType{
|
|||
_TariffTypeLowerName[36:39]: TariffTypeCo2,
|
||||
_TariffTypeName[39:44]: TariffTypeSolar,
|
||||
_TariffTypeLowerName[39:44]: TariffTypeSolar,
|
||||
_TariffTypeName[44:55]: TariffTypeTemperature,
|
||||
_TariffTypeLowerName[44:55]: TariffTypeTemperature,
|
||||
}
|
||||
|
||||
var _TariffTypeNames = []string{
|
||||
|
|
@ -53,6 +56,7 @@ var _TariffTypeNames = []string{
|
|||
_TariffTypeName[23:36],
|
||||
_TariffTypeName[36:39],
|
||||
_TariffTypeName[39:44],
|
||||
_TariffTypeName[44:55],
|
||||
}
|
||||
|
||||
// TariffTypeString retrieves an enum value from the enum constants string name.
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@ import (
|
|||
"strings"
|
||||
)
|
||||
|
||||
const _TariffUsageName = "co2feedingridplannersolar"
|
||||
const _TariffUsageName = "co2feedingridplannersolartemperature"
|
||||
|
||||
var _TariffUsageIndex = [...]uint8{0, 3, 9, 13, 20, 25}
|
||||
var _TariffUsageIndex = [...]uint8{0, 3, 9, 13, 20, 25, 36}
|
||||
|
||||
const _TariffUsageLowerName = "co2feedingridplannersolar"
|
||||
const _TariffUsageLowerName = "co2feedingridplannersolartemperature"
|
||||
|
||||
func (i TariffUsage) String() string {
|
||||
i -= 1
|
||||
|
|
@ -30,9 +30,10 @@ func _TariffUsageNoOp() {
|
|||
_ = x[TariffUsageGrid-(3)]
|
||||
_ = x[TariffUsagePlanner-(4)]
|
||||
_ = x[TariffUsageSolar-(5)]
|
||||
_ = x[TariffUsageTemperature-(6)]
|
||||
}
|
||||
|
||||
var _TariffUsageValues = []TariffUsage{TariffUsageCo2, TariffUsageFeedIn, TariffUsageGrid, TariffUsagePlanner, TariffUsageSolar}
|
||||
var _TariffUsageValues = []TariffUsage{TariffUsageCo2, TariffUsageFeedIn, TariffUsageGrid, TariffUsagePlanner, TariffUsageSolar, TariffUsageTemperature}
|
||||
|
||||
var _TariffUsageNameToValueMap = map[string]TariffUsage{
|
||||
_TariffUsageName[0:3]: TariffUsageCo2,
|
||||
|
|
@ -45,6 +46,8 @@ var _TariffUsageNameToValueMap = map[string]TariffUsage{
|
|||
_TariffUsageLowerName[13:20]: TariffUsagePlanner,
|
||||
_TariffUsageName[20:25]: TariffUsageSolar,
|
||||
_TariffUsageLowerName[20:25]: TariffUsageSolar,
|
||||
_TariffUsageName[25:36]: TariffUsageTemperature,
|
||||
_TariffUsageLowerName[25:36]: TariffUsageTemperature,
|
||||
}
|
||||
|
||||
var _TariffUsageNames = []string{
|
||||
|
|
@ -53,6 +56,7 @@ var _TariffUsageNames = []string{
|
|||
_TariffUsageName[9:13],
|
||||
_TariffUsageName[13:20],
|
||||
_TariffUsageName[20:25],
|
||||
_TariffUsageName[25:36],
|
||||
}
|
||||
|
||||
// TariffUsageString retrieves an enum value from the enum constants string name.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue