carconnectivity-connector-seatcupra 0.1a4__tar.gz → 0.1a5__tar.gz

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.
Files changed (39) hide show
  1. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/PKG-INFO +2 -2
  2. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/pyproject.toml +1 -1
  3. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connector_seatcupra.egg-info/PKG-INFO +2 -2
  4. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connector_seatcupra.egg-info/requires.txt +1 -1
  5. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/_version.py +1 -1
  6. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/connector.py +36 -6
  7. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/vehicle.py +1 -1
  8. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/.flake8 +0 -0
  9. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  10. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  11. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/.github/dependabot.yml +0 -0
  12. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/.github/workflows/build.yml +0 -0
  13. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/.github/workflows/build_and_publish.yml +0 -0
  14. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/.github/workflows/codeql-analysis.yml +0 -0
  15. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/.gitignore +0 -0
  16. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/CHANGELOG.md +0 -0
  17. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/LICENSE +0 -0
  18. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/Makefile +0 -0
  19. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/README.md +0 -0
  20. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/doc/Config.md +0 -0
  21. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/setup.cfg +0 -0
  22. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/setup_requirements.txt +0 -0
  23. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connector_seatcupra.egg-info/SOURCES.txt +0 -0
  24. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connector_seatcupra.egg-info/dependency_links.txt +0 -0
  25. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connector_seatcupra.egg-info/top_level.txt +0 -0
  26. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/__init__.py +0 -0
  27. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/auth/__init__.py +0 -0
  28. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/auth/auth_util.py +0 -0
  29. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/auth/helpers/blacklist_retry.py +0 -0
  30. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/auth/my_cupra_session.py +0 -0
  31. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/auth/openid_session.py +0 -0
  32. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/auth/session_manager.py +0 -0
  33. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/auth/vw_web_session.py +0 -0
  34. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/capability.py +0 -0
  35. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/charging.py +0 -0
  36. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/climatization.py +0 -0
  37. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/command_impl.py +0 -0
  38. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/src/carconnectivity_connectors/seatcupra/ui/connector_ui.py +0 -0
  39. {carconnectivity_connector_seatcupra-0.1a4 → carconnectivity_connector_seatcupra-0.1a5}/test/integration_test/carConnectivity.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: carconnectivity-connector-seatcupra
3
- Version: 0.1a4
3
+ Version: 0.1a5
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.4a2
40
+ Requires-Dist: carconnectivity>=0.4a3
41
41
  Requires-Dist: oauthlib~=3.2.2
42
42
  Requires-Dist: requests~=2.32.3
43
43
  Requires-Dist: jwt~=1.3.1
@@ -14,7 +14,7 @@ authors = [
14
14
  { name = "Till Steinbach" }
15
15
  ]
16
16
  dependencies = [
17
- "carconnectivity>=0.4a2",
17
+ "carconnectivity>=0.4a3",
18
18
  "oauthlib~=3.2.2",
19
19
  "requests~=2.32.3",
20
20
  "jwt~=1.3.1"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: carconnectivity-connector-seatcupra
3
- Version: 0.1a4
3
+ Version: 0.1a5
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.4a2
40
+ Requires-Dist: carconnectivity>=0.4a3
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,4 +1,4 @@
1
- carconnectivity>=0.4a2
1
+ carconnectivity>=0.4a3
2
2
  oauthlib~=3.2.2
3
3
  requests~=2.32.3
4
4
  jwt~=1.3.1
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.1a4'
20
+ __version__ = version = '0.1a5'
21
21
  __version_tuple__ = version_tuple = (0, 1)
@@ -1050,9 +1050,19 @@ class Connector(BaseConnector):
1050
1050
  raise CommandError('VIN in object hierarchy missing')
1051
1051
  if 'command' not in command_arguments:
1052
1052
  raise CommandError('Command argument missing')
1053
+ command_dict: Dict = {}
1053
1054
  if command_arguments['command'] == ChargingStartStopCommand.Command.START:
1054
1055
  url = f'https://ola.prod.code.seat.cloud.vwgroup.com/vehicles/{vin}/charging/requests/start'
1055
- command_response: requests.Response = self.session.post(url, data='{}', allow_redirects=True)
1056
+ if isinstance(vehicle, SeatCupraElectricVehicle) and vehicle.charging is not None and vehicle.charging.settings is not None \
1057
+ and vehicle.charging.settings.maximum_current is not None and vehicle.charging.settings.maximum_current.enabled \
1058
+ and vehicle.charging.settings.maximum_current.value is not None:
1059
+ if vehicle.charging.settings.maximum_current.value <= 6:
1060
+ command_dict['maxChargeCurrentAC'] = 'reduced'
1061
+ else:
1062
+ command_dict['maxChargeCurrentAC'] = 'maximum'
1063
+ else:
1064
+ command_dict['maxChargeCurrentAC'] = 'maximum'
1065
+ command_response: requests.Response = self.session.post(url, data=json.dumps(command_dict), allow_redirects=True)
1056
1066
  elif command_arguments['command'] == ChargingStartStopCommand.Command.STOP:
1057
1067
  url = f'https://ola.prod.code.seat.cloud.vwgroup.com/vehicles/{vin}/charging/requests/stop'
1058
1068
  command_response: requests.Response = self.session.post(url, data='{}', allow_redirects=True)
@@ -1078,15 +1088,35 @@ class Connector(BaseConnector):
1078
1088
  if 'command' not in command_arguments:
1079
1089
  raise CommandError('Command argument missing')
1080
1090
  command_dict = {}
1081
- command_str: Optional[str] = None
1082
1091
  if command_arguments['command'] == ClimatizationStartStopCommand.Command.START:
1083
- command_str = 'start'
1092
+ url = f'https://ola.prod.code.seat.cloud.vwgroup.com/v2/vehicles/{vin}/climatisation/start'
1093
+ if vehicle.climatization.settings is None:
1094
+ raise CommandError('Could not control climatisation, there are no climatisation settings for the vehicle available.')
1095
+ if 'target_temperature' in command_arguments:
1096
+ # Round target temperature to nearest 0.5
1097
+ command_dict['targetTemperature'] = round(command_arguments['target_temperature'] * 2) / 2
1098
+ elif vehicle.climatization.settings.target_temperature is not None and vehicle.climatization.settings.target_temperature.enabled \
1099
+ and vehicle.climatization.settings.target_temperature.value is not None:
1100
+ temperature_value = vehicle.climatization.settings.target_temperature.value
1101
+ if vehicle.climatization.settings.target_temperature.unit == Temperature.C:
1102
+ command_dict['targetTemperatureUnit'] = 'celsius'
1103
+ elif vehicle.climatization.settings.target_temperature.unit == Temperature.F:
1104
+ command_dict['targetTemperatureUnit'] = 'farenheit'
1105
+ else:
1106
+ command_dict['targetTemperatureUnit'] = 'celsius'
1107
+ if temperature_value is not None:
1108
+ command_dict['targetTemperature'] = round(temperature_value * 2) / 2
1109
+ if 'target_temperature_unit' in command_arguments:
1110
+ if command_arguments['target_temperature_unit'] == Temperature.C:
1111
+ command_dict['targetTemperatureUnit'] = 'celsius'
1112
+ elif command_arguments['target_temperature_unit'] == Temperature.F:
1113
+ command_dict['targetTemperatureUnit'] = 'farenheit'
1114
+ else:
1115
+ command_dict['targetTemperatureUnit'] = 'celsius'
1084
1116
  elif command_arguments['command'] == ClimatizationStartStopCommand.Command.STOP:
1085
- command_str = 'stop'
1117
+ url: str = f'https://ola.prod.code.seat.cloud.vwgroup.com/vehicles/{vin}/climatisation/requests/stop'
1086
1118
  else:
1087
1119
  raise CommandError(f'Unknown command {command_arguments["command"]}')
1088
-
1089
- url: str = f'https://ola.prod.code.seat.cloud.vwgroup.com/vehicles/{vin}/climatisation/requests/{command_str}'
1090
1120
  command_response: requests.Response = self.session.post(url, data=json.dumps(command_dict), allow_redirects=True)
1091
1121
  if command_response.status_code not in [requests.codes['ok'], requests.codes['created']]:
1092
1122
  LOG.error('Could not start/stop air conditioning (%s: %s)', command_response.status_code, command_response.text)
@@ -41,7 +41,7 @@ class SeatCupraVehicle(GenericVehicle): # pylint: disable=too-many-instance-att
41
41
  self._car_images = origin._car_images
42
42
  else:
43
43
  super().__init__(vin=vin, garage=garage, managing_connector=managing_connector)
44
- self.climatization = SeatCupraClimatization(origin=self.climatization)
44
+ self.climatization = SeatCupraClimatization(vehicle=self, origin=self.climatization)
45
45
  self.capabilities: Capabilities = Capabilities(vehicle=self)
46
46
  if SUPPORT_IMAGES:
47
47
  self._car_images: Dict[str, Image.Image] = {}