carconnectivity-connector-seatcupra 0.1a16__py3-none-any.whl → 0.1a17__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.
- {carconnectivity_connector_seatcupra-0.1a16.dist-info → carconnectivity_connector_seatcupra-0.1a17.dist-info}/METADATA +2 -2
- {carconnectivity_connector_seatcupra-0.1a16.dist-info → carconnectivity_connector_seatcupra-0.1a17.dist-info}/RECORD +7 -7
- carconnectivity_connectors/seatcupra/_version.py +1 -1
- carconnectivity_connectors/seatcupra/connector.py +13 -10
- {carconnectivity_connector_seatcupra-0.1a16.dist-info → carconnectivity_connector_seatcupra-0.1a17.dist-info}/LICENSE +0 -0
- {carconnectivity_connector_seatcupra-0.1a16.dist-info → carconnectivity_connector_seatcupra-0.1a17.dist-info}/WHEEL +0 -0
- {carconnectivity_connector_seatcupra-0.1a16.dist-info → carconnectivity_connector_seatcupra-0.1a17.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: carconnectivity-connector-seatcupra
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.1a17
|
4
4
|
Summary: CarConnectivity connector for Seat and Cupra services
|
5
5
|
Author: Till Steinbach
|
6
6
|
License: MIT License
|
@@ -37,7 +37,7 @@ Classifier: Topic :: Software Development :: Libraries
|
|
37
37
|
Requires-Python: >=3.9
|
38
38
|
Description-Content-Type: text/markdown
|
39
39
|
License-File: LICENSE
|
40
|
-
Requires-Dist: carconnectivity>=0.
|
40
|
+
Requires-Dist: carconnectivity>=0.4a11
|
41
41
|
Requires-Dist: oauthlib~=3.2.2
|
42
42
|
Requires-Dist: requests~=2.32.3
|
43
43
|
Requires-Dist: jwt~=1.3.1
|
@@ -1,10 +1,10 @@
|
|
1
1
|
carconnectivity_connectors/seatcupra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
carconnectivity_connectors/seatcupra/_version.py,sha256=
|
2
|
+
carconnectivity_connectors/seatcupra/_version.py,sha256=h6qKff23EXoCChHlB_Nct7DIvHThmGCDSsQuZQK2zzA,509
|
3
3
|
carconnectivity_connectors/seatcupra/capability.py,sha256=Oe9tC_u69bj6VmOuNJ21RKoETe2j3QyZCoz-VgcZPQ0,4523
|
4
4
|
carconnectivity_connectors/seatcupra/charging.py,sha256=BJe_5GEB0JkP78tpU6kyKpwuwjDZHvm-kt3PTlpQHeU,3336
|
5
5
|
carconnectivity_connectors/seatcupra/climatization.py,sha256=0xxWlxrheAPzkVT8WRQtbm6ExZmVdgW7lUdOXyS_qWY,1695
|
6
6
|
carconnectivity_connectors/seatcupra/command_impl.py,sha256=LmBOCWGZPfJCG_4-5449xvO6NAvnPDsAWEBKlsG4WoI,3051
|
7
|
-
carconnectivity_connectors/seatcupra/connector.py,sha256=
|
7
|
+
carconnectivity_connectors/seatcupra/connector.py,sha256=cOuQOlnImZlVMOjHbRrm2vo02zlNB4m87uO88subqZk,102253
|
8
8
|
carconnectivity_connectors/seatcupra/vehicle.py,sha256=s0G-HqG5qcwStDxD3649KgLMa3lKPZ4TOGWRJEuQzsQ,3403
|
9
9
|
carconnectivity_connectors/seatcupra/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
carconnectivity_connectors/seatcupra/auth/auth_util.py,sha256=Y81h8fGOMSMgPtE4wI_TI9WgE_s43uaPjRLBBINhj4g,4433
|
@@ -14,8 +14,8 @@ carconnectivity_connectors/seatcupra/auth/session_manager.py,sha256=ZIDvC848T3fy
|
|
14
14
|
carconnectivity_connectors/seatcupra/auth/vw_web_session.py,sha256=CcI6m68IyRs6WsMDu-IsW3Dj85vyGiMmxvFqNETMHO0,10929
|
15
15
|
carconnectivity_connectors/seatcupra/auth/helpers/blacklist_retry.py,sha256=f3wsiY5bpHDBxp7Va1Mv9nKJ4u3qnCHZZmDu78_AhMk,1251
|
16
16
|
carconnectivity_connectors/seatcupra/ui/connector_ui.py,sha256=SNYnlcGJpbWhuLiIHD2l6H9IfSiMz3IgmvXsdossDnE,1412
|
17
|
-
carconnectivity_connector_seatcupra-0.
|
18
|
-
carconnectivity_connector_seatcupra-0.
|
19
|
-
carconnectivity_connector_seatcupra-0.
|
20
|
-
carconnectivity_connector_seatcupra-0.
|
21
|
-
carconnectivity_connector_seatcupra-0.
|
17
|
+
carconnectivity_connector_seatcupra-0.1a17.dist-info/LICENSE,sha256=PIwI1alwDyOfvEQHdGCm2u9uf_mGE8030xZDfun0xTo,1071
|
18
|
+
carconnectivity_connector_seatcupra-0.1a17.dist-info/METADATA,sha256=Dat_Q7Tw4hiyrVptq1LiL5xLSAGzj2RH56jSJFyxR0c,5642
|
19
|
+
carconnectivity_connector_seatcupra-0.1a17.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
|
20
|
+
carconnectivity_connector_seatcupra-0.1a17.dist-info/top_level.txt,sha256=KqA8GviZsDH4PtmnwSQsz0HB_w-TWkeEHLIRNo5dTaI,27
|
21
|
+
carconnectivity_connector_seatcupra-0.1a17.dist-info/RECORD,,
|
@@ -22,7 +22,7 @@ from carconnectivity.windows import Windows
|
|
22
22
|
from carconnectivity.lights import Lights
|
23
23
|
from carconnectivity.drive import GenericDrive, ElectricDrive, CombustionDrive
|
24
24
|
from carconnectivity.vehicle import GenericVehicle, ElectricVehicle
|
25
|
-
from carconnectivity.attributes import BooleanAttribute, DurationAttribute, GenericAttribute, TemperatureAttribute
|
25
|
+
from carconnectivity.attributes import BooleanAttribute, DurationAttribute, GenericAttribute, TemperatureAttribute, EnumAttribute
|
26
26
|
from carconnectivity.units import Temperature
|
27
27
|
from carconnectivity.command_impl import ClimatizationStartStopCommand, WakeSleepCommand, HonkAndFlashCommand, LockUnlockCommand, ChargingStartStopCommand
|
28
28
|
from carconnectivity.climatization import Climatization
|
@@ -30,6 +30,7 @@ from carconnectivity.commands import Commands
|
|
30
30
|
from carconnectivity.charging import Charging
|
31
31
|
from carconnectivity.charging_connector import ChargingConnector
|
32
32
|
from carconnectivity.position import Position
|
33
|
+
from carconnectivity.enums import ConnectionState
|
33
34
|
|
34
35
|
from carconnectivity_connectors.base.connector import BaseConnector
|
35
36
|
from carconnectivity_connectors.seatcupra.auth.session_manager import SessionManager, SessionUser, Service
|
@@ -76,13 +77,12 @@ class Connector(BaseConnector):
|
|
76
77
|
self._background_thread: Optional[threading.Thread] = None
|
77
78
|
self._stop_event = threading.Event()
|
78
79
|
|
79
|
-
self.
|
80
|
+
self.connection_state: EnumAttribute = EnumAttribute(name="connection_state", parent=self, value_type=ConnectionState,
|
81
|
+
value=ConnectionState.DISCONNECTED, tags={'connector_custom'})
|
80
82
|
self.interval: DurationAttribute = DurationAttribute(name="interval", parent=self, tags={'connector_custom'})
|
81
83
|
self.interval.minimum = timedelta(seconds=180)
|
82
84
|
self.interval._is_changeable = True # pylint: disable=protected-access
|
83
85
|
|
84
|
-
self._healthy = False
|
85
|
-
|
86
86
|
self.commands: Commands = Commands(parent=self)
|
87
87
|
|
88
88
|
LOG.info("Loading seatcupra connector with config %s", config_remove_credentials(config))
|
@@ -167,11 +167,12 @@ class Connector(BaseConnector):
|
|
167
167
|
self._background_thread = threading.Thread(target=self._background_loop, daemon=False)
|
168
168
|
self._background_thread.name = 'carconnectivity.connectors.seatcupra-background'
|
169
169
|
self._background_thread.start()
|
170
|
-
self.
|
170
|
+
self.healthy._set_value(value=True) # pylint: disable=protected-access
|
171
171
|
|
172
172
|
def _background_loop(self) -> None:
|
173
173
|
self._stop_event.clear()
|
174
174
|
fetch: bool = True
|
175
|
+
self.connection_state._set_value(value=ConnectionState.CONNECTING) # pylint: disable=protected-access
|
175
176
|
while not self._stop_event.is_set():
|
176
177
|
interval = 300
|
177
178
|
try:
|
@@ -205,7 +206,7 @@ class Connector(BaseConnector):
|
|
205
206
|
self._stop_event.wait(interval)
|
206
207
|
except Exception as err:
|
207
208
|
LOG.critical('Critical error during update: %s', traceback.format_exc())
|
208
|
-
self.
|
209
|
+
self.healthy._set_value(value=False) # pylint: disable=protected-access
|
209
210
|
raise err
|
210
211
|
else:
|
211
212
|
self._stop_event.wait(interval)
|
@@ -720,7 +721,7 @@ class Connector(BaseConnector):
|
|
720
721
|
if vehicle.position is None:
|
721
722
|
raise ValueError('Vehicle has no position object')
|
722
723
|
url = f'https://ola.prod.code.seat.cloud.vwgroup.com/v1/vehicles/{vin}/parkingposition'
|
723
|
-
data: Dict[str, Any] | None = self._fetch_data(url=url, session=self.session, no_cache=no_cache)
|
724
|
+
data: Dict[str, Any] | None = self._fetch_data(url=url, session=self.session, no_cache=no_cache, allow_empty=True)
|
724
725
|
if data is not None:
|
725
726
|
if 'lat' in data and data['lat'] is not None:
|
726
727
|
latitude: Optional[float] = data['lat']
|
@@ -842,7 +843,7 @@ class Connector(BaseConnector):
|
|
842
843
|
vehicle.climatization.state._set_value(value=climatization_state, measured=captured_at) # pylint: disable=protected-access
|
843
844
|
else:
|
844
845
|
vehicle.climatization.state._set_value(None) # pylint: disable=protected-access
|
845
|
-
log_extra_keys(LOG_API, '
|
846
|
+
log_extra_keys(LOG_API, 'climatisationStatus', data['climatisationStatus'], {'carCapturedTimestamp', 'climatisationState'})
|
846
847
|
else:
|
847
848
|
vehicle.climatization.state._set_value(None) # pylint: disable=protected-access
|
848
849
|
log_extra_keys(LOG_API, 'climatisation', data, {'climatisationStatus'})
|
@@ -1082,6 +1083,8 @@ class Connector(BaseConnector):
|
|
1082
1083
|
data = status_response.json()
|
1083
1084
|
if session.cache is not None:
|
1084
1085
|
session.cache[url] = (data, str(datetime.utcnow()))
|
1086
|
+
elif status_response.status_code == requests.codes['no_content'] and allow_empty:
|
1087
|
+
data = None
|
1085
1088
|
elif status_response.status_code == requests.codes['too_many_requests']:
|
1086
1089
|
raise TooManyRequestsError('Could not fetch data due to too many requests from your account. '
|
1087
1090
|
f'Status Code was: {status_response.status_code}')
|
@@ -1454,5 +1457,5 @@ class Connector(BaseConnector):
|
|
1454
1457
|
def get_type(self) -> str:
|
1455
1458
|
return "carconnectivity-connector-seatcupra"
|
1456
1459
|
|
1457
|
-
def
|
1458
|
-
return
|
1460
|
+
def get_name(self) -> str:
|
1461
|
+
return "Seat/Cupra Connector"
|
File without changes
|
File without changes
|