Commit graph

196 commits

Author SHA1 Message Date
Leo Verto
fccb07cdbd
Merge 329bf27590 into ece5a52000 2026-04-15 15:45:21 +10:00
Adam Gessaman
ece5a52000
Merge pull request #26 from vergoh/broker_expansion
Expand number of supported brokers from 4 to 6
2026-04-11 14:49:42 -07:00
Teemu Toivola
9a7ce320d6
expand number of supported brokers from 4 to 6 2026-04-12 00:18:53 +03:00
agessaman
138c5c7c3b Enhance advert payload parsing and error handling
- Improved robustness of advert payload parsing by returning detailed error information when payloads are too short or when exceptions occur.
- Added debug logging for path length decoding and payload extraction to aid in troubleshooting.
- Implemented warning logs for dropping malformed ADVERT packets, ensuring better visibility into packet processing issues.
2026-04-02 16:23:17 -07:00
agessaman
6a45b95b49 Add DRAIN_MESSAGES configuration for optional message fetching
- Introduced the PACKETCAPTURE_DRAIN_MESSAGES environment variable to control whether to drain the device message queue during packet capture.
- Updated the auto message fetching logic to respect the new configuration, allowing for RF packet capture without pulling stored messages if set to false.
- Enhanced README.md to document the new configuration option.
2026-03-25 17:23:20 -07:00
Adam Gessaman
22564aa465
Merge pull request #21 from robekl/fix-rx-raw-duplicate-publish
Avoid duplicate packet publishes from RAW events
2026-03-25 17:12:05 -07:00
Adam Gessaman
28cf72b7d1
Merge pull request #22 from robekl/fix-advert-parse-robustness
Harden advert parsing against partial payloads
2026-03-25 16:47:13 -07:00
Robert Ekl
b72d62663a
Merge main into fix-advert-parse-robustness 2026-03-22 23:23:17 -05:00
Adam Gessaman
1bd909c460
Merge pull request #20 from robekl/fix-advert-metadata-suppression
Preserve decoded advert metadata
2026-03-21 22:06:27 -07:00
Robert Ekl
d357f0798e
Harden advert parsing against partial payloads 2026-03-21 23:07:26 -05:00
Robert Ekl
400a5dc4c0
Preserve decoded advert metadata 2026-03-21 23:06:50 -05:00
Robert Ekl
ec654bbee9
Avoid duplicate packet publishes from RAW events 2026-03-21 23:06:25 -05:00
Adam Gessaman
1e78f4ce32
Merge pull request #19 from robekl/fix-advert-control-compat
Align advert and control parsing with MeshCore
2026-03-20 20:24:17 -07:00
Robert Ekl
a3b2ae6b43
Align advert and control parsing with MeshCore 2026-03-20 22:18:39 -05:00
agessaman
4b471c4521 Refactor version retrieval for meshcore in install.sh
- Updated the method for checking the installed version of meshcore to use importlib.metadata for improved compatibility and error handling.
- Ensured fallback to the previous method if importlib.metadata is not available.
2026-03-16 17:45:39 -07:00
Adam Gessaman
9b9d77c429
Merge pull request #16 from agessaman/dev
Enhance packet capture and installation scripts for MeshCore 1.14.0 compatibility
2026-03-15 08:55:53 -07:00
agessaman
e6f28002cd Enhance packet capture and installation scripts for MeshCore compatibility
- Updated .gitignore to exclude advert_state.json.
- Added version checks for MeshCore in install.sh to ensure compatibility with multi-byte path support.
- Implemented path length decoding in packet_capture.py to handle new MeshCore firmware specifications.
- Adjusted requirements.txt to require meshcore version 2.2.31 or higher for multi-byte path support.
2026-03-15 08:34:04 -07:00
Adam Gessaman
ba2ac97602
Merge pull request #14 from agessaman/dev
Enhance advert state management and update install.sh to 1.2.1
2026-03-09 19:38:46 -07:00
Adam Gessaman
8537ccd9c4
Merge branch 'main' into dev 2026-03-09 19:38:36 -07:00
agessaman
9bf22cc0dd Update install.sh to version 1.2.1 2026-03-09 19:37:21 -07:00
agessaman
f221e04cbc Update .gitignore, modify IATA code in install.sh, and enhance advert state management in packet_capture.py
- Added 'local-docs/' to .gitignore to exclude local documentation files.
- Changed PACKETCAPTURE_IATA value from 'LOC' to 'XYZ' in install.sh.
- Implemented persistent state management for last_advert_time in packet_capture.py, including methods to load and save the state to a JSON file, improving reliability of advert timing.
2026-03-09 19:34:39 -07:00
LeoVerto
329bf27590 Modify Dockerfile for armv7l (32bit Raspberry Pi) support
- Switched base image to node one because nvm ran into strange
  errors and installing python from repos is much easier
