custom-components / ble_monitor

BLE monitor for passive BLE sensors
https://community.home-assistant.io/t/passive-ble-monitor-integration/
MIT License
1.89k stars 243 forks source link

[New Sensor]: Inkbird IHT-2PB meat thermometer #947

Closed markwoodward86 closed 2 years ago

markwoodward86 commented 2 years ago

Sensor Description

Inkbird IHT-2PB instant read meat thermometer

Additional information

https://inkbird.com/products/bluetooth-food-thermometer-iht-2pb

BLE advertisements

To be added soon...
Ernst79 commented 2 years ago

When you have collected some ble data, I can add probably add it.

see https://custom-components.github.io/ble_monitor/sensor_request

markwoodward86 commented 2 years ago

Good Morning Ernst, does this help? I can try other methods if not.

[BLE Scan Data Viewer] Device Address : 62:00:A1:29:16:8A Raw Data : 02 01 06 12 FF 49 48 32 50 42 36 32 30 30 61 31 32 39 31 36 38 61 05 12 06 00 A0 00 02 0A 00 03 03 E0 FF 08 09 49 6E 6B 62 69 72 64 -- Bytes -- [00] [002] [0x02] [ 0 0 0 0 0 0 1 0 ] [01] [001] [0x01] [ 0 0 0 0 0 0 0 1 ] [02] [006] [0x06] [ 0 0 0 0 0 1 1 0 ] [03] [018] [0x12] [ 0 0 0 1 0 0 1 0 ] [04] [255] [0xFF] [ 1 1 1 1 1 1 1 1 ] [05] [073] [0x49] [ 0 1 0 0 1 0 0 1 ] [06] [072] [0x48] [ 0 1 0 0 1 0 0 0 ] [07] [050] [0x32] [ 0 0 1 1 0 0 1 0 ] [08] [080] [0x50] [ 0 1 0 1 0 0 0 0 ] [09] [066] [0x42] [ 0 1 0 0 0 0 1 0 ] [10] [054] [0x36] [ 0 0 1 1 0 1 1 0 ] [11] [050] [0x32] [ 0 0 1 1 0 0 1 0 ] [12] [048] [0x30] [ 0 0 1 1 0 0 0 0 ] [13] [048] [0x30] [ 0 0 1 1 0 0 0 0 ] [14] [097] [0x61] [ 0 1 1 0 0 0 0 1 ] [15] [049] [0x31] [ 0 0 1 1 0 0 0 1 ] [16] [050] [0x32] [ 0 0 1 1 0 0 1 0 ] [17] [057] [0x39] [ 0 0 1 1 1 0 0 1 ] [18] [049] [0x31] [ 0 0 1 1 0 0 0 1 ] [19] [054] [0x36] [ 0 0 1 1 0 1 1 0 ] [20] [056] [0x38] [ 0 0 1 1 1 0 0 0 ] [21] [097] [0x61] [ 0 1 1 0 0 0 0 1 ] [22] [005] [0x05] [ 0 0 0 0 0 1 0 1 ] [23] [018] [0x12] [ 0 0 0 1 0 0 1 0 ] [24] [006] [0x06] [ 0 0 0 0 0 1 1 0 ] [25] [000] [0x00] [ 0 0 0 0 0 0 0 0 ] [26] [160] [0xA0] [ 1 0 1 0 0 0 0 0 ] [27] [000] [0x00] [ 0 0 0 0 0 0 0 0 ] [28] [002] [0x02] [ 0 0 0 0 0 0 1 0 ] [29] [010] [0x0A] [ 0 0 0 0 1 0 1 0 ] [30] [000] [0x00] [ 0 0 0 0 0 0 0 0 ] [31] [003] [0x03] [ 0 0 0 0 0 0 1 1 ] [32] [003] [0x03] [ 0 0 0 0 0 0 1 1 ] [33] [224] [0xE0] [ 1 1 1 0 0 0 0 0 ] [34] [255] [0xFF] [ 1 1 1 1 1 1 1 1 ] [35] [008] [0x08] [ 0 0 0 0 1 0 0 0 ] [36] [009] [0x09] [ 0 0 0 0 1 0 0 1 ] [37] [073] [0x49] [ 0 1 0 0 1 0 0 1 ] [38] [110] [0x6E] [ 0 1 1 0 1 1 1 0 ] [39] [107] [0x6B] [ 0 1 1 0 1 0 1 1 ] [40] [098] [0x62] [ 0 1 1 0 0 0 1 0 ] [41] [105] [0x69] [ 0 1 1 0 1 0 0 1 ] [42] [114] [0x72] [ 0 1 1 1 0 0 1 0 ] [43] [100] [0x64] [ 0 1 1 0 0 1 0 0 ]

