Commit Graph
1090 Commits
Author SHA1 Message Date
agessaman 457edf69af feat(mqtt): add new ColoradoMesh preset to MQTT presets
Increased the total number of built-in MQTT presets from 12 to 13 by adding the ColoradoMesh preset. This addition enhances the MQTT bridge's capabilities for connecting to more networks.
2026-04-28 07:41:56 -07:00
agessaman 5a5e53730e fix(mqtt): add missing error codes to MQTTBridge error handling
Enhanced the MQTTBridge error handling by adding several missing error codes for Wi-Fi and TLS errors, improving the clarity of error reporting during connection issues. This update includes new cases for group cipher mismatch, invalid PMKID, and TLS handshake failures, among others.
2026-04-27 19:40:20 -07:00
agessaman 753eb72f7f feat(mqtt): add EastIdahoMesh preset and enhance CLI preset listing
Added the EastIdahoMesh preset to the MQTT bridge implementation, increasing the total number of built-in presets. Updated the CLI to support listing available MQTT presets with pagination, improving user experience when configuring MQTT connections. Adjusted related documentation to reflect these changes.
2026-04-25 21:43:20 -07:00
agessaman 673361b63a fix(mqtt): restore 'origin' field position in packet message structure
Reintroduced the 'origin' field in the buildPacketMessage function to its original position within the JSON object. This adjustment ensures consistency in the message format and aligns with previous structural changes made to enhance clarity.
2026-04-25 17:14:05 -07:00
agessaman 8be27e4e94 refactor(mqtt): reorganize packet message structure in MQTTMessageBuilder
Updated the buildPacketMessage function to improve the structure of the JSON object being built. The 'origin_id' field has been moved to a later position, and the 'hash' field has been added to enhance the packet's metadata. This change aims to streamline the message format for better clarity and consistency.
2026-04-25 17:02:41 -07:00
agessaman bfcf017625 refactor(mqtt): update default TX packet settings and documentation
Changed the default setting for TX packets from disabled to 'advert' across multiple files, including documentation and example implementations. This aligns the behavior of the MQTT bridge with the new default preferences, ensuring that only the node's own advert packets are uplinked by default. Updated relevant comments and documentation to reflect these changes.
2026-04-25 09:32:23 -07:00
agessaman 7b21be3e39 feat(cli): add radio watchdog command and update documentation
Introduced a new CLI command to view and set the radio watchdog interval, allowing users to configure the watchdog timeout in minutes (0 to disable, 1-120 for active). Updated the documentation to reflect this addition and clarified the parameters for the `neighbor.remove` command. Default watchdog interval is set to 5 minutes in the codebase.
2026-04-24 20:54:00 -07:00
agessaman 6211885c84 refactor(mqtt): standardize formatting of MQTT preset definitions
Updated the formatting of MQTT preset entries in MQTTPresets.h for improved readability and consistency. No functional changes were made to the preset definitions.
2026-04-24 20:40:32 -07:00
Adam Gessaman 5ae3ab813e Merge pull request #6 from chicagolandmesh/chicagolandmesh-patch-1
fix chimesh mqtt preset path
2026-04-24 20:36:30 -07:00
Chicagoland Mesh e5225a14d3 add new presets to error message in cli 2026-04-24 14:06:44 -05:00
Chicagoland Mesh 22519f33b3 fix mqtt path for chimesh preset 2026-04-24 14:03:54 -05:00
agessaman c1989d6fda Merge remote-tracking branch 'upstream/dev' into mqtt-bridge-implementation-flex
Resolve heltec_tracker_v2 LoRaFEMControl modify/delete by keeping inlined FEM logic in HeltecTrackerV2Board.

Made-with: Cursor
2026-04-24 10:20:52 -07:00
agessaman ee4e39bcc0 feat(mqtt): add two new MQTT presets for chimesh and meshat.se
Updated the MQTT preset definitions to include new entries for chimesh and meshat.se, increasing the total number of built-in presets from 9 to 11.
2026-04-24 10:17:23 -07:00
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
Scott Powell 3d982711a6 * CommonCLI: more reply bounds checking 2026-04-21 12:12:47 +10:00
Scott Powell db7baa7bd7 * CommonCLI: bounds check added to "unknown config:" replies 2026-04-21 12:07:39 +10: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 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 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 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 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