casambi-bt-revamped 0.3.12.dev16__tar.gz → 0.4.0__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.dev16/src/casambi_bt_revamped.egg-info → casambi_bt_revamped-0.4.0}/PKG-INFO +1 -1
  2. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/setup.cfg +1 -1
  3. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_client.py +13 -13
  4. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_version.py +1 -1
  5. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0/src/casambi_bt_revamped.egg-info}/PKG-INFO +1 -1
  6. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/LICENSE +0 -0
  7. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/README.md +0 -0
  8. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/pyproject.toml +0 -0
  9. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/__init__.py +0 -0
  10. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_cache.py +0 -0
  11. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_casambi.py +0 -0
  12. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_classic_crypto.py +0 -0
  13. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_constants.py +0 -0
  14. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_discover.py +0 -0
  15. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_encryption.py +0 -0
  16. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_invocation.py +0 -0
  17. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_keystore.py +0 -0
  18. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_network.py +0 -0
  19. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_operation.py +0 -0
  20. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_switch_events.py +0 -0
  21. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/_unit.py +0 -0
  22. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/errors.py +0 -0
  23. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/CasambiBt/py.typed +0 -0
  24. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/casambi_bt_revamped.egg-info/SOURCES.txt +0 -0
  25. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/casambi_bt_revamped.egg-info/dependency_links.txt +0 -0
  26. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/casambi_bt_revamped.egg-info/requires.txt +0 -0
  27. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/src/casambi_bt_revamped.egg-info/top_level.txt +0 -0
  28. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/tests/test_classic_protocol.py +0 -0
  29. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/tests/test_legacy_protocol_handling.py +0 -0
  30. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/tests/test_switch_event_logs.py +0 -0
  31. {casambi_bt_revamped-0.3.12.dev16 → casambi_bt_revamped-0.4.0}/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.dev16
3
+ Version: 0.4.0
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.dev16
3
+ version = 0.4.0
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
@@ -1386,7 +1386,7 @@ class CasambiClient:
1386
1386
  # Android n0():998 uses WRITE_TYPE_NO_RESPONSE for classic.
1387
1387
  response=False,
1388
1388
  )
1389
- self._logger.warning("[CASAMBI_CLASSIC_INIT] version sent successfully")
1389
+ self._logger.debug("[CASAMBI_CLASSIC_INIT] version sent successfully")
1390
1390
  except Exception:
1391
1391
  self._logger.warning(
1392
1392
  "[CASAMBI_CLASSIC_INIT] version send failed (continuing with time-sync)",
@@ -1486,7 +1486,7 @@ class CasambiClient:
1486
1486
  # Android X():314 uses WRITE_TYPE_DEFAULT (2) = with-response.
1487
1487
  response=True,
1488
1488
  )
1489
- self._logger.warning("[CASAMBI_CLASSIC_INIT] time-sync sent successfully")
1489
+ self._logger.debug("[CASAMBI_CLASSIC_INIT] time-sync sent successfully")
1490
1490
  except Exception:
