diff --git a/vehicle/vw/eudataact/eudataact_test.go b/vehicle/vw/eudataact/eudataact_test.go index 580364fcf..5d7b97ad2 100644 --- a/vehicle/vw/eudataact/eudataact_test.go +++ b/vehicle/vw/eudataact/eudataact_test.go @@ -218,6 +218,14 @@ func TestSocBatteryStateReportField(t *testing.T) { assert.Equal(t, 36.0, soc) } +func TestSocEnyaqField(t *testing.T) { + data := []point{{Key: KeyEnyaqSoc, Name: "currentSoc", Value: "60"}} + + soc, err := testProvider(data).Soc() + require.NoError(t, err) + assert.Equal(t, 60.0, soc) +} + func TestSocBatteryStateReportOnlyFallbackField(t *testing.T) { data := []point{ {Key: KeyBatteryStateReportSoc, Name: "battery_state_report.soc", Value: "36"}, diff --git a/vehicle/vw/eudataact/provider.go b/vehicle/vw/eudataact/provider.go index 4a700c3ac..3fc37735a 100644 --- a/vehicle/vw/eudataact/provider.go +++ b/vehicle/vw/eudataact/provider.go @@ -81,7 +81,7 @@ func (v *Provider) Soc() (float64, error) { return 0, err } - if p := lookup(data, FieldHvBatteryLevelValue, FieldSoc, FieldHvSoc, KeyBatteryStateReportSoc); p != nil { + if p := lookup(data, FieldHvBatteryLevelValue, FieldSoc, FieldHvSoc, KeyBatteryStateReportSoc, KeyEnyaqSoc); p != nil { return strconv.ParseFloat(p.Value, 64) } diff --git a/vehicle/vw/eudataact/types.go b/vehicle/vw/eudataact/types.go index 6d17e73a3..35752c29c 100644 --- a/vehicle/vw/eudataact/types.go +++ b/vehicle/vw/eudataact/types.go @@ -138,6 +138,7 @@ const ( FieldRangeSecondary = "cruising_range_secondary_engine" KeyRangeID3 = "0ca40e18-0564-3eda-bcc0-7aee9ef44f04" // VW ID.3 range KeyBatteryStateReportSoc = "506cb83e-f99f-3af3-bbeb-0429b69a78d9" // VW ID.3 soc + KeyEnyaqSoc = "0a18a053-b4b0-3db1-be44-a6c5dba629b1" // Skoda Enyaq soc // odo FieldOdometer = "mileage"