-
-
Notifications
You must be signed in to change notification settings - Fork 10
Description
Is your feature request related to a problem? Please describe.
Nope, only problem is missing device :)
Describe the solution you'd like
Help with understand this code and implement T902 model to here based on my sniffing and example-proof-of-concept working code.
Additional context
https://buythermopro.com/products/tp920-bluetooth-wireless-meat-thermometer
There is some init sequence, which I need to send without it T902 wont start sending data even notify is requested. Probably some auth? Do not know, just blindly send them as-sniffed-ones.
GATT UUIDs
# TP902 GATT UUIDs
SERVICE_UUID = "1086fff0-3343-4817-8bb2-b32206336ce8"
WRITE_UUID = "1086fff1-3343-4817-8bb2-b32206336ce8" # handle 0x0018
NOTIFY_UUID = "1086fff2-3343-4817-8bb2-b32206336ce8" # handle 0x001a
Init sequence, but really do not know what those data are
INIT_SEQUENCE = [
bytes.fromhex("01098a7a13b73ed68b67c2a0"), # This is only one needed, others will be some configs
# bytes.fromhex("410041"),
# bytes.fromhex("28040b685b8c86"),
]
Write registers (sniffed, guessed)
# bytes.fromhex("20010c2d"), # Probably settings of C/F unit
# bytes.fromhex("23060100ffffffff26"), # Write settings T1 alarm range / type (in this case disabled)
# bytes.fromhex("23060200ffffffff27"), # Write settings T2 alarm range / type (in this case disabled)
Read of alarm (guessed)
TX >> [24010126] cmd=0x24 len=1 data=01
RX << [2406018211970809660000000000510f0400392e] alarm_read ch1: RANGE(130) lo=80.9°C hi=119.7°C
TX >> [24010227] cmd=0x24 len=1 data=02
RX << [2406020a074000007d0000000000510f0400be3a] alarm_read ch2: TARGET(10) target=74.0°C
Already have parsed some data (battery is just guess, rest hex I do not know what they are)
Notify temperature, every 1-2 seconds
300f4c0c0009991007ffffffffffffffff480120 | bat=76% T1=99.9°C T2=100.7°C T3=--.-°C T4=--.-°C T5=--.-°C T6=--.-°C
300f4c0c0009991007ffffffffffffffff480120 | bat=76% T1=99.9°C T2=100.7°C T3=--.-°C T4=--.-°C T5=--.-°C T6=--.-°C
I will try to include more info, whenever I will discovery something more. But for initial support for reading temperature it should be enough.
Features like setting top/low/target temperature or alarms, type of unit I will keep for later