homematicip 2.0.4.post1.dev2__tar.gz → 2.0.4.post1.dev3__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 (109) hide show
  1. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/PKG-INFO +1 -1
  2. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/_version.py +2 -2
  3. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/websocket_handler.py +6 -2
  4. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip.egg-info/PKG-INFO +1 -1
  5. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/.gitattributes +0 -0
  6. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/.github/copilot-instructions.md +0 -0
  7. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/.github/workflows/build-docs.yml +0 -0
  8. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/.github/workflows/codeql-analysis.yml +0 -0
  9. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/.github/workflows/publish.yml +0 -0
  10. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/.github/workflows/test-on-push.yml +0 -0
  11. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/.gitignore +0 -0
  12. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/CHANGELOG.md +0 -0
  13. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/CODE_OF_CONDUCT.md +0 -0
  14. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/LICENSE.txt +0 -0
  15. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/MANIFEST.in +0 -0
  16. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/README.md +0 -0
  17. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/codecov.yml +0 -0
  18. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/Makefile +0 -0
  19. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/make.bat +0 -0
  20. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/modules.rst +0 -0
  21. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/source/_static/.gitkeep +0 -0
  22. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/source/api_introduction.rst +0 -0
  23. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/source/conf.py +0 -0
  24. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/source/gettingstarted.rst +0 -0
  25. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/source/homematicip.aio.rst +0 -0
  26. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/source/homematicip.base.rst +0 -0
  27. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/source/homematicip.rst +0 -0
  28. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/source/index.rst +0 -0
  29. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/docs/source/modules.rst +0 -0
  30. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/homematicip_demo/__init__.py +0 -0
  31. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/homematicip_demo/client.pem +0 -0
  32. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/homematicip_demo/fake_cloud_server.py +0 -0
  33. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/homematicip_demo/helper.py +0 -0
  34. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/homematicip_demo/json_data/home.json +0 -0
  35. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/homematicip_demo/json_data/security_journal.json +0 -0
  36. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/homematicip_demo/json_data/unknown_types.json +0 -0
  37. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/homematicip_demo/server.key +0 -0
  38. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/homematicip_demo/server.pem +0 -0
  39. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/pyproject.toml +0 -0
  40. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/readthedocs.yaml +0 -0
  41. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/requirements.txt +0 -0
  42. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/requirements_dev.txt +0 -0
  43. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/requirements_docs.txt +0 -0
  44. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/run.py +0 -0
  45. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/setup.cfg +0 -0
  46. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/setup.py +0 -0
  47. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/EventHook.py +0 -0
  48. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/HomeMaticIPObject.py +0 -0
  49. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/__init__.py +0 -0
  50. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/__main__.py +0 -0
  51. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/access_point_update_state.py +0 -0
  52. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/async_home.py +0 -0
  53. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/auth.py +0 -0
  54. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/base/__init__.py +0 -0
  55. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/base/channel_event.py +0 -0
  56. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/base/constants.py +0 -0
  57. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/base/enums.py +0 -0
  58. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/base/functionalChannels.py +0 -0
  59. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/base/helpers.py +0 -0
  60. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/base/homematicip_object.py +0 -0
  61. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/class_maps.py +0 -0
  62. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/cli/hmip_cli.py +0 -0
  63. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/cli/hmip_generate_auth_token.py +0 -0
  64. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/client.py +0 -0
  65. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/__init__.py +0 -0
  66. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/buckets.py +0 -0
  67. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/client_characteristics_builder.py +0 -0
  68. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/client_token_builder.py +0 -0
  69. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/connection_context.py +0 -0
  70. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/connection_factory.py +0 -0
  71. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/connection_url_resolver.py +0 -0
  72. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/rate_limited_rest_connection.py +0 -0
  73. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/connection/rest_connection.py +0 -0
  74. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/device.py +0 -0
  75. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/exceptions/__init__.py +0 -0
  76. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/exceptions/connection_exceptions.py +0 -0
  77. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/functionalHomes.py +0 -0
  78. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/group.py +0 -0
  79. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/home.py +0 -0
  80. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/location.py +0 -0
  81. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/oauth_otk.py +0 -0
  82. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/rule.py +0 -0
  83. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/securityEvent.py +0 -0
  84. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip/weather.py +0 -0
  85. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip.egg-info/SOURCES.txt +0 -0
  86. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip.egg-info/dependency_links.txt +0 -0
  87. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip.egg-info/entry_points.txt +0 -0
  88. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip.egg-info/requires.txt +0 -0
  89. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/src/homematicip.egg-info/top_level.txt +0 -0
  90. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/test.py +0 -0
  91. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/test_aio.py +0 -0
  92. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/conftest.py +0 -0
  93. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/connection/test_buckets.py +0 -0
  94. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/connection/test_client_characteristics_builder.py +0 -0
  95. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/connection/test_connection_context.py +0 -0
  96. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/connection/test_connection_url_resolver.py +0 -0
  97. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/connection/test_rate_limited_rest_connection.py +0 -0
  98. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/connection/test_rest_connection.py +0 -0
  99. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/fake_hmip_server.py +0 -0
  100. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_auth.py +0 -0
  101. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_config.py +0 -0
  102. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_devices.py +0 -0
  103. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_fake_cloud.py +0 -0
  104. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_functional_channels.py +0 -0
  105. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_groups.py +0 -0
  106. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_hmip_cli.py +0 -0
  107. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_home.py +0 -0
  108. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_misc.py +0 -0
  109. {homematicip-2.0.4.post1.dev2 → homematicip-2.0.4.post1.dev3}/tests/test_websocket.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: homematicip
