Skip to content

Commit ca10221

Browse files
authored
Merge pull request #1318 from custom-components/jalee_uuid_f51c
Add new uuid for jaalee
2 parents 6900937 + f88a9d9 commit ca10221

File tree

3 files changed

+21
-3
lines changed

3 files changed

+21
-3
lines changed

custom_components/ble_monitor/ble_parser/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ def parse_advertisement(
226226
# UUID16 = Relsib
227227
sensor_data = parse_relsib(self, service_data, mac)
228228
break
229-
elif uuid16 == 0xF525:
229+
elif uuid16 in [0xF51C, 0xF525]:
230230
# UUID16 = Jaalee
231231
sensor_data = parse_jaalee(self, service_data, mac)
232232
break

custom_components/ble_monitor/ble_parser/jaalee.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def parse_jaalee(self, data: bytes, mac: str):
2626
"battery": batt
2727
}
2828
)
29-
elif msg_length == 15:
29+
elif msg_length in [15, 16]:
3030
device_type = "JHT"
3131
batt = data[4]
3232
jaalee_mac_reversed = data[5:11]
@@ -40,7 +40,7 @@ def parse_jaalee(self, data: bytes, mac: str):
4040
jaalee_mac,
4141
)
4242
return None
43-
(temp, humi) = unpack(">HH", data[11:])
43+
(temp, humi) = unpack(">HH", data[-4:])
4444
# data follows the iBeacon temperature and humidity definition
4545
temp = round(175 * temp / 65535 - 45, 2)
4646
humi = round(100 * humi / 65535, 2)

custom_components/ble_monitor/test/test_jaalee.py

+18
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,21 @@ def test_jaalee_jht_api_example(self):
5757
assert sensor_msg["humidity"] == 23.87
5858
assert sensor_msg["battery"] == 100
5959
assert sensor_msg["rssi"] == -41
60+
61+
def test_jaalee_jht_f51c(self):
62+
"""Test Jaalee parser for Jaalee JHT with UUID F51C."""
63+
data_string = "043E3F0201000065e6aa4cb0c8330201041BFF4C000215EBEFD08370A247C89837E7B5634DF525632E5535CC6403031CF50F161CF56465E6AA4CB0C801632E5535CC"
64+
data = bytes(bytearray.fromhex(data_string))
65+
# pylint: disable=unused-variable
66+
ble_parser = BleParser()
67+
sensor_msg, tracker_msg = ble_parser.parse_raw_data(data)
68+
69+
assert sensor_msg["firmware"] == "Jaalee"
70+
assert sensor_msg["type"] == "JHT"
71+
assert sensor_msg["mac"] == "C8B04CAAE665"
72+
assert sensor_msg["packet"] == "no packet id"
73+
assert sensor_msg["data"]
74+
assert sensor_msg["temperature"] == 22.8
75+
assert sensor_msg["humidity"] == 33.28
76+
assert sensor_msg["battery"] == 100
77+
assert sensor_msg["rssi"] == -52

0 commit comments

Comments
 (0)