More changes
All checks were successful
Golan Testing / testing (1.24.x, ubuntu-latest) (push) Successful in 27s
All checks were successful
Golan Testing / testing (1.24.x, ubuntu-latest) (push) Successful in 27s
This commit is contained in:
117
vehicle.go
117
vehicle.go
@ -88,6 +88,10 @@ type Vehicle struct {
|
||||
// ClimateProfile .
|
||||
type ClimateProfile struct {
|
||||
Name string `json:"name,omitempty"`
|
||||
VehicleType string `json:"vehicleType,omitempty"` // vehicleType [ gas | phev ]
|
||||
PresetType string `json:"presetType,omitempty"` // presetType [ subaruPreset | userPreset ]
|
||||
CanEdit bool `json:"canEdit,string,omitempty"` // canEdit [ false | true ]
|
||||
Disabled bool `json:"disabled,string,omitempty"` // disabled [ false | true ]
|
||||
RunTimeMinutes int `json:"runTimeMinutes,string"` // runTimeMinutes [ 5 | 10 ]
|
||||
ClimateZoneFrontTemp int `json:"climateZoneFrontTemp,string"` // climateZoneFrontTemp: [ for _ in range(60, 85 + 1)] // climateZoneFrontTempCelsius: [for _ in range(15, 30 + 1) ]
|
||||
ClimateZoneFrontAirMode string `json:"climateZoneFrontAirMode"` // climateZoneFrontAirMode: [ WINDOW | FEET_WINDOW | FACE | FEET | FEET_FACE_BALANCED | AUTO ]
|
||||
@ -98,20 +102,14 @@ type ClimateProfile struct {
|
||||
HeatedSeatFrontLeft string `json:"heatedSeatFrontLeft"` // heatedSeatFrontLeft: [ OFF | LOW_HEAT | MEDIUM_HEAT | HIGH_HEAT ]
|
||||
HeatedSeatFrontRight string `json:"heatedSeatFrontRight"` // heatedSeatFrontRight: [ OFF | LOW_HEAT | MEDIUM_HEAT | HIGH_HEAT ]
|
||||
StartConfiguration string `json:"startConfiguration"` // startConfiguration [ START_ENGINE_ALLOW_KEY_IN_IGNITION (gas) | START_CLIMATE_CONTROL_ONLY_ALLOW_KEY_IN_IGNITION (phev) ]
|
||||
CanEdit bool `json:"canEdit,string,omitempty"` // canEdit [ false | true ]
|
||||
Disabled bool `json:"disabled,string,omitempty"` // disabled [ false | true ]
|
||||
VehicleType string `json:"vehicleType,omitempty"` // vehicleType [ gas | phev ]
|
||||
PresetType string `json:"presetType,omitempty"` // presetType [ subaruPreset | userPreset ]
|
||||
}
|
||||
|
||||
// func (cp *ClimateProfile) New() {}
|
||||
|
||||
// GeoLocation .
|
||||
type GeoLocation struct {
|
||||
Latitude float64 // 40.700184
|
||||
Longitude float64 // -74.401375
|
||||
Speed float64 // 0.00
|
||||
Heading int // 189
|
||||
Speed float64 // 0.00
|
||||
Updated time.Time
|
||||
}
|
||||
|
||||
@ -268,6 +266,7 @@ func (v *Vehicle) Unlock() {
|
||||
func (v *Vehicle) EngineStart() {
|
||||
if v.getRemoteOptionsStatus() {
|
||||
v.selectVehicle()
|
||||
// TODO: Get Quick Climate Preset from the Currect Car
|
||||
params := map[string]string{
|
||||
"delay": "0",
|
||||
"vin": v.Vin,
|
||||
@ -579,15 +578,9 @@ func (v *Vehicle) GetVehicleStatus() {
|
||||
resp := v.client.execute(reqURL, GET, map[string]string{}, "", false)
|
||||
// v.client.logger.Debug("http request output", "request", "GetVehicleStatus", "body", resp)
|
||||
|
||||
var r Response
|
||||
err := json.Unmarshal(resp, &r)
|
||||
if err != nil {
|
||||
v.client.logger.Error("error while parsing json", "request", "GetClimatePresets", "error", err.Error())
|
||||
}
|
||||
|
||||
if r.Success {
|
||||
if r, ok := v.client.parseResponse(resp); ok {
|
||||
var vs VehicleStatus
|
||||
err = json.Unmarshal(r.Data, &vs)
|
||||
err := json.Unmarshal(r.Data, &vs)
|
||||
if err != nil {
|
||||
v.client.logger.Error("error while parsing json", "request", "GetClimatePresets", "error", err.Error())
|
||||
}
|
||||
@ -614,6 +607,15 @@ func (v *Vehicle) GetVehicleStatus() {
|
||||
typeOfS := val.Type()
|
||||
|
||||
for i := 0; i < val.NumField(); i++ {
|
||||
if val.Field(i).Interface() == "NOT_EQUIPPED" ||
|
||||
val.Field(i).Interface() == "UNKNOWN" ||
|
||||
val.Field(i).Interface() == "None" ||
|
||||
val.Field(i).Interface() == "16383" ||
|
||||
val.Field(i).Interface() == "65535" ||
|
||||
val.Field(i).Interface() == "-64" ||
|
||||
val.Field(i).Interface() == nil {
|
||||
continue
|
||||
}
|
||||
fmt.Printf("Field: %s, Value: %v, Type: %v\n", typeOfS.Field(i).Name, val.Field(i).Interface(), val.Field(i).Type())
|
||||
}
|
||||
// v := reflect.ValueOf(vSta)
|
||||
@ -733,52 +735,6 @@ func (v *Vehicle) GetVehicleStatus() {
|
||||
// fmt.Printf("PARTS: %+v\n", parts)
|
||||
v.Updated = time.Now()
|
||||
}
|
||||
|
||||
// vData := VehicleData{}
|
||||
// vdString := respParsed.Path("data").String()
|
||||
// json.Unmarshal([]byte(vdString), &vData)
|
||||
|
||||
// { "data": {
|
||||
// "vhsId": 1038682433,
|
||||
|
||||
// "odometerValue": 24999,
|
||||
// "odometerValueKilometers": 40223,
|
||||
|
||||
// "eventDate": 1642538410000,
|
||||
// "eventDateStr": "2022-01-18T20:40+0000",
|
||||
|
||||
// "latitude": 40.70018,
|
||||
// "longitude": -74.40139,
|
||||
// "positionHeadingDegree": "155",
|
||||
|
||||
// "tirePressureFrontLeft": "2275",
|
||||
// "tirePressureFrontRight": "2206",
|
||||
// "tirePressureRearLeft": "2344",
|
||||
// "tirePressureRearRight": "2275",
|
||||
|
||||
// "tirePressureFrontLeftPsi": "33",
|
||||
// "tirePressureFrontRightPsi": "32",
|
||||
// "tirePressureRearLeftPsi": "34",
|
||||
// "tirePressureRearRightPsi": "33",
|
||||
|
||||
// "distanceToEmptyFuelMiles": 149.75,
|
||||
// "distanceToEmptyFuelKilometers": 241,
|
||||
|
||||
// "avgFuelConsumptionMpg": 18.5,
|
||||
// "avgFuelConsumptionLitersPer100Kilometers": 12.7,
|
||||
|
||||
// "evStateOfChargePercent": null,
|
||||
// "evDistanceToEmptyMiles": null,
|
||||
// "evDistanceToEmptyKilometers": null,
|
||||
// "evDistanceToEmptyByStateMiles": null,
|
||||
// "evDistanceToEmptyByStateKilometers": null,
|
||||
|
||||
// "vehicleStateType": "IGNITION_OFF",
|
||||
|
||||
// "distanceToEmptyFuelMiles10s": 150,
|
||||
// "distanceToEmptyFuelKilometers10s": 240
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
// GetVehicleCondition .
|
||||
@ -788,15 +744,9 @@ func (v *Vehicle) GetVehicleCondition() {
|
||||
resp := v.client.execute(reqURL, GET, map[string]string{}, "", false)
|
||||
// v.client.logger.Debug("http request output", "request", "GetVehicleCondition", "body", resp)
|
||||
|
||||
var r Response
|
||||
err := json.Unmarshal(resp, &r)
|
||||
if err != nil {
|
||||
v.client.logger.Error("error while parsing json", "request", "GetClimatePresets", "error", err.Error())
|
||||
}
|
||||
|
||||
if r.Success {
|
||||
if r, ok := v.client.parseResponse(resp); ok {
|
||||
var sr ServiceRequest
|
||||
err = json.Unmarshal(r.Data, &sr)
|
||||
err := json.Unmarshal(r.Data, &sr)
|
||||
if err != nil {
|
||||
v.client.logger.Error("error while parsing json", "request", "GetClimatePresets", "error", err.Error())
|
||||
}
|
||||
@ -813,6 +763,15 @@ func (v *Vehicle) GetVehicleCondition() {
|
||||
typeOfS := val.Type()
|
||||
|
||||
for i := 0; i < val.NumField(); i++ {
|
||||
if val.Field(i).Interface() == "NOT_EQUIPPED" ||
|
||||
val.Field(i).Interface() == "UNKNOWN" ||
|
||||
val.Field(i).Interface() == "None" ||
|
||||
val.Field(i).Interface() == "16383" ||
|
||||
val.Field(i).Interface() == "65535" ||
|
||||
val.Field(i).Interface() == "-64" ||
|
||||
val.Field(i).Interface() == nil {
|
||||
continue
|
||||
}
|
||||
fmt.Printf("Field: %s, Value: %v, Type: %v\n", typeOfS.Field(i).Name, val.Field(i).Interface(), val.Field(i).Type())
|
||||
}
|
||||
|
||||
@ -952,36 +911,20 @@ func (v *Vehicle) GetVehicleHealth() {
|
||||
resp := v.client.execute(reqURL, GET, params, "", false)
|
||||
// v.client.logger.Debug("http request output", "request", "GetVehicleHealth", "body", resp)
|
||||
|
||||
var r Response
|
||||
err := json.Unmarshal(resp, &r)
|
||||
if err != nil {
|
||||
v.client.logger.Error("error while parsing json", "request", "GetVehicleHealth", "error", err.Error())
|
||||
}
|
||||
|
||||
if r.Success {
|
||||
if r, ok := v.client.parseResponse(resp); ok {
|
||||
var vh VehicleHealth
|
||||
err = json.Unmarshal(r.Data, &vh)
|
||||
err := json.Unmarshal(r.Data, &vh)
|
||||
if err != nil {
|
||||
v.client.logger.Error("error while parsing json", "request", "GetVehicleHealth", "error", err.Error())
|
||||
}
|
||||
v.client.logger.Debug("http request output", "request", "GetVehicleHealth", "vehicle health", vh)
|
||||
|
||||
// TODO: Loop over all the Vehicle Health Items
|
||||
|
||||
} else {
|
||||
v.client.logger.Error("active STARLINK Security Plus subscription required")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// // GetClimateSettings .
|
||||
// func (v *Vehicle) GetClimateSettings() {
|
||||
// v.selectVehicle()
|
||||
// reqURL := MOBILE_API_VERSION + apiURLs["API_G2_FETCH_CLIMATE_SETTINGS"]
|
||||
// v.client.execute(reqURL, GET, map[string]string{}, "", false)
|
||||
// // TODO
|
||||
// }
|
||||
|
||||
// GetFeaturesList .
|
||||
func (v *Vehicle) GetFeaturesList() {
|
||||
for i, f := range v.Features {
|
||||
|
Reference in New Issue
Block a user