casambi-bt-revamped 0.3.12.dev6__tar.gz → 0.3.12.dev7__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 (31) hide show
  1. {casambi_bt_revamped-0.3.12.dev6/src/casambi_bt_revamped.egg-info → casambi_bt_revamped-0.3.12.dev7}/PKG-INFO +1 -1
  2. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/setup.cfg +1 -1
  3. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_network.py +28 -8
  4. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_version.py +1 -1
  5. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7/src/casambi_bt_revamped.egg-info}/PKG-INFO +1 -1
  6. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/LICENSE +0 -0
  7. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/README.md +0 -0
  8. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/pyproject.toml +0 -0
  9. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/__init__.py +0 -0
  10. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_cache.py +0 -0
  11. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_casambi.py +0 -0
  12. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_classic_crypto.py +0 -0
  13. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_client.py +0 -0
  14. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_constants.py +0 -0
  15. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_discover.py +0 -0
  16. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_encryption.py +0 -0
  17. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_invocation.py +0 -0
  18. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_keystore.py +0 -0
  19. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_operation.py +0 -0
  20. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_switch_events.py +0 -0
  21. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/_unit.py +0 -0
  22. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/errors.py +0 -0
  23. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/CasambiBt/py.typed +0 -0
  24. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/casambi_bt_revamped.egg-info/SOURCES.txt +0 -0
  25. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/casambi_bt_revamped.egg-info/dependency_links.txt +0 -0
  26. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/casambi_bt_revamped.egg-info/requires.txt +0 -0
  27. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/src/casambi_bt_revamped.egg-info/top_level.txt +0 -0
  28. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/tests/test_classic_protocol.py +0 -0
  29. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/tests/test_legacy_protocol_handling.py +0 -0
  30. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/tests/test_switch_event_logs.py +0 -0
  31. {casambi_bt_revamped-0.3.12.dev6 → casambi_bt_revamped-0.3.12.dev7}/tests/test_unit_state_logs.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: casambi-bt-revamped
3
- Version: 0.3.12.dev6
3
+ Version: 0.3.12.dev7
4
4
  Summary: Forked Casambi Bluetooth client library with switch event support, use original if no special need. https://github.com/lkempf/casambi-bt
5
5
  Home-page: https://github.com/rankjie/casambi-bt
6
6
  Author: rankjie
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = casambi-bt-revamped
3
- version = 0.3.12.dev6
3
+ version = 0.3.12.dev7
4
4
  author = rankjie
5
5
  author_email = rankjie@gmail.com
6
6
  description = Forked Casambi Bluetooth client library with switch event support, use original if no special need. https://github.com/lkempf/casambi-bt
@@ -262,16 +262,16 @@ class Network:
262
262
  getNetworkUrl = f"https://api.casambi.com/network/{self._id}/"
263
263
 
264
264
  try:
265
+ payload = {
266
+ "formatVersion": 1,
267
+ "deviceName": DEVICE_NAME,
268
+ "revision": self._networkRevision,
269
+ }
270
+
265
271
  # **SECURITY**: Do not set session header for client! This could leak the session with external clients.
266
272
  res = await self._httpClient.put(
267
273
  getNetworkUrl,
268
- json={
269
- "formatVersion": 1,
270
- "token": self._token,
271
- "deviceName": DEVICE_NAME,
272
- "clientInfo": self._clientInfo,
273
- "revision": self._networkRevision,
274
- },
274
+ json=payload,
275
275
  headers={"X-Casambi-Session": self._session.session}, # type: ignore[union-attr]
276
276
  )
277
277
 
@@ -284,8 +284,28 @@ class Network:
284
284
  )
285
285
  await self._cache.invalidateCache()
286
286
 
287
+ if res.status_code == httpx.codes.BAD_REQUEST:
288
+ # Some backend variants may reject the minimal update payload.
289
+ # Retry once with Android-like fields (token/clientInfo) for diagnostics/testing.
290
+ self._logger.warning(
291
+ "[CASAMBI_CLOUD_UPDATE_RETRY] status=400 retry_with_token_clientInfo=true body_prefix=%r",
292
+ (res.text or "")[:200],
293
+ )
294
+ payload2 = dict(payload)
295
+ payload2["token"] = self._token
296
+ payload2["clientInfo"] = self._clientInfo
297
+ res = await self._httpClient.put(
298
+ getNetworkUrl,
299
+ json=payload2,
300
+ headers={"X-Casambi-Session": self._session.session}, # type: ignore[union-attr]
301
+ )
302
+
287
303
  if res.status_code != httpx.codes.OK:
288
- self._logger.error(f"Update failed: {res.status_code}\n{res.text}")
304
+ self._logger.error(
305
+ "Update failed: %s body_prefix=%r",
306
+ res.status_code,
307
+ (res.text or "")[:500],
308
+ )
289
309
  raise NetworkUpdateError("Could not update network!")
290
310
 
291
311
  self._logger.debug(f"Network: {res.text}")
@@ -7,4 +7,4 @@ Avoid using importlib.metadata in hot paths by providing a static version string
7
7
  __all__ = ["__version__"]
8
8
 
9
9
  # NOTE: Must match `casambi-bt/setup.cfg` [metadata] version.
10
- __version__ = "0.3.12.dev6"
10
+ __version__ = "0.3.12.dev7"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: casambi-bt-revamped
3
- Version: 0.3.12.dev6
3
+ Version: 0.3.12.dev7
4
4
  Summary: Forked Casambi Bluetooth client library with switch event support, use original if no special need. https://github.com/lkempf/casambi-bt
5
5
  Home-page: https://github.com/rankjie/casambi-bt
6
6
  Author: rankjie