carconnectivity-connector-skoda 0.4a7__tar.gz → 0.4a8__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.

Potentially problematic release.


This version of carconnectivity-connector-skoda might be problematic. Click here for more details.

Files changed (41) hide show
  1. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/PKG-INFO +1 -1
  2. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connector_skoda.egg-info/PKG-INFO +1 -1
  3. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/_version.py +1 -1
  4. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/connector.py +20 -0
  5. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/mqtt_client.py +7 -2
  6. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/.flake8 +0 -0
  7. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  8. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  9. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/.github/dependabot.yml +0 -0
  10. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/.github/workflows/build.yml +0 -0
  11. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/.github/workflows/build_and_publish.yml +0 -0
  12. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/.github/workflows/codeql-analysis.yml +0 -0
  13. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/.gitignore +0 -0
  14. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/CHANGELOG.md +0 -0
  15. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/LICENSE +0 -0
  16. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/Makefile +0 -0
  17. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/README.md +0 -0
  18. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/doc/Config.md +0 -0
  19. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/pyproject.toml +0 -0
  20. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/setup.cfg +0 -0
  21. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/setup_requirements.txt +0 -0
  22. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connector_skoda.egg-info/SOURCES.txt +0 -0
  23. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connector_skoda.egg-info/dependency_links.txt +0 -0
  24. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connector_skoda.egg-info/requires.txt +0 -0
  25. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connector_skoda.egg-info/top_level.txt +0 -0
  26. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/__init__.py +0 -0
  27. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/auth/__init__.py +0 -0
  28. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/auth/auth_util.py +0 -0
  29. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/auth/helpers/blacklist_retry.py +0 -0
  30. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/auth/my_skoda_session.py +0 -0
  31. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/auth/openid_session.py +0 -0
  32. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/auth/session_manager.py +0 -0
  33. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/auth/skoda_web_session.py +0 -0
  34. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/capability.py +0 -0
  35. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/charging.py +0 -0
  36. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/climatization.py +0 -0
  37. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/command_impl.py +0 -0
  38. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/error.py +0 -0
  39. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/ui/connector_ui.py +0 -0
  40. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/src/carconnectivity_connectors/skoda/vehicle.py +0 -0
  41. {carconnectivity_connector_skoda-0.4a7 → carconnectivity_connector_skoda-0.4a8}/test/integration_test/carConnectivity.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: carconnectivity-connector-skoda
3
- Version: 0.4a7
3
+ Version: 0.4a8
4
4
  Summary: CarConnectivity connector for Skoda services
5
5
  Author: Till Steinbach
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: carconnectivity-connector-skoda
3
- Version: 0.4a7
3
+ Version: 0.4a8
4
4
  Summary: CarConnectivity connector for Skoda services
5
5
  Author: Till Steinbach
6
6
  License: MIT License
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.4a7'
20
+ __version__ = version = '0.4a8'
21
21
  __version_tuple__ = version_tuple = (0, 4)
@@ -83,6 +83,8 @@ class Connector(BaseConnector):
83
83
 
84
84
  self.connection_state: EnumAttribute = EnumAttribute(name="connection_state", parent=self, value_type=ConnectionState,
85
85
  value=ConnectionState.DISCONNECTED, tags={'connector_custom'})
86
+ self.rest_connected: bool = False
87
+ self.mqtt_connected: bool = False
86
88
  self.interval: DurationAttribute = DurationAttribute(name="interval", parent=self, tags={'connector_custom'})
87
89
  self.interval.minimum = timedelta(seconds=180)
88
90
  self.interval._is_changeable = True # pylint: disable=protected-access
@@ -201,25 +203,43 @@ class Connector(BaseConnector):
201
203
  raise
202
204
  except TooManyRequestsError as err:
203
205
  LOG.error('Retrieval error during update. Too many requests from your account (%s). Will try again after 15 minutes', str(err))
206
+ self.connection_state._set_value(value=ConnectionState.ERROR) # pylint: disable=protected-access
207
+ self.rest_connected = False
204
208
  self._stop_event.wait(900)
205
209
  except RetrievalError as err:
206
210
  LOG.error('Retrieval error during update (%s). Will try again after configured interval of %ss', str(err), interval)
211
+ self.connection_state._set_value(value=ConnectionState.ERROR) # pylint: disable=protected-access
212
+ self.rest_connected = False
207
213
  self._stop_event.wait(interval)
208
214
  except APIError as err:
209
215
  LOG.error('API error during update (%s). Will try again after configured interval of %ss', str(err), interval)
