mirror of
https://github.com/flobz/psa_car_controller.git
synced 2026-08-22 01:16:14 +00:00
fix openapi spec, get mileage from vehicle and record it in the db
This commit is contained in:
+8
-8
@@ -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)
|
||||
|
||||
@@ -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 = {}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user