casambi-bt-revamped 0.3.6.dev16__tar.gz → 0.3.6.dev19__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 (24) hide show
  1. {casambi_bt_revamped-0.3.6.dev16/src/casambi_bt_revamped.egg-info → casambi_bt_revamped-0.3.6.dev19}/PKG-INFO +1 -1
  2. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/setup.cfg +1 -1
  3. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_client.py +14 -9
  4. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19/src/casambi_bt_revamped.egg-info}/PKG-INFO +1 -1
  5. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/LICENSE +0 -0
  6. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/README.md +0 -0
  7. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/pyproject.toml +0 -0
  8. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/__init__.py +0 -0
  9. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_cache.py +0 -0
  10. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_casambi.py +0 -0
  11. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_client_android_parser.py +0 -0
  12. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_constants.py +0 -0
  13. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_discover.py +0 -0
  14. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_encryption.py +0 -0
  15. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_keystore.py +0 -0
  16. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_network.py +0 -0
  17. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_operation.py +0 -0
  18. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/_unit.py +0 -0
  19. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/errors.py +0 -0
  20. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/CasambiBt/py.typed +0 -0
  21. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/casambi_bt_revamped.egg-info/SOURCES.txt +0 -0
  22. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/casambi_bt_revamped.egg-info/dependency_links.txt +0 -0
  23. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/casambi_bt_revamped.egg-info/requires.txt +0 -0
  24. {casambi_bt_revamped-0.3.6.dev16 → casambi_bt_revamped-0.3.6.dev19}/src/casambi_bt_revamped.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: casambi-bt-revamped
3
- Version: 0.3.6.dev16
3
+ Version: 0.3.6.dev19
4
4
  Summary: Enhanced Casambi Bluetooth client library with switch event support
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.6.dev16
3
+ version = 0.3.6.dev19
4
4
  author = rankjie
5
5
  author_email = rankjie@gmail.com
6
6
  description = Enhanced Casambi Bluetooth client library with switch event support
@@ -524,7 +524,7 @@ class CasambiClient:
524
524
  message_type = data[pos]
525
525
  flags = data[pos + 1]
526
526
  length = ((data[pos + 2] >> 4) & 15) + 1
527
- parameter = data[pos + 2] & 15
527
+ parameter = data[pos + 2] # Full byte, not just lower 4 bits
528
528
  pos += 3
529
529
 
530
530
  # Sanity check: message type should be reasonable
@@ -551,14 +551,11 @@ class CasambiClient:
551
551
  # Process based on message type
552
552
  if message_type == 0x08 or message_type == 0x10: # Switch/button events
553
553
  switch_events_found += 1
554
- # Extract button ID using Android-inspired approach
555
- # Android principle: button should be consistent for same physical button
556
- if len(payload) > 4:
557
- # Use payload[4] which is consistent across message types (0 for both)
558
- button = payload[4]
559
- else:
560
- # Fallback to parameter for short payloads
561
- button = parameter
554
+ # Extract button ID - parameter field contains the button ID
555
+ # For EVO firmware: parameter encodes button ID in lower 4 bits
556
+ # (0x40=button0, 0x41=button1, 0x42=button2, etc.)
557
+ button = parameter & 0x0F
558
+ self._logger.debug(f"EVO button extraction: parameter=0x{parameter:02x}, button={button}")
562
559
 
563
560
  # For type 0x10 messages, we need to pass additional data beyond the declared payload
564
561
  if message_type == 0x10:
@@ -691,6 +688,14 @@ class CasambiClient:
691
688
  controlling_unit = None
692
689
  # This is redundant since we already return early if unit_id_echo != unit_id
693
690
  # Removing to avoid confusion
691
+
692
+ # Filter out type 0x08 messages with button=0 (likely notifications)
693
+ if message_type == 0x08 and button == 0:
694
+ self._logger.debug(
695
+ f"Filtering out type 0x08 notification event: button={button}, unit_id={unit_id}, "
696
+ f"action={action_display}, flags=0x{flags:02x}"
697
+ )
698
+ return
694
699
 
695
700
  self._dataCallback(
696
701
  IncommingPacketType.SwitchEvent,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: casambi-bt-revamped
3
- Version: 0.3.6.dev16
3
+ Version: 0.3.6.dev19
4
4
  Summary: Enhanced Casambi Bluetooth client library with switch event support
5
5
  Home-page: https://github.com/rankjie/casambi-bt
6
6
  Author: rankjie