diff --git a/MyPSACC.py b/MyPSACC.py index e0f24c2..cabdd98 100644 --- a/MyPSACC.py +++ b/MyPSACC.py @@ -174,10 +174,10 @@ class MyPSACC: self.manager.proxies = self._proxies def get_vehicle_info(self, vin): - res = self.api().get_vehicle_status(self.get_vehicle_id_with_vin(vin)) + res = self.api().get_vehicle_status(self.get_vehicle_id_with_vin(vin), extension=["odometer"]) # retry if res is None: - res = self.api().get_vehicle_status(self.get_vehicle_id_with_vin(vin)) + res = self.api().get_vehicle_status(self.get_vehicle_id_with_vin(vin), extension=["odometer"]) if self._record_enabled: self.record_position(vin, res) return res @@ -404,15 +404,15 @@ class MyPSACC: import sqlite3 conn = sqlite3.connect('info.db') conn.execute( - "CREATE TABLE IF NOT EXISTS position (Timestamp DATETIME PRIMARY KEY, VIN TEXT, longitude REAL, latitude REAL);") - + "CREATE TABLE IF NOT EXISTS position (Timestamp DATETIME PRIMARY KEY, VIN TEXT, longitude REAL, latitude REAL, mileage REAL, level INTEGER);") longitude = res.last_position.geometry.coordinates[0] latitude = res.last_position.geometry.coordinates[1] date = res.last_position.properties.updated_at - e = None + mileage = res.timed_odometer.mileage + level = res.energy[0]["level"] try: - conn.execute("INSERT INTO position(Timestamp,VIN,longitude,latitude) VALUES(?,?,?,?)", - (date, vin, longitude, latitude)) + conn.execute("INSERT INTO position(Timestamp,VIN,longitude,latitude,mileage,level) VALUES(?,?,?,?,?,?)", + (date, vin, longitude, latitude, mileage, level)) conn.commit() except sqlite3.IntegrityError: logger.debug("position already saved") @@ -430,7 +430,7 @@ class MyPSACC: for row in res: print(row) feature = Feature(geometry=Point((row["longitude"], row["latitude"])), - properties={"vin": row["vin"], "date": row["Timestamp"]}) + properties={"vin": row["vin"], "date": row["Timestamp"], "mileage": row["mileage"], "level": row["level"]}) features_list.append(feature) feature_collection = FeatureCollection(features_list) return geo_dumps(feature_collection, sort_keys=True) diff --git a/psa_connectedcar/models/status.py b/psa_connectedcar/models/status.py index 87698f9..1248720 100644 --- a/psa_connectedcar/models/status.py +++ b/psa_connectedcar/models/status.py @@ -43,7 +43,8 @@ class Status(object): 'preconditionning': 'Preconditioning', 'privacy': 'Privacy', 'safety': 'Safety', - 'service': 'ServiceType' + 'service': 'ServiceType', + 'timed_odometer': 'VehicleOdometer' } attribute_map = { @@ -59,10 +60,11 @@ class Status(object): 'preconditionning': 'preconditionning', 'privacy': 'privacy', 'safety': 'safety', - 'service': 'service' + 'service': 'service', + 'timed_odometer': 'timed.odometer' } - def __init__(self, embedded=None, links=None, battery=None, doors_state=None, energy=None, environment=None, ignition=None, kinetic=None, last_position=None, preconditionning=None, privacy=None, safety=None, service=None): # noqa: E501 + def __init__(self, embedded=None, links=None, battery=None, doors_state=None, energy=None, environment=None, ignition=None, kinetic=None, last_position=None, preconditionning=None, privacy=None, safety=None, service=None, timed_odometer=None): # noqa: E501 """Status - a model defined in Swagger""" # noqa: E501 self._embedded = None @@ -78,6 +80,7 @@ class Status(object): self._privacy = None self._safety = None self._service = None + self._timed_odometer = None self.discriminator = None if embedded is not None: @@ -105,6 +108,8 @@ class Status(object): self.safety = safety if service is not None: self.service = service + if timed_odometer is not None: + self.timed_odometer = timed_odometer @property def embedded(self): @@ -383,6 +388,27 @@ class Status(object): self._service = service + @property + def timed_odometer(self): + """Gets the timed_odometer of this Status. # noqa: E501 + + + :return: The timed_odometer of this Status. # noqa: E501 + :rtype: VehicleOdometer + """ + return self._timed_odometer + + @timed_odometer.setter + def timed_odometer(self, timed_odometer): + """Sets the timed_odometer of this Status. + + + :param timed_odometer: The timed_odometer of this Status. # noqa: E501 + :type: VehicleOdometer + """ + + self._timed_odometer = timed_odometer + def to_dict(self): """Returns the model properties as a dict""" result = {} diff --git a/psa_connectedcar/models/vehicle_odometer.py b/psa_connectedcar/models/vehicle_odometer.py index 4dac0db..6afbe06 100644 --- a/psa_connectedcar/models/vehicle_odometer.py +++ b/psa_connectedcar/models/vehicle_odometer.py @@ -31,22 +31,50 @@ class VehicleOdometer(object): and the value is json key in definition. """ swagger_types = { + 'updated_at': 'datetime', 'mileage': 'float' } attribute_map = { + 'updated_at': 'updatedAt', 'mileage': 'mileage' } - def __init__(self, mileage=None): # noqa: E501 + def __init__(self, updated_at=None, mileage=None): # noqa: E501 """VehicleOdometer - a model defined in Swagger""" # noqa: E501 + self._updated_at = None self._mileage = None self.discriminator = None + if updated_at is not None: + self.updated_at = updated_at if mileage is not None: self.mileage = mileage + @property + def updated_at(self): + """Gets the updated_at of this VehicleOdometer. # noqa: E501 + + Date when the resource has been updated. # noqa: E501 + + :return: The updated_at of this VehicleOdometer. # noqa: E501 + :rtype: datetime + """ + return self._updated_at + + @updated_at.setter + def updated_at(self, updated_at): + """Sets the updated_at of this VehicleOdometer. + + Date when the resource has been updated. # noqa: E501 + + :param updated_at: The updated_at of this VehicleOdometer. # noqa: E501 + :type: datetime + """ + + self._updated_at = updated_at + @property def mileage(self): """Gets the mileage of this VehicleOdometer. # noqa: E501