From 0222b07f2cb94246a44d155b958ff61704c2f868 Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 28 Sep 2025 13:24:19 +0200 Subject: [PATCH] Revert "SHM: uppercase hex vendor id (#23616)" This reverts commit 2a35026f4f614f7ba061ee3fae4c816fdd624f76. --- hems/shm/shm.go | 16 +++++----------- tests/config-shm.spec.ts | 4 +++- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/hems/shm/shm.go b/hems/shm/shm.go index 158f19e58..3e7cdc984 100644 --- a/hems/shm/shm.go +++ b/hems/shm/shm.go @@ -26,7 +26,7 @@ const ( sempController = "Sunny Home Manager" sempBaseURLEnv = "SEMP_BASE_URL" sempGateway = "urn:schemas-simple-energy-management-protocol:device:Gateway:1" - sempDeviceId = "F-%s-%.12X-00" // 6 bytes + sempDeviceId = "F-%s-%.12x-00" // 6 bytes sempSerialNumber = "%s-%d" sempCharger = "EVCharger" basePath = "/semp" @@ -55,17 +55,11 @@ type Config struct { // NewFromConfig creates a new SEMP instance from configuration and starts it func NewFromConfig(cfg Config, site site.API, addr string, router *mux.Router) error { - vendorId := strings.ToUpper(cfg.VendorId) + vendorId := cfg.VendorId if vendorId == "" { vendorId = "28081973" - } else { - if _, err := hex.DecodeString(cfg.VendorId); err != nil { - return fmt.Errorf("vendor id: %w", err) - } - - if len(cfg.VendorId) != 8 { - return fmt.Errorf("invalid vendor id: %v. Must be 8 characters HEX string", vendorId) - } + } else if len(vendorId) != 8 { + return fmt.Errorf("invalid vendor id: %v. Must be 8 characters HEX string", vendorId) } uid, err := uuid.NewUUID() @@ -204,7 +198,7 @@ func (s *SEMP) gatewayDescription(w http.ResponseWriter, r *http.Request) { Device: Device{ DeviceType: sempGateway, FriendlyName: "evcc", - Manufacturer: "evcc.io", + Manufacturer: "github.com/evcc-io/evcc", ModelName: serverName, PresentationURL: s.hostURI, UDN: uid, diff --git a/tests/config-shm.spec.ts b/tests/config-shm.spec.ts index c70746ed1..2ff062678 100644 --- a/tests/config-shm.spec.ts +++ b/tests/config-shm.spec.ts @@ -71,7 +71,9 @@ test.describe("SHM", () => { modal.getByTestId("semp-url").click(), ]); const xml = await sempPage.content(); - expect(xml).toContain(`F-${VALID_VENDOR_ID}-${VALID_DEVICE_ID}-00`); + expect(xml).toContain( + `F-${VALID_VENDOR_ID}-${VALID_DEVICE_ID.toLowerCase()}-00` + ); await sempPage.close(); // uncheck allow control