casambi-bt-revamped 0.3.7.dev6__tar.gz → 0.3.7.dev8__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 (23) hide show
  1. {casambi_bt_revamped-0.3.7.dev6/src/casambi_bt_revamped.egg-info → casambi_bt_revamped-0.3.7.dev8}/PKG-INFO +1 -1
  2. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/setup.cfg +1 -1
  3. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_client.py +25 -19
  4. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8/src/casambi_bt_revamped.egg-info}/PKG-INFO +1 -1
  5. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/LICENSE +0 -0
  6. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/README.md +0 -0
  7. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/pyproject.toml +0 -0
  8. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/__init__.py +0 -0
  9. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_cache.py +0 -0
  10. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_casambi.py +0 -0
  11. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_constants.py +0 -0
  12. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_discover.py +0 -0
  13. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_encryption.py +0 -0
  14. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_keystore.py +0 -0
  15. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_network.py +0 -0
  16. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_operation.py +0 -0
  17. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/_unit.py +0 -0
  18. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/errors.py +0 -0
  19. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/CasambiBt/py.typed +0 -0
  20. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/casambi_bt_revamped.egg-info/SOURCES.txt +0 -0
  21. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/casambi_bt_revamped.egg-info/dependency_links.txt +0 -0
  22. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/src/casambi_bt_revamped.egg-info/requires.txt +0 -0
  23. {casambi_bt_revamped-0.3.7.dev6 → casambi_bt_revamped-0.3.7.dev8}/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.7.dev6
3
+ Version: 0.3.7.dev8
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.7.dev6
3
+ version = 0.3.7.dev8
4
4
  author = rankjie
5
5
  author_email = rankjie@gmail.com
6
6
  description = Enhanced Casambi Bluetooth client library with switch event support
@@ -574,21 +574,32 @@ class CasambiClient:
574
574
  # Process based on message type
575
575
  if message_type == 0x08 or message_type == 0x10: # Switch/button events
576
576
  switch_events_found += 1
577
- # Extract button ID - try both upper and lower nibbles
578
- button_lower = parameter & 0x0F
579
- button_upper = (parameter >> 4) & 0x0F
580
-
581
- # Use upper 4 bits if lower 4 bits are 0, otherwise use lower 4 bits
582
- if button_lower == 0 and button_upper != 0:
583
- button = button_upper
577
+
578
+ # Button extraction differs between type 0x08 and type 0x10
579
+ if message_type == 0x08:
580
+ # For type 0x08, the lower nibble is a code that maps to physical button id
581
+ # Using formula: ((code + 2) % 4) + 1 based on reverse engineering findings
582
+ code_nibble = parameter & 0x0F
583
+ button = ((code_nibble + 2) % 4) + 1
584
584
  self._logger.debug(
585
- f"EVO button extraction: parameter=0x{parameter:02x}, using upper nibble, button={button}"
585
+ f"Type 0x08 button extraction: parameter=0x{parameter:02x}, code={code_nibble}, button={button}"
586
586
  )
587
587
  else:
588
- button = button_lower
589
- self._logger.debug(
590
- f"EVO button extraction: parameter=0x{parameter:02x}, using lower nibble, button={button}"
591
- )
588
+ # For type 0x10, use existing logic
589
+ button_lower = parameter & 0x0F
590
+ button_upper = (parameter >> 4) & 0x0F
591
+
592
+ # Use upper 4 bits if lower 4 bits are 0, otherwise use lower 4 bits
593
+ if button_lower == 0 and button_upper != 0:
594
+ button = button_upper
595
+ self._logger.debug(
596
+ f"Type 0x10 button extraction: parameter=0x{parameter:02x}, using upper nibble, button={button}"
597
+ )
598
+ else:
599
+ button = button_lower
600
+ self._logger.debug(
601
+ f"Type 0x10 button extraction: parameter=0x{parameter:02x}, using lower nibble, button={button}"
602
+ )
592
603
 
593
604
  # For type 0x10 messages, we need to pass additional data beyond the declared payload
594
605
  if message_type == 0x10:
@@ -736,18 +747,13 @@ class CasambiClient:
736
747
  f"action={action_display} ({event_string}), flags=0x{flags:02x}"
737
748
  )
738
749
 
739
- # Log detailed info about type 0x08 messages before filtering
750
+ # Log detailed info about type 0x08 messages (now processed, not filtered)
740
751
  if message_type == 0x08:
741
752
  self._logger.info(
742
- f"[CASAMBI_TYPE08_FILTERED] Type 0x08 event detected: button={button}, unit_id={unit_id}, "
753
+ f"[CASAMBI_TYPE08_PROCESSED] Type 0x08 event processed: button={button}, unit_id={unit_id}, "
743
754
  f"action={action_display}, event={event_string}, flags=0x{flags:02x}, "
744
755
  f"payload={hexlify(payload).decode()}, extra_data={hexlify(extra_data).decode() if extra_data else 'none'}"
745
756
  )
746
- self._logger.debug(
747
- f"Filtering out type 0x08 event: button={button}, unit_id={unit_id}, "
748
- f"action={action_display}, flags=0x{flags:02x}"
749
- )
750
- return
751
757
 
752
758
  self._dataCallback(
753
759
  IncommingPacketType.SwitchEvent,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: casambi-bt-revamped
3
- Version: 0.3.7.dev6
3
+ Version: 0.3.7.dev8
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