Mesh-Plug provides flexible shortcodes for embedding Meshtastic dashboards across public pages, private admin views, and read-only embeds. The key concept is mode separation: observer (safe, cached, public) vs live (direct MQTT, authenticated).
1) Main Dashboard (Recommended)
Observer / Public Dashboard (Read-Only; Shareable)
[mesh_plug mode="observer" height="520px"]
Use this for:
- Public-facing pages
- Sharing dashboards with non-Meshtastic users
- Community, HOA, neighborhood watch, or informational sites
Behavior:
- No MQTT connection from the visitor’s browser
- Data is served from the server snapshot
- Safe and consistent across devices
- No credentials exposed
Optional attributes:
height="520px"; container heightclass="my-custom-class"; custom styling hook
This is the default and recommended configuration for any page that may be publicly accessible.
Live Dashboard (Admin / Operator Use)
[mesh_plug mode="live" height="520px"]
Use this for:
- Administrators
- Operators who need real-time chat and packet flow
- Debugging and testing
Behavior:
- Connects directly to MQTT over WebSocket
- Requires valid broker credentials
- Displays full packet activity and live log
⚠️ Not recommended for public pages.
Live mode should only be used where authentication and access control are guaranteed.
2) Auto Mode (Legacy / Transitional)
[mesh_plug]
Behavior:
- Admin users may receive live mode
- Public users fall back to observer mode (if server cache is enabled)
This mode exists primarily for backward compatibility with older installs.
Best practice: explicitly set mode in all new shortcodes.
3) Map-Only View
[mesh_plug view="map" mode="observer" height="500px"]
Shows:
- Interactive map
- Node markers
Does not show:
- Node table
- Log panel
Great for:
- “Where are we?” pages
- Blog post embeds
- Lightweight visual overviews
4) Node List-Only View
[mesh_plug view="nodes" mode="observer"]
Shows:
- Node list
- Online / offline status
- Signal and link information
No map and no log.
Ideal for text-first layouts or narrow containers.
5) Log-Only View
[mesh_plug view="log" mode="observer" height="300px"]
Shows:
- Observer diff log
- Online / offline transitions
- Movement and state change events
Good for:
- Status panels
- Sidebars
- Monitoring-only displays
6) Compact / Card View
[mesh_plug view="compact" mode="observer"]
Shows:
- Total node count
- Online node count
- Last update timestamp
Nice for:
- Dashboards
- Landing pages
- “System status” sections
Minimal footprint; no tables or maps.
7) Force Observer Mode (Hard Lock)
[mesh_plug mode="observer" force="1"]
Use this when:
- You never want MQTT connections attempted
- The page must remain public at all times
- You want to prevent accidental live connections, even for admins
This is ideal for public sharing links and embedded dashboards.
Common Attributes (All Shortcodes)
| Attribute | Description |
|---|---|
mode | observer or live |
view | dashboard, map, nodes, log, compact |
height | CSS height for the container |
force | 1 = never allow live mode |
class | Custom CSS class |
Recommended Defaults (Best Practices)
Public share page
[mesh_plug mode="observer" force="1" height="600px"]
Admin operations page
[mesh_plug mode="live" height="700px"]
Read-only embed
[mesh_plug view="map" mode="observer" height="400px"]
Mesh-Plug Permissions Matrix
Mesh-Plug has two operating modes:
- Observer; read-only; data served from the server snapshot; safe for public pages.
- Live; real-time; browser connects to MQTT over WebSocket; requires broker credentials; admin/operator only.
Role-based recommendations
| Audience / Role | Can view Observer | Can view Live | Recommended shortcode | Notes |
|---|---|---|---|---|
| Public visitor (logged out) | ✅ | ❌ | | Use for share links and public pages; prevents any live attempts. |
| Registered subscriber / member | ✅ | ❌ | | Same as public unless you explicitly want to grant live access. |
| HOA/community moderator | ✅ | ❌ | | Best for community pages; avoids credentials exposure. |
| Site editor (WordPress Editor role) | ✅ | ❌ (default) | | Editors can manage content; do not grant live by default. |
| Site admin (WordPress Administrator) | ✅ | ✅ | Ops page: | Live mode only on restricted pages; requires broker creds configured. |
| Mesh operator (trusted) | ✅ | ✅ (optional) | | Only if they understand MQTT topics, channels, and logs. |
| Developer / installer | ✅ | ✅ | (staging) | Prefer staging or password-protected environments for testing. |
Page-level patterns
| Page type | Goal | Recommended mode | Recommended view | Example |
|---|---|---|---|---|
| Public Share Page | Safe read-only dashboard | Observer + force | Dashboard | |
| Community “Where are we?” | Map only | Observer + force | Map | |
| Private Admin Ops | Real-time monitoring/chat | Live | Dashboard | |
| Status Panel / Sidebar | Quick health check | Observer + force | Compact or Log | |
Access control rules
- Live mode should never be used on public pages. It requires credentials and creates a browser-to-broker connection.
- Use
force="1"for any share link to guarantee observer-only behavior, even if an admin visits the page. - Create a dedicated “Ops” page for live mode and restrict it with WordPress capabilities, membership rules, or basic auth.
