finds.dev← search

// the find

1technophile/OpenMQTTGateway

★ 4,100 · C++ · GPL-3.0 · updated Oct 2026

MQTT gateway for ESP8266 or ESP32 with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility & LoRa.

OpenMQTTGateway is one C++ firmware for ESP32 and ESP8266 boards that bridges 315/433/868 MHz RF, infrared, BLE sensors, and LoRa radios onto MQTT. It suits someone who already runs Home Assistant, OpenHAB, or Node-RED and has a drawer of cheap sensors they want on the broker without a separate bridge for each protocol.

One firmware covers protocols that would otherwise need several dedicated bridges. The BLE path decodes Xiaomi and other advertisement formats through the Theengs decoder, which is shared with the Theengs Gateway that runs on a Pi or PC, so the decoding work is reused across projects. Features are chosen at build time through the PlatformIO environments and User_config.h, so each board only carries the radios and drivers it uses, which matters on an ESP8266 with roughly 80 KB of RAM. Home Assistant MQTT discovery is built in, and the browser-based web installer lets someone flash a common board without installing a toolchain. The project is actively maintained: the last push landed within the week, and the environments list is large enough that the CI matrix does real work.

Nearly every choice is a compile-time #define. Changing which radios are active, or moving a board from BLE to RF, means editing config headers or picking another environment and reflashing. Memory is the real constraint: enabling BLE, RF, and IR together on an ESP8266 is not realistic, and the per-board tables in the docs are the only dependable guide to what fits. Anyone adopting this should check flash and heap usage for their exact combination before assuming it will run. Support is routed to a community forum rather than the issue tracker, and the function list and pinouts live in an external Google Spreadsheet, which makes the reference harder to search and version than the code itself. BLE device coverage also depends on the separate Theengs decoder project, so a sensor missing from that decoder is missing here too.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →