 		
 		scheduledChargingPending = try? container.decode(Bool.self, forKey: .scheduledChargingPending)
 		scheduledChargingStartTime = try? container.decode(TimeInterval.self, forKey: .scheduledChargingStartTime)
-		
+        scheduledDepartureTime = try? container.decode(TimeInterval.self, forKey: .scheduledDepartureTime)
+        offPeakChargingEnabled = try? container.decode(Bool.self, forKey: .offPeakChargingEnabled)
+        offPeakChargingTimes = try? container.decode(ScheduledChargingTimes.self, forKey: .offPeakChargingTimes)
+        offPeakHoursEndTime = try? container.decode(Int.self, forKey: .offPeakHoursEndTime)
+        preconditioningEnabled = try? container.decode(Bool.self, forKey: .preconditioningEnabled)
+        preconditioningTimes = try? container.decode(ScheduledChargingTimes.self, forKey: .preconditioningTimes)
 
 		timeToFullCharge = try? container.decode(Double.self, forKey: .timeToFullCharge)
 		timeStamp = try? container.decode(Double.self, forKey: .timeStamp)

	
	open var scheduledChargingPending: Bool?
	open var scheduledChargingStartTime: TimeInterval?
	
	/**
	Only valid while charging

		
		try container.encodeIfPresent(scheduledChargingPending, forKey: .scheduledChargingPending)
		try container.encodeIfPresent(scheduledChargingStartTime, forKey: .scheduledChargingStartTime)
        try container.encodeIfPresent(scheduledDepartureTime, forKey: .scheduledDepartureTime)
        try container.encodeIfPresent(offPeakChargingEnabled, forKey: .offPeakChargingEnabled)
        try container.encodeIfPresent(offPeakChargingTimes, forKey: .offPeakChargingTimes)
        try container.encodeIfPresent(offPeakHoursEndTime, forKey: .offPeakHoursEndTime)
        try container.encodeIfPresent(preconditioningEnabled, forKey: .preconditioningEnabled)
        try container.encodeIfPresent(preconditioningTimes, forKey: .preconditioningTimes)
		
		try container.encodeIfPresent(timeToFullCharge, forKey: .timeToFullCharge)
		try container.encodeIfPresent(timeStamp, forKey: .timeStamp)