- Install dependencies required to build pynacl and python-cffi
- Use existing node user for dropping privileges
2026-02-26 17:47:21 +01:00
Adam Gessaman
094967c4e4
Add LICENSE file
Add LICENSE file
2026-01-21 11:14:42 -08:00
Adam Gessaman
ac3fe44ba6 Update MQTT configuration in Docker setup
- Revised MQTT settings for Let'sMesh Analyzer to include US and EU server configurations.
- Updated server addresses, ports, and transport methods for improved connectivity.
- Enabled authentication tokens and keepalive settings for both MQTT brokers.
- Added comments for optional custom MQTT broker configuration.
2026-01-09 10:26:38 -08:00
Adam Gessaman
057593762b Update Docker configuration for serial connection support
- Changed default connection type from BLE to serial in docker-compose.yml and Dockerfile.
- Updated privileged mode settings for improved security and flexibility.
- Enhanced device mounting instructions to recommend using persistent device IDs.
- Added comments for optional environment variables and MQTT settings for better clarity.
- Removed unnecessary default environment variables related to BLE connections.
2026-01-09 10:17:11 -08:00
Adam Gessaman
b6bf6e7b4c
Merge pull request #9 from samm-git/patch-1
Add device listing for FreeBSD
2026-01-09 07:09:57 -08:00
Alex Samorukov
34d66f3e05
Add device listing for FreeBSD
Fix serial selection for the FreeBSD
2025-12-26 21:57:02 +01:00
Adam Gessaman
9e580bee4a
Merge pull request #8 from agessaman/dev/dialout-fix
Improve BLE timeout and disconnect handling.
Refactor auth token generation to use the radio to sign JWTs, with fallbacks to a python implementation (typically unnecessary unless then firmware is 6+ months old). Removes dependency on meshcore-decoder.
Fixes pairing process in pairing_helper.py
2025-12-20 14:47:30 -08:00
agessaman
b6a1d1d072 Fix reconnection setup. 2025-12-18 10:36:45 -08:00
agessaman
a5faeb75e7 Add retry limits and connection handling improvements in PacketCapture
- Introduced configurable retry limits for various device commands, including BLE, TCP, health checks, stats, and device info queries.
- Enhanced the retryable_device_command method to utilize connection-specific defaults when max_retries is not specified.
- Implemented connection state management methods to streamline connection checks and state resets after reconnections.
- Improved health check logic to incorporate connection-specific timeout and retry configurations, enhancing reliability and error handling.
2025-12-18 09:46:59 -08:00
agessaman
a83bc27eec Enhance health check logic for BLE connections
- Introduced a grace period for health checks on BLE connections, allowing for a limited number of consecutive failures before considering the connection degraded.
- Adjusted health check timeout and retry logic for BLE and TCP connections to improve reliability.
- Reset health check failure count upon successful connection and health check, ensuring accurate tracking of connection status.
- Improved logging for health check failures and timeouts to aid in debugging and monitoring connection health.
2025-12-18 08:48:32 -08:00
agessaman
6d030af555 Add retry logic for device commands in auth_token and packet_capture modules
- Introduced `_retryable_device_sign` in `auth_token.py` to handle transient errors during device signing operations with exponential backoff.
- Implemented `retryable_device_command` in `packet_capture.py` for executing device commands with timeout and retry logic, enhancing robustness against communication issues.
- Updated various device command calls in `packet_capture.py` to utilize the new retry logic, improving error handling and reliability in device interactions.
2025-12-18 08:04:02 -08:00
agessaman
d825d2860d Update installation scripts to version 1.2 and improve logging
- Bump version in install.ps1 and install.sh to 1.2.
- Remove unnecessary debug logging in Bluetooth pairing functions.
- Enhance error handling in connection health checks for TCP with SDK auto-reconnect.
- Streamline MQTT configuration checks in install.sh.
2025-12-17 16:34:08 -08:00
agessaman
6725fc0a5e Fixed logic in device signing to python signing fallback 2025-12-17 14:20:55 -08:00
agessaman
ca96c21dc9 Fix pairing on MacOS, update installer to remove dependency on meshcore-decoder 2025-12-17 14:10:06 -08:00
agessaman
e174cfc21f Refactor auth token generation and improve signing methods
- Introduced on-device signing as the default method for JWT token generation, with fallback options to Python signing and meshcore-decoder CLI.
- Enhanced error handling and logging for token generation processes.
- Updated installation scripts to reflect changes in authentication methods, removing the requirement for meshcore-decoder.
- Added async support for token creation to improve performance in asynchronous contexts.
- Updated requirements to ensure compatibility with the latest meshcore package for on-device signing support.
2025-12-17 13:40:23 -08:00
agessaman
a7c8a3bf39 More meaningful error logging in health check process 2025-12-14 18:42:54 -08:00
agessaman
049c844f02 Improve BLE disconnection handling
- Capture BLE address before disconnecting to ensure proper cleanup.
- Implement forced disconnection via bluetoothctl on Linux systems for BLE devices.
2025-12-14 18:38:06 -08:00
agessaman
4cb24a72c6 Add dialout group check for serial connections and fix device name fallback
- Add check_dialout_group() function in install.sh to prompt users to add themselves to dialout group when using serial connections
- Fix device name retrieval: wait for self_info to populate and add fallback to PACKETCAPTURE_ORIGIN
- Prevents 'Cannot connect to MQTT without device name' errors when device info is delayed or unavailable
- Fixes indentation errors in packet_capture.py
2025-12-05 10:07:53 -08:00
agessaman
9b62512f87 Update install.sh to ensure Python dependencies are upgraded during installation and remove local package installation for meshcore. 2025-11-25 14:22:46 -08:00
Adam Gessaman
b80e3e5472
Update install.ps1
Bump with the release of stats feature
2025-11-25 06:18:26 -08:00
Adam Gessaman
9716b019d4
Update install.sh
Bump install version with stats release
2025-11-25 06:17:49 -08:00
Adam Gessaman
3a94cadfe3
Merge pull request #6 from agessaman/dev/stats-integration
Tested via BLE and TCP.
2025-11-25 06:09:37 -08:00
agessaman
0132af9ea9 Update README and requirements.txt to reflect meshcore package version requirement 2025-11-25 06:07:19 -08:00
agessaman
8407eeec70 Add status telemetry stats support to PacketCapture. 2025-11-24 09:49:03 -08:00
agessaman
83904e9a47 Update install.sh to build a comprehensive PATH for LaunchAgents, including Node.js and meshcore-decoder paths regardless of installation method. 2025-11-16 09:59:41 -08:00
agessaman
3a6ef2859a I gave NixOS support my best shot. I don't use it, so please feel free to send a PR if it doesn't work for you. 2025-11-09 19:59:06 -08:00
agessaman
8b3bf8f7e2 I think the NixOS flake is okay. If it isn't, send a PR. I gave it my best shot. 2025-11-09 19:59:06 -08:00
agessaman
517659035f another dockerfile fix 2025-11-09 19:42:56 -08:00
agessaman
998d78e3d3 fixed Dockerfile 2025-11-09 19:41:42 -08:00