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.
This report summarizes scanner evidence for 1technophile/OpenMQTTGateway, a C++ project with 4,101 GitHub stars. SynthScan examined 48,502 lines of code across 209 source files, recording 190 pattern matches distributed across 9 syntactic categories. The legacy adjusted pattern signal is 4.4 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 184 finding(s).
Are imports declared and package/API names verified? 0 finding(s).
Are wrappers, guards, and repeated structures necessary? 7 finding(s).
Which changes need focused human review? 190 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 190 distinct pattern matches across 9 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | examples/LoraWaterCounter/src/main.cpp | 1 | #include <LoRa.h> | COMMENT |
| LOW | examples/LoraTemperature/src/main.cpp | 1 | #include <LoRa.h> | COMMENT |
| LOW | lib/LEDManager/LEDManager.h | 21 | */ | COMMENT |
| LOW | main/config_BME280.h | 41 | extern void MeasureTempHumAndPressure(); | COMMENT |
| LOW | main/config_BME280.h | 61 | #endif | COMMENT |
| LOW | main/config_BME280.h | 81 | # define BME280PressureOversample 1 | COMMENT |
| LOW | main/gatewayIR.cpp | 41 | IRrecv irrecv(IR_RECEIVER_GPIO); | COMMENT |
| LOW | main/gatewayIR.cpp | 61 | # ifndef DISH_BITS | COMMENT |
| LOW | main/config_2G.h | 41 | COMMENT | |
| LOW | main/config_GFSunInverter.h | 41 | // #define GFSUNINVERTER_DEVEL 1 | COMMENT |
| LOW | main/config_AHTx0.h | 41 | extern void setupZsensorAHTx0(); | COMMENT |
| LOW | main/actuatorFASTLED.cpp | 161 | } | COMMENT |
| LOW | main/actuatorFASTLED.cpp | 181 | // | COMMENT |
| LOW | main/config_BT.h | 41 | /*-----------BT TOPICS & COMPILATION PARAMETERS-----------*/ | COMMENT |
| LOW | main/config_BT.h | 61 | #endif | COMMENT |
| LOW | main/config_BT.h | 81 | # define BLEScanWindow 30 // How long to scan during the interval; in milliseconds. | COMMENT |
| LOW | main/config_BT.h | 101 | COMMENT | |
| LOW | main/config_BT.h | 121 | # define HassPresence false //true if we publish into Home Assistant presence topic | COMMENT |
| LOW | main/config_BT.h | 141 | COMMENT | |
| LOW | main/config_SHTC3.h | 41 | /*-------------------PIN DEFINITIONS----------------------*/ | COMMENT |
| LOW | main/config_M5.h | 41 | # ifndef SLEEP_LCD_BRIGHTNESS | COMMENT |
| LOW | main/config_DHT.h | 41 | # define DHT_SENSOR_TYPE DHT22 //uncomment for DHT22 Sensor (default for backwards compatibility) | COMMENT |
| LOW | main/config_PWM.h | 41 | #ifndef PWM_CHANNEL_NAMES | COMMENT |
| LOW | main/config_ONOFF.h | 41 | #define ONKey "setON" | COMMENT |
| LOW | main/config_ONOFF.h | 61 | //# define MAX_CURRENT_ACTUATOR 15.0 // Current that will trigger the relay to go OFF | COMMENT |
| LOW | main/config_GPIOKeyCode.h | 41 | # ifndef GPIOKeyCode_LATCH_GPIO | COMMENT |
| LOW | main/config_SSD1306.h | 41 | COMMENT | |
| LOW | main/config_SSD1306.h | 61 | # define DISPLAY_PAGE_INTERVAL 3 // Number of seconds between json message displays | COMMENT |
| LOW | main/config_SSD1306.h | 81 | COMMENT | |
| LOW | main/config_SSD1306.h | 101 | #define subjectMQTTtoSSD1306set "/commands/MQTTtoSSD1306/config" | COMMENT |
| LOW | main/gatewaySERIAL.cpp | 41 | const TickType_t semaphoreTimeout = pdMS_TO_TICKS(1000); // 1 second timeout | COMMENT |
| LOW | main/config_DS1820.h | 41 | #endif | COMMENT |
| LOW | main/config_FASTLED.h | 41 | // How many leds in your strip? | COMMENT |
| LOW | main/config_FASTLED.h | 61 | //#define FASTLED_TYPE SM16716, RGB>(leds, NUM_LEDS); | COMMENT |
| LOW | main/config_FASTLED.h | 81 | #ifdef ESP8266 | COMMENT |
| LOW | main/config_WebUI.h | 41 | #ifndef DISPLAY_METRIC | COMMENT |
| LOW | main/config_WebUI.h | 181 | #endif | COMMENT |
| LOW | main/gatewayBT.cpp | 41 | # include <NimBLEUtils.h> | COMMENT |
| LOW | main/config_ADC.h | 41 | # define ThresholdReadingADC 50 // following the comparison between the previous value and the current one +- the thres | COMMENT |
| LOW | main/TheengsCommon.h | 1 | #pragma once | COMMENT |
| LOW | main/config_WebContent.h | 41 | #endif | COMMENT |
| LOW | main/config_HCSR501.h | 41 | #ifndef TimeBeforeStartHCSR501 | COMMENT |
| LOW | main/commonRF.cpp | 21 | You should have received a copy of the GNU General Public License | COMMENT |
| LOW | main/config_C37_YL83_HMRD.h | 41 | /*-------------------PIN DEFINITIONS----------------------*/ | COMMENT |
| LOW | main/User_config.h | 61 | #endif | COMMENT |
| LOW | main/User_config.h | 81 | # define NET_DNS "192.168.1.1" | COMMENT |
| LOW | main/User_config.h | 101 | # ifndef ETH_PHY_MDIO | COMMENT |
| LOW | main/User_config.h | 121 | #endif | COMMENT |
| LOW | main/User_config.h | 141 | // environments where an unexpected reboot is undesirable (e.g. a smart plug that would lose its relay state). | COMMENT |
| LOW | main/User_config.h | 161 | # if defined(ESP32) | COMMENT |
| LOW | main/User_config.h | 181 | #ifndef MQTT_PASS | COMMENT |
| LOW | main/User_config.h | 201 | // Uncomment to use a device running TheengsGateway to decode BLE data. (https://github.com/theengs/gateway) | COMMENT |
| LOW | main/User_config.h | 221 | # define AWS_IOT false | COMMENT |
| LOW | main/User_config.h | 241 | //# define MQTT_HTTPS_FW_UPDATE //uncomment to enable updating via MQTT message. | COMMENT |
| LOW | main/User_config.h | 261 | # define ENTITY_PICTURE "https://github.com/1technophile/OpenMQTTGateway/raw/development/docs/img/Openmqttgateway_log | COMMENT |
| LOW | main/User_config.h | 321 | # ifndef ESP32_EXT0_WAKE_PIN_STATE | COMMENT |
| LOW | main/User_config.h | 341 | #ifndef DEFAULT_LOW_POWER_MODE | COMMENT |
| LOW | main/User_config.h | 361 | //#define ZsensorHCSR04 "HCSR04" //ESP8266, Arduino, ESP32 | COMMENT |
| LOW | main/User_config.h | 381 | //#define ZradioCC1101 "CC1101" //ESP8266, ESP32 | COMMENT |
| LOW | main/User_config.h | 401 | # define will_Message "offline" | COMMENT |
| 100 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | scripts/ci_00_config.sh | 15 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | scripts/ci_00_config.sh | 17 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | scripts/ci_00_config.sh | 24 | # ============================================================================ | COMMENT |
| MEDIUM⚡ | scripts/ci_00_config.sh | 26 | # ============================================================================ | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/ci_build.sh | 292 | # Step 1: Verify build tools | COMMENT |
| LOW⚡ | scripts/ci_build.sh | 302 | # Step 2: Set version | COMMENT |
| LOW⚡ | scripts/ci_build.sh | 305 | # Step 3: Build firmware | COMMENT |
| LOW | scripts/ci_build.sh | 316 | # Step 4: Prepare artifacts | COMMENT |
| LOW⚡ | scripts/ci.sh | 171 | # Step 1: Quality Assurance | COMMENT |
| LOW⚡ | scripts/ci.sh | 180 | # Step 2: Build Firmware | COMMENT |
| LOW | scripts/ci.sh | 239 | # Step 3: Build Site | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/ci_build.sh | 292 | # Step 1: Verify build tools | COMMENT |
| LOW⚡ | scripts/ci_build.sh | 302 | # Step 2: Set version | COMMENT |
| LOW⚡ | scripts/ci_build.sh | 305 | # Step 3: Build firmware | COMMENT |
| LOW | scripts/ci_build.sh | 316 | # Step 4: Prepare artifacts | COMMENT |
| LOW⚡ | scripts/ci.sh | 171 | # Step 1: Quality Assurance | COMMENT |
| LOW⚡ | scripts/ci.sh | 180 | # Step 2: Build Firmware | COMMENT |
| LOW | scripts/ci.sh | 239 | # Step 3: Build Site | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/ci_build_firmware.sh | 37 | # Check if environment exists in platformio.ini or environments.ini | COMMENT |
| LOW | scripts/ci_prepare_artifacts.sh | 261 | # Check if build directory exists | COMMENT |
| LOW | scripts/ci_qa.sh | 98 | # Check if file needs formatting and capture diff | COMMENT |
| LOW | scripts/ci_qa.sh | 210 | # Check if shellcheck is installed | COMMENT |
| LOW | scripts/ci_build.sh | 190 | # Check if next argument is a version tag or another option | COMMENT |
| LOW | scripts/ci_build.sh | 327 | # Check if site folder exists and copy built files to avoid rebuilding the site | COMMENT |
| LOW | scripts/ci.sh | 275 | # Check if no arguments provided | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/ci_site.sh | 123 | ## Create a meta.json file on config folder | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/replace_lib.py | 25 | except Exception as e: | CODE |
| MEDIUM | scripts/replace_lib.py | 26 | print(f"Error occurred: {e}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | main/User_config.h | 46 | * If you do so, please don't forget to set these variables before compiling | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docsgen/boards-info.js | 160 | function collectBoardsInformations(sections, { includeTests = false } = {}) { | CODE |