From ae463d6ba3ebbb0fb803b2df691c3475b0cd73c7 Mon Sep 17 00:00:00 2001 From: Alex Savin Date: Thu, 5 Jun 2025 15:18:51 -0400 Subject: [PATCH] Fixed tires and windows; Added doors --- workers/mysubaru.go | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/workers/mysubaru.go b/workers/mysubaru.go index ed10467..40e79bd 100644 --- a/workers/mysubaru.go +++ b/workers/mysubaru.go @@ -375,11 +375,24 @@ func (s *MySubaruClient) mySubaruStatusToMQTTMessage(v *mysubaru.Vehicle) []*bus state[`mysubarumq/`+v.Vin+`/state`] = `{` + tank + `"odometer_km":` + strconv.Itoa(v.Odometer.Kilometers) + `,"odometer_mi":` + strconv.Itoa(v.Odometer.Miles) + `,"dist_to_empty_km":` + strconv.Itoa(v.DistanceToEmpty.Kilometers) + `,"dist_to_empty_mi":` + strconv.Itoa(v.DistanceToEmpty.Miles) + `,"consumption_us":` + fmt.Sprintf("%.2f", v.FuelConsumptionAvg.MPG) + `,"consumption_eu":` + fmt.Sprintf("%.2f", v.FuelConsumptionAvg.LP100Km) + `,"engine_state":"` + v.EngineState + `"}` state[`mysubarumq/`+v.Vin+`/attr`] = `{"source_type":"gps","latitude":` + fmt.Sprintf("%.6f", v.GeoLocation.Latitude) + `,"longitude":` + fmt.Sprintf("%.6f", v.GeoLocation.Longitude) + `,"course":` + strconv.Itoa(v.GeoLocation.Heading) + `,"speed":` + fmt.Sprintf("%.2f", v.GeoLocation.Speed) + `,"friendly_name":"` + v.CarNickname + `"}` + doors := `{` + dq := len(v.Doors) + dc := 1 + for n, d := range v.Doors { + doors = doors + `"` + n + `":"` + d.Status + `"` + if dc != dq { + doors = doors + `,` + } + dc++ + } + doors = doors + `}` + state[`mysubarumq/`+v.Vin+`/doors/state`] = doors + windows := `{` wq := len(v.Windows) wc := 1 for n, w := range v.Windows { - windows = `"` + n + `":"` + w.Status + `"` + windows = windows + `"` + n + `":"` + w.Status + `"` if wc != wq { windows = windows + `,` } @@ -392,7 +405,7 @@ func (s *MySubaruClient) mySubaruStatusToMQTTMessage(v *mysubaru.Vehicle) []*bus tq := len(v.Tires) tc := 1 for n, t := range v.Tires { - tires = `"` + n + `":` + strconv.Itoa(t.Pressure) + tires = tires + `"` + n + `":` + strconv.Itoa(t.Pressure) if tc != tq { tires = tires + `,` }