Skip to content

Inkbird IBS-P01B bluetooth pool thermometer only reports new max/min temperatures and not the current temperature #143769

@DavidCEllis

Description

@DavidCEllis

The problem

The setup

Home Assistant 2025.4.2
ESPHome Bluetooth Proxy - Firmware: 25.3.1 (ESPHome 2025.2.2)
Inkbird IBS-P01B Pool Thermometer

The issue

Initially the thermometer appeared to be working correctly and gathering temperature data but gradually it changed until it only reported new maximum or minimum values.

I can look in the advertisement monitor page and see that the device updated only a few seconds ago, but the last temperature value it reports is from over a day ago and does not match the value shown on the device screen.

The cause

In the case of this Inkbird device, the temperature appears to be included in the keys of the manufacturer_data dict instead of being purely in the value.

This becomes a problem because the manufacturer_data dictionary doesn't appear to get cleared between readings and is just updated with new values. Because the temperature value is included in the key, a 'new' reading has the same value as the old reading, so the data is already in the dictionary and there's no change to the 'manufacturer_data'.

The value isn't the same for all temperature readings, but it appears to consistently be the same for the same temperature - I'm not sure what it actually contains but all that matters is that it's the same for this behaviour to occur.

This is the "Manufacturer Data" 'cache' from the Inkbird thermometer from the bluetooth/advertisement-monitor page (it's not sitting in the water right now, the water isn't getting that hot!):

