Skip to content

[BUG] MQTT Channel Messages Not Received Unless Relayed by Nearby LoRa Node #5013

Description

@maxhayim

Describe the bug

Messages sent through MQTT channels are not being received by my node/application as expected.

MQTT messages only appear to come through when another Meshtastic node is physically nearby over LoRa and that nearby node is also connected to the internet/MQTT through the default Meshtastic app.

In other words, it appears that MQTT messages are not being received directly through the configured MQTT connection. They only become available when a nearby LoRa node that is online through the official Meshtastic app acts as a bridge.

To Reproduce

  1. Connect the node/application normally with MQTT enabled.
  2. Configure the same Meshtastic MQTT channel/topic used by other nodes.
  3. Send a message to that channel from a remote node over MQTT.
  4. Confirm that there is no nearby LoRa node connected to MQTT through the official Meshtastic app.
  5. Observe that the MQTT message is not received.
  6. Bring another Meshtastic node nearby over LoRa.
  7. Connect that nearby node to the internet/MQTT using the default Meshtastic app.
  8. Send another message through the same MQTT channel.
  9. Observe that the message is now received over LoRa from the nearby internet-connected node.

Expected behavior

Messages sent through the configured MQTT channel should be received directly through MQTT regardless of whether another Meshtastic node is nearby over LoRa.

A nearby node connected to the internet through the official Meshtastic app should not be required for MQTT channel messages to be received.

The expected path should be:

Remote Node -> MQTT Broker -> Application/Connected Node

Currently, the behavior appears to require:

Remote Node -> MQTT Broker -> Nearby Meshtastic Node using Official App -> LoRa -> Application/Connected Node

Screenshots

I can provide screenshots, MQTT configuration, logs, or packet examples if needed.

Environment

  • Host OS: [Linux / Mac / Windows]

  • Deployment type: [Docker / Mac App / Windows App / Baremetal / NPM]

    • Container version: [if applicable]
    • App host OS: [if applicable]
    • NPM commit: [if applicable]
  • Networking customizations: [None / Reverse Proxy / Cloudflare Tunnel / Tailscale / Other]

  • Database backend: [SQLite / PostgreSQL / MySQL]

  • Node type: [Heltec V4 / Station G2 / meshtastid / Pi Hat / Other]

  • Node Connection Type: [WiFi / Serial Bridge / BLE Bridge / Other]

  • VirtualNode client: [iOS Meshtastic App / Android Meshtastic App / Home Assistant / Other / N/A]

Additional context

The important part of the issue is that MQTT itself does not appear to be delivering channel messages directly.

I can reproduce the issue by having no nearby internet-connected Meshtastic nodes. Messages sent through MQTT do not arrive.

As soon as another node is nearby over LoRa and that node is connected to MQTT/internet using the default Meshtastic app, messages begin coming through.

This makes it appear that the application/node is receiving the messages over LoRa from the nearby node, rather than receiving them directly from MQTT.

The MQTT configuration/channel works because the nearby node using the official Meshtastic app is able to receive the MQTT traffic and retransmit it over LoRa.

This may indicate an issue with MQTT subscription, topic/channel handling, message decoding, or forwarding of MQTT-originated packets.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions