Skip to content

Releases: meshcore-dev/meshcore-ha

V2.4.1

07 Mar 16:20
1565921

Choose a tag to compare

  • 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

03 Mar 03:07
d5a5ab9

Choose a tag to compare

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 meshcore to >=2.2.15 with 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_scope command

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_contacts service 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_contacts service

Housekeeping

  • Add __pycache__/, *.pyc, .pytest_cache to .gitignore
  • Add test infrastructure and unit tests for command parsing and contact eviction

V2.3.0

05 Feb 20:47
0095d95

Choose a tag to compare

  • Fixes issues with non-normalized repeater names and the latest versions of home assistant

v2.2.5

26 Jan 21:21
dd54218

Choose a tag to compare

Fix documentation link

v2.2.4

27 Dec 22:18
f168719

Choose a tag to compare

Fix issue with broken contact select options

v2.2.3

28 Nov 06:03
7de2dbf

Choose a tag to compare

Fixes minor issue with sensors reverting to discovered after being added to the connected client.

v2.2.2

27 Nov 06:39
706785a

Choose a tag to compare

  • Fixes some bugs preventing proper contact sensor synchronization when adding/removing contacts.
  • Changes RX and TX Airtime sensors to be TOTAL_INCREASING

v2.2.1

23 Nov 17:58
aa697f2

Choose a tag to compare

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

29 Oct 05:04
082608f

Choose a tag to compare

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 UI
    • meshcore.remove_selected_contact - Remove contacts via UI
    • meshcore.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_channel commands
  • Documentation: Complete guide on hash-based channel encryption and configuration UI

Channel Message Service

  • Fix: Now correctly reads channel_idx from 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.

v2.1.12

22 Oct 20:05
6115bb3

Choose a tag to compare

Add more decimal places to battery sensors
Add delay on server startup to avoid corrupting connections
Fix bug with repeater settings not persisting