Added
-
SwitchBot control over BLE:
-
Bot S1 / SmartSwitch (
SBS1/X1) — On, Off, Push-Pull with selectable Press / Switch mode, inverted-direction toggle, configurable press duration. -
Curtain 2 / Curtain 3 (
SBCU/W070160X) — Open, Close, Stop, move to position, High / Low speed. -
Blind Tilt (
SBBT/W270160X) — Open, Close up, Close down, Stop, tilt to position (-100…100 %).
-
-
Battery monitors: BM2 and BM6 12 V monitor dongles with live voltage chart (0–20 V scale), state-of-charge / temperature on BM6, and a
BatteryPresetManagerso chemistry / nominal voltage / warning thresholds can be configured per device. -
MQTT over TLS: the Integration screen now exposes a
Use TLStoggle, a custom CA.pempicker (for self-signed or private brokers), and aSkip validationescape hatch for hostname mismatches. An on-screen Activity panel surfaces TLS handshake errors. -
MQTT sentinels: missing / stale-sample sentinels and a sampling caption on the Integration screen so it’s obvious when a value forwarded to the broker is a placeholder rather than a fresh read (#131).
-
Credential secure storage: MQTT broker username / password are stored via the platform keychain (Keychain on iOS/macOS, Keystore on Android, libsecret on Linux) instead of the settings file (#132).
-
Android foreground BLE-scan service: scanning continues with the screen off via a persistent notification. The notification shows the latest reading and, when MQTT is enabled, the broker connection state and a drop counter for failed publishes. Runtime
POST_NOTIFICATIONSrequest is handled on first launch. -
HA gateway auto-discovery: the app now publishes its own Home Assistant discovery payload so it appears named in Home Assistant alongside the sensors it forwards.
-
History chart caption: sampling interval is now shown under each in-app history chart.
-
BBQ device support: Govee H5055 (multi-probe) and SOLIS-6 added to the BBQ live-monitoring list.
-
Window-cover actuators: preliminary support with a
-100..100tilt range. -
About screen: shows the bundled Theengs Decoder version (derived from the submodule’s git tag) and the build number alongside the app version (#139).
Changed
-
Decoder bump: Theengs Decoder v2.3.0 (from v1.9.5 era; intermediate hop at v2.1.0). Some
model_idstrings are now consolidated (e.g.H5072/75,H5100/01/02/04/05/08/74/77,IBT-6XS/SOLIS-6); legacy IDs remain recognised (#137). -
Build system: project switched from
qmaketo CMake ≥ 3.20. Minimum Qt 6.8 withqtconnectivity,qtcharts,qtwebsockets,qt5compat, image formats. New CMake flagsENABLE_MQTT,ENABLE_OPENSSL,ENABLE_MBEDTLS.QtMqttis now optional at build time. -
Permissions: Android permission flow rewritten and consolidated into a single screen alongside the background-update controls (#135); iOS adds
NSLocationAlwaysAndWhenInUseUsageDescription. -
Background updates: scheduling is now driven by
WorkManagerexact alarms with explicit user-facing intervals; Android background scanning honours the “Update interval” setting as the actual scan cadence rather than a hard-coded value (#133, #135). -
MQTT topics: when a sensor has no usable MAC address the topic now falls back to a stable identifier instead of
BTtoMQTT//…. -
Generic widget: numeric values are formatted per type and meta-units are hidden.
Fixed
-
H5055 multi-probe state wipe (decoder #92).
-
Govee thermometers occasionally labelled as
iBeaconafter the advertisement-parsing rework. -
Android decode for payload-embedded MAC rules (TPMS, VCH6003, …).
-
BM6 voltage scaling and detection on iOS.
-
BM2 bonding on Android and BM2 real-time voltage graphs.
-
Foreground-service notification tap on slow devices.
-
HA discovery now publishes all numeric properties (previously some were dropped by the validator).
-
iOS: mbedTLS subtree is now linked statically, fixing broken dylib
@rpathlookups in the signed bundle (#138). -
device_bm26: the mbedTLS AES block is properly guarded byENABLE_MBEDTLSso builds with the flag off no longer fail to link (#134).
Security
-
mbedTLS 3.6.5 bundled in
contribs/for the encrypted-advertisement decoders. -
TLS support in the MQTT bridge unblocks public-CA brokers (EMQX, HiveMQ Cloud, AWS IoT) without requiring a VPN.
-
MQTT broker credentials moved out of the plain-text settings file into the platform secure store (#132).
Full Changelog: v1.4.0…v1.5.0
