Commit Graph
2132 Commits
Author SHA1 Message Date
agessaman 2d0fa8fcfa add support for T-Beam ESP32 devices, add error logging for a situation where bridge.source is set to tx but tx logging is off. 2025-12-21 11:26:11 -08:00
agessaman b1c9f35e98 remove extra conflict marker 2025-12-21 11:26:11 -08:00
agessaman da6fd16e05 clean up unnecessary comments 2025-12-21 11:26:11 -08:00
agessaman d3f8edc449 Update MQTT configurations to change bridge to observer mode across multiple variants
added support for lilygo_t3s3, tbeam_supreme
2025-12-21 11:26:11 -08:00
agessaman 56a547fdae Refactor client version string generation in MQTTBridge 2025-12-21 11:26:11 -08:00
Michael Hart b464868961 Updates client string to meshcore/{firmware-version-string} 2025-12-21 11:26:11 -08:00
agessaman 6ac7b315bb enable wifi power save and limit wifi power to reduce potential interference with LoRa radio; fixed situation where retry logic failed when no brokers were connected 2025-12-21 11:26:11 -08:00
agessaman 574ba38ab2 Add IATA validation to prevent MQTT publishing without configured IATA code 2025-12-21 11:26:11 -08:00
agessaman ba16317d0e Restore status publish retry delay to prevent MQTT server spam 2025-12-21 11:26:11 -08:00
agessaman 8fad932f80 Remove final conflict marker from CommonCLI.cpp 2025-12-21 11:26:11 -08:00
agessaman d0907a25e4 Remove remaining conflict markers from CommonCLI.cpp 2025-12-21 11:26:11 -08:00
agessaman 34e4d6b72d Remove conflict marker from CommonCLI.cpp 2025-12-21 11:26:11 -08:00
agessaman cfda952246 Add missing member variables for token expiration and reconnection tracking 2025-12-21 11:26:11 -08:00
agessaman 44c6bbd412 Fix remaining conflict marker and add missing RECONNECT_THROTTLE_MS constant 2025-12-21 11:26:11 -08:00
agessaman b83f1c8c35 Fix remaining conflict marker in maintainAnalyzerConnections 2025-12-21 11:26:11 -08:00
agessaman cebc10a7f0 Remove WiFi credentials from platformio.ini - use CLI or build flags instead 2025-12-21 11:26:11 -08:00
agessaman 5e6a0775f1 Remove duplicate MQTT function definitions from rebase 2025-12-21 11:26:11 -08:00
agessaman e24e23c5ff Refactor MQTT preferences handling in CommonCLI
- Introduced a new MQTTPrefs struct to store MQTT settings separately from NodePrefs, enhancing compatibility and reducing conflicts.
- Implemented functions to load, save, and synchronize MQTT preferences, ensuring backward compatibility with existing configurations.
- Updated file handling to read and write MQTT settings from a dedicated /mqtt_prefs file, maintaining file format compatibility.
- Added default values for MQTT preferences to ensure proper initialization when files are missing or corrupted.
2025-12-21 11:26:11 -08:00
agessaman e8b46dbbda added explicit dependency on paulstoffregen/Time to resolve potential pio compile issues 2025-12-21 11:26:11 -08:00
agessaman f869bd794a removed cayennelpp patching script and just updated to the newest ArduinoJson like we should have from the beginning 2025-12-21 11:26:11 -08:00
agessaman bf82b5e3c4 Fix timezone command handling in CommonCLI by adjusting string comparison lengths for accurate parsing. Updated offsets to ensure correct handling of timezone and timezone.offset commands. 2025-12-21 11:26:11 -08:00
agessaman aecd411e66 Enhance CommonCLI and JWTHelper to support MQTT email functionality
- Added loading and saving of MQTT email preferences in CommonCLI.
- Updated command handling in CommonCLI to retrieve and set the MQTT email.
- Modified JWTHelper to include an optional email parameter in JWT token creation.
- Adjusted MQTTBridge to utilize the email from preferences when creating JWT tokens.
2025-12-21 11:26:11 -08:00
agessaman 4a12b74669 Enhance CommonCLI and JWTHelper for MQTT owner public key support
- Added functionality to load, save, and handle the MQTT owner public key in CommonCLI.
- Implemented validation for the owner public key format and updated command handling to set the key.
- Modified JWTHelper to include optional owner and client fields in JWT token creation.
- Increased buffer sizes for JWT tokens in MQTTBridge to accommodate new fields.
2025-12-21 11:26:11 -08:00
agessaman 77d179dac0 Enhance MQTTBridge and related components for improved status reporting and stats collection
- Added support for automatic stats collection in MQTTBridge, allowing for detailed status messages including battery voltage, uptime, error flags, and air time metrics.
- Updated MQTTMessageBuilder to accommodate additional stats in the status message, increasing buffer size for JSON documents.
- Modified CommonCLI to display MQTT status interval in minutes and adjusted command handling for setting the interval.
- Introduced new methods in MQTTBridge for setting stats sources
2025-12-21 11:26:11 -08:00
agessaman 0ec9c9794e Enhance MQTTBridge logging and connection handling
- Introduced throttling for log messages related to disconnected brokers and analyzer clients to reduce log spam.
- Added new member variables to track the last log timestamps for broker connection issues and analyzer client states.
- Updated the packet processing logic to reset log timers when brokers are connected, ensuring accurate logging behavior.
- Improved connection validation before publishing to prevent race conditions and maintain accurate broker states.
2025-12-21 11:26:11 -08:00
agessaman c3d0d1b1d5 Implement memory monitoring and queue size reporting in MQTTBridge and CommonCLI
- Added `getQueueSize` method to `MyMesh` and `CommonCLI` for better queue management.
- Introduced memory logging functionality in `MQTTBridge` to monitor heap usage and detect potential memory leaks.
- Adjusted maximum queue size in `MQTTBridge` from 50 to 10 for improved resource management.
- Enhanced command handling in `CommonCLI` to report memory status upon request.
2025-12-21 11:26:11 -08:00
agessaman 26339e959b Enhance MQTTMessageBuilder and MQTTBridge for improved packet handling and memory management
- Implemented size-adaptive JSON document allocation in MQTTMessageBuilder to reduce memory fragmentation.
- Increased buffer sizes for raw hex conversions to accommodate larger packets.
- Updated MQTTBridge to store raw radio data with each packet, improving data integrity during transmission.
- Enhanced packet queue management by clearing structures to prevent stale data and ensuring safe memory handling.
- Added debug logging for packet processing to aid in troubleshooting.
2025-12-21 11:26:11 -08:00
agessaman 4c7455f250 Implement memory monitoring and queue size reporting in MQTTBridge and CommonCLI
- Added `getQueueSize` method to `MyMesh` and `CommonCLI` for better queue management.
- Introduced memory logging functionality in `MQTTBridge` to monitor heap usage and detect potential memory leaks.
- Adjusted maximum queue size in `MQTTBridge` from 50 to 10 for improved resource management.
- Enhanced command handling in `CommonCLI` to report memory status upon request.
2025-12-21 11:26:11 -08:00
agessaman 1d2a0f3f23 Refactor JWTHelper base64 URL encoding to modify output in-place and improve memory efficiency. Enhance MQTTBridge cleanup process to prevent memory leaks by properly deleting queued packets and timezone objects. 2025-12-21 11:26:11 -08:00
agessaman 3444b2ac3d don't start mqtt connection attempts until wifi credentials are valid (requires reboot)
display IP address on screen when connected

added quickstart section to MQTT_IMPLEMENTATION.md
2025-12-21 11:26:11 -08:00
agessaman c93565bc59 added configuration for mqtt.sever, mqtt.username, mqtt.pasword, and mqtt.port
validated primary MQTT server credentials are set before opening connection
2025-12-21 11:26:11 -08:00
agessaman e4f6b45764 Update MQTT implementation to include dynamic build date and enhance client versioning 2025-12-21 11:26:11 -08:00
agessaman 1629ed55b7 Implement Let's Mesh Analyzer integration in MQTT Bridge
- Switch from PubSub to PsychicMqttClient for async operations and websockets support
- Add support for US and EU Let's Mesh Analyzer servers with JWT authentication.
- Introduce CLI commands to enable/disable analyzer servers.
- Update NodePrefs to store analyzer server settings.
- Modify MQTTBridge to publish status and packet data to analyzer servers via WebSocket MQTT.
- Enhance documentation to reflect new features and configuration options.
2025-12-21 11:26:11 -08:00
agessaman b10f02f929 added build target for Station_G2_repeater_bridge_mqtt and improved documentation. 2025-12-21 11:26:11 -08:00
agessaman f37741efb6 added timezone handling, updated mqtt packet output to use the proper timezones for timestamp and time/date, updated mqtt packet to use raw data instead of parsed packet structure, updated packet upload to use proper packet hash 2025-12-21 11:26:11 -08:00
agessaman c95a05c3d0 Add timezone support to MQTT Bridge and CLI configuration
- Introduce timezone settings in NodePrefs for persistent storage
- Update CLI commands to get/set timezone and offset
- Modify MQTT message builder to utilize timezone for accurate timestamps
- Implement timezone handling in MQTTBridge for local time conversion
- Include timezone library dependency in platformio.ini
2025-12-21 11:26:11 -08:00
agessaman 55473c5b9f Add MQTT Bridge implementation with WiFi CLI configuration
- Implement MQTT bridge for packet uplink to multiple brokers
- Add JSON message formatting for status, packets, and raw data
- Add WiFi SSID/password CLI configuration (get/set wifi.ssid, wifi.pwd)
- Add persistent storage for WiFi credentials
- Add NTP time synchronization for accurate MQTT timestamps
- Add CLI commands for MQTT configuration (origin, iata, status, packets, raw)
- Support multiple MQTT brokers with automatic reconnection
- Integrate with existing MeshCore bridge architecture
2025-12-21 11:26:11 -08:00
agessaman e57f128f1e initial commit to add MQTT observer support to Room Servers 2025-12-21 11:26:11 -08:00
agessaman db96b20f24 clean up unnecessary comments 2025-12-21 11:26:11 -08:00
agessaman 352050e503 Update MQTT configurations to change bridge to observer mode across multiple variants
added support for lilygo_t3s3, tbeam_supreme
2025-12-21 11:26:11 -08:00
agessaman 7176ae9f45 Refactor client version string generation in MQTTBridge 2025-12-21 11:26:11 -08:00
Michael Hart 6f6b45d09e Updates client string to meshcore/{firmware-version-string} 2025-12-21 11:26:11 -08:00
agessaman b0146ee6fc enable wifi power save and limit wifi power to reduce potential interference with LoRa radio; fixed situation where retry logic failed when no brokers were connected 2025-12-21 11:26:11 -08:00
agessaman 33bf5c5ee7 Add IATA validation to prevent MQTT publishing without configured IATA code 2025-12-21 11:26:11 -08:00
agessaman 0924faa8b9 Restore status publish retry delay to prevent MQTT server spam 2025-12-21 11:26:11 -08:00
agessaman f3805fa469 Remove final conflict marker from CommonCLI.cpp 2025-12-21 11:26:11 -08:00
agessaman f8c58d1aed Remove remaining conflict markers from CommonCLI.cpp 2025-12-21 11:26:11 -08:00
agessaman 9a228e63c2 Remove conflict marker from CommonCLI.cpp 2025-12-21 11:26:11 -08:00
agessaman 7eff8bad2e Add missing member variables for token expiration and reconnection tracking 2025-12-21 11:26:11 -08:00
agessaman e8e50f8751 Fix remaining conflict marker and add missing RECONNECT_THROTTLE_MS constant 2025-12-21 11:26:11 -08:00