Releases: meshcore-dev/meshcore-ha
Releases · meshcore-dev/meshcore-ha
V2.4.1
- Bump meshcore requirement to >=2.2.24 by @yellowcooln in #155
- Fix LetsMesh MQTT Status Parity: Accurate Startup Metadata, Radio Format Alignment, and Secure Owner Claims by @yellowcooln in #152
V2.4.0
MQTT Upload Support
- Multi-broker MQTT upload with full UI configuration
- LetsMesh integration with EdDSA auth-token support (Python fallback when CLI unavailable)
- Per-broker owner/email JWT claim settings
- Periodic MQTT status metrics for LetsMesh observer support
- Packet-only publishing aligned with meshcoretomqtt format
- Broker connection status binary sensors
- Auto-fetch device private key for auth tokens
- Packet hash stabilization to reduce LetsMesh duplicates
Execute Command Improvements
- Bump
meshcoreto>=2.2.15with synced command parameter mappings - Functional syntax support:
set_coords(37.7749, -122.4194)(fixes #111) - Supports positional args, keyword args, strings, numbers, booleans, and bytes literals
- Add
set_flood_scopecommand
Discovered Contacts Management
- New opt-in FIFO limit for discovered contacts (configurable max, default 100 when enabled)
- Oldest contacts evicted first; re-advertisements refresh queue position
- Evicted contacts have binary sensor entities automatically removed
- New
meshcore.clear_discovered_contactsservice to remove all at once
Bug Fixes
- Fix duplicate entry setup and guard static path registration
- Fix options menu contact detection for repeaters and clients
- Fix missing log argument
- Only cleanup devices associated with the current entry
Telemetry
- Support negative current readings (charging vs discharging)
- Add power sensor, display current in mA
- 2-character pubkey prefix for display
Documentation
- Add MQTT upload documentation page
- Document functional command syntax in services docs
- Add contact FIFO limit section to contacts docs
- Replace manual storage file deletion with
clear_discovered_contactsservice
Housekeeping
- Add
__pycache__/,*.pyc,.pytest_cacheto.gitignore - Add test infrastructure and unit tests for command parsing and contact eviction
V2.3.0
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
New Features
RX_LOG Correlation
- Automatic RX_LOG parsing and decryption - RX_LOG_DATA events are now automatically parsed and decrypted when
GroupText payloads are detected - Multi-reception correlation - meshcore_message events now include rx_log_data with radio metrics (SNR, RSSI) and path
information from all mesh receptions - Path visualization - See which routes your messages took through the mesh network
Example rx_log_data includes:
- Signal quality (SNR/RSSI)
- Mesh path (hop nodes)
- Channel hash
- Multiple receptions from different routes
Contact Management
- Remove discovered contact service - New service to clean up discovered contacts from Home Assistant without removing from
node - Disable contact discovery toggle - New global setting to disable automatic contact sensor creation for large networks (500+
contacts)
Improvements
Performance & Reliability
- Rate limiting - Token bucket refill rate reduced from 180s to 120s (2 minutes instead of 3)
- Auto-disable inactive devices - Tracked repeaters/clients automatically disable after 5 days without successful
requests (120 hours) - Increased sensor timeout tolerance - Sensors now wait 3x the update interval before marking unavailable (previously
1.5x) - Event-driven contact updates - Removed contact refresh interval setting in favor of real-time NEW_CONTACT event handling
Bug Fixes
- Fixed service parameter types for change_contact_path and change_contact_flags methods
v2.2.0
MeshCore Home Assistant Integration - Version 2.2.0
🚀 Major Features
Token Bucket Rate Limiting
- New: Intelligent rate limiting to protect mesh network from excessive traffic
- Configuration: 20 token burst capacity, 1 token refills every 3 minutes
- Impact: Sustains ~20 requests per hour across all tracked devices
- Sensor: Exposes a sensor to track the rate limiting bucket capacity overtime
- Behavior: Requests are skipped (not queued) when tokens depleted, logged as debug messages
- Documentation: Comprehensive rate limiting guide in remote device tracking docs
Device Disabling
- New: Temporarily disable repeaters or clients without removing them
- Access: Available in config flow → Manage Monitored Devices → Edit
- Use Cases:
- Maintenance windows
- Reducing network traffic
- Testing network performance
- Isolating problematic devices
- Result: All status, telemetry, and login requests stopped while entities remain
Manual Contact Management Mode
- New: Automatic manual contact mode on startup
- Discovered Contacts: New select entity for contacts not yet added to node
- Added Contacts: Separate select entity for contacts already on your node
- Persistence: Discovered contacts saved to
.storage/meshcore.<entry_id>.discovered_contacts - Services:
meshcore.add_selected_contact- Add discovered contacts via UImeshcore.remove_selected_contact- Remove contacts via UImeshcore.cleanup_unavailable_contacts- Remove all unavailable contact sensors
- Immediate Updates: Contact list refreshes immediately on add/remove operations
✨ Enhancements
Channel Improvements
- Channel Select Entity: Now displays actual channel names instead of "Channel 0"
- Format: "Name (idx)" e.g., "#pdx (1)", "work (2)"
- Unused Channels: Display as "(unused) (idx)" when not configured
- Auto-Update: Channel info refreshes immediately after
set_channelcommands - Documentation: Complete guide on hash-based channel encryption and configuration UI
Channel Message Service
- Fix: Now correctly reads
channel_idxfrom channel select entity attributes - Previous Issue: Tried to parse channel index from display string
- Result: Works with new channel name format
🐛 Bug Fixes
Reduced Login Packets
- Fix: Reduced excessive login attempts to repeaters
- Reason: Login is rarely the failure case in established sessions
- Impact: Reduces unnecessary mesh network traffic
Special Characters in Contact Names
- Fix: Handles names with parentheses correctly (e.g., "Queen Anne (Soon)")
- Method: Regex-based parsing extracts rightmost parentheses content
- Centralized: New
extract_pubkey_from_selection()utility function
🔄 Migration Notes
No breaking changes - all new features are additive. Existing configurations will continue to work without modification.