Skip to content

[Feature]: MQTT topic explorer (Developer Mode) #21

@tashda

Description

@tashda

What problem does this solve?

Power users debugging Z2M behavior often need to publish or subscribe to arbitrary MQTT topics — the kind of thing they'd normally use mosquitto_sub / mosquitto_pub from a terminal for. On mobile they have to leave the app, SSH somewhere, run a CLI, parse JSON in a terminal. Shellbee already has a working MQTT connection; exposing a focused inspector turns it into a real Z2M debugging tool.

What would you like Shellbee to do?

Add an MQTT topic explorer behind a Developer Mode Settings toggle (off by default, no UI presence until enabled).

Functionality:

  • Subscribe view: enter a topic pattern (e.g. zigbee2mqtt/+/availability, or full #), see live messages stream in. Each message: timestamp, topic, payload (pretty-printed JSON when valid, raw otherwise), QoS. Pause/resume button. Clear button.
  • Publish view: free-form topic + payload field with QoS and retain checkboxes. "Publish" sends. Recent publishes saved as a history list for one-tap repeat.
  • Filters on the subscribe view: text search across topic + payload. Topic pattern can be edited live; clears the buffer.
  • Buffer cap: keep the last N (e.g. 1000) messages in memory, drop oldest. Don't blow up RAM on a busy # subscription.
  • Export: copy a single message to clipboard, or share the full buffer as a .json / .csv via the share sheet.

Safety:

  • A confirm dialog when publishing to a topic that matches bridge/request/... patterns ("This may modify your Z2M configuration. Continue?"). Power users can disable the prompt in Developer settings.
  • No background subscriptions — the inspector only runs when the screen is open. Otherwise it'd silently keep a high-volume firehose subscribed.

Discoverability:

  • Hidden by default. To enable: Settings → About → tap version number 7 times (the classic dev-mode pattern). Or a regular toggle if you'd rather avoid the easter-egg style.
  • Once enabled, lives at Settings → Developer → MQTT Inspector.

Does the Z2M web frontend already do this?

No — Z2M has a dev console for the bridge but not a generic MQTT inspector. Shellbee can bring this into one app.

Alternatives considered

  • Always visible in Settings — clutters the surface for non-developer users. Hidden behind Developer Mode is right.
  • Embed a third-party MQTT client — overkill. Shellbee already speaks MQTT; a focused explorer is a few hundred lines.
  • Output to system console / file only — useless on iOS where users can't easily grab logs.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions