I have an Inkbird INT-11P-B BBQ probe that doesn’t work with the Inkbird integration so I spent some time getting it working with ESP Home, here’s the config for anybody else that might find it useful.
If anybody can help me work out the probe battery level I’d appreciate that.
ble_client:
- mac_address: "00:00:00:00:00:00"
id: inkbird
switch:
- platform: ble_client
ble_client_id: inkbird
name: "Enable Inkbird INT-11P-B"
sensor:
- platform: ble_client
type: characteristic
ble_client_id: inkbird
name: Inkbird Internal
id: inkbird_internal
service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
characteristic_uuid: 0000fff1-0000-1000-8000-00805f9b34fb
unit_of_measurement: '°C'
lambda: |-
// Display the hex string for debugging.
std::vector<uint8_t> data = x;
String hex_string = "";
for (size_t i = 0; i < x.size(); ++i) {
char hex_buffer[3];
snprintf(hex_buffer, sizeof(hex_buffer), "%02X", data[i]);
hex_string += hex_buffer;
if (i % 2 == 1 && i != data.size() - 1) {
hex_string += " "; // Insert a space every two bytes
}
}
uint8_t arr_size = x.size();
ESP_LOGW("LOG_TAG", "INKBIRD Hexadecimal string: %s", hex_string.c_str());
uint8_t value = x[1];
return value;
device_class: "temperature"
- platform: ble_client
type: characteristic
ble_client_id: inkbird
name: Inkbird Ambient
id: inkbird_ambient
service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
characteristic_uuid: 0000fff1-0000-1000-8000-00805f9b34fb
unit_of_measurement: '°C'
lambda: |-
uint8_t value = x[3];
return value;
filters:
- filter_out: 0.0
device_class: "temperature"
- platform: ble_client
type: characteristic
ble_client_id: inkbird
name: Inkbird Flags
id: inkbird_flags
service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
characteristic_uuid: 0000fff1-0000-1000-8000-00805f9b34fb
lambda: |-
uint8_t value = x[2];
return value;
# This almost certainly relates to probe battery, possibly without the most significant bit?
- platform: ble_client
type: characteristic
ble_client_id: inkbird
name: Inkbird Unknown 4
id: inkbird_unknown_4
service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
characteristic_uuid: 0000fff1-0000-1000-8000-00805f9b34fb
lambda: |-
uint8_t value = x[4];
return value;
device_class: voltage
- platform: ble_client
type: characteristic
ble_client_id: inkbird
name: Inkbird Probe Battery
id: inkbird_probe_battery
service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
characteristic_uuid: 0000fff1-0000-1000-8000-00805f9b34fb
lambda: |-
uint8_t value = (x[4] & 0x7F);
return value;
unit_of_measurement: '%'
device_class: battery
- platform: ble_client
type: characteristic
ble_client_id: inkbird
name: Inkbird Unknown 5
id: inkbird_unknown_5
service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
characteristic_uuid: 0000fff1-0000-1000-8000-00805f9b34fb
lambda: |-
uint8_t value = x[5];
return value;
device_class: voltage
- platform: ble_client
type: characteristic
ble_client_id: inkbird
name: Inkbird Case Battery
id: inkbird_case_battery
service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
characteristic_uuid: 0000fff1-0000-1000-8000-00805f9b34fb
lambda: |-
uint8_t value = x[5] >> 1;
return value;
unit_of_measurement: '%'
device_class: battery
- platform: ble_client
type: characteristic
ble_client_id: inkbird
name: Inkbird Case Charging
icon: mdi:battery-charging
id: inkbird_case_charging
service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
characteristic_uuid: 0000fff1-0000-1000-8000-00805f9b34fb
lambda: |-
bool value = (x[5] & 0x01);
return value;
- platform: ble_client
type: characteristic
ble_client_id: inkbird
name: Inkbird Probe Charging
icon: mdi:battery-charging
id: inkbird_probe_charging
service_uuid: 0000fff0-0000-1000-8000-00805f9b34fb
characteristic_uuid: 0000fff1-0000-1000-8000-00805f9b34fb
lambda: |-
bool value = (x[2] >> 7);
return value;