agessaman
7d0c5bce50
enhance(mqtt): improve QoS handling and retry logic in MQTTBridge
...
Refactor the MQTTBridge to implement enhanced QoS handling for publish operations. Introduce retry mechanisms for QoS0 packets, allowing for transient failures to be retried with a delay. Update publish methods to return success status, improving error handling and logging. Additionally, adjust the packet queue processing to accommodate new retry logic and ensure better message delivery control.
2026-04-23 21:06:49 -07:00
agessaman
cfec3a5b58
refactor(mqtt): remove legacy CLI handling for mqtt.server, port, username, and password
...
Eliminate legacy support for mqtt.server, mqtt.port, mqtt.username, and mqtt.password in the CommonCLI. This streamlines the command handling process and aligns with the updated configuration management.
Made-with: Cursor
2026-04-21 21:49:21 -07:00
agessaman
ac2662c573
fix(mqtt): align legacy CLI with slot prefs and restore isConfigValid
...
Map mqtt.server/port/username/password to slot 3 (index 2) and analyzer
toggles to slot presets. Add MQTTBridge::isConfigValid matching bridge
startup rules.
Made-with: Cursor
2026-04-21 21:44:03 -07:00
agessaman
d6712c69c8
Merge mqtt-bridge-implementation into mqtt-bridge-implementation-flex
...
Integrate upstream/dev changes from merge 563d9a7 while preserving flex
MQTT memory and CLI behavior (slot commands, snmp, mqtt.rx/advert TX,
bridge.source sync, prefs layout, cert ignore rules).
Made-with: Cursor
2026-04-21 21:38:18 -07:00
agessaman
e9ff1ae055
Refactor PsychicMqttClient to improve memory management and callback handling. Replace dynamic memory allocations with fixed-size arrays for callbacks, enhancing performance and reducing fragmentation. Introduce inline storage for topics and optimize buffer allocation during connection setup. Update version to 0.2.2 to reflect changes.
2026-04-21 20:43:09 -07:00
agessaman
1ff9437f73
Enhance MQTTBridge with improved memory management and logging. Introduce deferred logging for connection attempts based on heap availability, and implement QoS support in publish methods for better message delivery control. Add mechanisms to handle low memory conditions, including a gray-zone detection for TLS viability and a post-recovery escalation strategy to ensure system stability.
2026-04-19 15:33:38 -07:00
agessaman
563d9a7d39
Merge upstream/dev into mqtt-bridge-implementation
...
Resolve conflicts: devcontainer Node feature; UITask USER_BTN + MQTT WiFi;
room server ctor with RegionMap + MQTTBridge; CommonCLI prefs layout
(rx_boosted_gain after owner_info), refactor get/set into handlers with
MQTT CLI branches and getBoard preserved.
Made-with: Cursor
2026-04-19 10:08:27 -07:00
Scott Powell
49b37d5622
* minor bounds fix
2026-04-18 21:32:41 +10:00
liamcottle
cfe4b0b9a5
bleuart service stay registered first to prevent gatt cache issues on android when already paired
2026-04-18 14:43:47 +12:00
Liam Cottle and GitHub
77d737beb9
Merge pull request #2323 from txkbaldlaw/updated-companion-dfu-from-mt
...
Add support for Companion BLE OTA updates on nRF devices
2026-04-18 12:17:16 +12:00
agessaman
ab12170867
Update .gitignore to include script-generated certificate files and adjust MQTT preset for 'meshmapper' to reset the connection timeout value to 0.
2026-04-17 14:51:22 -07:00
agessaman
074ac3e709
Update MeshMapper preset. Remove script-generated certificate files: x509_crt_bundle.bin and cacert.pem
2026-04-17 14:51:15 -07:00
agessaman
f4a4fd7c80
Enhance MQTTBridge memory management by introducing critical heap monitoring and deferred TLS connection attempts based on available heap size. Implement a hard restart mechanism for prolonged low memory conditions to prevent fragmentation. Preserve backoff state during MQTT client recreation to improve recovery from connection failures.
...
Made-with: Cursor
2026-04-17 08:56:59 -07:00
Scott Powell
d7a3d41843
Merge branch 'default-scope' into dev
2026-04-17 16:30:19 +10:00
Scott Powell
91f3fa0bdf
* CLI: 'region put ...' now defaults to flood allowed
2026-04-17 15:11:10 +10:00
Scott Powell
7cdb056cb3
* CLI: 'region default ...' now auto-creates the region
2026-04-17 15:02:04 +10:00
Scott Powell
77d02e844f
* bug fix
2026-04-17 14:38:03 +10:00
txkbaldlaw
b898e7a04e
Add DFU to BLE Stack
2026-04-16 16:04:30 -05:00
agessaman
ab6685a1a7
Update MQTTBridge to optimize memory management by replacing dynamic JSON document allocations with inline StaticJsonDocument instances. Adjust authentication token handling to use inline buffers, reducing heap fragmentation. Modify PSRAM allocation logic for raw data and JSON buffers to enhance performance on PSRAM-enabled boards. Update related comments for clarity.
2026-04-16 07:56:45 -07:00
Scott Powell
576e9dfd45
* bug fix
2026-04-15 15:44:22 +10:00
agessaman
13fbcd9162
Update MQTT presets to include 'nashmesh' and adjust related documentation. Modify error messages in CommonCLI for improved clarity.
2026-04-14 21:19:19 -07:00
Scott Powell
4131a455a2
* repeater: refactored 'region' CLI commands -> CommonCLI
...
* room server: added RegionMap, and new CommonCLI wiring, default_scope handling
* sensor: only minimal RegionMap wiring. Still needs work to handle default-scope
2026-04-15 13:32:49 +10:00
agessaman
ff2df2b712
Refactor MQTTMessageBuilder to accept external JsonDocument parameters for status and packet messages, reducing stack usage and improving memory management. Update MQTTBridge to allocate and reuse DynamicJsonDocument instances for JSON serialization, enhancing performance and efficiency during publish operations.
2026-04-14 18:07:02 -07:00
agessaman
0c190dac50
Refactor MQTTBridge to eliminate raw data mutex usage, simplifying raw data handling. Introduce core-specific staging for raw radio data, ensuring thread safety without mutexes. Adjust MAX_QUEUE_SIZE for memory efficiency and update related comments for clarity.
2026-04-14 16:55:55 -07:00
agessaman
961f829321
Enhance radio watchdog functionality in Dispatcher to prevent false alarms in quiet mesh environments. Introduce a composite timestamp for radio activity, incorporating last RX, ISR events, and successful TX. Update related methods in Dispatcher and RadioLibWrapper to track radio activity accurately. This improves radio management and troubleshooting capabilities.
2026-04-14 16:16:49 -07:00
Scott Powell
d131e8ae35
* companion: RegionMap now used in Datastore
...
* companion: new CMD_SET_DEFAULT_FLOOD_SCOPE
* support for regional builds with DEFAULT_REGION_SCOPE
2026-04-13 21:06:53 +10:00
Scott Powell
6a939ed8f8
* RegionMap: new 'default' region
2026-04-12 22:06:10 +10:00
Liam Cottle and GitHub
a9de5bfc0c
Merge pull request #1612 from weebl2000/default-button-low
...
Default button polarity to active-LOW across all firmware types
2026-04-12 23:30:28 +12:00
Liam Cottle and GitHub
612aa66fc8
Merge pull request #2075 from pcmoore/working-ina3221
...
RFE: allow for INA3221 macro overrides in platform.io files
2026-04-12 22:49:17 +12:00
agessaman
7e4f75c9a5
Add radio diagnostics support in MyMesh and CommonCLI
...
Implement a new method `formatRadioDiagReply` in MyMesh to format and return radio diagnostic information. Update CommonCLI to handle the new command for retrieving radio diagnostics. Enhance the Dispatcher class with a radio watchdog feature to monitor and recover from silent radio states. Introduce new error flags and methods in the Dispatcher and RadioLibWrapper classes to support these diagnostics, improving overall radio management and troubleshooting capabilities.
2026-04-10 08:48:22 -07:00
agessaman
74e45a795c
Enhance MQTTMessageBuilder to include internal heap memory statistics in status messages. Update function signature and JSON serialization to accommodate the new internal_heap parameter, improving diagnostics for memory management in MQTTBridge.
2026-04-06 18:00:50 -07:00
agessaman
3b46e9eeed
Enhance MQTT bridge implementation by adding support for the TennMesh preset, including fixed username/password authentication. Update documentation to reflect new preset details and modify error messages in CommonCLI for improved clarity. Adjust MQTTBridge to handle new authentication methods and ensure proper connection management across all slots.
2026-04-05 22:38:56 -07:00
agessaman
47b632aaa9
Refactor MQTT bridge handling in MyMesh to support RX and TX packet logging based on MQTT settings. Introduce mqtt_rx_enabled preference for default RX packet handling and update related logic in CommonCLI and MQTTBridge for improved configuration management. Enhance MQTTMessageBuilder to conditionally include SNR and RSSI for RX packets only.
2026-04-04 16:01:35 -07:00
agessaman
258a0d724c
Update MQTTBridge to use runtime-configurable MQTT slot limits based on PSRAM availability. Modify related logic in MQTTBridge.cpp and MQTTBridge.h to replace static MAX_MQTT_SLOTS with RUNTIME_MQTT_SLOTS. Adjust platformio.ini to reduce verbosity of debug logging for improved performance.
2026-04-04 13:48:34 -07:00
Wessel Nieboer and Wessel Nieboer
0a13ac7fc7
Default button polarity to active-LOW across all firmware types
...
Nearly all LoRa boards use a boot button that pulls to ground when
pressed.
2026-04-04 13:19:13 +02:00
KPrivitt and GitHub
27f732653b
Added RAK12035 Soil Moisture and Temperature Sensor ( #2223 )
2026-04-03 22:54:24 +13:00
agessaman
f0962efff4
Remove obsolete CoolTerm capture file and enhance MQTTBridge diagnostics by adding disconnect count and first disconnect time tracking. Update MQTTBridge.h and MQTTBridge.cpp to support new diagnostic features, and modify platformio.ini files to adjust WiFi transmission power settings for various variants. Update MQTT_IMPLEMENTATION.md with new TLS timeout build profiles for improved logging and troubleshooting.
2026-04-02 06:40:34 -07:00
Quency-D
2cbe0c0398
Fixed the initialization error of the BME680 sensor.
2026-04-02 10:24:17 +08:00
Liam Cottle and GitHub
b934daa990
Merge pull request #2007 from khudson/r1neo
...
Muzi Works R1 Neo support
2026-04-02 00:36:44 +13:00
agessaman
cf4ec3f6b4
Enhance MQTTBridge memory management by introducing a pre-allocated status JSON buffer in PSRAM, reducing allocation overhead during status publish operations. Update NTP synchronization to use a lightweight, non-blocking refresh method, and improve memory pressure handling by adjusting thresholds for publish operations. Update platformio.ini to reflect changes in SSL certificate source configuration.
2026-03-31 19:46:52 -07:00
agessaman
0e82271eb1
Implement WiFi disconnect diagnostics in MQTTBridge and CommonCLI. Add functionality to retrieve and format last WiFi disconnect reasons for improved troubleshooting. Update CommonCLI to handle diagnostic commands and enhance error reporting in MQTTBridge, ensuring better visibility into connection issues.
2026-03-31 14:45:47 -07:00
agessaman
a4324a830a
Fix audience command parsing in CommonCLI to correctly handle 9-character prefix. This adjustment ensures proper audience configuration for MQTT slots, enhancing the functionality introduced in previous commits.
2026-03-30 22:09:34 -07:00
agessaman
1263e71d31
Enhance MQTT implementation by adding support for JWT audience configuration in custom slots. Update MQTTBridge and CommonCLI to handle audience settings, enabling JWT authentication for custom brokers. Modify documentation to reflect changes in command usage and provide examples for custom broker setup with JWT authentication.
2026-03-30 21:44:05 -07:00
agessaman
da775bb281
Enhance MQTT implementation with updated partition table guidance and merged firmware flashing instructions. Add support for new SSL certificate sources in the generate_cert_bundle script, and integrate embedded CA bundle handling in MQTTBridge and CommonCLI. Update platformio.ini files across multiple variants to include new certificate bundle configurations and scripts for improved SSL support.
2026-03-30 17:05:01 -07:00
Brian Widdas
811ac1cd02
Add missing methods in ESPNOWRadio()
...
ESP-NOW radios (ie, Generic_ESPNOW_* variants) do not compile due to
missing methods
Changes in January 2026 (019bbf74 ) to add additional stats (receive errors)
to CMD_GET_STATS was not implemented in the ESPNOWRadio() class
Changes in March 2026 (9a95e25e ) to add setRxBoostedGainMode to all devices
rather than just SX1262/SX1268 were not applied to the ESPNowRadio() driver
Specifically, this change adds the following to ESPNOWRadio()
* getPacketsRecvErrors() - always returns 0
* getRxBoostedGainMode() - always returns false
* setRxBoostedGainMode() - does nothing
2026-03-30 04:25:08 +01:00
agessaman
202acacfe1
Enhance MQTT implementation by adding optional SNMP support, allowing for monitoring and management of MQTT statistics. Update configuration options to include SNMP settings, and modify the MQTTBridge to integrate SNMP agent functionality. Additionally, improve documentation for the MQTT observer setup and expand the number of concurrent MQTT connection slots from 3 to 5, enhancing overall flexibility and performance.
2026-03-28 17:08:32 -07:00
agessaman
cc17c6b745
Merge remote-tracking branch 'origin/dev' into mqtt-bridge-implementation-flex
...
Resolve conflicts: keep MQTT prefs skip/pad and append rx_boosted_gain I/O
per dev layout; add devcontainer node feature from dev.
Made-with: Cursor
2026-03-28 08:37:42 -07:00
agessaman
3eacf56e36
Update MQTT presets to add 'meshomatic' and enhance error handling in MQTTBridge. Modify custom preset logic to disable slots with no server configured, and improve error logging for connection issues, ensuring clearer diagnostics during MQTT operations.
2026-03-27 15:20:54 -07:00
agessaman
47dd218275
Enhance MQTTBridge memory management by introducing a pre-allocated JSON publish buffer in PSRAM. This change reduces allocation overhead during publish operations and improves overall efficiency. Additionally, update teardown logic to free the new buffer and refine broker URI handling for custom slots, ensuring proper connection management.
2026-03-26 21:10:44 -07:00
agessaman
1b5884bd35
Add reconnect method to PsychicMqttClient for improved MQTT client management
...
This commit introduces a new `reconnect` method in the `PsychicMqttClient` class, allowing for re-establishing a connection to the MQTT broker without needing to disconnect first. The method checks if the client is initialized, updates the configuration if necessary, and attempts to reconnect, enhancing the overall connection management. Additionally, the MQTT slot management has been updated to support up to 6 configurable slots, improving flexibility in connection handling.
2026-03-25 21:39:51 -07:00