Revert "Config: prevent mixing yaml and db data (#19031)"
Some checks failed
Release / Demo (push) Has been cancelled
Release / call-build-workflow (push) Has been cancelled
Release / Publish Docker :release (push) Has been cancelled
Release / Github & APT (push) Has been cancelled
Release / Hassio Addon (push) Has been cancelled

This reverts commit 03890bcf79.
This commit is contained in:
andig 2025-02-22 21:40:11 +01:00
parent 50272e5d0d
commit d81a0a533b
3 changed files with 10 additions and 16 deletions

View file

@ -142,16 +142,15 @@ func isWritable(filePath string) bool {
return true
}
func configureCircuits(conf *[]config.Named) error {
func configureCircuits(conf []config.Named) error {
// migrate settings
if settings.Exists(keys.Circuits) {
conf = &[]config.Named{}
if err := settings.Yaml(keys.Circuits, new([]map[string]any), &conf); err != nil {
return err
}
}
children := slices.Clone(*conf)
children := slices.Clone(conf)
// TODO: check for circular references
NEXT:
@ -642,7 +641,6 @@ func configureGo(conf []globalconfig.Go) error {
func configureHEMS(conf *globalconfig.Hems, site *core.Site, httpd *server.HTTPd) error {
// migrate settings
if settings.Exists(keys.Hems) {
conf = new(globalconfig.Hems)
if err := settings.Yaml(keys.Hems, new(map[string]any), &conf); err != nil {
return err
}
@ -689,7 +687,6 @@ func configureMDNS(conf globalconfig.Network) error {
func configureEEBus(conf *eebus.Config) error {
// migrate settings
if settings.Exists(keys.EEBus) {
conf = new(eebus.Config)
if err := settings.Yaml(keys.EEBus, new(map[string]any), &conf); err != nil {
return err
}
@ -714,7 +711,6 @@ func configureEEBus(conf *eebus.Config) error {
func configureMessengers(conf *globalconfig.Messaging, vehicles push.Vehicles, valueChan chan<- util.Param, cache *util.ParamCache) (chan push.Event, error) {
// migrate settings
if settings.Exists(keys.Messaging) {
conf = new(globalconfig.Messaging)
if err := settings.Yaml(keys.Messaging, new(map[string]any), &conf); err != nil {
return nil, err
}
@ -801,10 +797,9 @@ func configureSolarTariff(conf []config.Typed, t *api.Tariff) error {
return nil
}
func configureTariffs(conf *globalconfig.Tariffs) (*tariff.Tariffs, error) {
func configureTariffs(conf globalconfig.Tariffs) (*tariff.Tariffs, error) {
// migrate settings
if settings.Exists(keys.Tariffs) {
conf = new(globalconfig.Tariffs)
if err := settings.Yaml(keys.Tariffs, new(map[string]any), &conf); err != nil {
return nil, err
}
@ -852,7 +847,7 @@ func configureDevices(conf globalconfig.All) error {
if err := configureVehicles(conf.Vehicles); err != nil {
return &ClassError{ClassVehicle, err}
}
if err := configureCircuits(&conf.Circuits); err != nil {
if err := configureCircuits(conf.Circuits); err != nil {
return &ClassError{ClassCircuit, err}
}
return nil
@ -861,8 +856,7 @@ func configureDevices(conf globalconfig.All) error {
func configureModbusProxy(conf *[]globalconfig.ModbusProxy) error {
// migrate settings
if settings.Exists(keys.ModbusProxy) {
conf = &[]globalconfig.ModbusProxy{}
if err := settings.Yaml(keys.ModbusProxy, new([]map[string]any), &conf); err != nil {
if err := settings.Yaml(keys.ModbusProxy, new([]map[string]any), conf); err != nil {
return err
}
}
@ -904,7 +898,7 @@ func configureSiteAndLoadpoints(conf *globalconfig.All) (*core.Site, error) {
return nil, &ClassError{ClassLoadpoint, err}
}
tariffs, err := configureTariffs(&conf.Tariffs)
tariffs, err := configureTariffs(conf.Tariffs)
if err != nil {
return nil, &ClassError{ClassTariff, err}
}

View file

@ -51,7 +51,7 @@ loadpoints:
suite.Require().NoError(viper.UnmarshalExact(&conf))
suite.Require().NoError(configureCircuits(&conf.Circuits))
suite.Require().NoError(configureCircuits(conf.Circuits))
suite.Require().Len(config.Circuits().Devices(), 2)
suite.Require().False(config.Circuits().Devices()[0].Instance().HasMeter())
@ -82,7 +82,7 @@ loadpoints:
suite.Require().NoError(viper.UnmarshalExact(&conf))
suite.Require().NoError(configureCircuits(&conf.Circuits))
suite.Require().NoError(configureCircuits(conf.Circuits))
suite.Require().Len(config.Circuits().Devices(), 2)
suite.Require().False(config.Circuits().Devices()[0].Instance().HasMeter())
@ -141,7 +141,7 @@ loadpoints:
suite.Require().NoError(viper.UnmarshalExact(&conf))
suite.Require().NoError(configureCircuits(&conf.Circuits))
suite.Require().NoError(configureCircuits(conf.Circuits))
suite.Require().Len(config.Circuits().Devices(), 1)
// mock charger

View file

@ -32,7 +32,7 @@ func runTariff(cmd *cobra.Command, args []string) {
fatal(err)
}
tariffs, err := configureTariffs(&conf.Tariffs)
tariffs, err := configureTariffs(conf.Tariffs)
if err != nil {
fatal(err)
}