Versions Compared

Key

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

...

Clicking on the 'Create new MQTT Server...' link will bring up the following form to add a new Server.

Image Modified

Image Modified


Sets

The Sets tab contains a list of server sets.  Each set represents a logical grouping of MQTT servers.  When a set is referenced by a Transmitter configuration a single connection to one of the servers in the set will be maintained. The other servers will act as failover in the case that a connection with the first is lost.  Server sets are disjoint, meaning that a single MQTT server cannot be in more than one set.

...

  • Name
    • This is the friendly name of the set used to easily identify it.
  • Description
    • This is a friendly description of the set.
  • Primary Host ID
    • The primary host ID to use for 'state' notifications.  These notifications are used to notify MQTT Transmission if the primary backend application loses connection with the MQTT Server, meaning it has gone 'offline'.  If MQTT Transmission is notified that the primary backend application has gone 'offline', it will close it's client connection with the MQTT server and walk to the next MQTT server defined in the set.  If the primary host ID is not set, MQTT Transmission will not subscribe on the notification topics and not receive any 'state' notifications.


Sparkplug Settings

  • Group ID
    • An ID representing a logical grouping of Edge Nodes and Devices (optional)
  • Edge Node ID
    • An ID representing an Edge or Network (EoN) Node (optional)
  • Device ID
    • An ID representing a Device (optional)

Advanced Settings

  • Filtered Properties
    • A semicolon delimited list of Tag properties to filter/block from being published



Image Added

Transmitters

Transmitters are the agents within MQTT Transmission that monitor tags, convert them to Sparkplug Messages, and publish them to an MQTT Server. Each transmitter is configured with a server Set and will attempt to maintain an MQTT client connection with one server in that Set at all times.

There are two types of Transmitters: Default and Custom.  These types are explained in more detail below.

Default and/or Custom Transmitter

MQTT Transmission provides a single Default Transmitter. The Tags that this Transmitter monitors must be placed in the "Edge Nodes" folder within the configured Tag Provider.  Their Tag paths must conform to the strict structure of:

...

The individual elements of the above tag path (Group ID, Edge Node ID, and Device ID) are used when building up the MQTT message payload that will represent the Tags.

Custom Transmitters

Custom Transmitters behave in much the same way as the Default Transmitter.  However, unlike the Default Transmitter, Custom Transmitters are not bound to a specific "Edge Nodes" folder and do not have any required folder path structure.  The Group ID, Edge Node ID and Device ID are explicitly defined in a Custom Transmitter configuration instead of inferred from the tag path, as in the Default Transmitter.  This allows Custom Transmitters to point at any folder in any provider and monitor the contained tags and/or tag folders.

The configuration options for the Default Transmitter and Custom Transmitters are listed below.:

  • Name
    • Default Transmitter
  • Enabled
    • Whether the Default Transmitter is enabled
  • Tag Provider
    • The name of the tag provider that Transmission will monitor.  By default this is the Ignition 'default' provider.
  • Tag Path
    • A path to the root folder where the tag tree starts (optional)
  • Tag Pacing Period
    • The buffer period for outgoing Transmission messages in milliseconds.  The default is 1000ms.  This means when a tag change event is detected 1000ms will elapse before an MQTT message is sent.  This allows additional tag change events to be buffered and put into the message and in turn reduce the number of generated MQTT messages.
  • Set
    • The Set that the default MQTT Transmission client will connect to.
  • Discovery Delay
    • An optional startup delay, in milliseconds, to wait before scanning for Tags to monitor. This is useful when Tags are dynamically created on initial startup, as is the case when using the MQTT Engine module.
  • Aliased Tags
    • Whether to use aliases for tag names when published data messages as tag values change.  This is used to optimize payload size when publishing data.
  • Compression
    • The algorithm to use to compress payloads before they are published to the MQTT Server.  If 'NONE' is selected then compression is disabled.
  • Block Commands
    • Whether to block commands and tag writes received as messages from the MQTT server.
  • Convert UDTs
    • Whether to convert UDT members to normal Tags before publishing.  If enabled the Tags representing the UDT member will retain their member path prefixed by the UDT Instance name.
  • Publish UDT Definitions
    • Whether to publish UDT Definitions in BIRTH

...

  • History Store
    • The MQTT Transmission History Store to use with the Default Transmitter.
  • Enable History Storage by Default
    • Whether or not store and forward should be enabled by default on all tags. The custom tag property 'CL Store Forward Enabled' can be used to override this default. (default: true)
  • In-Order History
    • Flush history in-order (synchronously) before live data resumes. (default: false)


Custom Transmitters

Custom Transmitters behave in much the same way as the Default Transmitter.  However, unlike the Default Transmitter, Custom Transmitters are not bound to a specific "Edge Nodes" folder and do not have any required folder path structure.  The Group ID, Edge Node ID and Device ID are explicitly defined in a Custom Transmitter configuration instead of inferred from the tag path, as in the Default Transmitter.  This allows Custom Transmitters to point at any folder in any provider and monitor the contained tags and/or tag folders.

Image Removed

Each Custom Setting has the following fields

Tag Settings

...

  • The name of the Transmitter Setting.

...

  • The name of the tag provider that Transmission will monitor.

...

  • An optional folder path under the tag provider where the root folder of the tags can be found.

...

  • The buffer period for outgoing Transmission messages in milliseconds.

...

  • The Set that the Custom Settings client will connect to.

...

...

  • The MQTT Transmission History Store to use with the Default Transmitter.

...

  • Whether to use aliases for tag names when published data messages as tag values change.  This is used to optimize payload size when publishing data.

...

  • The algorithm to use to compress payloads before they are published to the MQTT Server.  If 'NONE' is selected then compression is disabled.

...

  • Whether to block commands and tag writes received as messages from the MQTT server.

...

  • Whether to convert UDT members to normal Tags before publishing.  If enabled the Tags representing the UDT member will retain their member path prefixed by the UDT Instance name.

Sparkplug Settings

  • Group ID
    • An ID representing a logical grouping of MQTT Edge Of Network (EoN) Nodes and Devices into the infrastructure.
  • Edge Node ID
    • An ID that uniquely identifies the MQTT Edge Of Network (EoN) Node within the infrastructure.
  • Device ID
    • An optional ID that uniquely identifies a Device within the infrastructure.

Note that if a 'Device ID' is not specified, any folder within the folder specified by the Tag Path will be considered a device folder and any Tags within it will be published as device Tags. 

Clicking on the 'Create new Custom Settings..' link will bring up the following form to add a new Server.

Image Removed

Records

The 'Records' tab allows user to create a table of custom records. Each record defines a folder (under specified tag provider) in which user can create a number of tags that will be published as a record by clicking the 'Publish' checkbox. The 'Publish' tag will be created automatically in the folder specified.

Image RemovedImage Added

Clicking on the 'Create new Records ...' link will bring up the following form to add a new Record:

Image Added


Image RemovedEach custom record has the following fields under two categories: 'Tag Settings', and 'Sparkplug Settings'

Tag Settings

  • Tag Provider
    • The name of the tag provider (i.e. default)
  • Tag Folder Path
    • The path to the tag folder under specified tag provider
  • Record Type
    • Type of Record

Sparkplug Settings

  • Group ID
    • An ID representing a logical grouping of MQTT Edge of Network (EoN) Nodes and Devices into the infrastructure.
  • Edge Node ID
    • An ID that uniquely identifies the MQTT Edge of Network (EoN) Node within the infrastructure.
  • Device ID
    • An Optional ID that uniquely identifies a Device within the infrastructure.

Below is an example of a submitted record:

Image RemovedImage Added

History

The "History" page allows for the configuration of MQTT Transmission History Stores.  In the event that a Transmitter loses it's connection with the MQTT Server and is unable to reconnect, a History Store (if enabled) will store all messages corresponding to change events on the monitored tags.  Once a connection with an MQTT server is reestablished the History Store will publish the stored messages with a flag set to indicate that the messages are "historical" to prevent confusion with live data values.

Image RemovedImage AddedEach History Store has the following fields

  • Name
    • The name of the History Store.
  • Enabled
    • Whether the History Store is enabled.
  • Type
    • The type of History Store.
  • Edge Node Tag Capacity
    • The maximum number of edge node tags to store (per edge node) before dropping the oldest currently stored tag value.
  • Device Tag Capacity
    • The maximum number of device tags to store (per device) before dropping the oldest currently stored tag value.
  • Flush Quantity
    • The maximum number of tags tags to publish in a single message upon reestablishing communication.
  • Flush Period
    • The period to wait in milliseconds between publishes when flushing messages upon reestablishing communication.

Image RemovedImage Added