=== MQTT-Plug ===
Contributors: potar
Donate link: https://www.paypal.com/ncp/payment/4RV65EGN96SLS
Tags: mqtt, iot, websocket, realtime, dashboards, telemetry
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Real-time MQTT dashboards inside WordPress. Connect securely over WebSocket (WS/WSS) and visualize live IoT data, logs, and events.

== Description ==

MQTT-Plug brings live MQTT data directly into WordPress using secure WebSocket connections.  
It is designed for developers, IoT experimenters, and small production deployments that want real-time visibility without building a custom frontend.

Unlike traditional MQTT tools, MQTT-Plug focuses on **embedding live data into WordPress pages, posts, and dashboards**, while keeping credentials safe and configuration simple.

### Key Features

* Connect to MQTT brokers over WS/WSS
* Live message stream and event log
* Topic-based subscriptions
* Shortcode-driven embeds
* Works with public or authenticated dashboards
* Designed for modern MQTT backends (Mosquitto, EMQX, HiveMQ, The-Link-Builders, managed brokers)
* No external Node services required
* Lightweight; no tracking, no telemetry, no lock-in

MQTT-Plug is infrastructure-agnostic. You control your broker, topics, and data flow.

== Installation ==

1. Upload the `mqtt-plug` folder to `/wp-content/plugins/`, or install via the WordPress plugin installer.
2. Activate the plugin through the *Plugins* menu.
3. Go to **Settings → MQTT-Plug** to configure your broker connection.
4. Add the shortcode to any page or post.

== Configuration ==

In **Settings → MQTT-Plug**, configure:

* Broker host
* WebSocket port
* TLS / secure connection (WSS)
* Username and password (if required)
* Base topic or subscription filter
* Debug logging (optional)

All credentials are stored using WordPress options and are never exposed to public users unless explicitly enabled.

== Usage ==

Basic shortcode:

[mqtt_plug]

Optional attributes:

* `height="520px"` – set container height
* `class="custom-class"` – add a CSS hook
* `mode="observer"` – server-fed or read-only views (if enabled)

Example:

[mqtt_plug height="600px" class="iot-dashboard" mode="observer"]


== Security Notes ==

* Public pages should **not** use live credentials.
* Use observer or server-fed modes for public dashboards.
* Always prefer WSS when exposing MQTT over the internet.
* Rotate credentials regularly for production systems.

MQTT-Plug does not open inbound ports on WordPress and does not proxy MQTT traffic through the server unless explicitly configured.

== Frequently Asked Questions ==

= Does this replace my MQTT broker? =
No. MQTT-Plug is a viewer and frontend. You still need an MQTT broker.

= Which brokers are supported? =
Any MQTT broker that supports WebSockets, including Mosquitto, EMQX, HiveMQ, and managed services.

= Can I use this for production systems? =
Yes, provided you follow standard MQTT security practices. For large-scale or multi-tenant systems, a managed broker is recommended.

= Is JavaScript required? =
Yes. MQTT-Plug uses browser-based WebSocket connections for live data.

== Screenshots ==

1. Live MQTT dashboard
2. Log Tab
3. History Tab
4. Settings 

== Changelog ==

= 1.0 =
* Initial stable release
* Hardened settings validation
* Improved connection lifecycle handling
* Observer-safe rendering
* Clean shortcode API
* Production-ready defaults

== License ==
GPLv2 or later.

== Upgrade Notice ==

= 1.0 =
First stable release of MQTT-Plug. Suitable for production use.

== Credits ==

Developed by **Michael Winchester**  
For documentation and updates, visit [https://meshplug.michaelwinchester.com/](https://meshplug.michaelwinchester.com/)

