Skip to content

Commit 9202992

Browse files
committed
Add volvo FinishTime api
1 parent f72215a commit 9202992

File tree

1 file changed

+18
-10
lines changed

1 file changed

+18
-10
lines changed

vehicle/volvo.go

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ type volvoStatus struct {
7070
OdometerTimestamp string `json:"odometerTimestamp"`
7171
PrivacyPolicyEnabled bool `json:"privacyPolicyEnabled"`
7272
PrivacyPolicyEnabledTimestamp string `json:"privacyPolicyEnabledTimestamp"`
73-
RemoteClimatizationStatus string `json:"remoteClimatizationStatus"`
73+
RemoteClimatizationStatus string `json:"remoteClimatizationStatus"` // CableConnectedWithoutPower
7474
RemoteClimatizationStatusTimestamp string `json:"remoteClimatizationStatusTimestamp"`
7575
ServiceWarningStatus string `json:"serviceWarningStatus"`
7676
ServiceWarningStatusTimestamp string `json:"serviceWarningStatusTimestamp"`
@@ -200,13 +200,21 @@ func (v *Volvo) VehicleRange() (int64, error) {
200200
return 0, err
201201
}
202202

203-
// // FinishTime implements the ChargeFinishTimer interface
204-
// func (v *Volvo) FinishTime() (time.Time, error) {
205-
// res, err := v.statusG()
206-
// if res, ok := res.(volvoStatus); err == nil && ok {
207-
// timestamp, err := time.Parse(time.RFC3339, res.HvBattery.TimeToHVBatteryFullyChargedTimestamp)
208-
// return timestamp.Add(time.Duration(res.HvBattery.DistanceToHVBatteryEmpty) * time.Minute), err
209-
// }
203+
// FinishTime implements the ChargeFinishTimer interface
204+
func (v *Volvo) FinishTime() (time.Time, error) {
205+
res, err := v.statusG()
206+
if res, ok := res.(volvoStatus); err == nil && ok {
207+
timestamp, err := time.Parse("2006-01-02T15:04:05-0700", res.HvBattery.TimeToHVBatteryFullyChargedTimestamp)
210208

211-
// return time.Time{}, err
212-
// }
209+
if err == nil {
210+
timestamp = timestamp.Add(time.Duration(res.HvBattery.DistanceToHVBatteryEmpty) * time.Minute)
211+
if timestamp.Before(time.Now()) {
212+
return time.Time{}, api.ErrNotAvailable
213+
}
214+
}
215+
216+
return timestamp, err
217+
}
218+
219+
return time.Time{}, err
220+
}

0 commit comments

Comments
 (0)