diff --git a/templates/definition/meter/sma-homemanager.yaml b/templates/definition/meter/sma-homemanager.yaml index 76d89df1e..f31094b06 100644 --- a/templates/definition/meter/sma-homemanager.yaml +++ b/templates/definition/meter/sma-homemanager.yaml @@ -3,7 +3,6 @@ products: - brand: SMA description: generic: Sunny Home Manager 2.0 -capabilities: ["smahems"] requirements: evcc: ["skiptest"] params: diff --git a/util/templates/types.go b/util/templates/types.go index 97ee3383a..b15269865 100644 --- a/util/templates/types.go +++ b/util/templates/types.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "regexp" + "slices" "strings" "dario.cat/mergo" @@ -60,11 +61,10 @@ const ( CapabilityMilliAmps = "mA" // Granular current control support CapabilityRFID = "rfid" // RFID support Capability1p3p = "1p3p" // 1P/3P phase switching support - CapabilitySMAHems = "smahems" // SMA HEMS support CapabilityBatteryControl = "battery-control" // Battery control support ) -var ValidCapabilities = []string{CapabilityISO151182, CapabilityMilliAmps, CapabilityRFID, Capability1p3p, CapabilitySMAHems, CapabilityBatteryControl} +var ValidCapabilities = []string{CapabilityISO151182, CapabilityMilliAmps, CapabilityRFID, Capability1p3p, CapabilityBatteryControl} const ( RequirementEEBUS = "eebus" // EEBUS Setup is required @@ -75,9 +75,8 @@ const ( var ValidRequirements = []string{RequirementEEBUS, RequirementMQTT, RequirementSponsorship, RequirementSkipTest} -var predefinedTemplateProperties = append( - []string{"type", "template", "name"}, - append(ModbusParams, ModbusConnectionTypes...)..., +var predefinedTemplateProperties = slices.Concat( + []string{"type", "template", "name"}, ModbusParams, ModbusConnectionTypes, ) // TextLanguage contains language-specific texts @@ -139,9 +138,8 @@ func (t *TextLanguage) Update(new TextLanguage, always bool) { // MarshalJSON implements the json.Marshaler interface func (t TextLanguage) MarshalJSON() ([]byte, error) { mu.Lock() - s := t.String(encoderLanguage) - mu.Unlock() - return json.Marshal(s) + defer mu.Unlock() + return json.Marshal(t.String(encoderLanguage)) } func (r Requirements) MarshalJSON() ([]byte, error) {