Skip to content

Commit

Permalink
Merge pull request #1105 from custom-components/jaalee_fix
Browse files Browse the repository at this point in the history
fix jaalee
  • Loading branch information
Ernst79 authored Jan 17, 2023
2 parents e80d1f9 + f5a2165 commit 16394d0
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 12 deletions.
7 changes: 3 additions & 4 deletions custom_components/ble_monitor/ble_parser/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,10 +209,9 @@ def parse_advertisement(
sensor_data = parse_relsib(self, service_data, mac, rssi)
break
elif uuid16 == 0xF525:
# UUID16 = Jaalee (also contains iBeacon manufacturer specific data)
if man_spec_data_list:
sensor_data = parse_jaalee(self, service_data, mac, rssi)
break
# UUID16 = Jaalee
sensor_data = parse_jaalee(self, service_data, mac, rssi)
break
elif uuid16 == 0xFCD2:
# UUID16 = Allterco Robotics ltd (BTHome V2)
sensor_data = parse_bthome(self, service_data, uuid16, mac, rssi)
Expand Down
3 changes: 0 additions & 3 deletions custom_components/ble_monitor/ble_parser/jaalee.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@

def parse_jaalee(self, data, source_mac, rssi):
"""Jaalee parser"""
if not data:
# skip all messages with only iBeacon data, as the UUID is not unique
return None
msg_length = len(data)
firmware = "Jaalee"
result = {"firmware": firmware}
Expand Down
21 changes: 16 additions & 5 deletions custom_components/ble_monitor/test/test_jaalee.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,28 @@ class TestJaalee:
"""Tests for the Jaalee parser"""
def test_jaalee_jht(self):
"""Test Tilt parser for Jaalee JHT."""
data_string = "043e4a02010000138581ff9fd03e0201041bff4c000215ebefd08370a247c89837e7b5634df5256c6ca36ecb60030325f50e1625f560138581ff9fd06c6ca36e000000000000000000000000cc"
data_string = "043e22020104014b1ecdb4f3d216020a00030325f50e1625f5644b1ecdb4f3d27420591ad9"
data = bytes(bytearray.fromhex(data_string))
# pylint: disable=unused-variable
ble_parser = BleParser()
sensor_msg, tracker_msg = ble_parser.parse_raw_data(data)

assert sensor_msg["firmware"] == "Jaalee"
assert sensor_msg["type"] == "JHT"
assert sensor_msg["mac"] == "D09FFF818513"
assert sensor_msg["mac"] == "D2F3B4CD1E4B"
assert sensor_msg["packet"] == "no packet id"
assert sensor_msg["data"]
assert sensor_msg["temperature"] == 27.57
assert sensor_msg["humidity"] == 73.8
assert sensor_msg["rssi"] == -52
assert sensor_msg["temperature"] == 32.86
assert sensor_msg["humidity"] == 37.51
assert sensor_msg["battery"] == 100
assert sensor_msg["rssi"] == -39

def test_jaalee_jht_skipping_ibeacon(self):
"""Test Tilt parser for Jaalee JHT skipping iBeacon messages (no unique uuid)."""
data_string = "043e2b020100014b1ecdb4f3d21f0201041bff4c000215ebefd08370a247c89837e7b5634df5257420591acb64d7"
data = bytes(bytearray.fromhex(data_string))
ble_parser = BleParser()
sensor_msg, tracker_msg = ble_parser.parse_raw_data(data)

assert sensor_msg is None
assert tracker_msg is None

0 comments on commit 16394d0

Please sign in to comment.