hyundai-kia-connect-api 3.34.1__py2.py3-none-any.whl → 3.34.3__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hyundai_kia_connect_api/ApiImpl.py +2 -2
- hyundai_kia_connect_api/ApiImplType1.py +68 -0
- hyundai_kia_connect_api/KiaUvoApiAU.py +0 -59
- hyundai_kia_connect_api/KiaUvoApiCA.py +7 -7
- hyundai_kia_connect_api/KiaUvoApiCN.py +8 -8
- hyundai_kia_connect_api/KiaUvoApiEU.py +0 -63
- hyundai_kia_connect_api/KiaUvoApiUSA.py +2 -2
- hyundai_kia_connect_api/VehicleManager.py +2 -2
- hyundai_kia_connect_api/const.py +1 -1
- {hyundai_kia_connect_api-3.34.1.dist-info → hyundai_kia_connect_api-3.34.3.dist-info}/METADATA +1 -1
- hyundai_kia_connect_api-3.34.3.dist-info/RECORD +23 -0
- hyundai_kia_connect_api-3.34.1.dist-info/RECORD +0 -23
- {hyundai_kia_connect_api-3.34.1.dist-info → hyundai_kia_connect_api-3.34.3.dist-info}/WHEEL +0 -0
- {hyundai_kia_connect_api-3.34.1.dist-info → hyundai_kia_connect_api-3.34.3.dist-info}/entry_points.txt +0 -0
- {hyundai_kia_connect_api-3.34.1.dist-info → hyundai_kia_connect_api-3.34.3.dist-info}/licenses/AUTHORS.rst +0 -0
- {hyundai_kia_connect_api-3.34.1.dist-info → hyundai_kia_connect_api-3.34.3.dist-info}/licenses/LICENSE +0 -0
- {hyundai_kia_connect_api-3.34.1.dist-info → hyundai_kia_connect_api-3.34.3.dist-info}/top_level.txt +0 -0
@@ -15,7 +15,7 @@ from .Vehicle import Vehicle
|
|
15
15
|
from .const import (
|
16
16
|
WINDOW_STATE,
|
17
17
|
CHARGE_PORT_ACTION,
|
18
|
-
|
18
|
+
ORDER_STATUS,
|
19
19
|
DOMAIN,
|
20
20
|
VALET_MODE_ACTION,
|
21
21
|
VEHICLE_LOCK_ACTION,
|
@@ -107,7 +107,7 @@ class ApiImpl:
|
|
107
107
|
action_id: str,
|
108
108
|
synchronous: bool = False,
|
109
109
|
timeout: int = 0,
|
110
|
-
) ->
|
110
|
+
) -> ORDER_STATUS:
|
111
111
|
pass
|
112
112
|
|
113
113
|
def force_refresh_vehicle_state(self, token: Token, vehicle: Vehicle) -> None:
|
@@ -5,6 +5,9 @@ import requests
|
|
5
5
|
import logging
|
6
6
|
from typing import Optional
|
7
7
|
|
8
|
+
from time import sleep
|
9
|
+
|
10
|
+
|
8
11
|
from .ApiImpl import (
|
9
12
|
ApiImpl,
|
10
13
|
)
|
@@ -23,6 +26,7 @@ from .const import (
|
|
23
26
|
SEAT_STATUS,
|
24
27
|
TEMPERATURE_UNITS,
|
25
28
|
VEHICLE_LOCK_ACTION,
|
29
|
+
ORDER_STATUS,
|
26
30
|
)
|
27
31
|
|
28
32
|
from .exceptions import (
|
@@ -452,6 +456,7 @@ class ApiImplType1(ApiImpl):
|
|
452
456
|
).json()
|
453
457
|
_LOGGER.debug(f"{DOMAIN} - Set Charging Current Response: {response}")
|
454
458
|
_check_response_for_errors(response)
|
459
|
+
token.device_id = self._get_device_id(self._get_stamp())
|
455
460
|
return response["msgId"]
|
456
461
|
|
457
462
|
def set_charge_limits(
|
@@ -480,6 +485,7 @@ class ApiImplType1(ApiImpl):
|
|
480
485
|
).json()
|
481
486
|
_LOGGER.debug(f"{DOMAIN} - Set Charge Limits Response: {response}")
|
482
487
|
_check_response_for_errors(response)
|
488
|
+
token.device_id = self._get_device_id(self._get_stamp())
|
483
489
|
return response["msgId"]
|
484
490
|
|
485
491
|
def set_vehicle_to_load_discharge_limit(
|
@@ -499,6 +505,8 @@ class ApiImplType1(ApiImpl):
|
|
499
505
|
).json()
|
500
506
|
_LOGGER.debug(f"{DOMAIN} - Set v2l limit Response: {response}")
|
501
507
|
_check_response_for_errors(response)
|
508
|
+
token.device_id = self._get_device_id(self._get_stamp())
|
509
|
+
return response["msgId"]
|
502
510
|
|
503
511
|
def lock_action(
|
504
512
|
self, token: Token, vehicle: Vehicle, action: VEHICLE_LOCK_ACTION
|
@@ -524,3 +532,63 @@ class ApiImplType1(ApiImpl):
|
|
524
532
|
_check_response_for_errors(response)
|
525
533
|
token.device_id = self._get_device_id(self._get_stamp())
|
526
534
|
return response["msgId"]
|
535
|
+
|
536
|
+
def check_action_status(
|
537
|
+
self,
|
538
|
+
token: Token,
|
539
|
+
vehicle: Vehicle,
|
540
|
+
action_id: str,
|
541
|
+
synchronous: bool = False,
|
542
|
+
timeout: int = 0,
|
543
|
+
) -> ORDER_STATUS:
|
544
|
+
url = self.SPA_API_URL + "notifications/" + vehicle.id + "/records"
|
545
|
+
|
546
|
+
if synchronous:
|
547
|
+
if timeout < 1:
|
548
|
+
raise APIError("Timeout must be 1 or higher")
|
549
|
+
|
550
|
+
end_time = dt.datetime.now() + dt.timedelta(seconds=timeout)
|
551
|
+
while end_time > dt.datetime.now():
|
552
|
+
# recursive call with Synchronous set to False
|
553
|
+
state = self.check_action_status(
|
554
|
+
token, vehicle, action_id, synchronous=False
|
555
|
+
)
|
556
|
+
if state == ORDER_STATUS.PENDING:
|
557
|
+
# state pending: recheck regularly
|
558
|
+
# (until we get a final state or exceed the timeout)
|
559
|
+
sleep(5)
|
560
|
+
else:
|
561
|
+
# any other state is final
|
562
|
+
return state
|
563
|
+
|
564
|
+
# if we exit the loop after the set timeout, return a Timeout state
|
565
|
+
return ORDER_STATUS.TIMEOUT
|
566
|
+
|
567
|
+
else:
|
568
|
+
response = requests.get(
|
569
|
+
url,
|
570
|
+
headers=self._get_authenticated_headers(
|
571
|
+
token, vehicle.ccu_ccs2_protocol_support
|
572
|
+
),
|
573
|
+
).json()
|
574
|
+
_LOGGER.debug(f"{DOMAIN} - Check last action status Response: {response}")
|
575
|
+
_check_response_for_errors(response)
|
576
|
+
|
577
|
+
for action in response["resMsg"]:
|
578
|
+
if action["recordId"] == action_id:
|
579
|
+
if action["result"] == "success":
|
580
|
+
return ORDER_STATUS.SUCCESS
|
581
|
+
elif action["result"] == "fail":
|
582
|
+
return ORDER_STATUS.FAILED
|
583
|
+
elif action["result"] == "non-response":
|
584
|
+
return ORDER_STATUS.TIMEOUT
|
585
|
+
elif action["result"] is None:
|
586
|
+
_LOGGER.info(
|
587
|
+
"Action status not set yet by server - try again in a few seconds" # noqa
|
588
|
+
)
|
589
|
+
return ORDER_STATUS.PENDING
|
590
|
+
|
591
|
+
# if iterate the whole notifications list and
|
592
|
+
# can't find the action, raise an exception
|
593
|
+
# Old code: raise APIError(f"No action found with ID {action_id}")
|
594
|
+
return ORDER_STATUS.UNKNOWN
|
@@ -8,7 +8,6 @@ import math
|
|
8
8
|
import logging
|
9
9
|
import random
|
10
10
|
import uuid
|
11
|
-
from time import sleep
|
12
11
|
from urllib.parse import parse_qs, urlparse
|
13
12
|
|
14
13
|
import pytz
|
@@ -40,11 +39,9 @@ from .const import (
|
|
40
39
|
SEAT_STATUS,
|
41
40
|
CHARGE_PORT_ACTION,
|
42
41
|
ENGINE_TYPES,
|
43
|
-
OrderStatus,
|
44
42
|
)
|
45
43
|
from .exceptions import (
|
46
44
|
AuthenticationError,
|
47
|
-
APIError,
|
48
45
|
)
|
49
46
|
from .utils import (
|
50
47
|
get_child_value,
|
@@ -1063,59 +1060,3 @@ class KiaUvoApiAU(ApiImplType1):
|
|
1063
1060
|
dt.datetime.now().timestamp() + response["expiresTime"]
|
1064
1061
|
)
|
1065
1062
|
return control_token, control_token_expire_at
|
1066
|
-
|
1067
|
-
def check_action_status(
|
1068
|
-
self,
|
1069
|
-
token: Token,
|
1070
|
-
vehicle: Vehicle,
|
1071
|
-
action_id: str,
|
1072
|
-
synchronous: bool = False,
|
1073
|
-
timeout: int = 0,
|
1074
|
-
) -> OrderStatus:
|
1075
|
-
url = self.SPA_API_URL + "notifications/" + vehicle.id + "/records"
|
1076
|
-
|
1077
|
-
if synchronous:
|
1078
|
-
if timeout < 1:
|
1079
|
-
raise APIError("Timeout must be 1 or higher")
|
1080
|
-
|
1081
|
-
end_time = dt.datetime.now() + dt.timedelta(seconds=timeout)
|
1082
|
-
while end_time > dt.datetime.now():
|
1083
|
-
# recursive call with Synchronous set to False
|
1084
|
-
state = self.check_action_status(
|
1085
|
-
token, vehicle, action_id, synchronous=False
|
1086
|
-
)
|
1087
|
-
if state == OrderStatus.PENDING:
|
1088
|
-
# state pending: recheck regularly
|
1089
|
-
# (until we get a final state or exceed the timeout)
|
1090
|
-
sleep(5)
|
1091
|
-
else:
|
1092
|
-
# any other state is final
|
1093
|
-
return state
|
1094
|
-
|
1095
|
-
# if we exit the loop after the set timeout, return a Timeout state
|
1096
|
-
return OrderStatus.TIMEOUT
|
1097
|
-
|
1098
|
-
else:
|
1099
|
-
response = requests.get(
|
1100
|
-
url, headers=self._get_authenticated_headers(token)
|
1101
|
-
).json()
|
1102
|
-
_LOGGER.debug(f"{DOMAIN} - Check last action status Response: {response}")
|
1103
|
-
_check_response_for_errors(response)
|
1104
|
-
|
1105
|
-
for action in response["resMsg"]:
|
1106
|
-
if action["recordId"] == action_id:
|
1107
|
-
if action["result"] == "success":
|
1108
|
-
return OrderStatus.SUCCESS
|
1109
|
-
elif action["result"] == "fail":
|
1110
|
-
return OrderStatus.FAILED
|
1111
|
-
elif action["result"] == "non-response":
|
1112
|
-
return OrderStatus.TIMEOUT
|
1113
|
-
elif action["result"] is None:
|
1114
|
-
_LOGGER.debug(
|
1115
|
-
"Action status not set yet by server - try again in a few seconds" # noqa
|
1116
|
-
)
|
1117
|
-
return OrderStatus.PENDING
|
1118
|
-
|
1119
|
-
# if iterate the whole notifications list and
|
1120
|
-
# can't find the action, raise an exception
|
1121
|
-
raise APIError(f"No action found with ID {action_id}")
|
@@ -22,7 +22,7 @@ from .const import (
|
|
22
22
|
DISTANCE_UNITS,
|
23
23
|
DOMAIN,
|
24
24
|
ENGINE_TYPES,
|
25
|
-
|
25
|
+
ORDER_STATUS,
|
26
26
|
SEAT_STATUS,
|
27
27
|
TEMPERATURE_UNITS,
|
28
28
|
VEHICLE_LOCK_ACTION,
|
@@ -677,9 +677,9 @@ class KiaUvoApiCA(ApiImpl):
|
|
677
677
|
action_id: str,
|
678
678
|
synchronous: bool = False,
|
679
679
|
timeout: int = 0,
|
680
|
-
) ->
|
680
|
+
) -> ORDER_STATUS:
|
681
681
|
if timeout < 0:
|
682
|
-
return
|
682
|
+
return ORDER_STATUS.TIMEOUT
|
683
683
|
start_time = dt.datetime.now()
|
684
684
|
|
685
685
|
url = self.API_URL + "rmtsts"
|
@@ -700,12 +700,12 @@ class KiaUvoApiCA(ApiImpl):
|
|
700
700
|
_LOGGER.debug(f"{DOMAIN} - Last action_status: {action_status}")
|
701
701
|
|
702
702
|
if response["responseHeader"]["responseCode"] == 1:
|
703
|
-
return
|
703
|
+
return ORDER_STATUS.FAILED
|
704
704
|
elif response["result"]["transaction"]["apiResult"] == "C":
|
705
|
-
return
|
705
|
+
return ORDER_STATUS.SUCCESS
|
706
706
|
elif response["result"]["transaction"]["apiResult"] == "P":
|
707
707
|
if not synchronous:
|
708
|
-
return
|
708
|
+
return ORDER_STATUS.PENDING
|
709
709
|
else:
|
710
710
|
timedelta = dt.datetime.now() - start_time
|
711
711
|
time_left = timeout - timedelta.seconds - 10
|
@@ -714,7 +714,7 @@ class KiaUvoApiCA(ApiImpl):
|
|
714
714
|
token, vehicle, action_id, synchronous, time_left
|
715
715
|
)
|
716
716
|
|
717
|
-
return
|
717
|
+
return ORDER_STATUS.FAILED
|
718
718
|
|
719
719
|
def start_charge(self, token: Token, vehicle: Vehicle) -> str:
|
720
720
|
url = self.API_URL + "evc/rcstrt"
|
@@ -37,7 +37,7 @@ from .const import (
|
|
37
37
|
DOMAIN,
|
38
38
|
ENGINE_TYPES,
|
39
39
|
LOGIN_TOKEN_LIFETIME,
|
40
|
-
|
40
|
+
ORDER_STATUS,
|
41
41
|
SEAT_STATUS,
|
42
42
|
TEMPERATURE_UNITS,
|
43
43
|
VEHICLE_LOCK_ACTION,
|
@@ -1143,7 +1143,7 @@ class KiaUvoApiCN(ApiImplType1):
|
|
1143
1143
|
action_id: str,
|
1144
1144
|
synchronous: bool = False,
|
1145
1145
|
timeout: int = 0,
|
1146
|
-
) ->
|
1146
|
+
) -> ORDER_STATUS:
|
1147
1147
|
url = self.SPA_API_URL + "notifications/" + vehicle.id + "/records"
|
1148
1148
|
|
1149
1149
|
if synchronous:
|
@@ -1156,7 +1156,7 @@ class KiaUvoApiCN(ApiImplType1):
|
|
1156
1156
|
state = self.check_action_status(
|
1157
1157
|
token, vehicle, action_id, synchronous=False
|
1158
1158
|
)
|
1159
|
-
if state ==
|
1159
|
+
if state == ORDER_STATUS.PENDING:
|
1160
1160
|
# state pending: recheck regularly
|
1161
1161
|
# (until we get a final state or exceed the timeout)
|
1162
1162
|
sleep(5)
|
@@ -1165,7 +1165,7 @@ class KiaUvoApiCN(ApiImplType1):
|
|
1165
1165
|
return state
|
1166
1166
|
|
1167
1167
|
# if we exit the loop after the set timeout, return a Timeout state
|
1168
|
-
return
|
1168
|
+
return ORDER_STATUS.TIMEOUT
|
1169
1169
|
|
1170
1170
|
else:
|
1171
1171
|
response = requests.get(
|
@@ -1177,16 +1177,16 @@ class KiaUvoApiCN(ApiImplType1):
|
|
1177
1177
|
for action in response["resMsg"]:
|
1178
1178
|
if action["recordId"] == action_id:
|
1179
1179
|
if action["result"] == "success":
|
1180
|
-
return
|
1180
|
+
return ORDER_STATUS.SUCCESS
|
1181
1181
|
elif action["result"] == "fail":
|
1182
|
-
return
|
1182
|
+
return ORDER_STATUS.FAILED
|
1183
1183
|
elif action["result"] == "non-response":
|
1184
|
-
return
|
1184
|
+
return ORDER_STATUS.TIMEOUT
|
1185
1185
|
elif action["result"] is None:
|
1186
1186
|
_LOGGER.debug(
|
1187
1187
|
"Action status not set yet by server - try again in a few seconds" # noqa
|
1188
1188
|
)
|
1189
|
-
return
|
1189
|
+
return ORDER_STATUS.PENDING
|
1190
1190
|
|
1191
1191
|
# if iterate the whole notifications list and
|
1192
1192
|
# can't find the action, raise an exception
|
@@ -8,7 +8,6 @@ import datetime as dt
|
|
8
8
|
import logging
|
9
9
|
import uuid
|
10
10
|
import math
|
11
|
-
from time import sleep
|
12
11
|
from urllib.parse import parse_qs, urlparse
|
13
12
|
|
14
13
|
import pytz
|
@@ -42,14 +41,12 @@ from .const import (
|
|
42
41
|
DOMAIN,
|
43
42
|
ENGINE_TYPES,
|
44
43
|
LOGIN_TOKEN_LIFETIME,
|
45
|
-
OrderStatus,
|
46
44
|
SEAT_STATUS,
|
47
45
|
TEMPERATURE_UNITS,
|
48
46
|
VALET_MODE_ACTION,
|
49
47
|
)
|
50
48
|
from .exceptions import (
|
51
49
|
AuthenticationError,
|
52
|
-
APIError,
|
53
50
|
)
|
54
51
|
from .utils import (
|
55
52
|
get_child_value,
|
@@ -1549,63 +1546,3 @@ class KiaUvoApiEU(ApiImplType1):
|
|
1549
1546
|
dt.datetime.now().timestamp() + response["expiresTime"]
|
1550
1547
|
)
|
1551
1548
|
return control_token, control_token_expire_at
|
1552
|
-
|
1553
|
-
def check_action_status(
|
1554
|
-
self,
|
1555
|
-
token: Token,
|
1556
|
-
vehicle: Vehicle,
|
1557
|
-
action_id: str,
|
1558
|
-
synchronous: bool = False,
|
1559
|
-
timeout: int = 0,
|
1560
|
-
) -> OrderStatus:
|
1561
|
-
url = self.SPA_API_URL + "notifications/" + vehicle.id + "/records"
|
1562
|
-
|
1563
|
-
if synchronous:
|
1564
|
-
if timeout < 1:
|
1565
|
-
raise APIError("Timeout must be 1 or higher")
|
1566
|
-
|
1567
|
-
end_time = dt.datetime.now() + dt.timedelta(seconds=timeout)
|
1568
|
-
while end_time > dt.datetime.now():
|
1569
|
-
# recursive call with Synchronous set to False
|
1570
|
-
state = self.check_action_status(
|
1571
|
-
token, vehicle, action_id, synchronous=False
|
1572
|
-
)
|
1573
|
-
if state == OrderStatus.PENDING:
|
1574
|
-
# state pending: recheck regularly
|
1575
|
-
# (until we get a final state or exceed the timeout)
|
1576
|
-
sleep(5)
|
1577
|
-
else:
|
1578
|
-
# any other state is final
|
1579
|
-
return state
|
1580
|
-
|
1581
|
-
# if we exit the loop after the set timeout, return a Timeout state
|
1582
|
-
return OrderStatus.TIMEOUT
|
1583
|
-
|
1584
|
-
else:
|
1585
|
-
response = requests.get(
|
1586
|
-
url,
|
1587
|
-
headers=self._get_authenticated_headers(
|
1588
|
-
token, vehicle.ccu_ccs2_protocol_support
|
1589
|
-
),
|
1590
|
-
).json()
|
1591
|
-
_LOGGER.debug(f"{DOMAIN} - Check last action status Response: {response}")
|
1592
|
-
_check_response_for_errors(response)
|
1593
|
-
|
1594
|
-
for action in response["resMsg"]:
|
1595
|
-
if action["recordId"] == action_id:
|
1596
|
-
if action["result"] == "success":
|
1597
|
-
return OrderStatus.SUCCESS
|
1598
|
-
elif action["result"] == "fail":
|
1599
|
-
return OrderStatus.FAILED
|
1600
|
-
elif action["result"] == "non-response":
|
1601
|
-
return OrderStatus.TIMEOUT
|
1602
|
-
elif action["result"] is None:
|
1603
|
-
_LOGGER.info(
|
1604
|
-
"Action status not set yet by server - try again in a few seconds" # noqa
|
1605
|
-
)
|
1606
|
-
return OrderStatus.PENDING
|
1607
|
-
|
1608
|
-
# if iterate the whole notifications list and
|
1609
|
-
# can't find the action, raise an exception
|
1610
|
-
# Old code: raise APIError(f"No action found with ID {action_id}")
|
1611
|
-
return OrderStatus.UNKNOWN
|
@@ -25,7 +25,7 @@ from .const import (
|
|
25
25
|
DISTANCE_UNITS,
|
26
26
|
DOMAIN,
|
27
27
|
LOGIN_TOKEN_LIFETIME,
|
28
|
-
|
28
|
+
ORDER_STATUS,
|
29
29
|
TEMPERATURE_UNITS,
|
30
30
|
VEHICLE_LOCK_ACTION,
|
31
31
|
)
|
@@ -595,7 +595,7 @@ class KiaUvoApiUSA(ApiImpl):
|
|
595
595
|
action_id: str,
|
596
596
|
synchronous: bool = False,
|
597
597
|
timeout: int = 0,
|
598
|
-
) ->
|
598
|
+
) -> ORDER_STATUS:
|
599
599
|
url = self.API_URL + "cmm/gts"
|
600
600
|
body = {"xid": action_id}
|
601
601
|
response = self.post_request_with_logging_and_active_session(
|
@@ -36,7 +36,7 @@ from .const import (
|
|
36
36
|
REGIONS,
|
37
37
|
VEHICLE_LOCK_ACTION,
|
38
38
|
CHARGE_PORT_ACTION,
|
39
|
-
|
39
|
+
ORDER_STATUS,
|
40
40
|
VALET_MODE_ACTION,
|
41
41
|
)
|
42
42
|
|
@@ -206,7 +206,7 @@ class VehicleManager:
|
|
206
206
|
action_id: str,
|
207
207
|
synchronous: bool = False,
|
208
208
|
timeout: int = 120,
|
209
|
-
) ->
|
209
|
+
) -> ORDER_STATUS:
|
210
210
|
"""
|
211
211
|
Check for the status of a sent action/command.
|
212
212
|
|
hyundai_kia_connect_api/const.py
CHANGED
{hyundai_kia_connect_api-3.34.1.dist-info → hyundai_kia_connect_api-3.34.3.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: hyundai_kia_connect_api
|
3
|
-
Version: 3.34.
|
3
|
+
Version: 3.34.3
|
4
4
|
Summary: Python Boilerplate contains all the boilerplate you need to create a Python package.
|
5
5
|
Home-page: https://github.com/Hyundai-Kia-Connect/hyundai_kia_connect_api
|
6
6
|
Author: Fuat Akgun
|
@@ -0,0 +1,23 @@
|
|
1
|
+
hyundai_kia_connect_api/ApiImpl.py,sha256=UeG2FH4KCdU5LvGp5Ks793vrWbwBx8MN_DedbVRRouM,9612
|
2
|
+
hyundai_kia_connect_api/ApiImplType1.py,sha256=YGN7H0Q06ikdjgL3O2F9SeigQaRwx9ht3lXiITOVQGw,22205
|
3
|
+
hyundai_kia_connect_api/HyundaiBlueLinkApiUSA.py,sha256=FGYyrS3dSq8Plfu8DQMwVG1LM3nmRv8Y4vrN7wZ4oVY,36988
|
4
|
+
hyundai_kia_connect_api/KiaUvoApiAU.py,sha256=gvywTkeZRiL0vv_mSqZefttFK44lHmY2kFDVv31gx70,41929
|
5
|
+
hyundai_kia_connect_api/KiaUvoApiCA.py,sha256=Y2xWIYUuiilk3FXq1ZdHQ0DsFZA_8b6AIT32l595leg,32521
|
6
|
+
hyundai_kia_connect_api/KiaUvoApiCN.py,sha256=WP-rRI3wZmjuLYZmPXeOSk2NNNc6UhTrpOMuYMG6-iE,47043
|
7
|
+
hyundai_kia_connect_api/KiaUvoApiEU.py,sha256=CSuIhYsDEXnG1j6u6-c-TZ9fVqSV5oMc4xtVryJ5HU0,62295
|
8
|
+
hyundai_kia_connect_api/KiaUvoApiUSA.py,sha256=bOG3ugG_O1g5cL3E_b4F2McXeZYJVzfBpqK_kaYgM9E,30550
|
9
|
+
hyundai_kia_connect_api/Token.py,sha256=ZsPvXh1ID7FUTGHAqhZUZyrKT7xVbOtIn6FRJn4Ygf0,370
|
10
|
+
hyundai_kia_connect_api/Vehicle.py,sha256=hZT0wU7-mMi85bgqNHMu6CyhQQ5h-Jfmoc1ce2uPhYM,18867
|
11
|
+
hyundai_kia_connect_api/VehicleManager.py,sha256=nnHsTy49bf5nRhEC9EXFnnfx6M39JSaM2TxKK9vosbY,11733
|
12
|
+
hyundai_kia_connect_api/__init__.py,sha256=IkyVeIMbcFJZgLaiiNnUVA1Ferxvrm1bXHKVg01cxvc,319
|
13
|
+
hyundai_kia_connect_api/bluelink.py,sha256=JiNIHl-Qi8zwqyN6ywKg5CdXOLT74WkvpjVcn-rYEjI,19730
|
14
|
+
hyundai_kia_connect_api/const.py,sha256=gFAhj9-YgrJNd7ZjYr4Qu1Yf4v-RhmyON1MJDN0eR90,2281
|
15
|
+
hyundai_kia_connect_api/exceptions.py,sha256=m7gyDnvA5OVAK4EXSP_ZwE0s0uV8HsGUV0tiYwqofK0,1343
|
16
|
+
hyundai_kia_connect_api/utils.py,sha256=J0aXUX-nKIoS3XbelatNh-DZlHRU2_DYz_Mg_ZUKQJU,1957
|
17
|
+
hyundai_kia_connect_api-3.34.3.dist-info/licenses/AUTHORS.rst,sha256=T77OE1hrQF6YyDE6NbdMKyL66inHt7dnjHAzblwuk2A,155
|
18
|
+
hyundai_kia_connect_api-3.34.3.dist-info/licenses/LICENSE,sha256=49hmc755oyMwKdZ-2epiorjStRB0PfcZR1w5_NXZPgs,1068
|
19
|
+
hyundai_kia_connect_api-3.34.3.dist-info/METADATA,sha256=55o6-yIUNyUjHgIAaYQx4pGXHB1nMOw0-rttz9HovTA,7142
|
20
|
+
hyundai_kia_connect_api-3.34.3.dist-info/WHEEL,sha256=MAQBAzGbXNI3bUmkDsiV_duv8i-gcdnLzw7cfUFwqhU,109
|
21
|
+
hyundai_kia_connect_api-3.34.3.dist-info/entry_points.txt,sha256=XfrroRdyC_9q9VXjEZe5SdRPhkQyCCE4S7ZK6XSKelA,67
|
22
|
+
hyundai_kia_connect_api-3.34.3.dist-info/top_level.txt,sha256=otZ7J_fN-s3EW4jD-kAearIo2OIzhQLR8DNEHIaFfds,24
|
23
|
+
hyundai_kia_connect_api-3.34.3.dist-info/RECORD,,
|
@@ -1,23 +0,0 @@
|
|
1
|
-
hyundai_kia_connect_api/ApiImpl.py,sha256=smtAOUzjmO3ci2LHoNiEmTe2UR1f0SqmVUQiweZ6je4,9610
|
2
|
-
hyundai_kia_connect_api/ApiImplType1.py,sha256=3qettOJ8TRMXmESYcJLJx4dtYYJSIkcOxljsLgjGgy8,19502
|
3
|
-
hyundai_kia_connect_api/HyundaiBlueLinkApiUSA.py,sha256=FGYyrS3dSq8Plfu8DQMwVG1LM3nmRv8Y4vrN7wZ4oVY,36988
|
4
|
-
hyundai_kia_connect_api/KiaUvoApiAU.py,sha256=hsm3PYQho9oT_TpPl7XzgcIPQjqcUL9TBv9R6ftvFiI,44267
|
5
|
-
hyundai_kia_connect_api/KiaUvoApiCA.py,sha256=XBya0yHZ2MC3TBVQLSc6N-SzmGt_s3l4nGVyNgmjl9Q,32514
|
6
|
-
hyundai_kia_connect_api/KiaUvoApiCN.py,sha256=cwIPZ0dU6HolKdooUQeQKlLAic6YU8dQmNs0VQDBgpQ,47035
|
7
|
-
hyundai_kia_connect_api/KiaUvoApiEU.py,sha256=UB8JwYyRLxxmUmCkvFHt1NCiEcwfW3ZYy-r3WKOCy7M,64773
|
8
|
-
hyundai_kia_connect_api/KiaUvoApiUSA.py,sha256=8DP7iOORHtU98LipcAYEPdtJvubBlUP2-jlDxAhTDhQ,30548
|
9
|
-
hyundai_kia_connect_api/Token.py,sha256=ZsPvXh1ID7FUTGHAqhZUZyrKT7xVbOtIn6FRJn4Ygf0,370
|
10
|
-
hyundai_kia_connect_api/Vehicle.py,sha256=hZT0wU7-mMi85bgqNHMu6CyhQQ5h-Jfmoc1ce2uPhYM,18867
|
11
|
-
hyundai_kia_connect_api/VehicleManager.py,sha256=JQLh9Tq1wIRz_CdrqiQAQBLMv1DTO_yNASIWWqZWksg,11731
|
12
|
-
hyundai_kia_connect_api/__init__.py,sha256=IkyVeIMbcFJZgLaiiNnUVA1Ferxvrm1bXHKVg01cxvc,319
|
13
|
-
hyundai_kia_connect_api/bluelink.py,sha256=JiNIHl-Qi8zwqyN6ywKg5CdXOLT74WkvpjVcn-rYEjI,19730
|
14
|
-
hyundai_kia_connect_api/const.py,sha256=dXEh-lpthH8000nUXFoRZpQXkTxVHDAgDe_KqnSZhZw,2280
|
15
|
-
hyundai_kia_connect_api/exceptions.py,sha256=m7gyDnvA5OVAK4EXSP_ZwE0s0uV8HsGUV0tiYwqofK0,1343
|
16
|
-
hyundai_kia_connect_api/utils.py,sha256=J0aXUX-nKIoS3XbelatNh-DZlHRU2_DYz_Mg_ZUKQJU,1957
|
17
|
-
hyundai_kia_connect_api-3.34.1.dist-info/licenses/AUTHORS.rst,sha256=T77OE1hrQF6YyDE6NbdMKyL66inHt7dnjHAzblwuk2A,155
|
18
|
-
hyundai_kia_connect_api-3.34.1.dist-info/licenses/LICENSE,sha256=49hmc755oyMwKdZ-2epiorjStRB0PfcZR1w5_NXZPgs,1068
|
19
|
-
hyundai_kia_connect_api-3.34.1.dist-info/METADATA,sha256=0qDnR7rQMkIXemK4E27VS6DS1VRdBWaVwR9kOh3eN0A,7142
|
20
|
-
hyundai_kia_connect_api-3.34.1.dist-info/WHEEL,sha256=MAQBAzGbXNI3bUmkDsiV_duv8i-gcdnLzw7cfUFwqhU,109
|
21
|
-
hyundai_kia_connect_api-3.34.1.dist-info/entry_points.txt,sha256=XfrroRdyC_9q9VXjEZe5SdRPhkQyCCE4S7ZK6XSKelA,67
|
22
|
-
hyundai_kia_connect_api-3.34.1.dist-info/top_level.txt,sha256=otZ7J_fN-s3EW4jD-kAearIo2OIzhQLR8DNEHIaFfds,24
|
23
|
-
hyundai_kia_connect_api-3.34.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{hyundai_kia_connect_api-3.34.1.dist-info → hyundai_kia_connect_api-3.34.3.dist-info}/top_level.txt
RENAMED
File without changes
|