## Summary - Describe what the flow does and why, with the flow image up top. - Add Position and Neighbors subflows to the feature and subflow lists (they exist in `meshtastic.json` but were missing from the README). - Add Requirements (including InfluxDB 1.x), a step-by-step Quick start with the config nodes to edit, a measurements table, and a compatibility note (last updated for firmware 2.2.15). Facts were taken from `meshtastic.json` (broker, topic `msh/+/c/#`, InfluxDB database `msh`, subflow list) and the commit history. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
meshtastic-node-red
A ready-made Node-RED flow that turns Meshtastic mesh traffic into time-series data. It subscribes to your MQTT broker, decodes the protobuf packets, deduplicates them, resolves node names, and writes measurements to InfluxDB so you can chart your mesh in Grafana.
Features
- Ingestion from MQTT
- Protobuf decoding
- Message deduplication by packet ID (5 minute window, so one packet heard by several gateways is stored once)
- Annotate integer-based node IDs as hex
- Annotate packets with known NodeInfo (long name, short name, hardware model)
- Split by every current port number
- Writing Mesh, Packet, Position, Device, Environment and Neighbor measurements to InfluxDB
- Debug nodes on all outputs
Included subflows
- Ingest from MQTT
- Measurement: Mesh
- Measurement: Packet
- Measurement: Position
- Measurement: Device Telemetry
- Measurement: Environment Telemetry
- Measurement: Neighbors
Requirements
- Node-RED
- An MQTT broker that your Meshtastic nodes publish to (Mosquitto works well)
- InfluxDB 1.x (the flow uses the
influxdbnode with a database, not a v2 bucket) - These Node-RED palette modules, installed before importing the flow:
Quick start
-
Install the two palette modules above (Menu, Manage palette, Install).
-
Import
meshtastic.json(Menu, Import, paste or select the file). -
Edit the two config nodes to match your environment. The defaults assume a Docker network:
Node Default Change to MQTT broker ( Mosquito)mqtt-mosquitto:1883your broker host and port, plus credentials if you use them InfluxDB ( Local InfluxDB)influxdb:8086, databasemshyour InfluxDB host, and a database you have created -
Make sure your Meshtastic nodes publish to the broker. The flow subscribes to
msh/+/c/#. -
Deploy. Packets should start appearing in the debug sidebar and in InfluxDB.
Measurements written
| Measurement | Fields |
|---|---|
Mesh |
Links between nodes (source, target) with SNR and RSSI |
Packet |
Receive time, SNR, RSSI, hop limit, priority, delayed |
Position |
Latitude, longitude, altitude, satellites in view, ground speed and track, PDOP |
Device |
Battery level, voltage, channel utilization, TX air utilization |
Environment |
Temperature, relative humidity, barometric pressure, gas resistance |
Neighbor |
Neighbor links from NeighborInfo packets, with SNR |
Every point is tagged with the sender and receiver (hex ID, short name, long name, hardware model), the channel and the gateway.
Status: archived
This project is archived and read-only. It is kept as a working reference for decoding Meshtastic MQTT traffic into InfluxDB with Node-RED.
It was last updated for Meshtastic firmware 2.2.15. Firmware 2.3.0 and later changed the MQTT payloads (see #11), so the "Ingest from MQTT" subflow needs modification before it will work with current firmware. You are welcome to fork it.
License
The Unlicense. Public domain.
