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.htocredentials.hand 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 isConnectedorDisconnectedto your iBBQinkbird/BATTERYLEVEL- Reports the iBBQ Battery Level (e.g.73equals 73%)inkbird/PROBE1- Reports the temperature of Probe 1 (e.g120equals 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 Arduinolibrary 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