Manufacturer data from an Inkbird thermometer {'1092': '000000d53f6408', '1102': '0000004d3e6408', '1112': '00000004fd6408', '1122': '000000dcf86408', '1132': '000000b5396408', '1142': '000000ecfb6408', '1152': '00000024ee6408', '1162': '000000bcef6408', '1172': '00000014ed6408', '1182': '0000008cec6408', '1192': '00000044e86408', '1202': '0000001d2a6408', '1212': '00000074eb6408', '1222': '000000ad216408', '1232': '000000e4e26408', '1242': '0000007ce36408', '1252': '00000055266408', '1262': '000000cd276408', '1272': '00000084e46408', '1282': '0000005d0c6408', '1292': '00000034cd6408', '1302': '0000006d0f6408', '1312': '000000a50b6408', '1322': '0000003d0a6408', '1332': '00000095086408', '1342': '0000000d096408', '1352': '000000c4c26408', '1362': '0000009d006408', '1372': '000000f4c16408', '1382': '0000002cc46408', '1392': '00000065076408', '1402': '000000fd066408', '1412': '000000d4d26408', '1422': '0000004cd36408', '1432': '00000005106408', '1442': '000000dd156408', '1452': '000000b4d46408', '1462': '000000ed166408', '1472': '00000024dd6408', '1482': '000000bcdc6408', '1492': '00000014de6408', '1502': '0000008cdf6408', '1512': '00000044db6408', '1522': '0000001d196408', '1532': '00000074d86408', '1542': '000000ac886408', '1552': '000000e54b6408', '1562': '0000007d4a6408', '1572': '000000548f6408', '1582': '000000cc8e6408', '1592': '000000854d6408', '1602': '0000005c876408', '1612': '00000035466408', '1622': '0000006c846408', '1632': '000000a4806408', '1642': '0000003c816408', '1652': '00000094836408', '1662': '0000000c826408', '1672': '000000c4976408', '1682': '0000009d556408', '1692': '000000f4946408', '1702': '0000002c916408', '1712': '00000065526408', '1722': '000000fd536408', '1732': '000000d5596408', '1742': '0000004d586408', '1752': '000000049b6408', '1762': '000000dc9e6408', '1772': '000000b55f6408', '1782': '000000ec9d6408', '1792': '00000025746408', '1802': '000000bd756408', '1812': '00000015776408', '1822': '0000008d766408', '1832': '00000045726408', '1842': '0000001cb06408', '1852': '00000075716408', '1862': '000000acbb6408', '1872': '000000e5786408', '1882': '0000007d796408', '1892': '00000054bc6408', '1902': '000000ccbd6408', '1912': '000000857e6408', '1922': '0000005d6a6408', '1932': '00000034ab6408', '1942': '0000006d696408', '1952': '000000a56d6408', '1962': '0000003d6c6408', '1972': '000000956e6408', '1982': '0000000d6f6408', '1992': '000000c4a46408', '2002': '0000009d666408', '2012': '000000f4a76408', '2022': '0000002ca26408', '2032': '00000065616408', '2042': '000000fd606408', '2052': '000000d7a06408', '2062': '0000004fa16408', '2072': '00000006626408', '2082': '000000de676408', '2092': '000000b7a66408', '2102': '000000ee646408', '2112': '00000027af6408', '2122': '000000bfae6408', '2132': '00000017ac6408', '2142': '0000008fad6408', '2152': '00000047a96408', '2162': '0000001e6b6408', '2172': '00000077aa6408', '2182': '000000afbe6408', '2192': '000000e67d6408', '2202': '0000007e7c6408', '2212': '00000057b96408', '2222': '000000cfb86408', '2232': '000000867b6408', '2242': '0000005fb16408', '2252': '00000036706408', '2262': '0000006fb26408', '2272': '000000a7b66408', '2282': '0000003fb76408', '2292': '00000097b56408', '2302': '0000000fb46408', '2312': '000000c65d6408', '2322': '0000009f9f6408', '2332': '000000f65e6408', '2342': '0000002e5b6408', '2352': '00000067986408', '2362': '000000ff996408', '2372': '000000d7936408', '2382': '0000004f926408', '2392': '00000006516408', '2402': '000000de546408', '2412': '000000b7956408', '2422': '000000ee576408', '2432': '00000026426408', '2442': '000000be436408', '2452': '00000016416408', '2462': '0000008e406408', '2472': '00000046446408', '2482': '0000001f866408', '2492': '00000076476408', '2502': '000000af8d6408', '2512': '000000e64e6408', '2522': '0000007e4f6408', '2532': '000000578a6408', '2542': '000000cf8b6408', '2552': '00000086486408', '2562': '0000005e186408', '2572': '00000037d96408', '2582': '0000006e1b6408', '2592': '000000a61f6408', '2602': '0000003e1e6408', '2612': '000000961c6408', '2622': '0000000e1d6408', '2632': '000000c7d66408', '2642': '0000009e146408', '2652': '000000f7d56408', '2662': '0000002fd06408', '2672': '00000066136408', '2682': '000000fe126408', '2692': '000000d7c66408', '2702': '0000004fc76408', '2712': '00000006046408', '2722': '000000de016408', '2732': '000000b7c06408', '2742': '000000ee026408', '2752': '00000027c96408', '2762': '000000bfc86408', '2772': '00000017ca6408', '2782': '0000008fcb6408', '2792': '00000047cf6408', '2802': '0000001e0d6408', '2812': '00000077cc6408', '2822': '000000ae246408', '2832': '000000e7e76408', '2842': '0000007fe66408', '2852': '00000056236408', '2862': '000000ce226408', '2872': '00000087e16408', '2882': '0000005e2b6408', '2892': '00000037ea6408', '2902': '0000006e286408', '2912': '000000a62c6408', '2922': '0000003e2d6408', '2932': '000000962f6408', '2942': '0000000e2e6408'}

This covers any temperature from 10.9 degrees to 29.4 degrees (which is the last reading shown in homeassistant) so the device will no longer report any temperature in that range. If a new packet comes in with {'2012': '000000f4a76408'} for example, the entry is already in the dict, so no change is detected and the entities don't update.

Running a Bleak scan locally on a linux machine shows similar behaviour with each new temperature reading adding a new entry unless it's the same value as before, where it appears there's no change to the manufacturer_data as that value is already in the dict. I can also see that the device is sending packets with the current temperature, but the entries match those already in the dict in homeassistant.

What version of Home Assistant Core has the issue?

2025.4.2

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Inkbird

Link to integration documentation on our website

https://www.home-assistant.io/integrations/inkbird/

Diagnostics information

No response

Example YAML snippet

Anything in the logs that might be useful for us?

Additional information

I'm fairly certain this affects devices other than just this Inkbird device as any BLE device that produces non-standard(?) "Manufacturer Data" where the 'ID' is correlated with the data.

For example I've noticed with my ThermoPro TP357S devices that they can get out of date temperature readings if the humidity has been constant for a long time, but breathe on the device and change the humidity and suddenly the temperature will start to update again for a while until the humidity becomes more constant. I'm fairly sure this is the same issue and possibly a potential cause of this issue.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions