Versions Compared

Key

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

MQTT Engine has a number of configuration options that provides provide flexibility when connecting and subscribing to servers.

...

If multiple concurrent server connections are useddesired, each one should be associated with a unique Server Set.

...

MQTT Engine Servers - Filtered Namespaces

The MQTT Engine > Servers (> Advanced ) tab section contains the Filtered Namespaces configuration.

...

A system with Edge devices publishing using the Sparkplug B protocol to Server A and Edge devices publishing MQTT messages to another Server B.


Image Added


MQTT Engine will have two server connections configured:

  • Server A Set 1
  • Server B Set 2

In this instance the Access Control Lists (ACLs) on Server B may not allow for the subscriptions required by MQTT Engine for the Sparkplug B protocol. Setting the Filtered Namespaces for the MQTT Engine Server configuration for Server B to "Sparkplug B" will disable the namespace for this server connection.

...

The MQTT Engine Namespaces > Default > Sets tab allows for specific Server Sets to be associated with the namespace.

This configuration expands on the MQTT Engine Servers - Filtered Namespaces by applying to all servers in allows for a namespace to be associated with a specific server set. If connection is switched to another server within the same server set, filtered namespaces are applied.(s) and applies to all servers in the server set. 

Example

A system with Edge devices publishing using the Sparkplug B protocol to Server A using Set 1 and Edge devices publishing MQTT messages to a failover server pair Server B and Server C using Set 2.


Image Added

MQTT Engine will have three server connections configured:

  • Server A Set 1
  • Server B Set 2
  • Server C Set 2

In this instance the Access Control Lists (ACLs) on Servers B and C may not allow for the subscriptions required by MQTT Engine for the Sparkplug B protocol. Associating a Server Set for the Sparkplug B namespace only with Set 1 will disable the namespace for all the two server connections associated with the server setSet 2.


Anchor
NamespaceDefaultFilters
NamespaceDefaultFilters
MQTT Engine Namespaces Default - Filters

The MQTT Engine Namespaces > Default > Filters tab allows for specific Group or Group/EdgeNode combinations to be included in the MQTT Engine subscriptions to specific MQTT Servers. 

This allows you to exclude incoming messages from being parsed at Engine using the configured namespace.

Note

The ‘Filters' are applied to the respective server(s) only. If connection is switched to another server within the same server set, filters are not applied and the required Sparkplug B subscriptions will be used.

Ensure that any Access Control Lists (ACLs) configured on the server match the Group or Group/EdgeNode configured in the Namespace Filter


Example 1 for the Sparkplug B namespace

A system with three Edge Nodes publishing data using the Sparkplug B protocol with Groups IDs Edge1, Edge2 and Edge3 where we want to limited MQTT Engine to data coming from Edge2.

Setting the Sparkplug B Default Namespace Filters for a Group ID to of 'Location1' will limit the subscriptions on the specific server to:

  • spBv1.0/Location1/#
  • spBv1.0/STATE/primary_host_id

Setting the Group ID to 'Location1' an Edge Node ID to 'Stream1'  will limit the subscriptions on the specific server to:

...

Edge2' will ensure that only this Group ID will be included in the MQTT Engine subscription.


Image Added



Example 2 for Sparkplug B namespace

A system with one Edge Node configured with two Server connections - one using the Sparkplug B protobuf format and the other using the Sparkplug B JSON formats.

The Edge Node has two Transmitters, one using each server with unique Sparkplug Group IDs of "Group1JSON" and "Group1".

Setting the Sparkplug B Default Namespace Filters for a Group ID of 'Group1' will ensure that only this Group ID will be included in the MQTT Engine subscription and MQTT engine will never receive the JSON formatted Sparkplug B messages.

Image Added

...



MQTT Engine Namespaces Custom - Sets

Custom Namespaces are are used to provide support for generic, non Sparkplug compliant MQTT messages with string based payloads.

The MQTT Engine Namespaces > Custom > Sets tab allows for specific Server Sets to be associated with the namespace.

This configuration expands on the MQTT Engine Servers - Filtered Namespaces by applying allows for a namespace to be associated with a specific server set(s) and applies to all servers in a specific the server set. If connection is switched to another server within the same server set, filtered namespaces are applied 

Example

A system with Edge devices publishing using the Sparkplug B protocol to Server A using Set 1 and Edge devices publishing MQTT messages to a failover server pair Server B and Server C using Set 2.

MQTT Engine will have three server connections configured:

  • Server A Set 1
  • Server B Set 2
  • Server C Set 2

In this instance, associating the custom namespace only with Set 2 will disable the namespace for the single server connection associated with Set 1.