improved satbility on session expiration
This commit is contained in:
+43
-34
@@ -2,76 +2,85 @@ import os.path
|
||||
import time
|
||||
import pprint
|
||||
|
||||
import credentials
|
||||
from wci import wci
|
||||
from credentials import user, password
|
||||
import json
|
||||
from folder_mgr.folder_mgr import get_date, date_has_changed, to_date_str, to_time_str, FolderMgr
|
||||
from folder_mgr.folder_mgr import get_date, date_has_changed, to_date_str, to_time_str, FolderMgr, create_timestamp
|
||||
|
||||
INTERVAL = 5*60
|
||||
|
||||
domains = [
|
||||
"access",
|
||||
"charging",
|
||||
"climatisation",
|
||||
"climatisationTimers",
|
||||
"fuelStatus",
|
||||
"userCapabilities",
|
||||
"vehicleLights",
|
||||
"vehicleHealthInspection",
|
||||
"oilLevel",
|
||||
"measurements"
|
||||
]
|
||||
|
||||
|
||||
# Values after training
|
||||
# Convert and write JSON object to file
|
||||
|
||||
|
||||
def main():
|
||||
w = wci.WeConnectId(user, password)
|
||||
|
||||
vehicles = w.get('/vehicles')
|
||||
expired_token_for_test = 'eyJraWQiOiI0ODEyODgzZi05Y2FiLTQwMWMtYTI5OC0wZmEyMTA5Y2ViY2EiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIxMDQyNmRjZC1mYzljLTRkODctODBmYy0yMDIyNzdmYzhkYzIiLCJhdWQiOiJhMjRmYmE2My0zNGIzLTRkNDMtYjE4MS05NDIxMTFlNmJkYThAYXBwc192dy1kaWxhYl9jb20iLCJzY3AiOiJvcGVuaWQgcHJvZmlsZSBiYWRnZSBjYXJzIGRlYWxlcnMgdmluIiwiYWF0IjoiaWRlbnRpdHlraXQiLCJpc3MiOiJodHRwczovL2lkZW50aXR5LnZ3Z3JvdXAuaW8iLCJqdHQiOiJhY2Nlc3NfdG9rZW4iLCJleHAiOjE3Mjg5ODQzMjAsImlhdCI6MTcyODk4MDcyMCwibGVlIjpbIlZPTEtTV0FHRU4iXSwianRpIjoiYWQ0MDhkMDEtYmQxMy00YWZkLWIyMWEtYmZiMTE5NTFhOGE3In0.r78z00BS0Je7mjUcukmrkuSiPO9F8me-bLs3ZZF6BokhPX8uqu_2j7I3Pu-8C1xwFBb-YDs6rr0iiVUeOeiKM4O-jOik8ny57sMKdYJ_FHZNo-GLMA_WPppNaGWkM8HojIxEW4mrO3Zqd9f_vDrTAYukG4WyULbxq_OH6c6yQdmEx4M1PGisVB0DI6DG0Dl4748BCJMA_TyNvKagQHZuRhT0ma7kj_GVSqlGGtW0erwPBwTHY_X_wDitngod2iUw9nRtli-HkJKqgER82jSu2k5b36ePglsRqx6k4ls8Tiz6ykgcjuuW4_zdsfUNuhBElVd1QwCzolQ4e7IzHbVaRZbub8tlisrHZMskGJmNJeAUv9xZMJ8o6YNyAz__WPvP6iubrCIixSKOThv-YLXa0cFkCPmoaLR9eeTy6sWFsFvslTdD-a0zrrdP8ais4g5Cxao6ph3NV1xCgkEldImI3n1hxeMLefe6sqfoZ6Ogz-EDVPBxS9qpazPWN6EQyyYLXQZA0s6p5hcrjVq7pD-5yXjeFhCrymzizaNm0JhVF_L36F3D5a3s8tnQ2kaMfdK6jdHQyauxL-8SHfAgk_py33XOcgGQkp4aOXN3pm7UhutQ8fAS9kMoquqikuxTAu-UlWAYRhDUaypab1F51f50eK84s1jpgWDAQ1aL7PIgwj8'
|
||||
w = wci.WeConnectId(user, password, expired_token_for_test)
|
||||
vehicles = w.get('/vehicles')['data']
|
||||
print('list of vehicles:')
|
||||
for key in vehicles:
|
||||
print(key)
|
||||
|
||||
vin = vehicles['data'][0]['vin']
|
||||
|
||||
pprint.pprint(vehicles)
|
||||
domains = [
|
||||
"access",
|
||||
"charging",
|
||||
"climatisation",
|
||||
"climatisationTimers",
|
||||
"fuelStatus",
|
||||
"userCapabilities",
|
||||
"vehicleLights",
|
||||
"vehicleHealthInspection",
|
||||
"oilLevel",
|
||||
"measurements"
|
||||
]
|
||||
|
||||
# Print vins
|
||||
for vehicle in vehicles:
|
||||
vin = vehicle['vin']
|
||||
print(f'vin: {vin}')
|
||||
|
||||
vin = credentials.vin
|
||||
|
||||
# Create request url
|
||||
endpoint = '/vehicles/' + vin + '/selectivestatus?jobs='
|
||||
for domain in domains:
|
||||
endpoint += domain + ','
|
||||
endpoint = endpoint[:-1]
|
||||
# endpoint = '/vehicles/' + vehicles['data'][0]['vin'] + f'/selectivestatus?jobs=access,charging,climatisation,climatisationTimers,fuelStatus,userCapabilities,vehicleLights,vehicleHealthInspection,oilLevel,measurements'
|
||||
print(f'Endpoint: {endpoint}')
|
||||
|
||||
data_list = []
|
||||
_date_last = {}
|
||||
# Init collecting records
|
||||
f_mgr = FolderMgr()
|
||||
record_id = 0
|
||||
record_list = []
|
||||
_date_last = {}
|
||||
|
||||
_date_start = get_date()
|
||||
# Collecting loop
|
||||
while True:
|
||||
start = time.time()
|
||||
_date = get_date()
|
||||
if date_has_changed(_date_last, _date):
|
||||
data_list = []
|
||||
record_id = 0
|
||||
record_list = []
|
||||
|
||||
try:
|
||||
timestamp = create_timestamp()
|
||||
data = w.get(endpoint)
|
||||
print(data)
|
||||
data_list.append(data)
|
||||
record_list.append({'info': {'record_id': record_id, 'timestamp': timestamp}, 'data': data})
|
||||
folder = f_mgr.update(f"results/{vin}", _date)
|
||||
filename = f"vehicle_{vin}_{to_date_str(_date_start)}_{to_time_str(_date_start)}.json"
|
||||
filename = f"vehicle_{vin}.json"
|
||||
_path = os.path.join(folder, filename)
|
||||
with open(_path, "w") as fp:
|
||||
json.dump(data_list, fp, indent=4)
|
||||
json.dump(record_list, fp, indent=4)
|
||||
|
||||
except Exception:
|
||||
pass
|
||||
except Exception as e:
|
||||
print(f"Exception: {e}")
|
||||
|
||||
stop = time.time()
|
||||
diff = stop - start
|
||||
diff = int(stop - start)
|
||||
time.sleep(max(0, INTERVAL - diff))
|
||||
_date_last = _date
|
||||
|
||||
record_id += 1
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
Reference in New Issue
Block a user