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.