216
+ self.connection_state._set_value(value=ConnectionState.ERROR) # pylint: disable=protected-access
217
+ self.rest_connected = False
210
218
  self._stop_event.wait(interval)
211
219
  except APICompatibilityError as err:
212
220
  LOG.error('API compatability error during update (%s). Will try again after configured interval of %ss', str(err), interval)
221
+ self.connection_state._set_value(value=ConnectionState.ERROR) # pylint: disable=protected-access
222
+ self.rest_connected = False
213
223
  self._stop_event.wait(interval)
214
224
  except TemporaryAuthenticationError as err:
215
225
  LOG.error('Temporary authentification error during update (%s). Will try again after configured interval of %ss', str(err), interval)
226
+ self.connection_state._set_value(value=ConnectionState.ERROR) # pylint: disable=protected-access
227
+ self.rest_connected = False
216
228
  self._stop_event.wait(interval)
217
229
  except Exception as err:
218
230
  LOG.critical('Critical error during update: %s', traceback.format_exc())
231
+ self.connection_state._set_value(value=ConnectionState.ERROR) # pylint: disable=protected-access
232
+ self.rest_connected = False
219
233
  self.healthy._set_value(value=False) # pylint: disable=protected-access
220
234
  raise err
221
235
  else:
236
+ self.rest_connected = True
237
+ if self.mqtt_connected:
238
+ self.connection_state._set_value(value=ConnectionState.CONNECTED) # pylint: disable=protected-access
222
239
  self._stop_event.wait(interval)
240
+ # When leaving the loop, set the connection state to disconnected
241
+ self.connection_state._set_value(value=ConnectionState.DISCONNECTED) # pylint: disable=protected-access
242
+ self.rest_connected = False
223
243
 
224
244
  def persist(self) -> None:
225
245
  """
@@ -22,6 +22,7 @@ from carconnectivity.util import robust_time_parse, log_extra_keys
22
22
  from carconnectivity.charging import Charging
23
23
  from carconnectivity.climatization import Climatization
24
24
  from carconnectivity.units import Speed, Power, Length
25
+ from carconnectivity.enums import ConnectionState
25
26
 
26
27
  from carconnectivity_connectors.skoda.vehicle import SkodaVehicle, SkodaElectricVehicle
27
28
  from carconnectivity_connectors.skoda.charging import SkodaCharging, mapping_skoda_charging_state
@@ -77,6 +78,7 @@ class SkodaMQTTClient(Client): # pylint: disable=too-many-instance-attributes
77
78
  Returns:
78
79
  MQTTErrorCode: The result of the connection attempt.
79
80
  """
81
+ self._skoda_connector.connection_state._set_value(value=ConnectionState.CONNECTING) # pylint: disable=protected-access
80
82
  return super().connect(*args, host='mqtt.messagehub.de', port=8883, keepalive=60, **kwargs)
81
83
 
82
84
  def _on_pre_connect_callback(self, client: Client, userdata: Any) -> None:
@@ -312,7 +314,9 @@ class SkodaMQTTClient(Client): # pylint: disable=too-many-instance-attributes
312
314
  # reason_code 0 means success
313
315
  if reason_code == 0:
314
316
  LOG.info('Connected to Skoda MQTT server')
315
- self._skoda_connector.connected._set_value(value=True) # pylint: disable=protected-access
317
+ if self._skoda_connector.rest_connected:
318
+ self._skoda_connector.connection_state._set_value(value=ConnectionState.CONNECTED) # pylint: disable=protected-access
319
+ self._skoda_connector.mqtt_connected = True
316
320
  observer_flags: Observable.ObserverEvent = Observable.ObserverEvent.ENABLED | Observable.ObserverEvent.DISABLED
317
321
  self._skoda_connector.car_connectivity.garage.add_observer(observer=self._on_carconnectivity_vehicle_enabled,
318
322
  flag=observer_flags,
@@ -385,7 +389,8 @@ class SkodaMQTTClient(Client): # pylint: disable=too-many-instance-attributes
385
389
  del properties
386
390
  del flags
387
391
 
388
- self._skoda_connector.connected._set_value(value=False) # pylint: disable=protected-access
392
+ self._skoda_connector.connection_state._set_value(value=ConnectionState.DISCONNECTED) # pylint: disable=protected-access
393
+ self._skoda_connector.mqtt_connected = False
389
394
  self._skoda_connector.car_connectivity.garage.remove_observer(observer=self._on_carconnectivity_vehicle_enabled)
390
395
 
391
396
  self.subscribed_topics.clear()