The following API calls are available for the MQTT Transmission Module and can be executed within any of the available Ignition scopes.
There are sample API scripts available for each API call.
APIs
system.cirruslink.transmission.publish(mqttServerName, topic, payload, qos, retained) → void
Parameters
String mqttServerName
The name of the server connection to use in the MQTT Transmission Server configuration. This must match an existing server name in the configuration.
String topic
The MQTT topic to publish on. This must be a valid MQTT topic
byte[] payload
An array of bytes representing the MQTT payload
int qos
The MQTT 'Quality of Service' to use. This must be either 0, 1, or 2
boolean retained
Whether or not to publish this message with the retained flag set
Return Value
system.cirruslink.transmission.createConfig(type, props) → void
Parameters
String type
Map props
Dictionary of properties making up the configuration with the following keys and datatypes:
History Stores
Id (long)(cannot be null)
Name (str)
Enabled (bool)
TransmissionHistoryStoreType (str) "IN_MEMORY" or "DISK_BACKED"
EdgeNodeTagCapacity (int)(deprecated 4.0.19)
DeviceTagCapacity (int)(deprecated 4.0.19)
HistoryMaxSize (int)(added 4.0.22)
HistoryMaxAge (int) (added 4.0.19)
FlushQuantity (int)
FlushPeriod (long)
RollingHistoryBufferEnabled (boo)(added 4.0.17)
RollingHistoryMaxAge (int) (added 4.0.17)
RollingHistoryPruneInterval (int)(added 4.0.17)
H2dbDirectory (str)(added 4.0.25)
H2dbPort (int)(added 4.0.22)
Cert Files
Servers
Id (long)(cannot be null)
Name (str)
Url (str)
ServerSetId (str) (must be included)
Username (str)
Password (str)
CaCertFileId (long)
ClientCertFileId (long)
ClientPrivateKeyFileId (long)
ClientKeyPassword (str)
HostnameVerification (bool)
TlsAlpnExtensions (str)
ClientId (str)
KeepAlive (int)
RandomStartupDelay (str)
ReconnectDelay (long)
DataFormatTypeWrapper (str) "Sparkplug_B_v1_0_Protobuf" or "Sparkplug_B_v1_0_JSON"
RpcClientKeyPassword (str) (added 4.0.18)
RpcClientPrivateKeyFileId (long) (added 4.0.18)
RpcTlsAlpnExtensions (str) (added 4.0.18)
RpcHostnameVerification (bool) (added 4.0.18)
RpcUsername (str) (added 4.0.18)
RpcClientId (str) (added 4.0.18)
RpcClientCertFileId (long) (added 4.0.18)
RpcPassword (str) (added 4.0.18)
RpcCaCertFileId (long) (added 4.0.18)
Sets
Transmitters
Id (long)(cannot be null)
Name (str)
Enabled (bool)
TagProvider (str)
TagPath (str)
TagPacingPeriod (long)
ServerSetId (long) (must be included)
DiscoveryDelay (long)
AliasedTags (bool)
CompressionTypeWrapper (long) "NONE" "DEFLATE" or "GZIP"
BlockCommands (bool)
ConvertUdts (bool)
PublishUdtDefinitions (bool)
OptimizeUdts (bool)
CacheBirthsEnabled (bool)
HistoryStoreId (long)
EnableStoreForwardByDefault (bool)
InOrderHistory (bool)
GroupId (str)
EdgeNodeId (str)
DeviceId (str)
FilteredProperties (str)
RebirthDebounceDelay (long)
RedundancyTransitionActiveDelay (long)(added 4.0.25)
AlarmJournalName (str)(added 4.0.30)
UseCirrusEncoder (bool) (added 4.0.30)
ReconciliationWindow (long)(added 4.0.30)
UnsTransmitters(added 4.0.25)
Id (long)(cannot be null)
Name (str)
Enabled (bool)
TagProvider (str)
TagPath (str)
ServerSetId (long) (must be included)
DiscoveryDelay (long)
PropsQos (int)
PropsRetain (bool)
DataQos (int)
DataRetain (bool)
HistoryStoreId (long)
EnableStoreForwardByDefault (bool)
SendAllProps (bool)
FilteredProperties (str)
UseTopicPrefixToken (bool)
TagPacingPeriod (long)
GroupId (str)(must be unique across this Transmission system)
EdgeNodeId (str)(must be unique across this Transmission system)
DeviceId (str)(must be unique across this Transmission system)
Records
Files
Id (long)(cannot be null)
TagProvider (str)
TagFolderPath (str)
EnableAutoPublishing (bool)
FileScanRate (int)
GroupId (str)
EdgeNodeId (str)
DeviceId (str)
MessageSize (int)
MessagePacingPeriod (int)
MessageAckTimeout (int)
Return Value
A map representing the newly created configuration after it has been written to the database. (added 4.0.16)
system.cirruslink.transmission.readConfig(type) → List
Parameters
Return Value
A List of Dictionaries of properties making up the configurations with the following keys and datatypes:
History Stores
Id (long)
Name (str)
Enabled (bool)
TransmissionHistoryStoreType (str) "In-Memory" or "Disk-Backed"
EdgeNodeTagCapacity (int)(deprecated 4.0.19)
DeviceTagCapacity (int)(deprecated 4.0.19)
HistoryMaxSize (int)(added 4.0.22)
HistoryMaxAge (int)(added 4.0.19)
FlushQuantity (int)
FlushPeriod (long)
RollingHistoryBufferEnabled (bool)(added 4.0.17)
RollingHistoryMaxAge (int)(added 4.0.17)
RollingHistoryPruneInterval (int)(added 4.0.17)
H2dbDirectory (str)(added 4.0.25)
H2dbPort (int)(added 4.0.22)
General
Id (long)
Enabled (bool)
AuditProfileRecordId (long)(added 4.0.16)
Cert Files
Id (long)
Name (str)
FileContents (str)
Description (str)
Servers
Id (long)
Name (str)
Url (str)
ServerSetId (str)
Username (str)
Password (str)
CaCertFileId (long)
ClientCertFileId (long)
ClientPrivateKeyFileId (long)
ClientKeyPassword (str)
HostnameVerification (bool)
ClientId (str)
KeepAlive (int)
RandomStartupDelay (str)
ReconnectDelay (long)
DataFormatTypeWrapper (str) "Sparkplug_B_v1_0_Protobuf" or "Sparkplug_B_v1_0_JSON"
RpcClientKeyPassword (str) (added 4.0.18)
RpcClientPrivateKeyFileId (long) (added 4.0.18)
RpcTlsAlpnExtensions (str) (added 4.0.18)
RpcHostnameVerification (bool) (added 4.0.18)
RpcUsername (str) (added 4.0.18)
RpcClientId (str) (added 4.0.18)
RpcClientCertFileId (long) (added 4.0.18)
RpcPassword (str) (added 4.0.18)
RpcCaCertFileId (long) (added 4.0.18)
Sets
Id (long)
Name (str)
Description (str)
PrimaryHostId (str)
AutoReconnectRpcClient (bool)
RpcClientEnabled (bool) (added 4.0.18)
RandomizeServerConnections(bool) (added 4.0.28)
Transmitters
Id (long)
Name (str)
Enabled (bool)
TagProvider (str)
TagPath (str)
TagPacingPeriod (long)
ServerSetId (long)
DiscoveryDelay (long)
AliasedTags (bool)
CompressionTypeWrapper (long) "NONE" "DEFLATE" or "GZIP"
BlockCommands (bool)
ConvertUdts (bool)
PublishUdtDefinitions (bool)
OptimizeUdts (bool)
CacheBirthsEnabled (bool)
HistoryStoreId (long)
EnableStoreForwardByDefault (bool)
InOrderHistory (bool)
GroupId (str)
EdgeNodeId (str)
DeviceId (str)
FilteredProperties (str)
RebirthDebounceDelay (long)
RedundancyTransitionActiveDelay (long)(added 4.0.25)
AlarmJournalName (str)(added 4.0.30)
UseCirrusEncoder (bool) (added 4.0.30)
ReconciliationWindow (long)(added 4.0.30)
UnsTransmitters(added 4.0.25)
Id (long)
Name (str)
Enabled (bool)
TagProvider (str)
TagPath (str)
ServerSetId (long) (must be included)
DiscoveryDelay (long)
PropsQos (int)
PropsRetain (bool)
DataQos (int)
DataRetain (bool)
HistoryStoreId (long)
EnableStoreForwardByDefault (bool)
SendAllProps (bool)
FilteredProperties (str)
UseTopicPrefixToken (bool)
TagPacingPeriod (long)
GroupId (str)(must be unique across this Transmission system)
EdgeNodeId (str)(must be unique across this Transmission system)
DeviceId (str)(must be unique across this Transmission system)
Records
Files
system.cirruslink.transmission.updateConfig(type, id, collisionPolicy, props) → void
Parameters
String type
Long id
The ID of the record to update
String collisionPolicy
"MergeOverwrite" or "Overwrite"
"MergeOverwrite" will replace the existing properties in the record ID with only those included in the call
"Overwrite" will replace all properties in the record ID with those in the call
Map props
Dictionary of properties making up the configuration with the following keys and datatypes:
History Stores
Id (long)
Name (str)
Enabled (bool)
TransmissionHistoryStoreType (str) "IN-MEMORY" or "DISK_BACKED"
EdgeNodeTagCapacity (int)(deprecated 4.0.19)
DeviceTagCapacity (int)(deprecated 4.0.19)
HistoryMaxSize (int)(added 4.0.22)
HistoryMaxAge (int)(added 4.0.19)
FlushQuantity (int)
FlushPeriod (long)
RollingHistoryBufferEnabled (bool)(added 4.0.17)
RollingHistoryMaxAge (int)(added 4.0.17)
RollingHistoryPruneInterval (int)(added 4.0.17)
H2dbDirectory (str)(added 4.0.25)
H2dbPort (int)(added 4.0.22)
General
Id (long)
Enabled (bool)
AuditProfileRecordId (long)(added 4.0.16)
Cert Files
Id (long)
Name (str)
FileContents (str)
Description (str)
Servers
Id (long)
Name (str)
Url (str)
ServerSetId (str)
Username (str)
Password (str)
CaCertFileId (long)
ClientCertFileId (long)
ClientPrivateKeyFileId (long)
ClientKeyPassword (str)
HostnameVerification (bool)
ClientId (str)
KeepAlive (int)
RandomStartupDelay (str)
ReconnectDelay (long)
DataFormatTypeWrapper (str) "Sparkplug_B_v1_0_Protobuf" or "Sparkplug_B_v1_0_JSON"
RpcClientKeyPassword (str) (added 4.0.18)
RpcClientPrivateKeyFileId (long) (added 4.0.18)
RpcTlsAlpnExtensions (str) (added 4.0.18)
RpcHostnameVerification (bool) (added 4.0.18)
RpcUsername (str) (added 4.0.18)
RpcClientId (str) (added 4.0.18)
RpcClientCertFileId (long) (added 4.0.18)
RpcPassword (str) (added 4.0.18)
RpcCaCertFileId (long) (added 4.0.18)
Sets
Id (long)
Name (str)
Description (str)
PrimaryHostId (str)
AutoReconnectRpcClient (bool)
RpcClientEnabled (bool) (added 4.0.18)
RandomizeServerConnections(bool) (added 4.0.28)
Transmitters
Id (long)
Name (str)
Enabled (bool)
TagProvider (str)
TagPath (str)
TagPacingPeriod (long)
ServerSetId (long)
DiscoveryDelay (long)
AliasedTags (bool)
CompressionTypeWrapper (long) "NONE" "DEFLATE" or "GZIP"
BlockCommands (bool)
ConvertUdts (bool)
PublishUdtDefinitions (bool)
OptimizeUdts (bool)
CacheBirthsEnabled (bool)
HistoryStoreId (long)
EnableStoreForwardByDefault (bool)
InOrderHistory (bool)
GroupId (str)
EdgeNodeId (str)
DeviceId (str)
FilteredProperties (str)
RebirthDebounceDelay (long)
RedundancyTransitionActiveDelay (long)(added 4.0.25)
AlarmJournalName (str)(added 4.0.30)
UseCirrusEncoder (bool) (added 4.0.30)
ReconciliationWindow (long)(added 4.0.30)
UnsTransmitters(added 4.0.25)
Id (long)
Name (str)
Enabled (bool)
TagProvider (str)
TagPath (str)
ServerSetId (long) (must be included)
DiscoveryDelay (long)
PropsQos (int)
PropsRetain (bool)
DataQos (int)
DataRetain (bool)
HistoryStoreId (long)
EnableStoreForwardByDefault (bool)
SendAllProps (bool)
FilteredProperties (str)
UseTopicPrefixToken (bool)
TagPacingPeriod (long)
GroupId (str)(must be unique across this Transmission system)
EdgeNodeId (str)(must be unique across this Transmission system)
DeviceId (str)(must be unique across this Transmission system)
Records
Files
Return Value
A map representing the updated configuration after it has been written to the database. (added 4.0.16)
system.cirruslink.transmission.deleteConfig(type, id) → void
Parameters
String type
Long id
The ID of the record to delete
Return Value
True if the record is successfully deleted otherwise False is returned (added 4.0.16)
Sample Script
# Cirrus Link provides these scripts as examples only, they are not supported or guaranteed to meet any particular functionality. Cirrus Link cannot provide any assistance to modify these scripts to meet a particular need.
# MQTT Transmission Create Transmitter
# Get the Default Set ID
sets = system.cirruslink.transmission.readConfig("Sets")
for config in sets:
if config["Name"] == "Default":
setId = config["Id"]
logger.debug("New Set ID: " + str(setId))
# Create Transmitter One
transmitterProps = {}
transmitterProps["Name"] = "Custom One"
transmitterProps["Enabled"] = True
transmitterProps["TagProvider"] = "default"
transmitterProps["TagPath"] = ""
transmitterProps["TagPacingPeriod"] = 1000
transmitterProps["ServerSetId"] = setId
transmitterProps["DiscoveryDelay"] = 0
transmitterProps["AliasedTags"] = False
transmitterProps["CompressionTypeWrapper"] = "NONE"
transmitterProps["BlockCommands"] = False
transmitterProps["ConvertUdts"] = True
transmitterProps["PublishUdtDefinitions"] = True
transmitterProps["OptimizeUdts"] = True
transmitterProps["CacheBirthsEnabled"] = False
#transmitterProps["HistoryStore"] = None
transmitterProps["EnableStoreForwardByDefault"] = True
transmitterProps["InOrderHistory"] = False
transmitterProps["GroupId"] = "Test1G"
transmitterProps["EdgeNodeId"] = "Test1E"
transmitterProps["DeviceId"] = None
transmitterProps["FilteredProperties"] = "accessRights;clampMode;deadband;deadbandMode;formatString;historicalDeadband;historicalDeadbandMode;historicalDeadbandStyle;historyEnabled;historyMaxAge;historyMaxAgeUnits;historyProvider;historySampleRate;historySampleRateUnits;historyTagGroup;historyTimeDeadband;historyTimeDeadbandUnits;opcItemPath;opcServer;permissionModel;rawHigh;rawLow;sampleMode;scaleFactor;scaleMode;scaledHigh;scaledLow;tagGroup;valueSource;expression;expressionType;ConfiguredTagPath;eventScripts;readPermissions;writePermissions;eventScripts"
transmitterProps["RebirthDebounceDelay"] = 5000
system.cirruslink.transmission.createConfig("Transmitters", transmitterProps)
# MQTT Transmission Update Existing Transmitter
# Read Config
savedTransmitters = system.cirruslink.transmission.readConfig("Transmitters")
for config in savedTransmitters:
if config["Name"] == "Custom One":
logger.info("Transmitter Config: " + str(config))
customOneId = config["Id"]
# Update Config using MergeOverwrite
transmitterProps = {}
transmitterProps["GroupId"] = "Test2G"
transmitterProps["EdgeNodeId"] = "Test2E"
system.cirruslink.transmission.updateConfig(“Transmitters”, customOneId, “MergeOverwrite”, transmitterProps)
# Update Config using Overwrite
transmitterProps = {}
transmitterProps["Name"] = "Custom One"
transmitterProps["Enabled"] = True
transmitterProps["TagProvider"] = "default"
transmitterProps["TagPath"] = ""
transmitterProps["TagPacingPeriod"] = 1000
transmitterProps["ServerSetId"] = setId
transmitterProps["DiscoveryDelay"] = 0
transmitterProps["AliasedTags"] = False
transmitterProps["CompressionTypeWrapper"] = "NONE"
transmitterProps["BlockCommands"] = False
transmitterProps["ConvertUdts"] = True
transmitterProps["PublishUdtDefinitions"] = True
transmitterProps["OptimizeUdts"] = True
transmitterProps["CacheBirthsEnabled"] = False
#transmitterProps["HistoryStore"] = None
transmitterProps["EnableStoreForwardByDefault"] = True
transmitterProps["InOrderHistory"] = False
transmitterProps["GroupId"] = "Test2G"
transmitterProps["EdgeNodeId"] = "Test2E"
transmitterProps["DeviceId"] = None
transmitterProps["FilteredProperties"] = "accessRights;clampMode;deadband;deadbandMode;formatString;historicalDeadband;historicalDeadbandMode;historicalDeadbandStyle;historyEnabled;historyMaxAge;historyMaxAgeUnits;historyProvider;historySampleRate;historySampleRateUnits;historyTagGroup;historyTimeDeadband;historyTimeDeadbandUnits;opcItemPath;opcServer;permissionModel;rawHigh;rawLow;sampleMode;scaleFactor;scaleMode;scaledHigh;scaledLow;tagGroup;valueSource;expression;expressionType;ConfiguredTagPath;eventScripts;readPermissions;writePermissions;eventScripts"
transmitterProps["RebirthDebounceDelay"] = 5000
system.cirruslink.transmission.updateConfig(“Transmitters”, customOneId, “Overwrite”, transmitterProps)
# Delete Config
system.cirruslink.transmission.deleteConfig("Transmitters", customOneId)
# Disable UNS topic prefix (unsA1.0)
transmitters = system.cirruslink.transmission.readConfig("UnsTransmitters")
name = "UNS Transmitter"
for transmitter in transmitters:
if transmitter["Name"] == name:
transmitterId = transmitter["Id"]
transmitterProps = {}
transmitterProps["UseTopicPrefixToken"] = False
system.cirruslink.transmission.updateConfig("UnsTransmitters", transmitterId, "MergeOverwrite", transmitterProps)