geekho-me / InkBird_BLE2MQTT

iBBQ Inkbird BLE to MQTT bridge ESP32 based

Home Page:https://geekho.me

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iBBQ-Gateway

an ESP32 Based iBBQ (Inkbird) BLE to MQTT Gateway

Inkbird Compatbility:

ESP32 Compatbility:

Features:

  • 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

Requirements:

  • Rename the credentials.example.h to credentials.h and edit it to your needs

Usage:

  • After flashing the device will automatically connect to your WiFi, connect to your iBBQ Device and then start publishing data to MQTT

MQTT Topics:

  • inkbird/BLE - Reports if the device is Connected or Disconnected to your iBBQ
  • inkbird/BATTERYLEVEL - Reports the iBBQ Battery Level (e.g. 73 equals 73%)
  • inkbird/PROBE1 - Reports the temperature of Probe 1 (e.g 120 equals 120c)
    • Each Probe has its own topic (e.g. inkbird/PROBE1, inkbird/PROBE2, inkbird/PROBE3, etc)

Known Issues:

  • 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); to xSemaphoreTake(m_semaphore, 15000UL);
    • Change: rc = ::xSemaphoreTake(m_semaphore, portMAX_DELAY) == pdTRUE; to rc = ::xSemaphoreTake(m_semaphore, 15000UL) == pdTRUE;

Todo:

  • Improve the MQTT stability
  • More verbose status logging to MQTT
  • Change the ESP32 BLE library to something more modern?

References:

About

iBBQ Inkbird BLE to MQTT bridge ESP32 based

https://geekho.me


Languages

Language:C++ 99.1%Language:C 0.9%