github 1technophile/OpenMQTTGateway v1.9.0
OpenMQTTGateway v1.9.0

30 minutes ago

What's Changed

OpenMQTTGateway v1.9.0 moves to the Arduino ESP32 core 3.x, ships Theengs Decoder 2.5.0, and adds a large set of security hardening fixes. Updating is recommended for all users.

Security

  • Theengs Decoder 2.5.0 fixes a security issue in BLE advertisement parsing, reported by Tom Watson. All earlier releases (including v1.8.1) are affected. An advisory will follow.
  • Hardened every place where MQTT, HTTP, BLE and RF input is copied into fixed buffers (#2321, #2324), replaced dtostrf() with bounded formatting (#2368), fixed a buffer overflow when converting binary LoRa packets to hex (#2402) and a dangling pointer when saving the gateway password from the WebUI (#2408).
  • {"cmd":"erase"} now really wipes the stored configuration, including MQTT credentials (#2372).

Upgrade notes and breaking changes

  • Home Assistant entities: some unique_ids change, so Home Assistant may create new entities next to the old ones, which you can delete:
    • gateway entities that previously had an empty unique_id suffix (#2401)
    • RTL_433 devices whose model name contains /, now replaced by _ (#2369)
    • discovery now uses the abbreviated MQTT keys (#2221); hex-valued and enum sensors no longer get a state_class/unit (#2315, #2316)
  • BLE decryption: the default AES key is now empty and encrypted devices are skipped until you set your key (#2310).
  • ESP8266 RF: the default RF_RECEIVER_GPIO changed from 0 to 4 (#2323). If your receiver is wired to GPIO0, set it back with a build flag.
  • BLE connections: NimBLE now allows 1 simultaneous connection instead of 3, to save RAM (#2300).
  • Arduino core 3.x (#2177, #2248, #2329): custom builds and prod_env.ini overrides based on the older 2.x platform need updating.
  • OTA: v1.8.1 gateways can update over the air (Home Assistant update entity or MQTT) or from the web installer. After an OTA from a custom URL, installed_version is now omitted rather than reported wrong; the correct version is published after reboot (#2374).

New Features

  • WebUI: full BLE configuration page and MQTT Discovery toggle (#2293), the WiFi scan link works again (#2345), active modules shown as text in the page heading (#2406).
  • BLE decryption of PVVX, BTHome v2 and Victron frames (#2219, #2226, #2228, #2230).
  • WiFi reconnect watchdog that self-heals a wedged WiFi stack (#2319); the WiFiManager portal stays available when saved WiFi credentials are lost (#2340).
  • Ethernet: NetworkAdvancedSetup now usable, WiFiManager skipped when Ethernet is up (#2351), PHY cold-cycle at boot to avoid link flapping (#2364).
  • OTA resolves the offered version per build environment (#2350).
  • Serial gateway: configurable frame format (parity/stop bits) (#2342).
  • Memory: lower RAM use on ESP32 BLE builds (#2294, #2302, #2223, #2232), dynamic TLS buffers so no-PSRAM boards can use MQTT over TLS (#2335).
  • WiFi hostname set to the gateway name (#2272).

Theengs Plug and Theengs Bridge

  • Theengs Bridge: PSRAM enabled (#2303) and Ethernet PHY cold-cycle at boot on by default, fixing intermittent link loss (#2364).
  • Theengs Plug: MQTT over TLS now has enough free memory to run reliably (#2335); {"cmd":"erase"} no longer leaves the plug stuck in a reboot loop (#2340, #2372).
  • Button → relay toggle restored (ACTUATOR_TRIGGER) (#2334).

New BLE Devices

Theengs Decoder moves from v1.8.0 to v2.5.0:

  • Victron: Smart Battery Protect, Orion XS, Orion TR, Blue Smart Charger, Smart Battery Sense, SmartSolar MPPT, SmartShunt and generic battery monitors
  • EcoFlow Power Station
  • SwitchBot Meter Pro and Meter Pro (CO2)
  • Govee H5108 probe thermometer and H5140 Smart CO2 Monitor
  • ClearGrass/Qingping CO2 Detector CGP22C
  • LYWSD03MMC / MJWSD05MMC with PVVX firmware sending BTHome v2, and Tuya THB1 / BTH01 / TH05F with PVVX firmware
  • Inkbird IBS-P02B
  • ThermoPro TP350 / TP350S, plus battery level for TP357, TP358, TP359 and TP393
  • b-parasite v2 soil moisture sensor
  • SensorPush HT.w and HTP.xw
  • VCHON VCH6003 thermo-hygrometer
  • UNI-T UT363 anemometer
  • MikroTik TG-BT5-IN / TG-BT5-OUT
  • Feasycom BP104D beacon
  • TPMS BR
  • Schneider Electric Odace SFSP
  • BM6 battery monitor connection support (#2274)

RF and RTL_433

  • rtl_433_ESP updated to 0.6.2 (#2254, #2328, #2358, #2366, #2369), with an FSK variant for esp32dev-rtl_433 (#2195) and duplicate detection no longer swallowing rapid transmissions (#2357).
  • CC1101 works on Arduino core 3.x (#2353) and initialises correctly with a saved RF configuration (#2269); CC1101 SPI pins are configurable (#2141).
  • RF configuration management refactored (#2245).
  • RTL_433 / SX127x environments moved to the shipped ESP32 platform (#2360).

Boards

  • ISNO Super (ESP32-S3, dual CC1101 433 + 868/915 MHz) (#2378)
  • LilyGo T3-S3 (#2160)
  • M5 boards migrated to M5Unified + M5GFX (#2355)

Documentation

  • Documentation migrated to VitePress, with a new board selector (search, filters, popular badges), a renewed web upload page and a reworked onboarding (#2299, #2291, #2277, #2347).

Known issues

  • After a broker outage of several minutes, the primary MQTT connection slot can be reported as valid_cnt: false until the next reboot; the connection itself keeps working. Present in earlier releases too.
  • Re-enabling BLE ({"enabled":true}) can block the main loop for about 20 seconds while the BLE stack restarts.

All changes

New Contributors

Full Changelog: v1.8.0...v1.9.0

Don't miss a new OpenMQTTGateway release

NewReleases is sending notifications on new releases.