1491
1491
  self._logger.warning(
1492
1492
  "[CASAMBI_CLASSIC_INIT] time-sync send failed",
@@ -1601,7 +1601,7 @@ class CasambiClient:
1601
1601
  except Exception:
1602
1602
  handle_uuid = "unknown"
1603
1603
 
1604
- self._logger.warning(
1604
+ self._logger.debug(
1605
1605
  "[CLASSIC_DIAG_RX] #%d handle=%s len=%d hex=%s",
1606
1606
  self._classicRxFrames,
1607
1607
  handle_uuid,
@@ -1618,7 +1618,7 @@ class CasambiClient:
1618
1618
 
1619
1619
  if self._classicConnHash8 is None:
1620
1620
  if self._logLimiter.allow("classic_rx_no_hash", burst=5, window_s=60.0):
1621
- self._logger.warning("[CASAMBI_CLASSIC_RX] missing_connection_hash len=%d", len(raw))
1621
+ self._logger.debug("[CASAMBI_CLASSIC_RX] missing_connection_hash len=%d", len(raw))
1622
1622
  return
1623
1623
 
1624
1624
  visitor_key = self._network.classicVisitorKey()
@@ -1823,7 +1823,7 @@ class CasambiClient:
1823
1823
  if not parsed_candidates:
1824
1824
  self._classicRxParseFail += 1
1825
1825
  if self._logLimiter.allow("classic_rx_parse_fail", burst=5, window_s=60.0):
1826
- self._logger.warning(
1826
+ self._logger.debug(
1827
1827
  "[CASAMBI_CLASSIC_RX_PARSE_FAIL] len=%d prefix=%s",
1828
1828
  len(raw),
1829
1829
  b2a(raw[: min(len(raw), 32)]),
@@ -1847,7 +1847,7 @@ class CasambiClient:
1847
1847
  if best["score"] == 0:
1848
1848
  self._classicRxParseFail += 1
1849
1849
  if self._logLimiter.allow("classic_rx_unplausible", burst=5, window_s=60.0):
1850
- self._logger.warning(
1850
+ self._logger.debug(
1851
1851
  "[CASAMBI_CLASSIC_RX_UNPLAUSIBLE] preferred=%s len=%d prefix=%s",
1852
1852
  preferred,
1853
1853
  len(raw),
@@ -1881,7 +1881,7 @@ class CasambiClient:
1881
1881
  self._classicRxHistory = self._classicRxHistory[-self._classicDiagMaxHistory:]
1882
1882
 
1883
1883
  # Enhanced RX parse result log
1884
- self._logger.warning(
1884
+ self._logger.debug(
1885
1885
  "[CLASSIC_DIAG_RX_PARSE] mode=%s verified=%s auth=%s sig_len=%d seq=%s score=%d payload_len=%d",
1886
1886
  best["mode"],
1887
1887
  verified,
@@ -1897,7 +1897,7 @@ class CasambiClient:
1897
1897
  if best["mode"] != preferred and best["mode"] in ("conformant", "legacy"):
1898
1898
  # Only switch if we got a stronger signal (verified or plausible payload with fewer assumptions).
1899
1899
  if best["score"] >= 50 and self._logLimiter.allow("classic_rx_mode_switch", burst=3, window_s=3600.0):
1900
- self._logger.warning(
1900
+ self._logger.debug(
1901
1901
  "[CASAMBI_CLASSIC_RX_MODE] switching %s -> %s (score=%d verified=%s sig_len=%d)",
1902
1902
  preferred,
1903
1903
  best["mode"],
@@ -1909,7 +1909,7 @@ class CasambiClient:
1909
1909
 
1910
1910
  # Sample RX logs (limited) + periodic stats (limited).
1911
1911
  if self._logLimiter.allow("classic_rx_sample", burst=10, window_s=60.0):
1912
- self._logger.warning(
1912
+ self._logger.debug(
1913
1913
  "[CASAMBI_CLASSIC_RX] header=%s verified=%s auth=%s sig_len=%d seq=%s payload_prefix=%s",
1914
1914
  best["mode"],
1915
1915
  verified,
@@ -1923,7 +1923,7 @@ class CasambiClient:
1923
1923
  "classic_rx_stats", burst=2, window_s=60.0
1924
1924
  ):
1925
1925
  self._classicRxLastStatsTs = now
1926
- self._logger.warning(
1926
+ self._logger.debug(
1927
1927
  "[CASAMBI_CLASSIC_RX_STATS] frames=%d verified=%d unverifiable=%d parse_fail=%d header=%s "
1928
1928
  "type6=%d type7=%d type9=%d cmdstream=%d unknown=%d classic_states=%d",
1929
1929
  self._classicRxFrames,
@@ -2039,7 +2039,7 @@ class CasambiClient:
2039
2039
 
2040
2040
  if self._classicRxKindSamples.get(kind, 0) < 3:
2041
2041
  self._classicRxKindSamples[kind] = self._classicRxKindSamples.get(kind, 0) + 1
2042
- self._logger.warning(
2042
+ self._logger.debug(
2043
2043
  "[CASAMBI_CLASSIC_RX_KIND] kind=%s header=%s verified=%s sig_len=%d seq=%s payload_prefix=%s",
2044
2044
  kind,
2045
2045
  best["mode"],
@@ -2072,7 +2072,7 @@ class CasambiClient:
2072
2072
 
2073
2073
  # Log full payload for the first 10 Classic payloads regardless of type.
2074
2074
  if self._classicRxClassicStates < 10:
2075
- self._logger.warning(
2075
+ self._logger.debug(
2076
2076
  "[CASAMBI_CLASSIC_DISPATCH] #%d type_byte=%d len=%d hex=%s",
2077
2077
  self._classicRxClassicStates,
2078
2078
  first_byte,
@@ -2160,7 +2160,7 @@ class CasambiClient:
2160
2160
 
2161
2161
  # Log the first few parsed records at WARNING level for tester visibility.
2162
2162
  if records_parsed <= 10 or self._logger.isEnabledFor(logging.DEBUG):
2163
- self._logger.warning(
2163
+ self._logger.debug(
2164
2164
  "[CASAMBI_CLASSIC_STATE_PARSED] unit=%d flags=0x%02x state_len=%d "
2165
2165
  "online=%s extra1=%d extra2=%d state=%s",
2166
2166
  unit_id,
@@ -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.dev16"
10
+ __version__ = "0.4.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: casambi-bt-revamped
3
- Version: 0.3.12.dev16
3
+ Version: 0.4.0
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