Ernst79 commented 2 years ago

Yes, this is ok. Ill have a look later.

Ernst79 commented 2 years ago

I had a look at the data. The relevant part is

12ff4948325042363230306131323931363861

12 = length (18 bytes) ff = manufacturer specific data 4948325042363230306131323931363861 = the actual data.

Inkbird is using different formats, but most of the time they use two bytes for each value divided by 100 (or sometimes 10) to get the data. If I do that, I end up with 8 values. Can't make much sense of it yet, but perhaps we have to divide it with 1000? Or your measurement was during cooking?

'value 1': 185.05, 'value 2': 205.3, 'value 3': 138.9, 'value 4': 123.38, 'value 5': 248.8, 'value 6': 128.49, 'value 7': 248.8, 'value 8': 128.49

Can you make a new log, and write down what temperature I should expect, and what measurements are reported (e.g. in an Inkbird app). How many probes does it have and does it measure something other than temperature.

markwoodward86 commented 2 years ago

Hi,

Thanks for looking into this. I will absolutely get you more data when i get home from work later.

I believe at the time i sniffed those packets it was using the instant read probe without the two 'in-cook'(?) probes inserted. I will make a more robust observation and provide the details soon.

markwoodward86 commented 2 years ago

Instant probe at room temp

[BLE Scan Data Viewer] Device Address : 62:00:A1:29:16:8A Device Name : Inkbird Rssi : -34 dBm Raw Data : 02 01 06 12 FF 49 48 32 50 42 36 32 30 30 61 31 32 39 31 36 38 61 05 12 06 00 A0 00 02 0A 00 03 03 E0 FF 08 09 49 6E 6B 62 69 72 64

markwoodward86 commented 2 years ago

It seems difficult to sniff after initial turn on. Here is the same scenario as above after a off/ on. About 86 deg F

[BLE Scan Data Viewer] Device Address : 62:00:A1:29:16:8A Raw Data : 02 01 06 12 FF 49 48 32 50 42 36 32 30 30 61 31 32 39 31 36 38 61 05 12 06 00 A0 00 02 0A 00 03 03 E0 FF 08 09 49 6E 6B 62 69 72 64 -- Bytes -- [00] [002] [0x02] [ 0 0 0 0 0 0 1 0 ] [01] [001] [0x01] [ 0 0 0 0 0 0 0 1 ] [02] [006] [0x06] [ 0 0 0 0 0 1 1 0 ] [03] [018] [0x12] [ 0 0 0 1 0 0 1 0 ] [04] [255] [0xFF] [ 1 1 1 1 1 1 1 1 ] [05] [073] [0x49] [ 0 1 0 0 1 0 0 1 ] [06] [072] [0x48] [ 0 1 0 0 1 0 0 0 ] [07] [050] [0x32] [ 0 0 1 1 0 0 1 0 ] [08] [080] [0x50] [ 0 1 0 1 0 0 0 0 ] [09] [066] [0x42] [ 0 1 0 0 0 0 1 0 ] [10] [054] [0x36] [ 0 0 1 1 0 1 1 0 ] [11] [050] [0x32] [ 0 0 1 1 0 0 1 0 ] [12] [048] [0x30] [ 0 0 1 1 0 0 0 0 ] [13] [048] [0x30] [ 0 0 1 1 0 0 0 0 ] [14] [097] [0x61] [ 0 1 1 0 0 0 0 1 ] [15] [049] [0x31] [ 0 0 1 1 0 0 0 1 ] [16] [050] [0x32] [ 0 0 1 1 0 0 1 0 ] [17] [057] [0x39] [ 0 0 1 1 1 0 0 1 ] [18] [049] [0x31] [ 0 0 1 1 0 0 0 1 ] [19] [054] [0x36] [ 0 0 1 1 0 1 1 0 ] [20] [056] [0x38] [ 0 0 1 1 1 0 0 0 ] [21] [097] [0x61] [ 0 1 1 0 0 0 0 1 ] [22] [005] [0x05] [ 0 0 0 0 0 1 0 1 ] [23] [018] [0x12] [ 0 0 0 1 0 0 1 0 ] [24] [006] [0x06] [ 0 0 0 0 0 1 1 0 ] [25] [000] [0x00] [ 0 0 0 0 0 0 0 0 ] [26] [160] [0xA0] [ 1 0 1 0 0 0 0 0 ] [27] [000] [0x00] [ 0 0 0 0 0 0 0 0 ] [28] [002] [0x02] [ 0 0 0 0 0 0 1 0 ] [29] [010] [0x0A] [ 0 0 0 0 1 0 1 0 ] [30] [000] [0x00] [ 0 0 0 0 0 0 0 0 ] [31] [003] [0x03] [ 0 0 0 0 0 0 1 1 ] [32] [003] [0x03] [ 0 0 0 0 0 0 1 1 ] [33] [224] [0xE0] [ 1 1 1 0 0 0 0 0 ] [34] [255] [0xFF] [ 1 1 1 1 1 1 1 1 ] [35] [008] [0x08] [ 0 0 0 0 1 0 0 0 ] [36] [009] [0x09] [ 0 0 0 0 1 0 0 1 ] [37] [073] [0x49] [ 0 1 0 0 1 0 0 1 ] [38] [110] [0x6E] [ 0 1 1 0 1 1 1 0 ] [39] [107] [0x6B] [ 0 1 1 0 1 0 1 1 ] [40] [098] [0x62] [ 0 1 1 0 0 0 1 0 ] [41] [105] [0x69] [ 0 1 1 0 1 0 0 1 ] [42] [114] [0x72] [ 0 1 1 1 0 0 1 0 ] [43] [100] [0x64] [ 0 1 1 0 0 1 0 0 ]

