diff --git a/api/feature.go b/api/feature.go index b901a8d43..452a3b268 100644 --- a/api/feature.go +++ b/api/feature.go @@ -7,7 +7,8 @@ const ( _ Feature = iota CoarseCurrent // charger IntegratedDevice // charger - Heating // charger + Heating // charger - heating device + Continuous // charger - heating device where disabled means "normal operation" Average // tariff Cacheable // tariff Offline // vehicle diff --git a/api/feature_enumer.go b/api/feature_enumer.go index 130f4275d..cf271aa77 100644 --- a/api/feature_enumer.go +++ b/api/feature_enumer.go @@ -7,11 +7,11 @@ import ( "strings" ) -const _FeatureName = "CoarseCurrentIntegratedDeviceHeatingAverageCacheableOfflineRetryableStreamingWelcomeCharge" +const _FeatureName = "CoarseCurrentIntegratedDeviceHeatingContinuousAverageCacheableOfflineRetryableStreamingWelcomeCharge" -var _FeatureIndex = [...]uint8{0, 13, 29, 36, 43, 52, 59, 68, 77, 90} +var _FeatureIndex = [...]uint8{0, 13, 29, 36, 46, 53, 62, 69, 78, 87, 100} -const _FeatureLowerName = "coarsecurrentintegrateddeviceheatingaveragecacheableofflineretryablestreamingwelcomecharge" +const _FeatureLowerName = "coarsecurrentintegrateddeviceheatingcontinuousaveragecacheableofflineretryablestreamingwelcomecharge" func (i Feature) String() string { i -= 1 @@ -28,47 +28,51 @@ func _FeatureNoOp() { _ = x[CoarseCurrent-(1)] _ = x[IntegratedDevice-(2)] _ = x[Heating-(3)] - _ = x[Average-(4)] - _ = x[Cacheable-(5)] - _ = x[Offline-(6)] - _ = x[Retryable-(7)] - _ = x[Streaming-(8)] - _ = x[WelcomeCharge-(9)] + _ = x[Continuous-(4)] + _ = x[Average-(5)] + _ = x[Cacheable-(6)] + _ = x[Offline-(7)] + _ = x[Retryable-(8)] + _ = x[Streaming-(9)] + _ = x[WelcomeCharge-(10)] } -var _FeatureValues = []Feature{CoarseCurrent, IntegratedDevice, Heating, Average, Cacheable, Offline, Retryable, Streaming, WelcomeCharge} +var _FeatureValues = []Feature{CoarseCurrent, IntegratedDevice, Heating, Continuous, Average, Cacheable, Offline, Retryable, Streaming, WelcomeCharge} var _FeatureNameToValueMap = map[string]Feature{ - _FeatureName[0:13]: CoarseCurrent, - _FeatureLowerName[0:13]: CoarseCurrent, - _FeatureName[13:29]: IntegratedDevice, - _FeatureLowerName[13:29]: IntegratedDevice, - _FeatureName[29:36]: Heating, - _FeatureLowerName[29:36]: Heating, - _FeatureName[36:43]: Average, - _FeatureLowerName[36:43]: Average, - _FeatureName[43:52]: Cacheable, - _FeatureLowerName[43:52]: Cacheable, - _FeatureName[52:59]: Offline, - _FeatureLowerName[52:59]: Offline, - _FeatureName[59:68]: Retryable, - _FeatureLowerName[59:68]: Retryable, - _FeatureName[68:77]: Streaming, - _FeatureLowerName[68:77]: Streaming, - _FeatureName[77:90]: WelcomeCharge, - _FeatureLowerName[77:90]: WelcomeCharge, + _FeatureName[0:13]: CoarseCurrent, + _FeatureLowerName[0:13]: CoarseCurrent, + _FeatureName[13:29]: IntegratedDevice, + _FeatureLowerName[13:29]: IntegratedDevice, + _FeatureName[29:36]: Heating, + _FeatureLowerName[29:36]: Heating, + _FeatureName[36:46]: Continuous, + _FeatureLowerName[36:46]: Continuous, + _FeatureName[46:53]: Average, + _FeatureLowerName[46:53]: Average, + _FeatureName[53:62]: Cacheable, + _FeatureLowerName[53:62]: Cacheable, + _FeatureName[62:69]: Offline, + _FeatureLowerName[62:69]: Offline, + _FeatureName[69:78]: Retryable, + _FeatureLowerName[69:78]: Retryable, + _FeatureName[78:87]: Streaming, + _FeatureLowerName[78:87]: Streaming, + _FeatureName[87:100]: WelcomeCharge, + _FeatureLowerName[87:100]: WelcomeCharge, } var _FeatureNames = []string{ _FeatureName[0:13], _FeatureName[13:29], _FeatureName[29:36], - _FeatureName[36:43], - _FeatureName[43:52], - _FeatureName[52:59], - _FeatureName[59:68], - _FeatureName[68:77], - _FeatureName[77:90], + _FeatureName[36:46], + _FeatureName[46:53], + _FeatureName[53:62], + _FeatureName[62:69], + _FeatureName[69:78], + _FeatureName[78:87], + _FeatureName[87:100], } // FeatureString retrieves an enum value from the enum constants string name. diff --git a/charger/ego.go b/charger/ego.go index 6d6c8b0a7..ff3eaf62f 100644 --- a/charger/ego.go +++ b/charger/ego.go @@ -55,11 +55,11 @@ const ( ) func init() { - registry.AddCtx("ego-smartheater", newEgoFromConfig) + registry.AddCtx("ego-smartheater", NewEgoFromConfig) } -// newEgoFromConfig creates an Ego charger from generic config -func newEgoFromConfig(ctx context.Context, other map[string]any) (api.Charger, error) { +// NewEgoFromConfig creates an Ego charger from generic config +func NewEgoFromConfig(ctx context.Context, other map[string]any) (api.Charger, error) { cc := struct { embed `mapstructure:",squash"` modbus.TcpSettings `mapstructure:",squash"` diff --git a/charger/heatpump.go b/charger/heatpump.go index 70336216e..ed29ccd93 100644 --- a/charger/heatpump.go +++ b/charger/heatpump.go @@ -53,7 +53,7 @@ func NewHeatpumpFromConfig(ctx context.Context, other map[string]any) (api.Charg }{ embed: embed{ Icon_: "heatpump", - Features_: []api.Feature{api.Heating, api.IntegratedDevice}, + Features_: []api.Feature{api.Continuous, api.Heating, api.IntegratedDevice}, }, } diff --git a/charger/sgready-relay.go b/charger/sgready-relay.go index dbe430e9f..3850d6988 100644 --- a/charger/sgready-relay.go +++ b/charger/sgready-relay.go @@ -34,7 +34,7 @@ func NewSgReadyRelayFromConfig(ctx context.Context, other map[string]any) (api.C }{ embed: embed{ Icon_: "heatpump", - Features_: []api.Feature{api.Heating, api.IntegratedDevice}, + Features_: []api.Feature{api.Continuous, api.Heating, api.IntegratedDevice}, }, } diff --git a/charger/sgready.go b/charger/sgready.go index a30f4897a..d4de7fe15 100644 --- a/charger/sgready.go +++ b/charger/sgready.go @@ -65,7 +65,7 @@ func NewSgReadyFromConfig(ctx context.Context, other map[string]any) (api.Charge }{ embed: embed{ Icon_: "heatpump", - Features_: []api.Feature{api.Heating, api.IntegratedDevice}, + Features_: []api.Feature{api.Continuous, api.Heating, api.IntegratedDevice}, }, } diff --git a/charger/vaillant.go b/charger/vaillant.go index d4ba781d6..33dfa393f 100644 --- a/charger/vaillant.go +++ b/charger/vaillant.go @@ -58,7 +58,7 @@ func NewVaillantFromConfig(ctx context.Context, other map[string]any) (api.Charg }{ embed: embed{ Icon_: "heatpump", - Features_: []api.Feature{api.Heating, api.IntegratedDevice}, + Features_: []api.Feature{api.Continuous, api.Heating, api.IntegratedDevice}, }, Realm: sensonet.REALM_GERMANY, Cache: time.Minute,