2.6 KiB
Meshtastic Sensor Receiver
Subscribes to a Meshtastic channel over MQTT, decrypts the packets, and exposes the results in Home Assistant via MQTT Discovery:
- Last Message — the most recent text message on the channel (with
from,to, and timestamp as attributes). - Parsed sensors — values pulled out of structured messages such as
🏠 T1:20.8°C T2:26.7°C H1:83.7%become individual numeric sensors.
This is the receiving counterpart to the Meshtastic Sensor Broadcaster add-on.
Requirements
An MQTT broker configured in Home Assistant (e.g. the Mosquitto broker add-on). The add-on discovers it automatically via the Supervisor — no manual credentials needed for the HA side.
Options
| Option | Description |
|---|---|
source_broker |
MQTT broker the mesh packets arrive on. mqtt.meshtastic.org for the public server, or your local broker. |
source_port |
Broker port. 1883 plain, 8883 TLS. |
source_username / source_password |
Source broker credentials. Public server uses meshdev / large4cats. |
source_tls |
true when using port 8883. |
region |
Region code in the topic, e.g. EU_868, US. Use + to match any region. |
channel_name |
Exact (case-sensitive) channel name, e.g. DET.Baulog. |
channel_psk |
Base64 channel key from the Meshtastic app. AQ== is the default public key. |
match_prefix |
Only messages containing this string are parsed into sensors. Leave empty to parse every message. The Last Message sensor always updates. |
device_name |
Name of the HA device that groups the created entities. |
discovery_prefix |
MQTT Discovery prefix (default homeassistant). |
sensors |
List of {label, name, device_class, unit}. Each label (e.g. T1) is matched as label:value in the message. |
How parsing works
The add-on scans each message for LABEL:VALUE pairs (units after the value are
ignored). For example:
🏠 T1:20.8°C T2:26.7°C T3:26.6°C H1:83.7% H2:54.4% H3:55.5%
produces T1=20.8, T2=26.7, T3=26.6, H1=83.7, H2=54.4, H3=55.5,
each published to the sensor configured with that label.
Topics used
- Discovery:
{discovery_prefix}/sensor/{device}/{label}/config - State:
meshtastic_receiver/{device}/{label} - Last message:
meshtastic_receiver/{device}/last_message(+/attributes) - Availability:
meshtastic_receiver/{device}/status
Privacy note
On the public server your packets stay AES-encrypted in transit; only holders of
the channel PSK can read them. For full privacy and no traffic restrictions, run
a local MQTT broker and point both your node and source_broker at it.