Artek MQTT¶
The Artek MQTT suite connects an Ignition gateway to MQTT brokers natively. You can publish tags to MQTT (including as a Unified Namespace), turn subscribed MQTT topics into Ignition tags, and run a Sparkplug B edge node or host application, all from gateway modules with no external bridge.
The suite is MQTT 5.0 first, with MQTT 3.1.1 selectable per connection. It uses TLS everywhere you need it and implements the Eclipse Sparkplug 3.0 specification (see Sparkplug B for the Eclipse Sparkplug TCK results).
The three modules¶
| Module | Module id | What it does |
|---|---|---|
| Artek-MQTT-Common | com.artek.mqtt.common |
The shared foundation. Named broker connection profiles (several brokers at once, primary/backup failover), the MQTT 5.0 and 3.1.1 client, TLS and mutual TLS, store-and-forward, connection status, and the Connections web page. |
| Artek-MQTT-Pub | com.artek.mqtt.pub |
The publish side. Declarative tag-to-topic mappings with a first-class UNS mode and per-mapping broker routing, the system.artekmqtt.* scripting functions (Gateway and Designer scope), and a Sparkplug B edge node that is aware of the primary host. Requires Common. |
| Artek-MQTT-Sub | com.artek.mqtt.sub |
The subscribe side. A managed tag provider (subscribed topics appear as tags), MQTT 5 shared subscriptions, per-subscription gateway script callbacks, optional write-back, and a Sparkplug B host application. Requires Common. |
Pub and Sub both depend on Common: they refer to broker connections by profile name and publish and subscribe through Common's connections.
Which modules you need¶
| You want to | Install |
|---|---|
Publish tag values to a broker, build a UNS, or call system.artekmqtt.publish from scripts |
Common + Pub |
| Bring MQTT data into Ignition as tags, or run a script when a message arrives | Common + Sub |
| Run a Sparkplug B edge node | Common + Pub |
| Run a Sparkplug B host application | Common + Sub |
| Do both directions | Common + Pub + Sub |
Common is always required. Install every module you use from the same release (see Install).
Requirements¶
- Ignition 8.3.4 or later. The modules declare 8.3.4 as their minimum Ignition version and do not run on Ignition 8.1 or earlier.
- Scope. Common and Sub run in Gateway scope. Pub runs in Gateway scope and adds a Designer-scope part so that
system.artekmqtt.*autocompletes in the Designer. No Vision client scope is needed. - A broker. Any MQTT 5.0 or 3.1.1 broker. MQTT 5 shared subscriptions require an MQTT 5 connection.
MQTT 5.0, first class¶
MQTT 5.0 is the default protocol, and its features are exposed as configuration: shared subscriptions, user properties, message expiry, topic aliases, session expiry, reason codes and will delay. The plain MQTT and UNS publish path supports QoS 1 with store-and-forward, so messages published while the broker is unreachable are sent when it comes back (at-least-once delivery, within the queue's limits). Sparkplug works over either MQTT 5.0 or 3.1.1.
Where to configure it¶
The modules add an Artek MQTT section to the gateway web interface with these pages:
| Page | Module | Purpose |
|---|---|---|
| Connections | Common | Create and edit broker connection profiles, and see each one's live status. |
| Publishers | Pub | Tag-to-topic mappings, with per-mapping counters. |
| Edge Nodes | Pub | Sparkplug B edge nodes. |
| Subscriptions | Sub | Topic subscriptions, with per-subscription counters. |
| Host Applications | Sub | Sparkplug B host applications. |
Every setting is also an Ignition 8.3 config resource on disk, so it can be managed as code (see Configuration as code).
Licensing¶
For licensing, see artekis.io or contact Artek.
Each .modl contains a license.html (the Artek End User License Agreement and the full third-party notices for that module), which the gateway shows when you install it.
Third-party components¶
All of these are bundled inside the .modl files.
| Component | Version | Bundled in | License |
|---|---|---|---|
| HiveMQ MQTT Client (shaded; incorporates Netty) | 1.3.16 | Common | Apache-2.0 |
| RxJava | 2.2.21 | Common | Apache-2.0 |
| Reactive Streams | 1.0.4 | Common | MIT-0 |
Eclipse Tahu (tahu-core) |
1.0.20 | Pub, Sub | EPL-2.0 (unmodified, object form; source: github.com/eclipse-tahu/tahu) |
| Protocol Buffers Java | 3.25.5 | Pub, Sub | BSD-3-Clause |
Common's notices also cover the components shaded inside the HiveMQ client (Netty, JCTools, Dagger, javax.inject, JetBrains annotations).
Trademarks and attribution¶
Ignition® is a registered trademark of Inductive Automation, LLC. The Artek MQTT suite is an independent Artek product, not affiliated with or endorsed by Inductive Automation.
Sparkplug® and the Sparkplug logo are registered trademarks of the Eclipse Foundation. The suite implements the Eclipse Sparkplug 3.0 specification (Eclipse Foundation Specification License) and publishes its Eclipse Sparkplug TCK results as factual test evidence. It is not certified under the Eclipse Sparkplug Compatibility Program.
In this manual¶
- Install: install, upgrade and verify the modules.
- Connections: broker profiles, failover, TLS, store-and-forward, status.
- Publishing: mappings, UNS mode, triggers, payload formats, MQTT 5 options.
- Subscribing: subscriptions, the managed tag provider, JSON expansion, script callbacks, write-back.
- Sparkplug B: edge node, host application, TCK results.
- Scripting: the
system.artekmqtt.*functions. - Configuration as code: editing config on disk and the web API.
- Security: how the suite handles secrets, limits, redundancy and audit.
- Release notes