This custom property allows MQTT Engine to subscribe on QoS1 for custom namespace topics.

This property only applies to Custom Namespaces. Sparkplug fundamentally does not work with QoS1 subscriptions for Host Applications.
Feature is supported for Ignition7 in MQTT Engine module version 3.4.10 or greater and for Ignition8 in MQTT Engine module 4.0.4 or greater

Usage

  1. On MQTT Engine 'General' configuration tab, under the Advanced section, set 'Custom Properties' to be the following string: {"allowCustomNamespacesQos1":true}
  2. After setting the Custom Property above, two new configuration options will appear

    Clean Session: on MQTT Engine 'Servers' configuration tab, under the Advanced section


    Qos1: on MQTT Engine 'Namespaces' - > 'Custom' - > 'General' configuration tab,  under the Optional section


  3. To allow MQTT Engine to subscribe on QoS1 with retained, set the following:
    1. On the MQTT Engine 'Servers' configuration tab, under the Advanced section, make sure the 'Client ID' is set. This is required to configure the Clean Session option.
    2. On the MQTT Engine 'Servers' configuration tab, under the Advanced section, de-select the 'Clean Session' checkbox.



    3. On the MQTT Engine 'Namespaces' - > 'Custom' - > 'General' configuration tab,  under the Optional section, select the QoS1 checkbox.

Notes

  • You can confirm the Custom Namespace subscription is using QoS1 if you enable DEBUG level logging for EngineServersSettings through the Ignition Logs page and resave your Custom Namespace configuration.
    • You should see something like this in the logs:
      Subscribing on topic: abc/# with QoS1
  • If either the client ID is empty or clean session is true, the QoS1 setting will be ignored and an error will be logged.
  • Non-clean sessions and in-flight messages are not persisted to disk. So, if MQTT Engine or Ignition is restarted messages will not be delivered until the connection is reestablished using the same client ID used from previous connections.
  • Deleting a custom namespace with QoS1 will result in an unsubscribe to the MQTT Server. This means messages will not held by the server for later delivery to MQTT Engine during the disconnected period.
  • No labels