{"adoption": {"forks": 898, "observed_at": "2026-08-28T04:08:34.455625+00:00", "stars": 4082}, "canonical_url": "https://ross.abutalabs.com/products/openmqttgateway", "card": {"archived": false, "artifact_type": "application", "description": "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.", "domain": ["iot", "self-hosted"], "enriched": true, "function": ["iot", "message-queue", "middleware", "embedded"], "health_score": 91, "homepage": "https://docs.openmqttgateway.com", "language": "C++", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["1technophile/OpenMQTTGateway"], "name": "1technophile/OpenMQTTGateway", "platform": ["iot", "embedded", "windows", "cross-platform"], "pushed_at": "2026-08-26T13:13:31+00:00", "repo": "1technophile/OpenMQTTGateway", "stars": 4082, "tags": ["mqtt-gateway", "ble", "lora", "rf-433mhz", "infrared", "home-assistant", "openhab", "esp32", "esp8266", "sensor-bridge", "protocol-translation", "firmware", "home-automation", "automation", "linux"], "topics": ["mqtt", "gateway", "openhab2", "home-automation", "home-assistant", "wemos-d1", "rcswitch", "arduino", "bridge", "nodemcu", "ble-beacons", "esp8266", "arduino-uno", "miflora", "esp32", "xiaomi", "ble", "lora", "platformio"], "urls": [], "use_cases": ["bridge BLE temperature sensors to MQTT for Home Assistant", "decode 433MHz RF sensors and publish to an MQTT broker", "receive Xiaomi Mi Flora plant sensor data over Bluetooth", "use an ESP32 as an infrared blaster controlled via MQTT", "detect BLE beacons and track their presence", "convert LoRa sensor messages into MQTT", "read TPMS tire pressure sensors and forward to home automation"], "what_it_is": "OpenMQTTGateway is an open-source firmware that turns ESP8266/ESP32 boards (and computers) into a unified MQTT gateway bridging many protocols such as BLE, LoRa, 433/315/868 MHz RF, and infrared. It aggregates sensor data from hundreds of devices and publishes it to an MQTT broker for integration with home automation platforms.", "when_to_avoid": ["your devices already natively support MQTT or Wi-Fi", "you need a non-MQTT integration target with no broker available", "you require certified commercial hardware support rather than DIY boards", "your project is not IoT or home-automation related"], "when_to_choose": ["you want one cheap ESP32/ESP8266 board to bridge multiple RF/BLE/IR protocols into MQTT", "you use Home Assistant, openHAB, or another MQTT-based smart home hub", "you need to repurpose cheap off-the-shelf sensors that speak non-MQTT protocols", "you want browser-based flashing and active community support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/openmqttgateway", "repo": "1technophile/OpenMQTTGateway", "role": "main", "score": 74}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:34.455625+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:23:24.783694+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "97ce659ce24110d734858f51bebd4014a216d7142383fc7f3c9f9b8dfbf1b86f", "fetched_at": "2026-08-28T04:08:34.455625+00:00", "kind": "readme", "missing": false, "url": "https://github.com/1technophile/OpenMQTTGateway"}, {"content_hash": "ca78c1a9c4fd13ad1a56d98ca38cf9f8707c0f4970692438666c6223c17a27c3", "fetched_at": "2026-08-29T09:15:14.991080+00:00", "kind": "homepage", "missing": false, "url": "https://docs.openmqttgateway.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 28}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3637, "days_push": 7, "days_rel": 597, "gap_med": 58, "n_releases_24m": 2}, "score": 74, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}