markwoodward86 commented 2 years ago

And once more using a different cell app:

Device Name: Inkbird Device Address: 62:00:A1:29:16:8A

Services:-------------------------- GAP (00001800-0000-1000-8000-00805f9b34fb) Device Name (00002a00-0000-1000-8000-00805f9b34fb) Appearance (00002a01-0000-1000-8000-00805f9b34fb) Peripheral Preferred Connection Parameters (00002a04-0000-1000-8000-00805f9b34fb)

GATT (00001801-0000-1000-8000-00805f9b34fb) Service Changed (00002a05-0000-1000-8000-00805f9b34fb)

Device Information (0000180a-0000-1000-8000-00805f9b34fb) System ID (00002a23-0000-1000-8000-00805f9b34fb) Firmware Revision String (00002a26-0000-1000-8000-00805f9b34fb)

Unknown service (0000ffc0-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ffc1-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ffc2-0000-1000-8000-00805f9b34fb)

Unknown service (0000ff90-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff91-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff92-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff93-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff94-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff95-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff96-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff97-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff98-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff99-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff9a-0000-1000-8000-00805f9b34fb)

Unknown service (0000ffe0-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ffe9-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ffe4-0000-1000-8000-00805f9b34fb)

Unknown service (5833ff01-9b8b-5191-6142-22a4536ef123) Unknown characteristic (5833ff02-9b8b-5191-6142-22a4536ef123) Unknown characteristic (5833ff03-9b8b-5191-6142-22a4536ef123)


Screenshot_20220719-183053

markwoodward86 commented 2 years ago

With the 'in cook' probes inserted, also room temp(77 F ish):

[BLE Scan Data Viewer] Device Address : 62:00:A1:29:16:8A Raw Data : 02 01 06 12 FF 49 48 32 50 42 36 32 30 30 61 31 32 39 31 36 38 61 05 12 06 00 A0 00 02 0A 00 03 03 E0 FF 08 09 49 6E 6B 62 69 72 64 -- Bytes -- [00] [002] [0x02] [ 0 0 0 0 0 0 1 0 ] [01] [001] [0x01] [ 0 0 0 0 0 0 0 1 ] [02] [006] [0x06] [ 0 0 0 0 0 1 1 0 ] [03] [018] [0x12] [ 0 0 0 1 0 0 1 0 ] [04] [255] [0xFF] [ 1 1 1 1 1 1 1 1 ] [05] [073] [0x49] [ 0 1 0 0 1 0 0 1 ] [06] [072] [0x48] [ 0 1 0 0 1 0 0 0 ] [07] [050] [0x32] [ 0 0 1 1 0 0 1 0 ] [08] [080] [0x50] [ 0 1 0 1 0 0 0 0 ] [09] [066] [0x42] [ 0 1 0 0 0 0 1 0 ] [10] [054] [0x36] [ 0 0 1 1 0 1 1 0 ] [11] [050] [0x32] [ 0 0 1 1 0 0 1 0 ] [12] [048] [0x30] [ 0 0 1 1 0 0 0 0 ] [13] [048] [0x30] [ 0 0 1 1 0 0 0 0 ] [14] [097] [0x61] [ 0 1 1 0 0 0 0 1 ] [15] [049] [0x31] [ 0 0 1 1 0 0 0 1 ] [16] [050] [0x32] [ 0 0 1 1 0 0 1 0 ] [17] [057] [0x39] [ 0 0 1 1 1 0 0 1 ] [18] [049] [0x31] [ 0 0 1 1 0 0 0 1 ] [19] [054] [0x36] [ 0 0 1 1 0 1 1 0 ] [20] [056] [0x38] [ 0 0 1 1 1 0 0 0 ] [21] [097] [0x61] [ 0 1 1 0 0 0 0 1 ] [22] [005] [0x05] [ 0 0 0 0 0 1 0 1 ] [23] [018] [0x12] [ 0 0 0 1 0 0 1 0 ] [24] [006] [0x06] [ 0 0 0 0 0 1 1 0 ] [25] [000] [0x00] [ 0 0 0 0 0 0 0 0 ] [26] [160] [0xA0] [ 1 0 1 0 0 0 0 0 ] [27] [000] [0x00] [ 0 0 0 0 0 0 0 0 ] [28] [002] [0x02] [ 0 0 0 0 0 0 1 0 ] [29] [010] [0x0A] [ 0 0 0 0 1 0 1 0 ] [30] [000] [0x00] [ 0 0 0 0 0 0 0 0 ] [31] [003] [0x03] [ 0 0 0 0 0 0 1 1 ] [32] [003] [0x03] [ 0 0 0 0 0 0 1 1 ] [33] [224] [0xE0] [ 1 1 1 0 0 0 0 0 ] [34] [255] [0xFF] [ 1 1 1 1 1 1 1 1 ] [35] [008] [0x08] [ 0 0 0 0 1 0 0 0 ] [36] [009] [0x09] [ 0 0 0 0 1 0 0 1 ] [37] [073] [0x49] [ 0 1 0 0 1 0 0 1 ] [38] [110] [0x6E] [ 0 1 1 0 1 1 1 0 ] [39] [107] [0x6B] [ 0 1 1 0 1 0 1 1 ] [40] [098] [0x62] [ 0 1 1 0 0 0 1 0 ] [41] [105] [0x69] [ 0 1 1 0 1 0 0 1 ] [42] [114] [0x72] [ 0 1 1 1 0 0 1 0 ] [43] [100] [0x64] [ 0 1 1 0 0 1 0 0 ]

And on a different cell app

Device Name: Inkbird Device Address: 62:00:A1:29:16:8A

Services:-------------------------- GAP (00001800-0000-1000-8000-00805f9b34fb) Device Name (00002a00-0000-1000-8000-00805f9b34fb) Appearance (00002a01-0000-1000-8000-00805f9b34fb) Peripheral Preferred Connection Parameters (00002a04-0000-1000-8000-00805f9b34fb)

GATT (00001801-0000-1000-8000-00805f9b34fb) Service Changed (00002a05-0000-1000-8000-00805f9b34fb)

Device Information (0000180a-0000-1000-8000-00805f9b34fb) System ID (00002a23-0000-1000-8000-00805f9b34fb) Firmware Revision String (00002a26-0000-1000-8000-00805f9b34fb)

Unknown service (0000ffc0-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ffc1-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ffc2-0000-1000-8000-00805f9b34fb)

Unknown service (0000ff90-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff91-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff92-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff93-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff94-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff95-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff96-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff97-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff98-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff99-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ff9a-0000-1000-8000-00805f9b34fb)

Unknown service (0000ffe0-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ffe9-0000-1000-8000-00805f9b34fb) Unknown characteristic (0000ffe4-0000-1000-8000-00805f9b34fb)

Unknown service (5833ff01-9b8b-5191-6142-22a4536ef123) Unknown characteristic (5833ff02-9b8b-5191-6142-22a4536ef123) Unknown characteristic (5833ff03-9b8b-5191-6142-22a4536ef123)


Ernst79 commented 2 years ago

hmmm, I have put all raw messages below eachother, but they are 100% the same

Raw Data : 02 01 06 12 FF 49 48 32 50 42 36 32 30 30 61 31 32 39 31 36 38 61 05 12 06 00 A0 00 02 0A 00 03 03 E0 FF 08 09 49 6E 6B 62 69 72 64
Raw Data : 02 01 06 12 FF 49 48 32 50 42 36 32 30 30 61 31 32 39 31 36 38 61 05 12 06 00 A0 00 02 0A 00 03 03 E0 FF 08 09 49 6E 6B 62 69 72 64
Raw Data : 02 01 06 12 FF 49 48 32 50 42 36 32 30 30 61 31 32 39 31 36 38 61 05 12 06 00 A0 00 02 0A 00 03 03 E0 FF 08 09 49 6E 6B 62 69 72 64
Raw Data : 02 01 06 12 FF 49 48 32 50 42 36 32 30 30 61 31 32 39 31 36 38 61 05 12 06 00 A0 00 02 0A 00 03 03 E0 FF 08 09 49 6E 6B 62 69 72 64

Not a single byte is different.

Did you enable the option "active scan" in the BLE monitor settings? Some Inkbirds require active scan to be enabled, after which they are sending more (useful) data.

markwoodward86 commented 2 years ago

I tried mocking up a cook by altering the temperature of the 'in cook' probe number 1 and the raw data never changed as you mentioned. I do not see an option in the (many) different ble scanner apps i downloaded to enable active scan. I do see a number of 'unknown' devices getting picked up at different distances. I will try a different method of collecting the data as mentioned in your repo. Maybe a way of doing this via my laptop ble dongle will gather better results.

Ernst79 commented 2 years ago

If you have Home Assistant running, it should work with active scan and the function "report unknown" to get the data as well.

markwoodward86 commented 2 years ago

I did try enabling active scan on the integration config and log unknown values for Inkbird to HA log. I do not see that anything was picked up or logged when i switched on the probe multiple times. I wonder if the probe just has some outdated bluetooth. I did reach out to Inkbird but they declined to provide any information. I can try to spend more time this weekend investigating but may be a lost cause for this one unfortunately.

Ernst79 commented 2 years ago

Very strange indeed.

markwoodward86 commented 2 years ago

BLE

I tried using Wireshark and BTVS on Windows. Hopefully the capture in the image gives you more info. I can save the output as a wireshark file if that suits you better. Temp was hovering around 80F on the probe

Ernst79 commented 2 years ago

This seems to be the same again, Only an UUID 16 and a device name (Inkbird).

markwoodward86 commented 2 years ago

It looks like its always preceded by this. But thats all i can see for this device. Unless it advertises with a different MAC for the actual temperature data.

BLE2

markwoodward86 commented 2 years ago

I dont think this is going anywhere. I thank you for your time in this investment but im happy to close this.

poldim commented 1 year ago

@markwoodward86 did you ever figure out a way to pull in data from this device?

markwoodward86 commented 1 year ago

I did not. I didnt look at it again after my last comment to be honest.

ebw44 commented 10 months ago

Looking at the Inkbird IHT-2PB with nrf-connect, it looks like you need to connect to it to get the data from it. If someone wants to look at it, this code may be a good starting point: https://gitlab.com/sensor-stuff/inkbird-iht-2pb-to-mqtt/-/blob/main/inkbird_IHT-2PB/inkbird_IHT-2PB.h?ref_type=heads

Below is the result of a scan in nrf-connect desktop, the ManufacturerSpecificData doesn't change even when temperature changes

image

When you connect you can see the 'serviceUUID' and 'characteristic1' as in inkbird_IHT-2PB.h. However I was not able to get data and also the IHT disconnect automatically after sometime with a 'BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION'

image
ebw44 commented 10 months ago

I have created an ESPHome project to add Inkbird-ITH-2PB to home assistant. It was easier for me to use ESPHome than to understand how ble_monitor and Inkbird integration work. But it should be easy for someone familiar with Home assistant developments to reuse the code to enable notification and parse temperature.