From 9fb7a6805bb7ac3339e5d6cd7b151f49353da7e1 Mon Sep 17 00:00:00 2001 From: Alex Savin Date: Fri, 30 May 2025 11:56:03 -0400 Subject: [PATCH] More changes --- vehicle.go | 71 ++++++++++++++++++++++-------------------------------- 1 file changed, 29 insertions(+), 42 deletions(-) diff --git a/vehicle.go b/vehicle.go index f78ecbf..603b3c5 100644 --- a/vehicle.go +++ b/vehicle.go @@ -504,49 +504,36 @@ func (v *Vehicle) GetClimatePresets() { v.client.logger.Error("error while parsing json", "request", "GetClimatePresets", "error", err.Error()) } v.client.logger.Debug("subaru climate presets parsed http output", "body", cProfiles) - // respParsed, err := gabs.ParseJSON([]byte(resp)) - // if err != nil { - // v.client.logger.Error("error while parsing json", "request", "GetClimatePresets", "error", err.Error()) - // } - // v.client.logger.Debug("subaru climate presets parsed http output", "body", respParsed) - // tmp1 := strings.ReplaceAll(string(resp), "\\\\"", "\"") - // v.client.logger.Debug("subaru climate presets after trimming #1", "body", tmp1) - // tmp2 := strings.ReplaceAll(tmp1, `}\",\"{`, `},{`) - // v.client.logger.Debug("subaru climate presets after trimming #2", "body", tmp2) - // tmp3 := strings.ReplaceAll(tmp2, `[\"{`, `[{`) - // v.client.logger.Debug("subaru climate presets after trimming #3", "body", tmp3) - // tmp4 := strings.ReplaceAll(tmp3, ` }\"]`, `}]`) - // v.client.logger.Debug("subaru climate presets after trimming #4", "body", tmp4) - // tmp5 := strings.ReplaceAll(tmp4, `\"`, `"`) - - // v.client.logger.Debug("subaru climate presets before trimming", "body", respParsed) - - // // ONLY FOR THAT REQUEST BECAUSE OF API SENDS BACK ESCAPING DATA IN DATA FIELD - // data, ok := respParsed.Path("data").Data().(string) - // if !ok { - // v.client.logger.Error("error while parsing data json", "request", "GetClimatePresets", "error", err.Error()) - // } - - // var cProfiles []ClimateProfile - // err = json.Unmarshal([]byte(data), &cProfiles) - // if err != nil { - // v.client.logger.Error("error while parsing climate subaru presets json", "request", "GetClimatePresets", "error", err.Error()) - // } - // v.client.logger.Debug("climate subaru presets", "data", data) - - // if len(cProfiles) > 0 { - // for _, cp := range cProfiles { - // if _, ok := v.ClimateProfiles[cp.PresetType+cp.Name]; ok { - // v.ClimateProfiles[cp.PresetType+cp.Name] = cp - // } else { - // v.ClimateProfiles[cp.PresetType+cp.Name] = cp - // } - // } - // } else { - // v.client.logger.Debug("didn't find any climate subaru presets") - // } - // v.Updated = time.Now() + if len(cProfiles) > 0 { + for _, cp := range cProfiles { + if v.isEV() && cp.VehicleType == "phev" { + if _, ok := v.ClimateProfiles[cp.PresetType+cp.Name]; ok { + v.ClimateProfiles[cp.PresetType+cp.Name] = cp + } else { + if _, ok := v.ClimateProfiles[cp.PresetType+cp.Name]; ok { + v.ClimateProfiles[cp.PresetType+cp.Name] = cp + } else { + v.ClimateProfiles[cp.PresetType+cp.Name] = cp + } + } + } + if !v.isEV() && cp.VehicleType == "gas" { + if _, ok := v.ClimateProfiles[cp.PresetType+cp.Name]; ok { + v.ClimateProfiles[cp.PresetType+cp.Name] = cp + } else { + if _, ok := v.ClimateProfiles[cp.PresetType+cp.Name]; ok { + v.ClimateProfiles[cp.PresetType+cp.Name] = cp + } else { + v.ClimateProfiles[cp.PresetType+cp.Name] = cp + } + } + } + } + } else { + v.client.logger.Debug("didn't find any climate quick presets") + } + v.Updated = time.Now() } else { v.client.logger.Error("active STARLINK Security Plus subscription required") }