an ESP32 Based iBBQ (Inkbird) BLE to MQTT Gateway
- Inkbird IBT-6X
- Inkbird IBT-6XS (Amazon UK Affiliate Link)
- Automatically connects to iBBQ Bluetooth BBQ thermometers
- Adapts amount of channels to connected thermometer
- Should work with most ESP32 boards available
- Should work with iBBQ based Bluetooth BBQ thermometers with up to 8 channels
- Publish temperature (Celsius) as MQTT Topic
- Publish battery level as MQTT Topic
- Automatically reconnects to iBBQ BLE if disconnected
- Rename the
credentials.example.h
tocredentials.h
and edit it to your needs
- After flashing the device will automatically connect to your WiFi, connect to your iBBQ Device and then start publishing data to MQTT
inkbird/BLE
- Reports if the device isConnected
orDisconnected
to your iBBQinkbird/BATTERYLEVEL
- Reports the iBBQ Battery Level (e.g.73
equals 73%)inkbird/PROBE1
- Reports the temperature of Probe 1 (e.g120
equals 120c)- Each Probe has its own topic (e.g.
inkbird/PROBE1
,inkbird/PROBE2
,inkbird/PROBE3
, etc)
- Each Probe has its own topic (e.g.
- The
ESP32 BLE Arduino
library has a bug in the connection timeout:- Workaround: Make the following changes to
FreeRTOS.cpp
: - Change:
xSemaphoreTake(m_semaphore, portMAX_DELAY);
toxSemaphoreTake(m_semaphore, 15000UL);
- Change:
rc = ::xSemaphoreTake(m_semaphore, portMAX_DELAY) == pdTRUE;
torc = ::xSemaphoreTake(m_semaphore, 15000UL) == pdTRUE;
- Workaround: Make the following changes to
- Improve the MQTT stability
- More verbose status logging to MQTT
- Change the ESP32 BLE library to something more modern?
- Protocol Description: https://gist.github.com/uucidl/b9c60b6d36d8080d085a8e3310621d64
- Battery Status: sworisbreathing/go-ibbq#2 (comment)
- ESP32 BLE Arduino Timeout Bug: nkolban/esp32-snippets#874