3
- Version: 2.0.4.post1.dev2
3
+ Version: 2.0.4.post1.dev3
4
4
  Summary: An API for the homematicip cloud
5
5
  Author-email: Thomas Hahn <homematicip-rest-api@outlook.com>
6
6
  License: GPL-3.0-or-later
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '2.0.4.post1.dev2'
21
- __version_tuple__ = version_tuple = (2, 0, 4, 'post1', 'dev2')
20
+ __version__ = version = '2.0.4.post1.dev3'
21
+ __version_tuple__ = version_tuple = (2, 0, 4, 'post1', 'dev3')
@@ -17,6 +17,7 @@ class WebsocketHandler:
17
17
  """
18
18
 
19
19
  def __init__(self):
20
+ self.INITIAL_BACKOFF = 8
20
21
  self.url = None
21
22
  self._session = None
22
23
  self._ws = None
@@ -52,7 +53,7 @@ class WebsocketHandler:
52
53
  LOGGER.error(f"Error in handler '{handler_name}': {e}", exc_info=True)
53
54
 
54
55
  async def _connect(self, context: ConnectionContext):
55
- backoff = 1
56
+ backoff = self.INITIAL_BACKOFF
56
57
  max_backoff = 1800
57
58
  while not self._stop_event.is_set():
58
59
  try:
@@ -71,9 +72,10 @@ class WebsocketHandler:
71
72
  )
72
73
  LOGGER.info(f"WebSocket connection established to {context.websocket_url}.")
73
74
  await self._call_handlers(self._on_connected_handler)
74
- backoff = 1
75
+ backoff = self.INITIAL_BACKOFF
75
76
  await self._listen()
76
77
  except Exception as e:
78
+ await self._call_handlers(self._on_disconnected_handler)
77
79
  LOGGER.warning(f"Websocket lost connection: {e}. Retry in {backoff:.1f}s.")
78
80
  await asyncio.sleep(backoff)
79
81
  backoff = min(backoff * 2, max_backoff)
@@ -99,6 +101,8 @@ class WebsocketHandler:
99
101
  await self._session.close()
100
102
  self._session = None
101
103
 
104
+ await self._call_handlers(self._on_disconnected_handler)
105
+
102
106
  async def start(self, context: ConnectionContext):
103
107
  async with self._task_lock:
104
108
  LOGGER.info("Start websocket client...")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: homematicip
3
- Version: 2.0.4.post1.dev2
3
+ Version: 2.0.4.post1.dev3
4
4
  Summary: An API for the homematicip cloud
5
5
  Author-email: Thomas Hahn <homematicip-rest-api@outlook.com>
6
6
  License: GPL-3.0-or-later