Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Configure MQTT client connection for IoT devices, cloud platforms, or inter-system communication using the lightweight publish/subscribe protocol.

What You'll Learn

Connect to a MQTT broker (Tutorial) teaches how to:

  • Configure MQTT client
  • Subscribe to topics
  • Publish tag values using Sparkplug B
  • Map topics to tags

Prerequisites:

public test
  • FrameworX MQTT built-in broker)

In this page:

Table of Contents
maxLevel2
minLevel2
indent10px
excludeSteps
stylenone


  • Basic understanding of MQTT topics
  • Step 1:

    Configure MQTT Client

    1. Navigate to Devices → ChannelsProtocols
    2. Select MQTT Client
    3. Create channel:
      • Name: MQTTClient
      • Protocol: MQTT Client
      • Settings:
        • Broker URL: test.mosquitto.org (or your broker)
        • Port: 1883 (or 8883 for SSL)
        • Client ID: FrameworX_001
        • Keep Alive: 60 seconds
    Step 2:

    Set Authentication (if required)

    For secured brokers:

    • Username: Your username
    • Password: Your password
    • SSL/TLS: Enable if using port 8883
    • Certificates: Browse to certificate files
    Step 3:

    Subscribe to Topics

    1. Go to Devices → Nodes
    2. Create subscription node:
      • Name: IoT_Sensors
      • Channel: MQTTClient
      • Subscribe Topic: sensors/+/temperature
      • QoS: 1

    The '+' wildcard subscribes to all sensors.

    Step 4:

    Create Points for Subscribed Data

    1. Navigate to Devices → Points
    2. Add points for each expected topic:

    Temperature Sensor:

    • Name: Sensor1_Temp
    • Node: IoT_Sensors
    • Topic: sensors/sensor1/temperature
    • Data Type: Double
    • JSON Path: $.value (if JSON payload)

    Humidity Sensor:

    • Name: Sensor1_Humidity
    • Node: IoT_Sensors
    • Topic: sensors/sensor1/humidity
    • Data Type: Double
    Step 5:

    Publish Tag Values

    1. Create publish node:Device Channel and Node:
      • Protocol: MQTT Publisher 
      • Name: SCADA_PublisherChannel: MQTTClient
      • Publish Mode: On Change
    2. Configure published points:
      • Tag: Select tag to publish
      • Topic: scada/line1/production
      • QoS: 1
      • Retain: True (optional)

    Step 6: JSON Payload Handling

    For complex JSON:

    json

    {
      "deviceId": "sensor1",
      "temperature": 22.5,
      "humidity": 45,
      "timestamp": "2024-01-01T12:00:00Z"
    }
    Configure point:
    • JSON Path for temperature: $.temperature
    • JSON Path for humidity: $.humidity
    • JSON Path for timestamp: $.timestamp

    Step 7:

    Test Connection

    1. Start Runtime
    2. Open Devices → Monitor
    3. Use MQTT client tool (like MQTT Explorer) to:
      • Publish test messages
      • Verify FrameworX publishes

    Sparkplug B Configuration

    For industrial MQTT:

    1. Select Protocol: MQTT SparkplugB
    2. Configure:
      • Group ID: Plant1
      • Edge Node ID: Line1
      • Device ID: PLC1

    Best Practices

    • Use meaningful topic hierarchies
    • Set appropriate QoS levels
    • Enable retain for configuration data
    • Implement Last Will and Testament
    • Use SSL/TLS in production

    Next Steps

    • [AWS IoT Core Connector] - Cloud integration
    • [Enrich Data & Scripts] - Process MQTT data
    • [Secure & Deploy] - Production security