---
title: "MeshCore"
description: "MeshCore is a Marketplace integration for Home Assistant. It has 573 installs sharing analytics, works locally and was last updated October 22, 2026."
canonical: "https://vulpo.app/integrations/marketplace/meshcore-dev-meshcore-ha"
url: "https://vulpo.app/integrations/marketplace/meshcore-dev-meshcore-ha.md"
last-updated: "2026-10-22"
version: "1.4"
---

# MeshCore

> MeshCore is a Marketplace integration for Home Assistant. It has 573 installs sharing analytics, works locally and was last updated October 22, 2026.

MeshCore is a custom integration that connects Home Assistant to a MeshCore radio companion for monitoring and controlling mesh networks. The companion links over USB, Bluetooth or TCP, and the integration works locally through the meshcore-py library. It adds sensors, binary sensors, buttons, selects, text helpers and presence tracking for the nodes in the mesh. Actions cover sending direct and channel messages, running companion commands, and adding or removing contacts. Repeaters and tracked clients can be polled for telemetry, and optional self diagnostics add radio statistics and fault flags. Further options include contact discovery modes, uploads of received adverts to the MeshCore community map, and MQTT brokers; setup is done in the UI after adding the custom repository.

Automatic summary of the README and code of meshcore-dev/meshcore-ha. Something wrong, or are you the maintainer and want your own text here? [Get in touch](https://vulpo.app/contact)

Not in the Marketplace catalog. Add <https://github.com/meshcore-dev/meshcore-ha> as a custom repository in the Marketplace.

## Supports

- **Works locally**: Talks to your devices on your own network. No vendor cloud in between.
- **From the Marketplace**: Installed through the Marketplace, formerly HACS.
- **Actively maintained**: Its author released or pushed a change in the last six months.

## Setting it up

Add its repository to the Marketplace as a custom repository and install it, then restart Home Assistant and add it under Settings, Devices and services.

### MeshCore Setup

- **Connection Type**

Also asked when changing the connection.

### Configure USB Connection

- **USB Device Path**
- **Connection Speed**
- **Enable Self Telemetry**
- **Self Telemetry Interval (seconds)**
- **Enable Self Diagnostics**: Creates 14 diagnostic sensors for the companion: uptime, TX queue length, noise floor, last RSSI and SNR, TX and RX airtime, and packet counters. Off by default. These are local queries to the companion and send nothing on the mesh. The interval sets how often the sensors update (60 to 3600 seconds).
- **Self Diagnostics Interval (seconds)**
- **Contact Discovery Mode**: Entity per contact: every discovered contact gets its own entity (best for small meshes). Data only: discovered contacts are tracked as data only with no per-contact entity -- inspect them via the dropdown or the Get Discovered Contact service. Disabled: contact discovery is turned off entirely and any existing discovered contacts are cleared.

### Configure Bluetooth Connection

- **Bluetooth Device**
- **Enable Self Telemetry**
- **Self Telemetry Interval (seconds)**
- **Enable Self Diagnostics**: Creates 14 diagnostic sensors for the companion: uptime, TX queue length, noise floor, last RSSI and SNR, TX and RX airtime, and packet counters. Off by default. These are local queries to the companion and send nothing on the mesh. The interval sets how often the sensors update (60 to 3600 seconds).
- **Self Diagnostics Interval (seconds)**
- **Contact Discovery Mode**: Entity per contact: every discovered contact gets its own entity (best for small meshes). Data only: discovered contacts are tracked as data only with no per-contact entity -- inspect them via the dropdown or the Get Discovered Contact service. Disabled: contact discovery is turned off entirely and any existing discovered contacts are cleared.

### Configure Network Connection

- **Host Address**
- **Port**
- **Enable Self Telemetry**
- **Self Telemetry Interval (seconds)**
- **Enable Self Diagnostics**: Creates 14 diagnostic sensors for the companion: uptime, TX queue length, noise floor, last RSSI and SNR, TX and RX airtime, and packet counters. Off by default. These are local queries to the companion and send nothing on the mesh. The interval sets how often the sensors update (60 to 3600 seconds).
- **Self Diagnostics Interval (seconds)**
- **Contact Discovery Mode**: Entity per contact: every discovered contact gets its own entity (best for small meshes). Data only: discovered contacts are tracked as data only with no per-contact entity -- inspect them via the dropdown or the Get Discovered Contact service. Disabled: contact discovery is turned off entirely and any existing discovered contacts are cleared.

### Reconfigure USB Connection

- **USB Device Path**
- **Connection Speed**

### Reconfigure Bluetooth Connection

- **Bluetooth Device**

### Reconfigure Network Connection

- **Host Address**
- **Port**

### After setup

- **Choose an action**
- **Available Repeaters**
- **Repeater Password**
- **Enable Telemetry Polling**
- **Enable Neighbor Entities (creates SNR and activity sensors for each neighbor seen by the repeater)**: Asks this repeater for its neighbour list after each successful status poll. Each neighbour gets an SNR sensor and a seen sensor. The list is paged: each page is one request, so the cost grows with the number of neighbours. Requires MeshCore firmware 1.14.0 or later.
- **Telemetry Refresh Rate (seconds)**
- **Disable Path Reset**
- **Password**: Sent once to log in to the repeater. Leave blank for a repeater that grants access by ACL without a password.
- **Available Clients**
- **Update Frequency (seconds)**
- **Disable Path Reset**
- **Select Device**
- **Action**
- **Update Password (leave blank to keep current)**
- **Enable Telemetry Polling**
- **Enable Neighbor Entities (creates SNR and activity sensors for each neighbor seen by the repeater)**: Asks this repeater for its neighbour list after each successful status poll. Each neighbour gets an SNR sensor and a seen sensor. The list is paged: each page is one request, so the cost grows with the number of neighbours. Requires MeshCore firmware 1.14.0 or later.
- **Telemetry Refresh Rate (seconds)**
- **Disable Path Reset**
- **Disable Device**
- **Update Password (leave blank to keep current)**: Stored passwords are never shown. Leave this blank to keep the saved password; type a new one to replace it.
- **Update Frequency (seconds)**
- **Disable Path Reset**
- **Disable Device**
- **Contact Discovery Mode**: Entity per contact: every discovered contact gets its own entity (best for small meshes). Data only: discovered contacts are tracked as data only with no per-contact entity -- inspect them via the dropdown or the Get Discovered Contact service. Disabled: contact discovery is turned off entirely and any existing discovered contacts are cleared.
- **Limit Discovered Contacts**
- **Maximum Discovered Contacts**
- **Enable Self Telemetry**
- **Self Telemetry Interval (seconds)**
- **Enable Self Diagnostics**: Creates 14 diagnostic sensors for the companion: uptime, TX queue length, noise floor, last RSSI and SNR, TX and RX airtime, and packet counters. Off by default. These are local queries to the companion and send nothing on the mesh. The interval sets how often the sensors update (60 to 3600 seconds).
- **Self Diagnostics Interval (seconds)**
- **Enable CLI Console**: Adds a CLI Console sensor. It records each command that you run with execute\_command or execute\_command\_ui when record\_to\_console is on, and the response. It shows only command and response pairs, not the device log. Off by default. Use it with the text.meshcore\_command helper and a Markdown card. The documentation has an example dashboard.
- **Enable Map Auto Uploader (map.meshcore.io)**: Uploads the adverts that you receive from repeaters, room servers and sensor nodes to map.meshcore.io. Those nodes then show on the MeshCore community map. The firmware must allow private key export (ENABLE\_PRIVATE\_KEY\_EXPORT=1). Without it, the integration cannot sign the uploads.
- **Auto-Cleanup Stale Discovered Contacts (runs daily)**: When enabled, discovered contacts whose last update is older than the configured threshold are automatically removed once per day. Contacts saved to the node are always preserved.
- **Stale Contact Threshold (days)**
- **Auto-Remove Stale Neighbors**: Automatically remove neighbor entries and their sensor entities when they haven't been heard from in the configured number of days.
- **Stale Neighbor Threshold (days)**: Number of days without hearing a neighbor before it is automatically removed (1–365).
- **Retrieve queued incoming messages**: Enabled by default. Turn off when another client, such as a phone over BLE, should retrieve queued channel and direct messages. Home Assistant keeps polling repeater status and telemetry and can still send commands. Messages delivered by the device may still appear in Home Assistant; this setting controls queue retrieval, not message visibility. Text replies to commands may also remain queued for the other client.
- **Adaptive Channel Message Delivery**: When enabled, incoming channel messages fire as soon as RX\_LOG data arrives (typically ~50ms) instead of always waiting the full 500ms. Late-arriving repeater data is delivered progressively. Disable if bots or automations depend on having all paths in the initial event.
- **Broker**
- **Action**

Texts from the code of [meshcore-dev/meshcore-ha](https://github.com/meshcore-dev/meshcore-ha).

## Entities

- **Binary sensors**: Radio Fault: Packet Pool Exhausted, Radio Fault: CAD Timeout, Radio Fault: RX-Start Timeout
- **Sensors**: Node Status, Node Count, Last RSSI, Last SNR, Battery, Uptime, Airtime, Messages Sent, Messages Received, Routing Path, Path Length, Request Successes, and 33 more

## Actions

- **Send Message**: Send a message to a MeshCore node
  Fields: Node ID, Message
- **Send channel message**: Send a text message to a MeshCore public channel.
  Fields: Channel Index, Message, Config Entry ID
- **Send UI Message**: Send a message using the MeshCore UI helpers. This service reads values from 'select.meshcore\_recipient\_type', 'select.meshcore\_channel', 'select.meshcore\_contact', and 'text.meshcore\_message' to determine the recipient and message content. Call this service directly from a button card for a seamless messaging interface.
  Fields: Config Entry ID
- **Execute MeshCore Command**: Execute a command provided by the MeshCore Python library. This is an advanced feature that provides direct access to the underlying commands interface. CAUTION: Some commands will make PERMANENT CHANGES to your node's configuration. Use with care.
  Fields: Command, Config Entry ID, Record to CLI Console
- **Execute Command from UI**: Execute a command using the text.meshcore\_command helper entity. This service reads the command from the text helper and executes it. It will automatically clear the input field after execution.
  Fields: Config Entry ID, Record to CLI Console
- **Clear CLI Console**: Clear the CLI Console transcript. With no entry\_id, clears every configured device's console.
  Fields: Config Entry ID
- **Add Selected Contact**: Add the contact selected in the discovered contact select entity to your node's contact list.
  Fields: Config Entry ID
- **Remove Selected Contact**: Remove the contact selected in the added contact select entity from your node's contact list.
  Fields: Config Entry ID
- **Remove Discovered Contact**: Remove a discovered contact from the discovered contacts list. This will remove the contact from Home Assistant but does NOT remove it from your node's contact list. You can specify the pubkey\_prefix directly, or leave it blank to use the selected contact from the discovered contact select entity.
  Fields: Public Key Prefix, Config Entry ID
- **Cleanup Unavailable Contacts**: Remove all unavailable MeshCore contact binary sensors from Home Assistant.
  Fields: Config Entry ID
- **Clear Discovered Contacts**: Remove discovered contacts and their associated binary sensor entities from Home Assistant. When days\_threshold is specified, only contacts whose last update is older than the threshold are removed and contacts saved to the node are preserved. Without days\_threshold, all discovered contacts are removed. This does NOT remove contacts from your node's contact list.
  Fields: Days Threshold, Config Entry ID
- **Get Discovered Contact**: Return the full data dict for a single discovered (un-added) contact, matched by public-key prefix. In data-only mode discovered contacts have no per-contact entity, so this is the supported way to inspect one.
  Fields: Public Key Prefix, Config Entry ID

## Troubleshooting

- **Diagnostics**: Downloads a diagnostics file to attach to a bug report.
- **Repair notices**: Notices it can show in Settings, Repairs:
  MeshCore public key changed

## From the README

> This custom integration connects Home Assistant to a MeshCore companion over USB, BLE or TCP. The companion is the radio that sends and receives on the mesh for Home Assistant. Use it to monitor and control the nodes of your MeshCore mesh.
>
> The integration uses the meshcore-py library.

From the README of [meshcore-dev/meshcore-ha](https://github.com/meshcore-dev/meshcore-ha#readme), [MIT License](https://spdx.org/licenses/MIT.html). Shortened.

## At a glance

- Kind: Marketplace integration
- Category: [Hubs and protocols](https://vulpo.app/integrations/category/hubs-and-protocols.md), Wireless protocols
- Number: 573 installs sharing analytics; 281 GitHub stars
- Connection: Works locally
- Upkeep: Updated in the last 6 months
- Needs: Added as a custom repository in the Marketplace
- Latest version: v3.0.3, last updated October 22, 2026
- Domain: `meshcore`
- Source: <https://github.com/meshcore-dev/meshcore-ha>
- Issues: <https://github.com/meshcore-dev/meshcore-ha/issues>

In Vulpo: Button card, Select card, Chart card, Apple Watch

Independent directory, made by the developer of Vulpo. Not affiliated with Home Assistant or the Open Home Foundation. [About these numbers](https://vulpo.app/integrations/about)

Last updated 2026-10-22. Source: https://vulpo.app/integrations/marketplace/meshcore-dev-meshcore-ha

---

- HTML version of this page: https://vulpo.app/integrations/marketplace/meshcore-dev-meshcore-ha
- Site index for agents: https://vulpo.app/llms.txt
- Everything in one document: https://vulpo.app/llms-full.txt
- All pages: https://vulpo.app/sitemap.xml
