This commit is contained in:
2024-10-14 18:11:35 +02:00
parent 1957d735bc
commit 26f5647cb4
3 changed files with 110 additions and 12 deletions
+2
View File
@@ -160,3 +160,5 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
.idea/
results/
+47 -12
View File
@@ -1,9 +1,16 @@
import os.path
import time
import pprint
from we_connect import wci
from wci import wci
from credentials import user, password
from we_connect.domains import Domain
import json
from folder_mgr.folder_mgr import get_date, date_has_changed, FolderMgr
INTERVAL = 60
# Values after training
# Convert and write JSON object to file
def main():
@@ -14,30 +21,58 @@ def main():
for key in vehicles:
print(key)
pprint.pprint(vehicles)
domains = [Domain.ALL_CAPABLE]
endpoint = '/vehicles/' + vehicles['data'][0]['vin'] + '/selectivestatus?jobs='
count = len(domains)
for domain in domains:
endpoint += domain.value
count -= 1
if count > 0:
endpoint += ','
vin = vehicles['data'][0]['vin']
pprint.pprint(vehicles)
domains = [
"access",
"charging",
"climatisation",
"climatisationTimers",
"fuelStatus",
"userCapabilities",
"vehicleLights",
"vehicleHealthInspection",
"oilLevel",
"measurements"
]
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 = {}
f_mgr = FolderMgr()
while True:
start = time.time()
_date = get_date()
if date_has_changed(_date_last, _date):
data_list = []
try:
data = w.get(endpoint)
print(data)
data_list.append(data)
folder = f_mgr.update(f"results/{vin}", _date)
time_str = f"{_date['hour']}-{_date['min']}-{_date['sec']}"
date_str = f"{_date['year']}-{_date['month']}-{_date['day']}"
filename = f"vehicle_data_{date_str}_{time_str}.json"
_path = os.path.join(folder, filename)
with open(_path, "w") as fp:
json.dump(data_list, fp, indent=4)
except Exception:
pass
stop = time.time()
diff = stop - start
time.sleep(60-diff)
time.sleep(max(0, INTERVAL - diff))
_date_last = _date
if __name__ == '__main__':
+61
View File
@@ -0,0 +1,61 @@
import time
import os
def get_date() -> dict:
_result = {}
now = time.gmtime()
_result["year"] = now.tm_year
_result["month"] = now.tm_mon
_result["day"] = now.tm_mday
_result["hour"] = now.tm_hour
_result["min"] = now.tm_min
_result["sec"] = now.tm_sec
return _result
def date_has_changed(d1: dict, d2: dict, fields=['year', 'month', 'day']):
count = 0
try:
for field in fields:
if d1[field] != d2[field]:
count += 1
except KeyError:
return True
return count > 0
class FolderMgr:
def __init__(self):
pass
@staticmethod
def update(base_folder: str, _date: dict, fields=['year', 'month', 'day']) -> str:
appendix = ''
for field in fields:
appendix += f"{_date[field]}/"
folder = os.path.join(base_folder, appendix[:-1])
try:
os.makedirs(folder)
except FileExistsError:
pass
return folder
if __name__ == '__main__':
date = get_date()
print(date)
mgr = FolderMgr()
for i in range(0, 10):
folder = mgr.update("./", get_date(), fields=['year', 'month', 'day', 'hour', 'min', 'sec'])
print(folder)
time.sleep(1)