Versions Compared

Key

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

...

Cirrus Link Modules for Ignition 8.x


HTML
<a id="toggleAll" href="#">Expand/Collapse All to allow Search</a> <script type="text/javascript"> AJS.toInit(function () { AJS.$('#toggleAll').click(function() { jQuery(".expand-control").each(function()

{ jQuery(this).trigger("click");}

) }); }); </script>
<p>


license.html
Expand
titlev4.0.10 February 7, 2022
Expand
titleLicense
21 January 26, 2024


Expand
titleMQTT Distributor


Expand
titleWhat's New or Improved
    No new features
  • Added custom property support for 'maxOutboundQueueSize'


Expand
titleWhat's Fixed
  • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
  • Fixed bug that resulted in MQTT Distributor starting when actually disabled after a 'system disabled' restore
  • No fixes



Expand
titleMQTT Engine


Expand
titleWhat's New or Improved
  • MQTT Engine now excludes empty property sets on the wire which could result in problems for some Edge Node implementations

  • Modified MQTT Engine to only perform UDT collision detection for MQTT Transmission Sparkplug Edge Nodes

  • Improved logging to not log at info level on ignored tag collisions when a duplicate tag change event is being ignored and is identical to the original

  • Added support for excluding datatypes from CMD messages per the Sparkplug spec

  • Added support for missing datatypes in DATA messages per the Sparkplug spec

  • Added support for 'Binary Data' datatype

  • Added Engine side write support for ByteArray, DateTimeArray, and StringArray datatypes


Expand
titleWhat's Fixed
  • Fixed potential

class loading issues when running multiple Cirrus Link modules of differing versions
  • erroneous UDT collision warnings in MQTT Engine

  • Fixed potential NPE in UDT collision detection for templates with no parameters

  • Fixed timing issue that could result in Transmission attempting to read tags before the tag provider is started which could result in failure to initialize on startup

  • Fixed NPE in Engine handling of STATE message arrival
  • Fixed tag configuration handling of properties in some edge cases
  • Modified MQTT Engine to not update tags that are disabled at the Edge
  • Fixed order of operations on start/stop when reconfiguring MQTT Engine
  • Fixed UDT paramterized property handling in Engine



    Expand
    titleMQTT Transmission


    Expand
    titleWhat's New or Improved
    • Added support for applying Ignition SecurityContext based writes via Sparkplug
    • Added BIRTH caching to fix in-order history across Transmission/Ignition restarts
    • Added support for Transmission file publishing filenames to have date/timestamps
    • Added a retry configuration option for file publishing
    • Modified Transmission to allow file publishing even if commands are blocked
    • Fixed Example Transmitter creation on Ignition Edge systems
    • Improved disk-backed history store migration code
    • Added support to enable/disable Server Settings
    • Improved file publishing throughput
    • Improved shutdown speed when lots of Edge Nodes exist in Transmission
    • Made 'hashing algorithm' names consistent across all modules
    • Increased the default query timeout for disk-backed history stores to improve reliability on underpowered systems
    • Added support for excluding datatypes from DATA messages per the Sparkplug spec
    • Added support for missing datatypes in CMD messages per the Sparkplug spec
    • Added a dedup filter to prevent some edge cases where BIRTH and subsequent DATA messages could include identical tag change events
    • Added support for 'Binary Data' datatype
    • Set defaults for history store configurations


    Expand
    titleWhat's Fixed
    • Fixed
    aliasing migration code to prevent malformed configurations
  • Added support to delete Disk-backed history store artifacts when an Edge Node or Device is deleted
  • Fixed 'Refresh Required' tag indicator handling
  • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
  • Added null protection to configs that may omit Compression Type and Data Format Type
  • Fixed support for 'Single level Edge Node refreshing' when a Group ID is specified in the Transmitter config
  • Improved thread handling in start/stop scenarios when auto-publishing
  • Fixed handling of parameterized UDT definition members
  • Fixed handling of auto-publishing when not connected to primary host
  • Fixed to file deletion handling when auto-publishing files
  • Improved synchronization to start/stopping of threads on reconfiguration operations
  • Fixes to file publishing thread start/stop
  • Modified Transmission to not remove the 'formatString' property from UDTs
  • Fixed initialization of RAM based history stores for some startup scenarios
  • Fixed a thread leak on 'single level Edge Node refresh'
  • Removed unnecessary thread startup of Edge Nodes that could result in invalid bdSeq numbers being published in an NBIRTH
  • Fixed file publish retry logic
    • multiple edge cases where duplicate tag change events could be sent when they shouldn't be
    • Fixed edge case that could result in some metrics failing to get aliases assigned when aliasing is enabled
    • Fixed support for ByteArray datatypes
    • Fixed potential NPEs when flushing history in-order
    • Fixed issue that could result in live data being mixed in with history during in-order history flush
    • Added Paho bug workaround to minimize leaked Paho threads
    • Fixed dataset deserialization when in use in history stores which resulted in zero values in datasets at MQTT Engine
    • Fixed issue that could result in missing aliases when using aliasing with history stores
    • Removed issue that could result in Ignition shutdown when using disk-backed history store
    • Fixed issue that required a CA cert when using client side cert auth even if using a 'real' CA



    Expandexpand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
      No new features
    • Made 'hashing algorithm' names consistent across all modules


    Expand
    titleWhat's Fixed
    • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versionNo fixes



    Expand
    titleAWS Injector


    Expand
    titleWhat's New or Improved
    • Increased the default query timeout for disk-backed history stores to improve reliability on underpowered systems
    • Added support for 'Binary Data' datatype
    No new features


    Expand
    titleWhat's Fixed
    • Fixed
    • potential class loading issues when running multiple Cirrus Link modules of differing version
    Expand
    titleAzure Injector
    Expand
    titleWhat's New or Improved
    • Added support for Content Encoding to be specified for IoT Hub connections
    • Added support for Azure IoT Central
    Expand
    titleWhat's Fixed
    • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
    • Fixed certificate upload handling and validation
    Expand
    • multiple edge cases where duplicate tag change events could be sent when they shouldn't be
    • Fixed timing issue that could result in Transmission attempting to read tags before the tag provider is started which could result in failure to initialize on startup
    • Fixed support for ByteArray datatypes

    • Fixed dataset deserialization when in use in history stores which resulted in zero values in datasets

    • Added code to ensure a history store is not started if the Injector is disabled

    • Removed issue that could result in Ignition shutdown when using disk-backed history store



    Expand
    titleAzure titleGoogle Cloud Injector


    Expand
    titleWhat's New or Improved
    Moved private key storage to the Ignition internal DB to improve usability
    • Increased the default query timeout for disk-backed history stores to improve reliability on underpowered systems
    • Added support for
    HTTP and HTTPS proxies
    • 'Binary Data' datatype


    Expand
    titleWhat's Fixed
    • Fixed
    potential class loading issues when running multiple Cirrus Link modules of differing versions
    Expand
    titleIBM Cloud Injector
    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
    • multiple edge cases where duplicate tag change events could be sent when they shouldn't be
    • Fixed timing issue that could result in Transmission attempting to read tags before the tag provider is started which could result in failure to initialize on startup
    • Fixed support for ByteArray datatypes
    • Added Paho bug workaround to minimize leaked Paho threads
    • Fixed dataset deserialization when in use in history stores which resulted in zero values in datasets
    • Added code to ensure a history store is not started if the Injector is disabled
    • Fixed potential IoT Hub deadlock
    • Removed issue that could result in Ignition shutdown when using disk-backed history store



    Expand
    titleGoogle Cloud Injector
    Expand
    titleEFM ABB Totalflow Module


    Expand
    titleWhat's New or Improved
    • Added 'Core Diagnostic' informational tags to the managed tag provider
    • Deprecated/removed 'Poll EOT' and 'Auto-discovery EOT' timeouts
    • Improved connection status indication in the Ignition Gateway Web UI
    • Fixed null Station ID handling in configuration
    Expand
    titleWhat's Fixed
    • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
    • Improved CSV config file handling
    • Fixed mandatory field handling to improve the configuration experience
    • Fixed md5sum calculations for configuration file handling
    Expand
    titleEFM Emerson ROC Module
    • Modified default configuration to use Clearblade IoT Core endpoint
    • Increased the default query timeout for disk-backed history stores to improve reliability on underpowered systems
    • Added support for 'Binary Data' datatype


    Expand
    titleWhat's Fixed
    • Fixed multiple edge cases where duplicate tag change events could be sent when they shouldn't be
    • Fixed timing issue that could result in Transmission attempting to read tags before the tag provider is started which could result in failure to initialize on startup
    • Fixed support for ByteArray datatypes
    • Added Paho bug workaround to minimize leaked Paho threads
    • Fixed dataset deserialization when in use in history stores which resulted in zero values in datasets
    • Added code to ensure a history store is not started if the Injector is disabled
    • Removed issue that could result in Ignition shutdown when using disk-backed history store



    Expand
    titleEFM ABB Totalflow


    Expand
    title
    Expand
    titleWhat's New or Improved
  • Improved connection status indication in the Ignition Gateway Web UI
  • Improved handling of 'Point type 0' TLPs
    • Made 'hashing algorithm' names consistent across all modules


    Expand
    titleWhat's Fixed
  • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
  • Fixed md5sum calculations for configuration file handling
    • No fixes



    Expand
    titleEFM ExportEmerson ROC


    Expand
    titleWhat's New or Improved
    • No new featuresMade 'hashing algorithm' names consistent across all modules


    Expand
    titleWhat's Fixed
    • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
    • No fixes



    Expand
    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver


    Expand
    titleWhat's New or Improved
  • Modifications to not use 'default' (zero for numerics, false for booleans, and empty strings) values before an initial scan is performed
  • Logging improvements
    • No new features


    Expand
    titleWhat's Fixed
    Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
    • No fixes




    license.html
    Expand
    titlev4.0.9 October 20 November 22, 2021
    Expand
    titleLicense
    2023


    Expand
    titleMQTT Distributor


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleMQTT Engine


    Expand
    titleWhat's New or Improved
  • General logging improvements
  • Modified MQTT Engine to only subscribe on Elecsys 'State' topics if that namespace is enabled
  • Added dialog documentation for the configuration Python scripting API
  • Added support to allow spaces in Primary Host IDs
    • Added 'actor' support to audit records for MQTT Engine to Transmission writes


    Expand
    titleWhat's Fixed
  • Fixed tag writes for Document type tags
  • Fixed server name validation to only allow characters that are valid in Ignition tag names
  • Various NPE fixes around invalid UDT configurations
  • Fixed issue that could result in MQTT Engine publishing Rebirth requests to the wrong MQTT Server in redundant environments
    • Removed invalid check requiring the Sparkplug sequence numbers be zero in an NBIRTH



    Expand
    titleMQTT Transmission


    Expand
    titleWhat's New or Improved
    • Removed the 'Node Control/Reboot' metric from the NBIRTH as it doesn't make sense for Transmission
    • General logging improvements
    • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
    • Added support for 'Edge Node level Refresh' to Transmission along with Edge Node granularity 'Refresh Required' tracking
    • Fixed server name validation to only allow characters that are valid in Ignition tag names
    • Added dialog documentation for the configruation Python scripting API
    • Added support for 'Refresh Required' updates on tag property changes
    • Fixed handling of Datasets in history stores
    • Added support to allow spaces in Primary Host IDs
    • Added support for 'discovering edge nodes' with correspoding 'discover required' tag and autoremoval of Edge Nodes in Transmitter tag trees
    Expand
    titleWhat's Fixed
    • Fixed detection of tag change events on Document type tags
    • Fixed potential (rare) deadlock when connecting to MQTT Servers
    • Fixed potential NPE around null bound property values in UDTs
    • Fixed issue where UDT null bound property values could be omitted from a payload
    • Fixed potential deadlock on shutdown
    • Fixed handling in Document tag types in DATA messages to prevent conversion to String datatypes in MQTT Engine
    • Fixed issue in alias handling that could result in duplicate aliases
    • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
    • Fixed publishing of UDT definitions in the NBIRTH when converting UDTs
    • Fixed potential NPE that could occur in Docker startup environments when creating the 'Example Transmitter'
    • Fixed bdSeq number handling that could result in it being incorrect in NBIRTH messages after connection failures
    • Fixed potential NPEs during Transmitter shutdown
    • Various Disk Backed history store fixes around NPEs and potential DB lockout
    • Various NPE fixes around invalid UDT configurations
    Expand
    titleMQTT Recorder
    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • No fixes
    • Added Transmission RECORD signature fields to the Python scripting API


    Expand
    titleWhat's Fixed
    • Fixed file publishing 'Reset' tag handling

    • Fixed issue that could result in Transmission RECORD config changes not taking effect

    • Fixed history store and forward migration to new table setup

    • Fixed history store and forward pruning logic for certain edge cases

    • Added support for '-' in disk-backed store and forward table names and some other special chars



    Expand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleAWS Injector


    Expand
    titleWhat's New or Improved
    • Logging improvements for better diagnostics


    Expand
    titleWhat's Fixed
    • Fixed enable/disable handling via the 'Enabled' Ignition tag

    • Fixed IndexOutOfBoundsExceptions on attempts to create endpoint services and agents w/o sets defined

    • Fixed sequence number handling in pushed messages

    • Fixed Injector failover by ensuring Service startup as well as Agent startup in redundant Ignition environments

    • Fixed issue with history store enablement for a disabled service

    • Fixed issue that could result in duplicated BIRTH messages

    • Fixed 'Messages Stored' count in Info tag

    • Fixed potential thread deadlock

    • Fixed history store and forward pruning logic for certain edge cases

    • Added support for '-' in disk-backed store and forward table names and some other special chars




    Expand
    titleAzure
    Expand
    titleAWS Injector


    Expand
    titleWhat's New or Improved
  • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
  • Added dialog documentation for the configruation Python scripting API
  • Added support for pushing DDEATH messages on Device removals
    • Logging improvements for better diagnostics


    Expand
    titleWhat's Fixed
    • Fixed

    detection of tag change events on Document type tags
  • Fixed potential NPE around null bound property values in UDTs
  • Fixed issue where UDT null bound property values could be omitted from a payload
  • Fixed potential deadlock on startup
  • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
    • enable/disable handling via the 'Enabled' Ignition tag

    • Fixed IndexOutOfBoundsExceptions on attempts to create endpoint services and agents w/o sets defined

    • Fixed sequence number handling in pushed messages

    • Fixed Injector failover by ensuring Service startup as well as Agent startup in redundant Ignition environments

    • Fixed issue with history store enablement for a disabled service

    • Fixed issue that could result in duplicated BIRTH messages

    • Fixed 'Messages Stored' count in Info tag

    • Fixed potential thread deadlock

    • Fixed history store and forward pruning logic for certain edge cases

    • Added support for '-' in disk-backed store and forward table names and some other special chars



    Expand
    titleGoogle Cloud Injector


    Expand
    titleWhat's New or Improved
    • Logging improvements for better diagnostics

    Expand
    titleAzure Injector
    Expand
    titleWhat's New or Improved
  • Added support for Azure Edge configuration via the Python scripting API
  • Added support for 'auto-configuration' in Azure Edge Docker environments
  • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
  • Added dialog documentation for the configruation Python scripting API
  • Added support for configurable character encoding
  • Added support for pushing DDEATH messages on Device removals


    Expand
    titleWhat's Fixed
    • Fixed

    detection of tag change events on Document type tags
  • Fixed potential NPE around null bound property values in UDTs
  • Fixed issue where UDT null bound property values could be omitted from a payload
  • Fixed potential deadlock on startup
  • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
    • enable/disable handling via the 'Enabled' Ignition tag

    • Fixed IndexOutOfBoundsExceptions on attempts to create endpoint services and agents w/o sets defined

    • Fixed sequence number handling in pushed messages

    • Fixed Injector failover by ensuring Service startup as well as Agent startup in redundant Ignition environments

    • Fixed issue with history store enablement for a disabled service

    • Fixed issue that could result in duplicated BIRTH messages

    • Fixed 'Messages Stored' count in Info tag

    • Fixed potential thread deadlock

    • Fixed history store and forward pruning logic for certain edge cases

    • Added support for '-' in disk-backed store and forward table names and some other special chars



    Expand
    titleEFF ABB Totalflow Modules
    Expand
    titleGoogle Cloud Injector


    Expand
    titleWhat's New or Improved
    • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
    • Made session token expirations configurable
    • Added dialog documentation for the configruation Python scripting API
    • Added support for pushing DDEATH messages on Device removals
    • No new features


    Expand
    titleWhat's Fixed
    • Fixed detection of tag change events on Document type tags
    • Fixed potential NPE around null bound property values in UDTs
    • Fixed issue where UDT null bound property values could be omitted from a payload
    • Fixed potential deadlock on startup
    • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
    • No fixes



    Expand
    titleIBM Cloud InjectorEFM Emerson ROC Module


    Expand
    titleWhat's New or Improved
    • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
    • Added dialog documentation for the configruation Python scripting API
    • Added support for pushing DDEATH messages on Device removals
    • No new features


    Expand
    titleWhat's Fixed
    • Fixed detection of tag change events on Document type tags
    • Fixed potential NPE around null bound property values in UDTs
    • Fixed issue where UDT null bound property values could be omitted from a payload
    • Fixed potential deadlock on startup
    • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
    • No fixes



    Expand
    titleEFM ABB Totalflow ModuleOpto22 groov EPIC and SNAPPAC Driver


    Expand
    titleWhat's New or Improved
    • Added a 'watchdog' to ensure continued AAR polling
    • Added validators to global definition files
    • Logging improvements around supervisory frame status
    • Moved large configuration files from the internal Ignition DB to the filesystem which is supported in Ignition8 backup/restore operations
    • Improved AAR write times
    • Fixed issue that prevented Totalflow Application definitions from being uploaded via Windows in some scenarios
    Expand
    titleWhat's Fixed
    • Fixed cleanup of 'orphaned' global definition records
    • Fixed import issue with array register templates
    • Fixed issue with 'Station ID' character lengths
    • Added support for comma characters in Totalflow Application's Name, Revision, and Parameter fields
    Expand
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes




    Expand
    titlev4.0.19 November 6, 2023


    Expand
    titleMQTT DistributortitleEFM Emerson ROC Module


    Expand
    titleWhat's New or Improved
    • Added a 'watchdog' to ensure continued TLP polling
    • Added validators to global definition files
    • Added retry logic to login attempts when login fails
    • Fixed issue where polling could stop in certain scenarios and not automatically restart
    • Moved large configuration files from the internal Ignition DB to the filesystem which is supported in Ignition8 backup/restore operations
    • Improved logging on clearing of retained messages


    Expand
    titleWhat's Fixed
    • Fixed
    cleanup of 'orphaned' global definition records
    • log messages when client connections pre-empt existing connections with same client ID



    Opto22 groov EPIC and SNAPPAC Driver
    Expand
    titleEFM ExportMQTT Engine


    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    • Expanded TagPath validation to ensure paths don't end in a slash

    • Added 'parentEnabled' and 'sourceTagPath' to list of default filtered properties
    • Added JSON validation for the MQTT Engine custom properties config field
    title


    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titlev4.0.8 July 15, 2021
    Fixed
    • Fixed writing of array values in MQTT Engine tag provider for null and full arrays
    • Fixed legacy STATE MQTT client migration when updating from older versions of MQTT Engine
    Expand
    titleMQTT Distributor
    Expand
    titleWhat's New or Improved
    • Added support for Python script based configuration changes
    Expand
    titleWhat's Fixed
    No fixes



    Expand
    titleMQTT EngineTransmission


    Expand
    titleWhat's New or Improved
    • Improved handling of setting Edge Nodes and Devices offline
    • Added support for Python script based configuration changes
    • Improved general performance
    • Added TLS ALPN support
    • Improved logic around subscriptions that may fail due to ACL or permission issues
      • NOTE: This fix can result in MQTT Engine no longer being able to connect to the MQTT Server when attempting to subscribe on a topic without the permissions to do so. This is a configuration issue that needs to be fixed by either:
        • (1) Updating the MQTT Server ACL/permissions so Engine can subscribe on the required topics OR
        • (2) Disable MQTT Engine Namespaces and/or PrimaryHostId so that Engine is no longer required to subscribe on topics without the permission to do so.
    • Improved processing speed of custom namespace JSON payloads
    • Optimized BIRTH building to consolidate readTag calls - helps with remote tag provider tags in BIRTH building
    • Expanded TagPath validation to ensure paths don't end in a slash
    • Added 'parentEnabled' and 'sourceTagPath' to list of default filtered properties
    • Major overhaul of disk-backed store and forward system to optimize storage and configuration
    • Added digital signature support to Transmission RECORD creation
    • Added defaults for rolling history buffer configuration
    • Added Transmission history store field validation
    • Removed the 'prune quantity' option for rolling history configuration from the web UI


    Expand
    Expand
    titleWhat's Fixed
    • Fixed issue
    that could result in Engine not sending commands when required including Rebirth requests
  • Added protection for null payload timestamps
  • Fixed issue that could result in deleted info tags associated with server settings
  • Internal tag cache fixes and improvements
  • Changed configureTag logic to only configure UDT instances when it is new
    • where Edge Node level expression tags are null on NBIRTH
    • Fixed null value handling in RECORDs that would result in default values being set instead of null
    • Fixed cache update code that could result in BIRTH messages not publishing the most recent/valid value
    • Fixed potential erroneous data type change event when converting tags for UDT instance members
    • Fixed issue where timestamps could be set incorrectly if the tag is in a Managed Tag Provider
    • Fixed NPE on initialization
    • Fixed handling of CMD messages missing Metric datatypes per the Sparkplug spec including Rebirth requests
    • Fixed handling of tag properties that are not of a supported datatype



    Expand
    titleMQTT TransmissionRecorder


    Expand
    titleWhat's New or Improved
    • Added support for Python script based configuration changes
    • Added support for better QualityCode comparisons to support changes in Ignition 8.1.7
    • Added TLS ALPN support
    • Improved logic around subscriptions that may fail due to ACL or permission issues
      • NOTE: This fix can result in MQTT Transmission no longer being able to connect to the MQTT Server when attempting to subscribe on a topic without the permissions to do so. This is a configuration issue that needs to be fixed by either:
        • (1) Updating the MQTT Server ACL/permissions so Transmission can subscribe on the required topics OR
        • (2) Clear the MQTT Transmission PrimaryHostId so that Transmission is no longer required to subscribe on the STATE topic without the permission to do so.
    • Improved history store startup logic to better handle mis-configurations
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleAWS Injector


    Expand
    titleWhat's New or Improved
    • Optimized BIRTH building to consolidate readTag calls - helps with remote tag provider tags in BIRTH building
    • Expanded TagPath validation to ensure paths don't end in a slash
    • Major overhaul of disk-backed store and forward system to optimize storage and configuration
    • General logging improvements


    Expand
    titleWhat's Fixed
    • Fixed issue where Edge Node level expression tags are null on NBIRTH
    • Fixed cache update code that could result in BIRTH messages not publishing the most recent/valid value
    • Fixed '
    Refresh Required
    • enabled'
    tag handling to show the proper state of the tag
  • Internal cache fixes and improvements
  • Fixed potential thread-leak
  • Fixes and improvements to bound properties in UDTs
  • Fixes to history store and forward when UDTs are being used
  • Expand
    titleMQTT Recorder
    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    • value handling on setting endpoints
    • Fixed potential erroneous data type change event when converting tags for UDT instance members
    • Fixed NPE on initialization
    • Fixed Injector Info tags that could show incorrect data
    • Fixed PUSH_TO_ANY handling in Injectors when transitioning on connection status
    • Fixed NPE on fresh module installation
    • Fixed handling of tag properties that are not of a supported datatype



    Expand
    titleAzure titleAWS Injector


    Expand
    titleWhat's New or Improved
    • Added support for Python script based configuration changes
    Expand
    titleWhat's Fixed
    • Fixed potential thread-leak
    Expand
    titleAzure Injector
    • Optimized BIRTH building to consolidate readTag calls - helps with remote tag provider tags in BIRTH building
    • Expanded TagPath validation to ensure paths don't end in a slash
    • Major overhaul of disk-backed store and forward system to optimize storage and configuration
    • General logging improvements
    • Added configurable SAS token expiration length
    Expand
    titleWhat's New or Improved
  • Added support for Python script based configuration changes
  • Added support for Azure IoT Edge Hubs
  • Added support for IoT Hub 'Application Properties' via Injector configuration


    Expand
    titleWhat's Fixed
    • Fixed
    potential thread-leak
    Expand
    titleGoogle Cloud Injector
    • issue where Edge Node level expression tags are null on NBIRTH
    • Fixed cache update code that could result in BIRTH messages not publishing the most recent/valid value
    • Fixed 'enabled' value handling on setting endpoints
    • Fixed potential erroneous data type change event when converting tags for UDT instance members
    • Fixed NPE on initialization
    • Fixed Injector Info tags that could show incorrect data
    • Fixed PUSH_TO_ANY handling in Injectors when transitioning on connection status
    • Fixed NPE on fresh module installation
    • Fixed handling of tag properties that are not of a supported datatype
    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    Fixed potential thread-leak



    Expand
    titleIBM Google Cloud Injector


    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • Fixed potential thread-leak
    Expand
    titleEFM ABB Totalflow Module
    • Optimized BIRTH building to consolidate readTag calls - helps with remote tag provider tags in BIRTH building
    • Expanded TagPath validation to ensure paths don't end in a slash
    • Major overhaul of disk-backed store and forward system to optimize storage and configuration
    • General logging improvements


    Expand
    titleWhat's New or Improved
    • Improvements to connection and re-connection logic
    Fixed
    • Fixed issue where Edge Node level expression tags are null on NBIRTH
    • Fixed cache update code that could result in BIRTH messages not publishing the most recent/valid value
    • Fixed 'enabled' value handling on setting endpoints
    • Fixed potential erroneous data type change event when converting tags for UDT instance members
    • Fixed NPE on initialization
    • Fixed Injector Info tags that could show incorrect data
    • Fixed PUSH_TO_ANY handling in Injectors when transitioning on connection status
    • Fixed NPE on fresh module installation
    • Fixed handling of tag properties that are not of a supported datatype
    Expand
    titleWhat's Fixed
  • Fixed naming collision for 'periodic mappings' between ROC and ABB mappings
  • Fixed bug regarding event polling in an edge case



    Expand
    titleEFM Emerson ROC ABB Totalflow Module


    Expand
    titleWhat's New or Improved
    • Added Python scripting APIs to copy configs
  • Improvements to connection and re-connection logic
  • Added 'polling state' to the ROC devices


    Expand
    titleWhat's Fixed
    • Fixed handling of empty CFX publish cron expressions
    • Fixed
    naming collision for 'periodic mappings' between ROC and ABB mappings
    • a web UI validation issue 'Publish Files Folder' field



    Expand
    titleEFM ExportEmerson ROC Module


    Expand
    titleWhat's New or Improved
    • Added Python scripting APIs to copy configs
    • Improved CRC calculation on ROC messages to account for paddingNo new features


    Expand
    titleWhat's Fixed
    • Fixed
    • handling of empty CFX publish cron expressions
    • Fixed a web UI validation issue 'Publish Files Folder' field
    No fixes



    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes







    Expand
    titlev4.0.7 April 12, 202118 August 11, 2023


    Expand
    titleMQTT Distributor


    Expand
    titleWhat's New or Improved
    No new features
    • Added additional 'Distributor Info' tags


    Expand
    titleWhat's Fixed
    • No
    fixes
    • Fixes



    Expand
    titleMQTT Engine


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • Fixed legacy client not disconnecting when control tags force offline
    • Fixed issue with cloning UDTs when using arrays
    • Fixed issue with overrides on UDT Tag properties



    Expand
    titleMQTT Transmission


    Expand
    titleWhat's New or Improved
    • No new features
  • Added support for MQTT Client IDs longer than 23 characters in length is user specified
  • Improved error handling for unsupported characters in custom namespace tag creation
  • Removed BB Wzzard namespace as the provided namespace as it can now be supported via a JSON custom namespace
  • Fixed subscriptions to prevent potential duplicate messages based on MQTT server implementations
  • Upgraded underlying MQTT library
  • Added support for 'Document' tag datatype
  • Added support for PermissionsConfig, TagEventScripts and ParameterValues
  • Modified subscriptions on STATE messages to be on STATE/phid rather than STATE/#
  • Improved processing speed of custom namespace JSON payloads
  • Added support to handle new 'Optimized UDT' DATA messages


    Expand
    titleWhat's Fixed
    • Fixed
    datatype handling for sampleMode and historyTimeDeadbandUnits properties
  • Fixed logic to only unsubscribe from STATE topics when appropriate
  • Added code to send a rebirth request in the case DDATA messages arrive before DBIRTH
  • Improved error handling in the case of missing bdSeq numbers
  • Fixed topic token filtering bug betwen Sparkplug A and Sparkplug B namespaces
  • Fixed issue where UDT definition member tag history configuration is overwritten when in a folder
  • Fixed issue that could result in Engine not correcting stale 'STATE' messages when redundancy is used
  • Fixed issue that could show RBE enabled tags stale when they were not actually stale
  • Fixed bug that didn't show online/offiine node info dataset tags properly
  • Fixed handling reporting of primary host state informational tags
  • Fixed issue that prevented rebirth requests from being sent out when 'sequence reordering' is enabled
    • issue where manually entered client ID could cause RPC client to not start
    • Fixed BIRTH building of OPC tags to ensure values are set properly when they are members of UDTs



    Expand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleAWS Injector


    Expand
    titleWhat's New or Improved
    • Added Edge Node refresh support
    • Improved Agent and Set refresh/restart logic


    Expand
    titleWhat's Fixed
    • Fixed issue where BIRTH message might not get sent on Kinesis Stream enable/disable



    Expand
    titleAzure Injector


    Expand
    titleWhat's New or Improved
    • Added Edge Node refresh support


    Expand
    titleWhat's Fixed
    • Fixed IoT Central connections not publishing BIRTH



    Expand
    titleGoogle Cloud Injector
    Expand
    titleMQTT Transmission


    Expand
    titleWhat's New or Improved
    • Added
    support for MQTT Client IDs longer than 23 characters in length is user specified
  • Added 'event tracing code' to track execution time for tag change events that occur
  • Upgraded underlying MQTT library
  • Added support for 'Document' tag datatype
  • Added support for PermissionsConfig, TagEventScripts and ParameterValues
  • Logging improvements around UDT handling
  • Added bound value support for UDTs to evaluate bindings before publishing data
  • Added a configurable reconnect delay to slow reconnect attempts on low bandwidth networks
  • Added support for UDT parameter to UDT parameter bindings
    • Edge Node refresh support


    Expand
    titleWhat's Fixed
    • No Fixes



    Expand
    titleEFM ABB Totalflow Module


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • Fixed issue with potential failed file transfers when primary host is being used
    • Fixed birth caching when aliasing is enabled
    • Fixed issue where tags were not reported as stale when using 'Convert UDTs' and they were deleted
    • Fixed Transmission to only publish RECORDs if the associated Sparkplug Device exists
    • Fixed UDT definition handling to support definitions with the same name under different folder paths
    • No Fixes



    Expand
    titleEFM Emerson ROC Module


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver
    Expand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes




    Expand
    titlev4.0.17 June 29, 2023


    Expand
    titleAWS InjectorMQTT Distributor


    Expand
    titleWhat's New or Improved
    • Cleaned up AWS credential text in the configuration Web UI
    • Added 'event tracing code' to track execution time for tag change events that occur
    • Added support for 'Push to Any' option to 'Sets' as is supported for other Injector modules
    • Added bound value support for UDTs to evaluate bindings before publishing data
    • Increased the Kinesis default partition key count size as recommended by AWS
    • Logging improvements around UDT handling
    • Added support for 'periodic publishing' as an alternative to event/tag change driven publishing
    • Added support for UDT parameter to UDT parameter bindings
    • Added more randomness to partition keys per AWS recommendations to Kinesis partition keys
    • Improved processing time on tag change events when events occur on UDT members
    • Added 'Optimize UDT' option to Transmission to reduce payload sizes in DATA messages
    • Updated the code signing certificate
    • Improved logging around PUBLISH and DISCONNECT packet handling


    Expand
    titleWhat's Fixed
    • Improved session tracking and expiring of expired/disconnected sessions
    • Fixed CONNACK error code for failed authentication



    Expand
    titleMQTT Engine


    Expand
    titleWhat's New or Improved
    • Updated the code signing certificate

    • Added 'total metric count' and 'metrics per second' info tags

    • Logging improvements around timestamp collisions

    • Removed Conscript dependency to better support SSL connections on ARM platforms

    • Added support for password protected PKCS8 private SSL keys


    Expand
    titleWhat's Fixed
    • Added NPE protection against arriving null tag values
    • Fixed regression in String payload handling that prevented tag updates in non-JSON custom namespaces
    • Added null protection on connection lost for clients without a specified LWT/Primary Host ID
    • Fixed handling of bound parameters in UDTs
  • Fixed implementation to publish NDEATH message when Injector is disabled
  • Fixed UDT definition handling to support definitions with the same name under different folder paths



    Expand
    titleAzure InjectorMQTT Transmission


    Expand
    titleWhat's New or Improved
    • Updated the code signing certificate
    • Added support for MQTT Client IDs longer than 23 characters in length is user specified
    • Added 'event tracing code' to track execution time for tag change events that occur
    • Upgraded underlying MQTT library
    • Added content type and content encoding options to Azure Injector IoT Hubs to support message based routing
    • Logging improvements around UDT handling
    • Added a configuration option to support Azure Time Series Insights data/time format
    • Added support for 'periodic publishing' as an alternative to event/tag change driven publishing
    • Added bound value support for UDTs to evaluate bindings before publishing data
    • Added support for UDT parameter to UDT parameter bindings
    • Improved processing time on tag change events when events occur on UDT members
    • Added 'Optimize UDT' option to Transmission to reduce payload sizes in DATA messages
    • Optimized Birth building to improve performance
    • Added info tags for 'metric count' and 'metrics per second'
    • Added 'rolling buffer' support to preserve data during keep alive connection lost events
    • Expanded on tag event tracing for debug purposes
    • Optimized recursive tag configuration lookups on startup
    • Removed Conscript dependency to better support SSL connections on ARM platforms
    • Added support for password protected PKCS8 private SSL keys


    Expand
    titleWhat's Fixed
    • Fixed
    issue where disabled configurations of IoT Hub would still send BIRTH messages
    • the return type for RandomStartupDelay in Transmission Servers createConfig Python scripting API
    • Fixed some edge cases around timestamps on metrics during startup
    • Fixed regression that previously broke device topic expansion
    • Fixed store and order buffer overflows to delete the oldest data first
    • Fixed cache updating issue when handling with disabled tags
  • Fixed implementation to publish NDEATH message when Injector is disabled
  • Fixed UDT definition handling to support definitions with the same name under different folder paths



    Expand
    titleGoogle Cloud InjectorMQTT Recorder


    Expand
    titleWhat's New or Improved
    • Updated the code signing certificate


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleAWS Injector


    Expand
    titleWhat's New or Improved
    • Updated the code signing certificate
    • Expanded on tag event tracing for debug purposes
    • Added disk-backed store and forward support
    • Optimized recursive tag configuration lookups on startup
    • Added individual Agent enable/disable support and a name setting
    • Removed Conscript dependency to better support SSL connections on ARM platforms
  • Added support for MQTT Client IDs longer than 23 characters in length is user specified
  • Added 'event tracing code' to track execution time for tag change events that occur
  • Upgraded underlying MQTT library
  • Logging improvements around UDT handling
  • Added support for 'periodic publishing' as an alternative to event/tag change driven publishing
  • Added bound value support for UDTs to evaluate bindings before publishing data
  • Added support for UDT parameter to UDT parameter bindings
  • Improved processing time on tag change events when events occur on UDT members
  • Added 'Optimize UDT' option to Transmission to reduce payload sizes in DATA messages


    Expand
    titleWhat's Fixed
    • Fixed
    implementation to publish NDEATH message when Injector is disabledFixed UDT definition handling to support definitions with the same name under different folder paths
    • FlushPeriod return type in the Python scripting API
    • Fixed cache updating issue when handling with disabled tags



    Expand
    titleIBM Cloud Azure Injector


    Expand
    titleWhat's New or Improved
    • Updated the code signing certificate
    • Expanded on tag event tracing for debug purposes
    • Added disk-backed store and forward support
    • Optimized recursive tag configuration lookups on startup
    • Added individual Agent enable/disable support and a name setting
    • Removed Conscript dependency to better support SSL connections on ARM platforms
    • Added support for password protected PKCS8 private SSL keys


    • Added support for MQTT Client IDs longer than 23 characters in length is user specified
    • Added 'event tracing code' to track execution time for tag change events that occur
    • Upgraded underlying MQTT library
    • Logging improvements around UDT handling
    • Added support for 'periodic publishing' as an alternative to event/tag change driven publishing
    • Added bound value support for UDTs to evaluate bindings before publishing data
    • Added support for UDT parameter to UDT parameter bindings
    • Improved processing time on tag change events when events occur on UDT members
    • Added 'Optimize UDT' option to Transmission to reduce payload sizes in DATA messages
    Expand
    titleWhat's Fixed
    • Fixed
    implementation to publish NDEATH message when Injector is disabledFixed UDT definition handling to support definitions with the same name under different folder paths
    • cache updating issue when handling with disabled tags



    Expand
    titleEFM ABB Totalflow ModuleGoogle Cloud Injector


    Expand
    titleWhat's New or Improved
    • Initial GA release of the module for Ignition8
    • Updated the code signing certificate
    • Expanded on tag event tracing for debug purposes
    • Added disk-backed store and forward support
    • Optimized recursive tag configuration lookups on startup
    • Added individual Agent enable/disable support and a name setting
    • Removed Conscript dependency to better support SSL connections on ARM platforms
    • Added support for password protected PKCS8 private SSL keys


    Expand
    titleWhat's Fixed
    • Fixed cache updating issue when handling with disabled tags
    Expand
    titleWhat's Fixed
    No fixes



    Expand
    titleEFM Emerson ROC ABB Totalflow Module


    Expand
    titleWhat's New or Improved
    No new features
    • Updated the code signing certificate


    Expand
    titleWhat's Fixed
    No fixes
    • Fixed deletion and validation of global definitions and their references



    Expand
    titleEFM ExportEmerson ROC Module


    Expand
    titleWhat's New or Improved
    • No new featuresUpdated the code signing certificate


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver


    Expand
    titleWhat's New or Improved
    No new features
    • Updated the code signing certificate


    Expand
    titleWhat's Fixed
    • No fixes




    Expand
    titlev4.0.6-beta1 Dec 1, 2020 (SiteWise Engine only)16 April 17, 2023


    Expand
    titleSiteWise EngineMQTT Distributor


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    No fixes
    • Fixed thread management issue when clients continually reconnect with bad credentials



    Expand
    title
    v4.0.6 November 19, 2020expand
    titleMQTT DistributorEngine


    Expand
    titleWhat's New or Improved
    • Modified info tags to properly re-init them if they have been deleted
    Expand
    titleWhat's Fixed
    • Fixed handling of default configurations on initial module installation
    • Fix to ensure client count displays zero when MQTT Distributor is shutdown
    • Fixed to dynamic handling in configuration menus
    Expand
    titleMQTT Engine
    • Added encryption of the security context hashing password
    • Added support for DATA metrics missing the MetricDataType because it is known from the BIRTH

    • Added support for topic namespace filters to be scoped to specific MQTT Servers
    • Added a custom config property to support Edge Node implementations that don't include BIRTH sequence numbers
    • Improved various RPC calls for Python scripting consistency
    • Added support for detection and logging of UDT collisions at MQTT Engine when they differ
    • Logging improvements and error handling improvements on malformed NBIRTH messages
    • Added user warnings for custom namespace subscriptions that include spaces
    • Added legacy state info tags to MQTT Engine
    • Added auditing support for remote writes in MQTT Transmission
    • Moved the 'enable primary host state' config option to the server's legacy state client config section
    • Logging improvements
    Expand
    titleWhat's New or Improved
    • General logging cleanup
    • Modified info tags to properly re-init them if they have been deleted
    • Removed support for consumption of alarm properties
    • Modified auto-RPC reconnect settings to denote whether or not to connect at all
    • Added java.sql.Timestamp support to Ignition DataSet
    • Added support for filtering by both Sparkplug group and edge node IDs
    • Added support for most Ignition array datatypes in Ignition8
    • Added primary host enable/disable control tag as well as a tag to specify the primary host ID
    • Moved 'File handling control' of MQTT Engine to the Sparkplug B Namespace settings
    • Expanded file handling support


    Expand
    titleWhat's Fixed
    • Fixed
    potential sequence reordering NPE
    • to ensuring client shutdown always happens when required
    • Fixed STATE message handling in multi-server environments
    • Fixed issue that could result in topic subscriptions not being reset properly on filter changes
    • Improved error handling in Sparkplug BIRTH processing
    • Improved error handling for custom namespace string payloads that can't be converted to Ignition tag paths
    • Fixed incorrect OFFLINE state values in the MQTT Engine info tags
    • Fixed null elements in array handling
    • Fixed Elecsys 'State' topic handling
    • Fixed tag/folder management for info tags when enabling primary host subscriptions
    • Fixed issue that resulted in Custom Namespace String tags not getting updated after initial creation
  • Fixed history property coersion by using proper datatypes
  • Fixed String vs Integer datatype handling for sampleMode and historyTimeDeadbandUnits

  • Fixed potential Exceptions during server connection establishment
  • Fixed handling of default configurations on initial module installation
  • Fixed Enable Latency Check Tag to only sub/unsub when state changes
  • Fixed [MQTTEngine]_types_/_types_/... bug in UDT definition creation
  • Fixed to dynamic handling in configuration menus



    Expand
    titleMQTT Transmission


    Expand
    titleWhat's New or Improved
  • General logging cleanup
    • Modified
    info tags to properly re-init them if they have been deleted
  • Added primary host and BD sequence number validation on unexpected LWTs
  • Improved disk-backed store and forward Exception handling
  • Removed support for sending of alarm properties
  • Modified auto-RPC reconnect settings to denote whether or not to connect at all
  • Added java.sql.Timestamp support to Ignition DataSet
  • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
  • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
  • Added 'cached birth' option to Transmission to improve Rebirth request performance
  • Added partial support for overridden property values bound to UDT parameters
  • Added support for most Ignition array datatypes in Ignition8
  • Added the ability to transmit binary files from MQTT Transmission
  • Made the Tag Pacing Period a mandatory field
  • Added enforcement to prevent 'aliasing' and publishing of UDTs to be enabled at the same time
  • Added code to specify a default 'Set' when appropriate during configuration
  • Added code to ignore UDT removal events when convertUdts is true
    • to not publish cached BIRTH messages if no historical data was published
    • Added encryption of the security context hashing password
    • Added user warnings when users set very large history store capacities
    • Added support for 'ExcludeFromPayload' to prevent specific UDTs from being published via MQTT
    • Added retry logic for example tag creation on initial Transmission installation
    • Added auditing support for remote writes
    • Added support for publishing alarm events on tags via MQTT


    Expand
    titleWhat's Fixed
    • Added code to ensure Transmission connection verification accounts for random startup delay and debounce time
    • Fixed UDT quality handling issues
    • Fixed potential Exceptions during server connection establishment
    • Fixed in-order history flushing bug when many devices are are part of an Edge Node that prevented buffer from ever emptying
    • Fixed configureTag call in Transmission Record creation to properly configure the 'Publish Tag'
    • Fixed handling of default configurations on initial module installation
    • Fixed missing UDT member tag changes when TagPath is empty
    • Added null check for null DataSet values on metrics
    • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
    • Fixed thread leak in record publishes
    • Cleaned up shutdown code to prevent RejectedExecutionExceptions
    • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
    • Fixed null value datatype coercion to prevent NPEs and tag reading
    • Fixed disk-backed store and forwarding when aliasing is enabled
    • Improved Exception handling during startup and iterating the tag tree
    • Fixed to dynamic handling in configuration menus
    • Fixed handling of parameterized datatypes
    • Fix for ClassCastException on getting compression type
    • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being published
    • Modified Transmission to cache historical births at connection loss time rather than when finished flushing
    • Fixed STATE message handling in multi-server environments
    • Fixed potential deadlock when using the disk-backed history store
    • Fixed various RPC calls for Python scripting consistency
    • Fixed issue that resulted in old timestamps being included with newly enabled tags
    • Fixed NPE when handling online transition
    • Fixed issue that could result in device discovery before a 'Refresh' is performed
    • Fixed 'Enabled' property change event reporting on UDT member tags
    • Added support to force Paho disconnect if Paho still reports 'online' state to ensure proper reconnect



    Expand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • Fixed various RPC calls for Python scripting consistency



    Expand
    titleAWS Injector
    Expand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
    Modified info tags to properly re-init them if they have been deleted
    • Added support for 'ExcludeFromPayload' to prevent specific UDTs from being published via MQTT


    Expand
    titleWhat's Fixed
    • Fixed
    handling of default configurations on initial module installation
  • Fixed to dynamic handling in configuration menus
    • 'Enabled' property change event reporting on UDT member tags



    Expand
    titleAWS Azure Injector


    Expand
    titleWhat's New or Improved
    • Modified info tags to properly re-init them if they have been deleted
    • Added java.sql.Timestamp support to Ignition DataSet
    • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
    • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
    • Added partial support for overridden property values bound to UDT parameters
    • Added support for most Ignition array datatypes in Ignition8
    • Made the Tag Pacing Period a mandatory field
    • Added code to specify a default 'Set' when appropriate during configuration
    • Added support for 'ExcludeFromPayload' to prevent specific UDTs from being published via MQTT


    Expand
    titleWhat's Fixed
    • Fixed
    UDT quality handling issues
  • Fixed handling of default configurations on initial module installation
  • Fixed missing UDT member tag changes when TagPath is empty
  • Added null check for null DataSet values on metrics
  • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
  • Cleaned up shutdown code to prevent RejectedExecutionExceptions
  • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
  • Improved Exception handling during startup and iterating the tag tree
  • Fixed to dynamic handling in configuration menus
  • Fixed handling of parameterized datatypes
  • Fixed potential ClassCastExceptions
  • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being pushed
  • Expand
    • various RPC calls for Python scripting consistency
    • Fixed 'Enabled' property change event reporting on UDT member tags



    Expand
    titleGoogle Cloud titleAzure Injector


    Expand
    titleWhat's New or Improved
  • Modified info tags to properly re-init them if they have been deleted
  • Added configurable MQTT keep-alive setting
    • Added
    java.sql.Timestamp
    • support
    to Ignition DataSet
  • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
  • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
  • Added support for client based auth in Azure IoT Hubs
  • Added partial support for overridden property values bound to UDT parameters
  • Added support for most Ignition array datatypes in Ignition8
  • Made the Tag Pacing Period a mandatory field
  • Added code to specify a default 'Set' when appropriate during configuration
    • for a custom endpoint server URL which results in support for Clearblade migrations
    • Added support for 'ExcludeFromPayload' to prevent specific UDTs from being published via MQTT
    • Added validation for mandatory private key upload field


    Expand
    titleWhat's Fixed
    • Fixed 'Enabled' property change event reporting on UDT member tags



    Expand
    titleEFM ABB Totalflow Module


    Expand
    titleWhat's Fixed
    • Fixed UDT quality handling issues
    • Fixed potential Exceptions during MQTT server connection establishment
    • Fixed handling of default configurations on initial module installation
    • Fixed missing UDT member tag changes when TagPath is empty
    • Added null check for null DataSet values on metrics
    • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
    • Cleaned up shutdown code to prevent RejectedExecutionExceptions
    • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
    • Improved Exception handling during startup and iterating the tag tree
    • Fixed to dynamic handling in configuration menus
    • Fixed handling of parameterized datatypes
    • Fixed potential ClassCastExceptions
    • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being pushed
    Expand
    New or Improved
    • Improved CFX filename conventions


    Expand
    titleWhat's Fixed
    • Added support to ensure application names during auto-discovery are unique
    • Fixed potental NPEs when updating meter and periodic config mappings



    Google Cloud Injector
    Expand
    titleEFM Emerson ROC Module


    Expand
    titleWhat's New or Improved
    • Improved CFX filename conventions
    • Modified Opcode table support to include the 'L' value in tag names to prevent name overlap
    title


    Expand
    titleWhat's New or ImprovedFixed
    • Improved OpCode table detection logging to show failed TLPs
    • Fixed ROC clock sync to work properly when multiple device are syncing clocks
    • Fixed potential NPEs when updating meter and periodic config mappings
    • Fixed exception handling when losing connection while in the connection establishment period



    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No Fixes




    v4.0.5-beta1 Sept 1, 2020 (EFM ABB Totalflow only)
    Expand
    titlev4.0.15 February 9, 2023


    Expand
    titleMQTT Distributor


    Expand
    titleWhat's New or Improved
    • Added return values for Python scripting API CRUD operations


    • Modified info tags to properly re-init them if they have been deleted
    • Added configurable MQTT keep-alive setting
    • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
    • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
    • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
    • Added partial support for overridden property values bound to UDT parameters
    • Added support for most Ignition array datatypes in Ignition8
    • Made the Tag Pacing Period a mandatory field
    • Added code to specify a default 'Set' when appropriate during configuration
    Expand
    titleWhat's Fixed
    • Fixed UDT quality handling issues
    • Fixed potential Exceptions during MQTT server connection establishment
    • Fixed handling of default configurations on initial module installation
    • Fixed missing UDT member tag changes when TagPath is empty
    • Added java.sql.Timestamp support to Ignition DataSet
    • Added null check for null DataSet values on metrics
    • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
    • Cleaned up shutdown code to prevent RejectedExecutionExceptions
    • Improved Exception handling during startup and iterating the tag tree
    • Fixed to dynamic handling in configuration menus
    • Fixed handling of parameterized datatypes
    • Fixed potential ClassCastExceptions
    • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being pushed
    Expand
    • No Fixes



    Expand
    titleMQTT Engine


    Expand
    titleWhat's New or Improved
    • Added support for Device Rebirth requests
    • Disabled non-Sparkplug-B namespaces by default
    • Set max subscriptions to 8 per request to better support some third party MQTT Servers
    • Added return values for Python scripting API CRUD operations


    Expand
    titleWhat's Fixed
    • Fixed status indication for devices that fail to subscribe to the MQTT Server
    • Fixed Elecsys support for '_' chars in messages



    Expand
    titleMQTT TransmissiontitleIBM Cloud Injector


    Expand
    titleWhat's New or Improved
    • Added return values for Python scripting API CRUD operations


    Expand
    titleWhat's Fixed
    • Added support for Device Rebirth requests
    • Fixed issue that could result in missing UDT metrics in a BIRTH
    • Fixed erroneous detection of edge node and group folder removal
    • Logging improvements on startup/connect
    • Fixed issue where EFM records may not be published at startup
    • Fixed NDEATH publishing when the Transmitter is disabled



    Expand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
    • Added return values for Python scripting API CRUD operations
  • Modified info tags to properly re-init them if they have been deleted
  • Added configurable MQTT keep-alive setting
  • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
  • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
  • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
  • Added partial support for overridden property values bound to UDT parameters
  • Added support for most Ignition array datatypes in Ignition8
  • Made the Tag Pacing Period a mandatory field
  • Added code to specify a default 'Set' when appropriate during configuration


    Expand
    titleWhat's Fixed
    • Fixed UDT quality handling issues
    • Fixed potential Exceptions during MQTT server connection establishment
    • Fixed handling of default configurations on initial module installation
    • Fixed missing UDT member tag changes when TagPath is empty
    • Added java.sql.Timestamp support to Ignition DataSet
    • Added null check for null DataSet values on metrics
    • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
    • Cleaned up shutdown code to prevent RejectedExecutionExceptions
    • Improved Exception handling during startup and iterating the tag tree
    • Fixed to dynamic handling in configuration menus
    • Fixed handling of parameterized datatypes
    • Fixed potential ClassCastExceptions
    • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being pushed
    • No Fixes



    Expand
    titleAWS Injector


    Expand
    titleWhat's New or Improved
    • Added 'refresh required' info tag and removed the 'auto-discover' feature
    • Added return values for Python scripting API CRUD operations


    Expand
    titleWhat's Fixed
    • Fixed Agent name initialization that could result in NPE at startup
    • Fixed handling of enable/disable of endpoints via the control tag
    • Fixed NDEATH publishing when the Agent is disabled
    • Updated logic to support connects without BIRTH messages when appropriate
    • Fixed Agent validation to allow duplicate records



    Expand
    titleAzure Injector
    Expand
    titleEFM ABB Totalflow Module


    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleEFM Emerson ROC Module
    • Added 'refresh required' info tag and removed the 'auto-discover' feature
    • Added return values for Python scripting API CRUD operations
    Expand
    titleWhat's New or Improved
    Initial GA release


    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    • Fixed Agent name initialization that could result in NPE at startup
    • Fixed handling of enable/disable of endpoints via the control tag
    • Fixed NDEATH publishing when the Agent is disabled
    • Updated logic to support connects without BIRTH messages when appropriate
    • Fixed Agent validation to allow duplicate records



    Expand
    titleGoogle Cloud InjectortitleEFM Export


    Expand
    titleWhat's New or Improved
    • Added 'refresh required' info tag and removed the 'auto-discover' feature
    • Added return values for Python scripting API CRUD operationsInitial GA release


    Expand
    titleWhat's Fixed
    • Fixed Agent name initialization that could result in NPE at startup
    • Fixed handling of enable/disable of endpoints via the control tag
    • Fixed
    • NDEATH publishing when the Agent is disabled
    • Updated logic to support connects without BIRTH messages when appropriate
    • Fixed Agent validation to allow duplicate records
    No fixes



    Expand
    titleOpto22 groov EPIC and SNAPPAC DriverEFM ABB Totalflow Module


    Expand
    titleWhat's New or Improved
    • If a controller tag is scanned as invalid, all of it’s expanded (un-optimized) root tags will be marked as stale. For example, if a table is invalid, all of it’s table elements will stale or an integer scanned becomes invalid, all of its boolean, bit-picked, and integer values will stale.

    • Reconnect algorithm has been streamlined to minimize lag

    Expand
    titleWhat's Fixed
    • Tags are refreshed on each occurrence the scanner connects to the controller

    Expand
    • Added support for Meter Configurations
    • Added support for CFX file creation
    • Improved INI polling status tracking
    • Logging improvements
    • Added a 'not licensed' status indicator
    • Added support for user-selectable INI files
    • Added protection of 'double click' events during config that prevented DB access


    Expand
    titleWhat's Fixed
    • Fixed NPE that could result in N/A device connection status
    • Fixed issue that could result in 'empty application name' in config menu
    • Fixed issue that prevented access to an internal application map during config
    • Fixed issue that resulted in failure to obtain meter config when using PERSISTENT connections
    title



    Expand
    titleEFM ABB Totalflow Emerson ROC Module


    Expand
    titleWhat's New or Improved
    • Initial release of module for Ignition 8
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titlev4.0.5-beta1 Aug 5, 2020 (EFM Emerson ROC and EFM Export only)
    • Added support for CFX file creation
    • Added support for OpCode Table polling as templates
    • Added a 'not licensed' status indicator
    • Added validation for CSV file uploads to ensure proper format
    Expand
    titleEFM Emerson ROC Module
    Expand
    titleWhat's New or Improved
    Initial release of module for Ignition 8


    Expand
    titleWhat's Fixed
    No fixes
    • Fixed race condition that resulted in errors when the history poller is stopped



    Expand
    titleEFM ExportOpto22 groov EPIC and SNAPPAC Driver


    Expand
    titleWhat's New or Improved
    • Initial release of module for Ignition 8Logging improvements


    Expand
    titleWhat's Fixed
    • No
    fixes
    • Fixes




    Expand
    titlev4.0.5 June 29, 202014 December 14, 2022


    Expand
    titleMQTT Distributor


    Expand
    titleWhat's New or Improved
    • Added support for Ignition Maker Edition
    • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
    • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
    • Replaced core MQTT Server code with clean room implementation


    Expand
    titleWhat's Fixed
    • Fixed
    • MQTT over Websocket handling
    • Fixed NPE during anonymous connections

    • Fixed memory leak around uses of QoS greater than 0
    Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration



    Expand
    titleMQTT Engine


    Expand
    titleWhat's New or Improved
    • Added support for

      Ignition Maker Edition
    • Added support for custom namespace charset selection for binary encoding support - set default to UTF-8
    • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
    • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
    • Modified certificate display in Server configuration to not show any certs since we can't show all of them
    • Improved handling for missing bdSeq numbers in faulty Sparkplug edge client's LWTs
    • Added alarmEvalEnabled to default property filter list
    • Sparkplug v3.0.0 STATE messages

    • Added optional/configurable legacy STATE support for Sparkplug 2.2 clients
    • Logging improvements on Threadpools
    • Added a precheck on message decoding Sparkplug messages in case of invalid message payloads
    • Added support for custom namespace overlap on incoming messages
    • Added support for parenthesis in tag paths
    • Added native support for 'reordering timeouts' to support Sparkplug v3.0.0Added support for modified 'configureTag' behavior in Ignition 8.0.14


    Expand
    titleWhat's Fixed
    • Fixed
    enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
    • potential NPE and ConcurrentModificationException in Primary Host handling
    • Fixed support for the 'enabled' tag property
    • Fixed Info tag initialization
    • Fixed config validation of multiple topics on a single entry
    • Fixed UDT handling for disabled UDTs via the 'enabled' tag property
    • Fixed Elecsys sys02 sending to correct server in multi-server environments
    Fixed access to property matching for proper property filtering



    Expand
    titleMQTT Transmission


    Expand
    titleWhat's New or Improved
    • Added support for
    Ignition Maker EditionAdded support for breaking 'SecurityContext' API change in Ignition 8
    • Sparkplug v3.0.
    13
  • Logging improvements
  • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
  • Added alarmEvalEnabled to default property filter list
  • Added support for modified 'configureTag' behavior in Ignition 8.0.14
  • Added code to ignore _invalid_ tag paths when traversing the tag tree
    • 0 STATE messages
    • Improved File auto-publisher performance
    • Increased maximum number of concurrent file publishers
    • Fixed possible deadlocks around file, record, history, and live tag publishing

    • Added thread names for improved logging in file publishers
    • Added logging of time spent on file publish operations
    • Added support for null/empty dataset values
    • Optimized File publishing by removing sync on tag change events
    • Added force sending of pending publish before DDEATH sending
    • Improved inline help text for Store and Forward settings
    • Added support for disk-backed Sparkplug bdSeq numbers


    Expand
    titleWhat's Fixed
    • Fixed
    enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
  • Fixed Transmission version reporting in the Transmission Info tag
  • Fixed NPE when getting the module version
  • Fixed 'reset metrics' info tag to always be writable
  • Expand
    titleMQTT Recorder
    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
    • file 'auto-publisher' threads to terminate on shutdown with performance improvements
    • Added synchronization to STATE message handlers to prevent timing issues on STATE handling
    • Fixes to online/offline handling and manual file publishing
    • Fixed 'Publish File Count' metric value
    • Fixed reset of 'Publish Files Folder' value when 'Reset' is set true
    • Added NPE protection on handling of null tag configs
    • Fixed Topic token validation in config operations
    • Fixed support for the 'enabled' tag property
    • Added NPE protection when publishing DDEATH messages
    • Fixed Info tag initialization
    • Fixed potential overwrite of 'Offline DateTime' with null value
    • Fixed disk backed history store inserts with special characters
    • Fixed validation of Group/Edge ID collisions when they are in different Server Sets



    Expand
    titleMQTT Recorder
    Expand
    titleAWS Injector


  • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
  • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
  • Added code to ignore _invalid_ tag paths when traversing the tag tree
    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No Fixes



    Expand
    titleAWS Injector


    Expand
    titleWhat's FixedNew or Improved
    • Optimized 'rebirth' publishing to not rescan the tag tree
    • Added force sending of pending publish before DDEATH sending
    • Added support for disk-backed Sparkplug bdSeq numbers


    Expand
    titleWhat's Fixed
    • Added NPE protection on handling of null tag configs
    • Fixed Topic token validation in config operations
    • Fixed potential deadlock when pushing payloads under heavy load
    • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
    • Fixed issue with null-check on S&F type
    • Fixed 'Edge Nodes' folder creation to occur the the correct tag provider



    Expand
    titleAzure Injector


    Expand
    titleWhat's New or Improved
    • Optimized 'rebirth' publishing to not rescan the tag tree
    • Added force sending of pending publish before DDEATH sending
    • Added support for disk-backed Sparkplug bdSeq numbers
  • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
  • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
  • Added code to ignore _invalid_ tag paths when traversing the tag tree


    Expand
    titleWhat's Fixed
    • Added NPE protection on handling of null tag configs
    • Fixed Topic token validation in config operations
    • Fixed potential deadlock when pushing payloads under heavy load
  • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
  • Fixed issue with null-check on S&F type
  • Fixed issue with 'Push Policy' not being persisted properly
  • Fixed 'Edge Nodes' folder creation to occur the the correct tag provider



    Expand
    titleGoogle Cloud Injector


    Expand
    titleWhat's New or Improved
    • Optimized 'rebirth' publishing to not rescan the tag tree
    • Added force sending of pending publish before DDEATH sending
    • Added support for disk-backed Sparkplug bdSeq numbers
  • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
  • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
  • Added code to ignore _invalid_ tag paths when traversing the tag tree


    Expand
    titleWhat's Fixed
    • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
    • Fixed issue with null-check on S&F type
    • Fixed issue with 'Push Policy' not being persisted properly
    • Fixed 'Edge Nodes' folder creation to occur the the correct tag provider
    Expand
    • Added NPE protection on handling of null tag configs
    • Fixed Topic token validation in config operations
    • Fixed potential deadlock when pushing payloads under heavy load



    Expand
    titletitleIBM Cloud Injector


    Expand
    titleWhat's New or Improved
    • Optimized 'rebirth' publishing to not rescan the tag tree
    • Added force sending of pending publish before DDEATH sending
    • Added support for disk-backed Sparkplug bdSeq numbers
  • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
  • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
  • Added code to ignore _invalid_ tag paths when traversing the tag tree


    Expand
    titleWhat's Fixed
    • Added NPE protection on handling of null tag configs
    • Fixed Topic token validation in config operations
    • Fixed potential deadlock when pushing payloads under heavy load
  • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
  • Fixed issue with null-check on S&F type
  • Fixed issue with 'Push Policy' not being persisted properly
  • Fixed 'Edge Nodes' folder creation to occur the the correct tag provider



    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No
    fixes
    • Fixes




    Expand
    titlev4.0.4 May 20, 202013 September 21, 2022


    These modules are not compatible Ignition 8.0.13 or later. If using 8.0.13 or 8.0.14 use v4.0.5 Cirrus Link modules

    Expand
    titleAll ModulesMQTT Distributor


    Expand
    titleWhat's New or Improved
    • Updated code signing cerificateNo new features


    Expand
    titleWhat's Fixed
    • Fixed documentation links in tooltips of the module config pagesNo Fixes



    Expand
    titleMQTT DistributorEngine


    Expand
    titleWhat's New or Improved
    • Modified TLS setup to piggyback off of native Ignition SSL mechanism
    • Added support for DateTime Arrays and String Arrays

    • Logging improvements/cleanup


    Expand
    Expand
    titleWhat's Fixed
    • Fixed issue with file transfers of files with invalid characters in the filename
    • Fixed
    • issue with BED Edge Node names
    • Fixed issue with Tags not getting updated
    • Fixed issue with nested property setsNo fixes



    Expand
    titleMQTT EngineTransmission


  • Add custom property for 'sequence number reordering'
  • Modified to create default reasonable history config on all dynamic MQTT Engine tags
  • Added a validator to primary host ID creation to prevent runtime errors
  • Added support for non-clean session and QoS1 support in custom namespaces
  • Added additional tooltip info for Custom Namespace writable tags
  • Improved certificate file management in the config web configuration UI
  • Fixed 'Critical App State' info tag to prevent erroneous data
  • Added a cache layer for improved custom namespace performance
    Expand
    titleWhat's New or Improved
    • Added support for DateTime Arrays and String Arrays
    • Added validation to Transmitter record creation to ensure duplicate Sparkplug Edge Node descriptors don’t collide


    Expand
    titleWhat's Fixed
    • Fixed issue with history lost on MQTT Transmission info tags
    • Fix for newly added device tag folders
    • Fix for Error_TypeConversion error
    • Fixed issue with UDT name matching



    Expand
    titleMQTT Recorder


    Expand
    titleWhat's Fixed
    • Fixed retention of UDT properties across module restarts
    • Fixed client reinitialization after custom namespace changes
    • Fixed Edge Node Tag staling from NDATA message
    • Added staling of custom namespace tags on namespace deletion
    • Fixed 'empty' property filter setting to allow all
    New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No Fixes



    Expand
    titleAWS Injector
    Expand
    titleMQTT Transmission


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No Fixes



    Expand
    titleAzure Injector


    Expand
    titleWhat's New or Improved
    • No new features
    • Added a validator to primary host ID creation to prevent runtime errors
    • Added parameter based UDT DataType handling when convertUDTs=true
    • Added tag pacing period validator to ensure it is greater than zero
    • Improved certificate file management in the config web configuration UI
    • Added Transmission Info Tags for tracking messsages and bytes


    Expand
    titleWhat's Fixed
    • Fixed dynamic update of client ID under MQTT Transmission Info tags
    • Added support to allow RPC clients to not automatically reconnect
    • Improved DB reconnect logic for the Disk-backed store and forward mechanism
    • Fixed Timer thread leak on pending publish creation
    • Fixed to caching of Transmission Info metrics to prevent erroneous data
    • Fixed handling of non-memory tags (i.e. derived, OPC, etc) in Sparkplug Record publishes
    • Fixed potential ClassCastException around BoundPropertySet Objects
    • Fixed Transmission TLS connect on startup
    • Fixed NPE from caching BIRTHs when TransmissionClient is shutdown
    • Removed properties and parameters from being improperly published in DATA messages
    • Fixed missing Sparkplug IDs on Transmitters page
    • Added code to ignore _types_ folder when creating Edge Nodes
    • Fixed handling of EdgeNode tag removal events
    • Added new custom property 'ConfiguredTagPath' to tag properties
    • Fixed RPC clients to update on server setting change
    • Fixed 'empty' property filter setting to allow all
    • Fixed fetching of the tag provider name by ignoring case
    • Fixed device detection when auto-discovery is enabled
    • Fixed NPE on aliased metrics in NCMD messages
    • Fix for Tag add/remove root path comparisons
    • Fixed folder detection on tag structure change events
    • Fixed check history stores to update Transmitters on configuration changes
    • No Fixes



    Expand
    titleGoogle Cloud Injector


    Expand
    titleWhat's New or Improved
    • Added session token auto-refresh


    Expand
    titleWhat's Fixed
    • No Fixes



    Expand
    titleIBM Cloud Injector


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No Fixes



    Expand
    titleEFM ABB Totalflow Module
    Expand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No
    fixes
    • Fixes



    Expand
    titleAWS InjectorEFM Emerson ROC Module


    Expand
    titleWhat's New or Improved
    • Added tag pacing period validator to ensure it is greater than zero
    • Disconnect logic cleanup
    • General performance enhancements
    • No new features


    Expand
    titleWhat's Fixed
    • Fixed Timer thread leak on pending publish creation
    • Fixed potential ClassCastException around BoundPropertySet Objects
    • Added null checks to Injector start/stop to prevent NPEs
    • Removed properties and parameters from being improperly published in DATA messages
    • Added code to ignore _types_ folder when creating Edge Nodes 
    • Fixed handling of EdgeNode tag removal events
    • Fixed device detection when auto-discovery is enabled
    • Fix for Tag add/remove root path comparisons
    • Fixed folder detection on tag structure change events
    Expand
    • No Fixes



    Expand
    titleEFM Export


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No Fixes



    Expand
    titleOpto22 groov EPIC and SNAPPAC DrivertitleAzure Injector


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No Fixes




    v4.0.3 January 28, 2020
    Expand
    titlev4.0.12 July 28, 2022


    Expand
    titleMQTT Distributor


    Expand
    titleWhat's New or Improved
    • Improvements to handling of redundancy synchronization after record updates
  • Tooltip/help improvements
  • Added tag pacing period validator to ensure it is greater than zero
  • Removed unused certificate file upload field
  • Added support for a connection pooling to allow for increased throughput
  • Disconnect logic cleanup
  • General performance enhancements


    Expand
    titleWhat's Fixed
    • Fixed Timer thread leak on pending publish creation
    • Fixed potential ClassCastException around BoundPropertySet Objects
    • Added null checks to Injector start/stop to prevent NPEs
    • Removed properties and parameters from being improperly published in DATA messages
    • Added code to ignore _types_ folder when creating Edge Nodes 
    • Fixed handling of EdgeNode tag removal events
    • Fixed device detection when auto-discovery is enabled
    • Fix for Tag add/remove root path comparisons
    • Fixed folder detection on tag structure change events
    • Added reconnect logic to MQTT Injectors when message pushes fail
    Expand
    titleGoogle Cloud Injector
    • No Fixes



    Expand
    titleMQTT Engine


    Expand
    titleWhat's New or Improved
    • Added support for the Ignition tag 'enabled' property to be dynamically handled

    • Modified MQTT Engine to not update tags if the incoming metric value is older than the current tag value
    • Improvements to handling of redundancy synchronization after record updates
    • Logging improvements


  • Added tag pacing period validator to ensure it is greater than zero
  • Added support for a connection pooling to allow for increased throughput
  • General performance enhancements
  • Disconnect logic cleanup
    Expand
    titleWhat's New or Improved
    Fixed
    • Fixed NPE related to logging
    • Added rebirth request when Engine receives unknown alias for a metric in a DATA message
    • Fixed issue that caused 'writable custom namespace tags' to become unwritable after a module restart
    • Fixed handling of deleted Elecsys Edge Nodes
    • Added NPE protection around Engine shutdown when Engine itself is disabled via its own config

    • Fixed the validator for the 'Root Tag Folder' to allow slashes in the tag folder



    Expand
    titleMQTT Transmission


    Expand
    titleWhat's Fixed
    • Fixed Timer thread leak on pending publish creation
    • Fixed potential ClassCastException around BoundPropertySet Objects
    • Added null checks to Injector start/stop to prevent NPEs
    • Removed properties and parameters from being improperly published in DATA messages
    • Added code to ignore _types_ folder when creating Edge Nodes 
    • Fixed handling of EdgeNode tag removal events
    • Fixed device detection when auto-discovery is enabled
    • Fix for Tag add/remove root path comparisons
    • Fixed folder detection on tag structure change events
    • Added reconnect logic to MQTT Injectors when message pushes fail
    New or Improved
    • Modified the 'Auto-Connect RPC client' default to false
    • Added support for the Ignition tag 'enabled' property to be dynamically handled
    • Improvements to handling of redundancy synchronization after record updates
    • Logging improvements
    • Added support for the new Sparkplug STATE JSON based payloads


    Expand
    titleWhat's Fixed
    • Fixed issue that prevented UDTs with 'overlapping metric names' from being properly handled
    • Fixes to synchronization in the RAM based Store and Forward mechanism
    • Fixed config keys for the Transmission 'File Records'
    • Fixed concurrency issues around BIRTH building in some complex UDT scenarios



    Expand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
    • Improvements to handling of redundancy synchronization after record updates
    Expand
    titleIBM Cloud Injector
    Expand
    titleWhat's New or Improved
  • Added tag pacing period validator to ensure it is greater than zero
  • Added support for a connection pooling to allow for increased throughput
  • General performance enhancements
  • Disconnect logic cleanup


    Expand
    titleWhat's Fixed
    • Fixed Timer thread leak on pending publish creation
    • Fixed potential ClassCastException around BoundPropertySet Objects
    • Added null checks to Injector start/stop to prevent NPEs
    • Removed properties and parameters from being improperly published in DATA messages
    • Added code to ignore _types_ folder when creating Edge Nodes 
    • Fixed handling of EdgeNode tag removal events
    • Fixed device detection when auto-discovery is enabled
    • Fix for Tag add/remove root path comparisons
    • Fixed folder detection on tag structure change events
    • Added reconnect logic to MQTT Injectors when message pushes fail
    • No Fixes



    Expand
    titleAWS Injector


    Expand
    title
    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver
    Expand
    titleWhat's New or Improved
    No new features
    • Improvements to handling of redundancy synchronization after record updates


    Expand
    titleWhat's Fixed
    • No
    fixes
    • Fixes



    Expand
    title
    Azure Injector


    Expand
    title
    All Modulesexpand
    titleWhat's New or Improved
    • Modified config descriptions to better match the new Azure IoT Central documentation
    • Added in-editor help text for the Azure IoT Central Python configuration API
    • Improvements to handling of redundancy synchronization after record updates


    • Improved logging
    • Improved BD sequence number handling
    • Improved event handling
    • Improved CirrusClient disconnection and LWT handling
    • Updated auto-client ids to be 23 characters or less (required by some MQTT server implementations)
    Expand
    titleWhat's Fixed
    • No fixesFixes



    Expand
    titleMQTT DistributorGoogle Cloud Injector


    Expand
    titleWhat's New or Improved
    • No new features

      Improvements to handling of redundancy synchronization after record updates


    Expand
    titleWhat's Fixed
  • Fixed potential deadlock on shutdown
  • Added Distributor Info tags showing number of connected clients
    • No Fixes



    Expand
    titleMQTT EngineIBM Cloud Injector


    Expand
    titleWhat's New or Improved
    • Added support to records to pull data from ManagedTagProviders
    • Improvements in Edge/Device cache
    • Added support for 'writable tags' in Custom Namespaces
    • Improvements in Metric caching
    • Improvements to handling of redundancy synchronization after record updates


    Expand
    Expand
    titleWhat's Fixed
    • Added staling of MQTT Engine Tags on startup
    • Fixed various staling issues affecting MQTT Engine Tags
    • Fixed issues with MQTT Engine restarts and deleted tags reappearing
    • Fixed MQTT Engine client subscription handling to only subscribe to topics STATE/# and SM/<client_id>/# when necessary
    • Fixed potential concurrency issues in MQTT Engine on reconnect
    • Fixed the enabling/disabling of Namespaces on a configuration update
    • No Fixes



    Expand
    titleMQTT TransmissionEFM ABB Totalflow Module


    Expand
    titleWhat's New or Improved
    • Improvements to handling of redundancy synchronization after record updates
    • Added support for SUCOR type applications
  • Performance improvements in disk-backed history store and forward
  • Added optional 'random' delay setting to Transmitter configuration


    Expand
    titleWhat's Fixed
    • Various fixes in disk-backed history store and forward
    • Fixed potential thread leaks
    • Fixed issue with BIRTH incorrectly containing cached/old Tag values
    • Prevent the one-short record poll after reconnect when in persistent mode



    Expand
    titleMQTT RecorderEFM Emerson ROC Module


    Expand
    titleWhat's New or Improved
    • Added dynamic configuration handling for global definition updates for meter and periodic mappings
    • Improvements to handling of redundancy synchronization after record updatesInitial release


    Expand
    titleWhat's Fixed
    • Fixed potential NPE when polling for periodic, minute, and daily history

    • Fixed
    • issue that results in occasional 'History Request Failed' errors
    • Fixed potential issue with NPEs in ROC request/response handling
    No fixes



    Expand
    titleAWS InjectorEFM Export


    Expand
    titleWhat's New or Improved
    Added settings validators to ensure correct Injector configuration
    • No new features


    Expand
    titleWhat's Fixed
    • No
    fixes
    • Fixes



    Expand
    titleAzure InjectorOpto22 groov EPIC and SNAPPAC Driver


    Expand
    titleWhat's New or Improved
    Added settings validators to ensure correct Injector configuration
    • Improvements to handling of redundancy synchronization after record updates


    Fixed shutdown issue to prevent duplicate MQTT client connections
    Expand
    titleWhat's Fixed
    • No Fixes




    Expand
    titlev4.0.11 June 1, 2022


    Expand
    titleGoogle Cloud InjectorMQTT Distributor


    Expand
    titleWhat's New or Improved
    Added settings validators to ensure correct Injector configuration
    • No new features


    Expand
    titleWhat's Fixed
    • No fixesFixed Python Scripting API bug around updating Users



    Expand
    titleIBM Cloud InjectorMQTT Engine


    Expand
    titleWhat's New or Improved
    • Added

      settings validators to ensure correct Injector configuration
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver
    • Tag Path validation to configuration

    • Removed an unnecessary 'back' link in the Custom Namespace String Conversion page
    • Added Engine Info tags for tracking the count of re-ordered messages when enabled
    • Added a 'force redundancy sync' after the Primary Host ID is changed, enabled, or disabled via control tags
    • Added a feature to allow Engine to hold off on publishing the Host STATE message until conditions are met
    Expand
    titleWhat's New or Improved
    • No new features



    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titlev4.0.2 October 11, 2019
    • Added NPE protection when handling Aliases
    • Fixed Elecsys namespace Edge Node ID filtering
    • Fixed handling of Custom Namespace JSON tags to prevent unnecessary/improper reconfiguration of tags
    • Added NPE protection to aliased metrics when handling tag writes
    • Added NPE protection when 're-ordering messages' that could prevent Edge Nodes from showing as online
    • Fixed issue with property updating in UDT members that are in member UDTs and folders
    • Fixed Elecsys namespace handling of SINT16 data types
    Expand
    titleAll Modules
    Expand
    titleWhat's New or Improved
    • Security improvements
    • Added validation to ensure passwords can not be null, empty, or only whitespace
    • Added ability to delete certificates from configurations
    • Updated all existing password/secret configuration fields to use the "enter twice" validation
    Expand
    titleWhat's Fixed
    Various minor bug fixes



    MQTT Engine
    Expand
    titleMQTT DistributorTransmission


    Expand
    titleWhat's New or Improved
    • Add support for spaces in ACL topics
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    • Added a 'Friendly Name' configuration option for File Records
    • Added a 'File Scan Rate Time Unit' configuration option for File Records to allow for faster scans
    • Added additional info tags for File publishing including 'Files to Auto-Publish', 'Remaining Retries', and 'Reset'
    • Improved thread naming for File Publishers to make them more identifiable
    • Added Tag Path validation to configuration
    • Added support for treating 'Device level UDTs' as devices when converting UDTs
    • Improved Birth caching to increase performance
    • Optimized caching to reduce overall memory footprint
    • Removed excessive calls to 'getTagConfigsAsync' to increase performance
    title


    Expand
    titleWhat's New or Improved
    • Added support for updating/changing incoming tag datatypes
    • Added 'Hostname Verification' setting to optionally enable TLS hostname verification
    • Added support for configuring which Tag properties get filtered/ignored on incoming publishes
    • Improved tracking of BIRTH/DEATH counts
    Expand
    titleWhat's Fixed
    • Fixed Custom Namespace support for periods (".") in MQTT topics, now interpreted as folder separator in the resulting tag path
    • Fixed "Online Nodes" dataset initialization error
    • Fixes for handling legacy quality types
    Expand
    titleMQTT Transmission
    Expand
    titleWhat's New or Improved
    • Replaced "Default Transmitter" with new "Example Transmitter" and associated example Tags.
    • Made the publishing of UDT definitions in BIRTH messages configurable
    • Added 'Last Refresh' Tag to denote time of last Refresh button click
    • Added 'Refresh Required' Tag to denote if an MQTT Transmission refresh is required/needed
    • Added protection against configuring the same History Store setting on multiple Transmitters
    • Added 'Hostname Verification' setting to optionally enable TLS hostname verification
    • Added support for configuring which Tag properties get published
    Expand
    titleWhat's Fixed
    • Fixed publishing of derived tags, OPC tags, and other indirect types
    Expand
    titleMQTT Recorder
    Expand
    titleWhat's New or Improved
    • Added support for configuring which Tag properties get published
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleAWS Injector
    Expand
    titleWhat's New or Improved
    • Added support for configuring which Tag properties get published
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleAzure Injector
    Expand
    titleWhat's New or Improved
    • Added support for configuring which Tag properties get published
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleGoogle Cloud Injector
    Expand
    titleWhat's New or Improved
    • Added support for configuring which Tag properties get published
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleIBM Cloud Injector
    Expand
    titleWhat's New or Improved
    • Added settings validators to ensure correct Injector configuration
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver
    Expand
    titleWhat's New or Improved
    • Added scanner refresh control Tag
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titlev4.0.1 June 19, 2019
    Expand
    titleMQTT Distributor
    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleMQTT Engine
    Expand
    titleWhat's New or Improved
    • Added support for Ignition7/Transmission to publish to Ignition8/Engine with quality code translations
    Expand
    titleWhat's Fixed
    • Fixed online status info tags to denote the proper values
    • Fixed multiple tag write issues
    • Various tag path handling fixes
    • Fixed issues with property merging in MQTT Engine
    • Various UDT fixes
    • Fixed typing of JSON tags in custom namespaces
    Expand
    titleMQTT Transmission
    Expand
    titleWhat's New or Improved
    • Improved Transmitter field validation in the Web UI configuration
    • Added support for multiple tag paths in a single Transmitter configuration
    • Added support for additional topic tokens to be published via special char sequence in a Sparkplug Device folder
    • Improvements to handling of null values
    • Added batching and caching components to improve performance
    Expand
    titleWhat's Fixed
    • Fixed multiple tag write issues
    • Fixed support for auto-detected Edge Nodes in tag trees
    • Fixed issue that could result in Transmitter Threads running after Transmission shutdown
    • Various tag path handling fixes
    • Various UDT fixes
    • Fixed connected Server URL info tag handling
    • Added sorting of UDT definitions to ensure proper order for creation of UDTs
    • Fixed alias support
    • Improvements to Disk-backed history stores
    Expand
    titleAWS Injector
    Expand
    titleWhat's New or Improved
    • Improvements to handling of null values

    • Added Agent record validation in Web UI configuration

    Expand
    titleWhat's Fixed
    • Fixed support for auto-detected Edge Nodes in tag trees

    • Various tag path handling fixes

    • Various UDT fixes

    Expand
    titleAzure Injector
    Expand
    titleWhat's New or Improved
    • Improvements to handling of null values

    • Added Agent record validation in Web UI configuration

    Expand
    titleWhat's Fixed
    • Fixed support for auto-detected Edge Nodes in tag trees

    • Various tag path handling fixes

    • Various UDT fixes

    • Fixed publishing of NBIRTH messages for Event Hubs

    Expand
    titleGoogle Cloud Injector
    Expand
    titleWhat's New or Improved
    • Improvements to handling of null values

    • Added Agent record validation in Web UI configuration

    Expand
    titleWhat's Fixed
    • Fixed support for auto-detected Edge Nodes in tag trees

    • Various tag path handling fixes

    • Various UDT fixes

    Expand
    titleIBM Cloud Injector
    Expand
    titleWhat's New or Improved
    • Improvements to handling of null values

    • Added Agent record validation in Web UI configuration

    Expand
    titleWhat's Fixed
    • Fixed support for auto-detected Edge Nodes in tag trees

    • Various tag path handling fixes

    • Various UDT fixes

    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver
    Expand
    titleWhat's New or Improved
    • No new features
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titlev4.0.0 May 13, 2019
    Expand
    titleMQTT Distributor
    Expand
    titleWhat's New or Improved
    • Inital port to Ignition8
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleMQTT Engine
    Expand
    titleWhat's New or Improved
    • Initial port to Ignition8 
    • Known issue that throughput is not as good as it was in Ignition 7 compatible modules
    Expand
    titleWhat's Fixed
    • No fixes
    Expand
    titleAWS Injector
    Expand
    titleWhat's New or Improved
    • Initial port to Ignition8

    Expand
    titleWhat's Fixed
    • No fixes

    Expand
    titleAzure Injector
    Expand
    titleWhat's New or Improved
    • Initial port to Ignition8

    Expand
    titleWhat's Fixed
    • No fixes

    Expand
    titleGoogle Cloud Injector
    Expand
    titleWhat's New or Improved
    • Initial port to Ignition8

    Expand
    titleWhat's Fixed
    • No fixes

    Expand
    titleIBM Cloud Injector
    Expand
    titleWhat's New or Improved
    • Initial port to Ignition8

    Expand
    titleWhat's Fixed
    • No fixes

    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver
    Expand
    titleWhat's New or Improved
    • Initial port to Ignition8
    • Improved tag writing throughput working with massive tag lists and during episodes of congested writes

    Expand
    titleWhat's Fixed
    • An initially scanned floating point value of Not-A-Number (NaN) is better handled

    • Scanner waits for acceptance of tags before publishing data

    • Duplicate tag definitions are prevented

    • In extreme cases, 32- and 64-bit integer values may have erratically updated

    Cirrus Link recommends our Customers always thoroughly test new module versions in a test environment before releasing to production.

    • Color Code: Bug Fix, Feature/Enhancement, Optimization
    For version compatibility, see this page.

    Cirrus Link Modules for Ignition v4.0.10 - February 7, 2022

    ...

    • MQTT Distributor
      • license.html
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
      • Fixed bug that resulted in MQTT Distributor starting when actually disabled after a 'system disabled' restore
    • MQTT Engine
      • license.html 
      • Added support for applying sending Ignition SecurityContext based writes via Sparkplug
      • Added support for tag latching in custom namespaces
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
      • Fixed NPE in Engine handling of STATE message arrival
      • Added support for 'string conversions' in Sparkplug and custom namespaces including regex support
      • Fixed tag configuration handling of properties in some edge cases
      • Modified MQTT Engine to not update tags that are disabled at the Edge
      • Fixed order of operations on start/stop when reconfiguring MQTT Engine
      • Fixed UDT paramterized property handling in Engine
    • MQTT Transmission
      • license.html 
      • Added support for applying Ignition SecurityContext based writes via Sparkplug
      • Fixed aliasing migration code to prevent malformed configurations
      • Added support to delete Disk-backed history store artifacts when an Edge Node or Device is deleted
      • Fixed 'Refresh Required' tag indicator handling
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
      • Added null protection to configs that may omit Compression Type and Data Format Type
      • Added BIRTH caching to fix in-order history across Transmission/Ignition restarts
      • Added support for Transmission file publishing filenames to have date/timestamps
      • Improved file publishing throughput
      • Fixed support for 'Single level Edge Node refreshing' when a Group ID is specified in the Transmitter config
      • Improved thread handling in start/stop scenarios when auto-publishing
      • Fixed handling of parameterized UDT definition members
      • Fixed handling of auto-publishing when not connected to primary host
      • Fixed to file deletion handling when auto-publishing files
      • Improved synchronization to start/stopping of threads on reconfiguration operations
      • Added a retry configuration option for file publishing
      • Modified Transmission to allow file publishing even if commands are blocked
      • Fixes to file publishing thread start/stop
      • Modified Transmission to not remove the 'formatString' property from UDTs
      • Fixed Example Transmitter creation on Ignition Edge systems
      • Improved disk-backed history store migration code
      • Improved shutdown speed when lots of Edge Nodes exist in Transmission
      • Fixed initialization of RAM based history stores for some startup scenarios
      • Fixed a thread leak on 'single level Edge Node refresh'
      • Removed unnecessary thread startup of Edge Nodes that could result in invalid bdSeq numbers being published in an NBIRTH
      • Fixed file publish retry logic
      • Added support to enable/disable Server Settings
    • MQTT Recorder
      • license.html 
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
    • AWS Injector
      • license.html 
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
    • Azure Injector
      •  license.html
      • Added support for Content Encoding to be specified for IoT Hub connections
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
      • Fixed certificate upload handling and validation
      • Added support for Azure IoT Central
    • Google Cloud Injector
      • license.html 
      • Moved private key storage to the Ignition internal DB to improve usability
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
      • Added support for HTTP and HTTPS proxies
    • IBM Cloud Injector
      • license.html 
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
    • EFM ABB Totalflow Module
      • license.html 
      • Added 'Core Diagnostic' informational tags to the managed tag provider
      • Deprecated/removed 'Poll EOT' and 'Auto-discovery EOT' timeouts
      • Improved connection status indication in the Ignition Gateway Web UI
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
      • Improved CSV config file handling
      • Fixed mandatory field handling to improve the configuration experience
      • Fixed md5sum calculations for configuration file handling
      • Fixed null Station ID handling in configuration
    • EFM Emerson ROC Module
      • license.html 
      • Improved connection status indication in the Ignition Gateway Web UI
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
      • Improved handling of 'Point type 0' TLPs
      • Fixed md5sum calculations for configuration file handling
    • EFM Export
      • license.html 
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
    • Opto22 groov EPIC and SNAPPAC Driver
      • license.html 
      • Fixed potential class loading issues when running multiple Cirrus Link modules of differing versions
      • Modifications to not use 'default' (zero for numerics, false for booleans, and empty strings) values before an initial scan is performed
      • Logging improvements

    Cirrus Link Modules for Ignition v4.0.9 - October 22, 2021

    ...

    • MQTT Distributor
    • MQTT Engine
      • license.html 
      • Fixed tag writes for Document type tags
      • General logging improvements
      • Fixed server name validation to only allow characters that are valid in Ignition tag names
      • Modified MQTT Engine to only subscribe on Elecsys 'State' topics if that namespace is enabled
      • Added dialog documentation for the configruation Python scripting API
      • Added support to allow spaces in Primary Host IDs
      • Various NPE fixes around invalid UDT configurations
      • Fixed issue that could result in MQTT Engine publishing Rebirth requests to the wrong MQTT Server in redundant environments
    • MQTT Transmission
      • license.html 
      • Removed the 'Node Control/Reboot' metric from the NBIRTH as it doesn't make sense for Transmission
      • Fixed detection of tag change events on Document type tags
      • General logging improvements
      • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
      • Fixed potential (rare) deadlock when connecting to MQTT Servers
      • Fixed potential NPE around null bound property values in UDTs
      • Added support for 'Edge Node level Refresh' to Transmission along with Edge Node granularity 'Refresh Required' tracking
      • Fixed issue where UDT null bound property values could be omitted from a payload
      • Fixed potential deadlock on shutdown
      • Fixed handling in Document tag types in DATA messages to prevent conversion to String datatypes in MQTT Engine
      • Fixed server name validation to only allow characters that are valid in Ignition tag names
      • Fixed issue in alias handling that could result in duplicate aliases
      • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
      • Fixed publishing of UDT definitions in the NBIRTH when converting UDTs
      • Added dialog documentation for the configruation Python scripting API
      • Added support for 'Refresh Required' updates on tag property changes
      • Fixed handling of Datasets in history stores
      • Added support to allow spaces in Primary Host IDs
      • Added support for 'discovering edge nodes' with correspoding 'discover required' tag and autoremoval of Edge Nodes in Transmitter tag trees
      • Fixed potential NPE that could occur in Docker startup environments when creating the 'Example Transmitter'
      • Fixed bdSeq number handling that could result in it being incorrect in NBIRTH messages after connection failures
      • Fixed potential NPEs during Transmitter shutdown
      • Various Disk Backed history store fixes around NPEs and potential DB lockout
      • Various NPE fixes around invalid UDT configurations
    • MQTT Recorder
    • AWS Injector
      • license.html 
      • Fixed detection of tag change events on Document type tags
      • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
      • Fixed potential NPE around null bound property values in UDTs
      • Fixed issue where UDT null bound property values could be omitted from a payload
      • Fixed potential deadlock on startup
      • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
      • Added dialog documentation for the configruation Python scripting API
      • Added support for pushing DDEATH messages on Device removals
    • Azure Injector
      •  license.html
      • Fixed detection of tag change events on Document type tags
      • Added support for Azure Edge configuration via the Python scripting API
      • Added support for 'auto-configuration' in Azure Edge Docker environments
      • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
      • Fixed potential NPE around null bound property values in UDTs
      • Fixed issue where UDT null bound property values could be omitted from a payload
      • Fixed potential deadlock on startup
      • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
      • Added dialog documentation for the configruation Python scripting API
      • Added support for configurable character encoding
      • Added support for pushing DDEATH messages on Device removals
    • Google Cloud Injector
      • license.html 
      • Fixed detection of tag change events on Document type tags
      • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
      • Fixed potential NPE around null bound property values in UDTs
      • Fixed issue where UDT null bound property values could be omitted from a payload
      • Fixed potential deadlock on startup
      • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
      • Made session token expirations configurable
      • Added dialog documentation for the configruation Python scripting API
      • Added support for pushing DDEATH messages on Device removals
    • IBM Cloud Injector
      • license.html 
      • Fixed detection of tag change events on Document type tags
      • Added validation to 'Tag Provider' and 'Tag Path' configuration fields
      • Fixed potential NPE around null bound property values in UDTs
      • Fixed issue where UDT null bound property values could be omitted from a payload
      • Fixed potential deadlock on startup
      • Fixed potential NPE when handling a UDT definition member tag property bound to a UDT parameter
      • Added dialog documentation for the configruation Python scripting API
      • Added support for pushing DDEATH messages on Device removals
    • EFM ABB Totalflow Module
      • license.html 
      • Added a 'watchdog' to ensure continued AAR polling
      • Moved large configuration files from the internal Ignition DB to the filesystem which is supported in Ignition8 backup/restore operations
      • Fixed cleanup of 'orphaned' global definition records
      • Added validators to global definition files
      • Improved AAR write times
      • Fixed issue that prevented Totalflow Application definitions from being uploaded via Windows in some scenarios
      • Logging improvements around supervisory frame status
      • Fixed import issue with array register templates
      • Fixed issue with 'Station ID' character lengths
      • Added support for comma characters in Totalflow Application's Name, Revision, and Parameter fields
    • EFM Emerson ROC Module
      • license.html 
      • Added a 'watchdog' to ensure continued TLP polling
      • Moved large configuration files from the internal Ignition DB to the filesystem which is supported in Ignition8 backup/restore operations
      • Fixed cleanup of 'orphaned' global definition records
      • Added validators to global definition files
      • Added retry logic to login attempts when login fails
      • Fixed issue where polling could stop in certain scenarios and not automatically restart
    • EFM Export
    • Opto22 groov EPIC and SNAPPAC Driver

    Cirrus Link Modules for Ignition v4.0.8 - July 15, 2021

    ...

    • MQTT Distributor
      • Added support for Python script based configuration changes
    • MQTT Engine
      • Improved processing speed of custom namespace JSON payloads
      • Fixed issue that could result in Engine not sending commands when required including Rebirth requests
      • Added protection for null payload timestamps
      • Improved handling of setting Edge Nodes and Devices offline
      • Added support for Python script based configuration changes
      • Improved general performance
      • Fixed issue that could result in deleted info tags associated with server settings
      • Internal tag cache fixes and improvements
      • Changed configureTag logic to only configure UDT instances when it is new
      • Added TLS ALPN support
      • Improved logic around subscriptions that may fail due to ACL or permission issues
        • NOTE: This fix can result in MQTT Engine no longer being able to connect to the MQTT Server when attempting to subscribe on a topic without the permissions to do so. This is a configuration issue that needs to be fixed by either:
          • (1) Updating the MQTT Server ACL/permissions so Engine can subscribe on the required topics OR
          • (2) Disable MQTT Engine Namespaces and/or PrimaryHostId so that Engine is no longer required to subscribe on topics without the permission to do so.
    • MQTT Transmission
      • Fixed 'Refresh Required' tag handling to show the proper state of the tag
      • Added support for Python script based configuration changes
      • Added support for better QualityCode comparisons to support changes in Ignition 8.1.7
      • Internal cache fixes and improvements
      • Added TLS ALPN support
      • Improved logic around subscriptions that may fail due to ACL or permission issues
        • NOTE: This fix can result in MQTT Transmission no longer being able to connect to the MQTT Server when attempting to subscribe on a topic without the permissions to do so. This is a configuration issue that needs to be fixed by either:
          • (1) Updating the MQTT Server ACL/permissions so Transmission can subscribe on the required topics OR
          • (2) Clear the MQTT Transmission PrimaryHostId so that Transmission is no longer required to subscribe on the STATE topic without the permission to do so.
      • Improved history store startup logic to better handle mis-configurations
      • Fixed potential thread-leak
      • Fixes and improvements to bound properties in UDTs
      • Fixes to history store and forward when UDTs are being used
    • MQTT Recorder
      • None
    • AWS Injector
      • Added support for Python script based configuration changes
      • Fixed potential thread-leak
    • Azure Injector
      • Added support for Python script based configuration changes
      • Added support for Azure IoT Edge Hubs
      • Fixed potential thread-leak
      • Added support for IoT Hub 'Application Properties' via Injector configuration
    • Google Cloud Injector
      • Fixed potential thread-leak
    • IBM Cloud Injector
      • Fixed potential thread-leak
    • EFM ABB Totalflow Module
      • Fixed naming collision for 'periodic mappings' between ROC and ABB mappings
      • Improvements to connection and re-connection logic
      • Fixed bug regarding event polling in an edge case
    • EFM Emerson ROC Module
      • Fixed naming collision for 'periodic mappings' between ROC and ABB mappings
      • Improvements to connection and re-connection logic
      • Added 'polling state' to the ROC devices
    • EFM Export
      • None
    • Opto22 groov EPIC and SNAPPAC Driver
      • None

    Cirrus Link Modules for Ignition v4.0.7 - April 12, 2021

    ...

    • MQTT Distributor
      • None
    • MQTT Engine
      • Improved processing speed of custom namespace JSON payloads
      • Fixed datatype handling for sampleMode and historyTimeDeadbandUnits properties
      • Added support for MQTT Client IDs longer than 23 characters in length is user specified
      • Improved error handling for unsupported characters in custom namespace tag creation
      • Removed BB Wzzard namespace as the provided namespace as it can now be supported via a JSON custom namespace
      • Fixed subscriptions to prevent potential duplicate messages based on MQTT server implementations
      • Fixed logic to only unsubscribe from STATE topics when appropriate
      • Added code to send a rebirth request in the case DDATA messages arrive before DBIRTH
      • Improved error handling in the case of missing bdSeq numbers
      • Fixed topic token filtering bug betwen Sparkplug A and Sparkplug B namespaces
      • Fixed issue where UDT definition member tag history configuration is overwritten when in a folder
      • Added support to handle new 'Optimized UDT' DATA messages
      • Upgraded underlying MQTT library
      • Added support for 'Document' tag datatype
      • Added support for PermissionsConfig, TagEventScripts and ParameterValues
      • Modified subscriptions on STATE messages to be on STATE/phid rather than STATE/#
      • Fixed issue that could result in Engine not correcting stale 'STATE' messages when redundancy is used
      • Fixed issue that could show RBE enabled tags stale when they were not actually stale
      • Fixed bug that didn't show online/offiine node info dataset tags properly
      • Fixed handling reporting of primary host state informational tags
      • Fixed issue that prevented rebirth requests from being sent out when 'sequence reordering' is enabled
    • MQTT Transmission
      • Fixed issue with potential failed file transfers when primary host is being used
      • Added support for MQTT Client IDs longer than 23 characters in length is user specified
      • Fixed issue where tags were not reported as stale when using 'Convert UDTs' and they were deleted
      • Fixed Transmission to only publish RECORDs if the associated Sparkplug Device exists
      • Added 'event tracing code' to track execution time for tag change events that occur
      • Improved processing time on tag change events when events occur on UDT members
      • Fixed birth caching when aliasing is enabled
      • Added 'Optimize UDT' option to Transmission to reduce payload sizes in DATA messages
      • Upgraded underlying MQTT library
      • Added support for 'Document' tag datatype
      • Added support for PermissionsConfig, TagEventScripts and ParameterValues
      • Logging improvements around UDT handling
      • Added bound value support for UDTs to evaluate bindings before publishing data
      • Added a configurable reconnect delay to slow reconnect attempts on low bandwidth networks
      • Fixed UDT definition handling to support definitions with the same name under different folder paths
      • Added support for UDT parameter to UDT parameter bindings
    • MQTT Recorder
      • None
    • AWS Injector
      • Cleaned up AWS credential text in the configuration Web UI
      • Fixed implementation to publish NDEATH message when Injector is disabled
      • Added 'event tracing code' to track execution time for tag change events that occur
      • Improved processing time on tag change events when events occur on UDT members
      • Logging improvements around UDT handling
      • Added support for 'periodic publishing' as an alternative to event/tag change driven publishing
      • Added 'Optimize UDT' option to Transmission to reduce payload sizes in DATA messages
      • Added support for 'Push to Any' option to 'Sets' as is supported for other Injector modules
      • Added bound value support for UDTs to evaluate bindings before publishing data
      • Increased the Kinesis default partition key count size as recommended by AWS
      • Fixed UDT definition handling to support definitions with the same name under different folder paths
      • Added support for UDT parameter to UDT parameter bindings
      • Added more randomness to partition keys per AWS recommendations to Kinesis partition keys
    • Azure Injector
      • Fixed issue where disabled configurations of IoT Hub would still send BIRTH messages
      • Added support for MQTT Client IDs longer than 23 characters in length is user specified
      • Fixed implementation to publish NDEATH message when Injector is disabled
      • Added 'event tracing code' to track execution time for tag change events that occur
      • Improved processing time on tag change events when events occur on UDT members
      • Upgraded underlying MQTT library
      • Added content type and content encoding options to Azure Injector IoT Hubs to support message based routing
      • Logging improvements around UDT handling
      • Added a configuration option to support Azure Time Series Insights data/time format
      • Added support for 'periodic publishing' as an alternative to event/tag change driven publishing
      • Added 'Optimize UDT' option to Transmission to reduce payload sizes in DATA messages
      • Added bound value support for UDTs to evaluate bindings before publishing data
      • Fixed UDT definition handling to support definitions with the same name under different folder paths
      • Added support for UDT parameter to UDT parameter bindings
    • Google Cloud Injector
      • Added support for MQTT Client IDs longer than 23 characters in length is user specified
      • Fixed implementation to publish NDEATH message when Injector is disabled
      • Added 'event tracing code' to track execution time for tag change events that occur
      • Improved processing time on tag change events when events occur on UDT members
      • Upgraded underlying MQTT library
      • Logging improvements around UDT handling
      • Added support for 'periodic publishing' as an alternative to event/tag change driven publishing
      • Added 'Optimize UDT' option to Transmission to reduce payload sizes in DATA messages
      • Added bound value support for UDTs to evaluate bindings before publishing data
      • Fixed UDT definition handling to support definitions with the same name under different folder paths
      • Added support for UDT parameter to UDT parameter bindings
    • IBM Cloud Injector
      • Added support for MQTT Client IDs longer than 23 characters in length is user specified
      • Fixed implementation to publish NDEATH message when Injector is disabled
      • Added 'event tracing code' to track execution time for tag change events that occur
      • Improved processing time on tag change events when events occur on UDT members
      • Upgraded underlying MQTT library
      • Logging improvements around UDT handling
      • Added support for 'periodic publishing' as an alternative to event/tag change driven publishing
      • Added 'Optimize UDT' option to Transmission to reduce payload sizes in DATA messages
      • Added bound value support for UDTs to evaluate bindings before publishing data
      • Fixed UDT definition handling to support definitions with the same name under different folder paths
      • Added support for UDT parameter to UDT parameter bindings
    • EFM ABB Totalflow Module
      • Initial GA release of the module for Ignition8
    • EFM Emerson ROC Module
      • None
    • EFM Export
      • None
    • Opto22 groov EPIC and SNAPPAC Driver
      • None

    Cirrus Link Modules for Ignition v4.0.6-beta1 - Dec 1, 2020 (SiteWise Engine only)

    ...

    • SiteWise Engine
      • Initial beta1 release of the module for Ignition8
      • Created docs here: SiteWise Engine

    Cirrus Link Modules for Ignition v4.0.6 - November 19, 2020

    ...

    • MQTT Distributor
      • Modified info tags to properly re-init them if they have been deleted
      • Fixed handling of default configurations on initial module installation
      • Fix to ensure client count displays zero when MQTT Distributor is shutdown
      • Fixed to dynamic handling in configuration menus
    • MQTT Engine
      • Fixed potential sequence reordering NPE
      • General logging cleanup
      • Fixed history property coersion by using proper datatypes
      • Fixed String vs Integer datatype handling for sampleMode and historyTimeDeadbandUnits

      • Fixed potential Exceptions during server connection establishment
      • Modified info tags to properly re-init them if they have been deleted
      • Fixed handling of default configurations on initial module installation
      • Removed support for consumption of alarm properties
      • Modified auto-RPC reconnect settings to denote whether or not to connect at all
      • Fixed Enable Latency Check Tag to only sub/unsub when state changes
      • Added java.sql.Timestamp support to Ignition DataSet
      • Fixed [MQTTEngine]_types_/_types_/... bug in UDT definition creation
      • Added support for filtering by both Sparkplug group and edge node IDs
      • Added support for most Ignition array datatypes in Ignition8
      • Added primary host enable/disable control tag as well as a tag to specify the primary host ID
      • Moved 'File handling control' of MQTT Engine to the Sparkplug B Namespace settings
      • Expanded file handling support
      • Fixed to dynamic handling in configuration menus
    • MQTT Transmission
      • Added code to ensure Transmission connection verification accounts for random startup delay and debounce time
      • General logging cleanup
      • Fixed UDT quality handling issues
      • Fixed potential Exceptions during server connection establishment
      • Fixed in-order history flushing bug when many devices are are part of an Edge Node that prevented buffer from ever emptying
      • Modified info tags to properly re-init them if they have been deleted
      • Fixed configureTag call in Transmission Record creation to properly configure the 'Publish Tag'
      • Fixed handling of default configurations on initial module installation
      • Added primary host and BD sequence number validation on unexpected LWTs
      • Improved disk-backed store and forward Exception handling
      • Removed support for sending of alarm properties
      • Modified auto-RPC reconnect settings to denote whether or not to connect at all
      • Fixed missing UDT member tag changes when TagPath is empty
      • Added java.sql.Timestamp support to Ignition DataSet
      • Added null check for null DataSet values on metrics
      • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
      • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
      • Fixed thread leak in record publishes
      • Cleaned up shutdown code to prevent RejectedExecutionExceptions
      • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
      • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
      • Added 'cached birth' option to Transmission to improve Rebirth request performance
      • Added partial support for overridden property values bound to UDT parameters
      • Added support for most Ignition array datatypes in Ignition8
      • Fixed null value datatype coercion to prevent NPEs and tag reading
      • Fixed disk-backed store and forwarding when aliasing is enabled
      • Added the ability to transmit binary files from MQTT Transmission
      • Made the Tag Pacing Period a mandatory field
      • Added enforcement to prevent 'aliasing' and publishing of UDTs to be enabled at the same time
      • Improved Exception handling during startup and iterating the tag tree
      • Fixed to dynamic handling in configuration menus
      • Added code to specify a default 'Set' when appropriate during configuration
      • Fixed handling of parameterized datatypes
      • Fix for ClassCastException on getting compression type
      • Added code to ignore UDT removal events when convertUdts is true
      • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being published
    • MQTT Recorder
      • Modified info tags to properly re-init them if they have been deleted
      • Fixed handling of default configurations on initial module installation
      • Fixed to dynamic handling in configuration menus
    • AWS Injector
      • Fixed UDT quality handling issues
      • Modified info tags to properly re-init them if they have been deleted
      • Fixed handling of default configurations on initial module installation
      • Fixed missing UDT member tag changes when TagPath is empty
      • Added java.sql.Timestamp support to Ignition DataSet
      • Added null check for null DataSet values on metrics
      • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
      • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
      • Cleaned up shutdown code to prevent RejectedExecutionExceptions
      • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
      • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
      • Added partial support for overridden property values bound to UDT parameters
      • Added support for most Ignition array datatypes in Ignition8
      • Made the Tag Pacing Period a mandatory field
      • Improved Exception handling during startup and iterating the tag tree
      • Fixed to dynamic handling in configuration menus
      • Added code to specify a default 'Set' when appropriate during configuration
      • Fixed handling of parameterized datatypes
      • Fixed potential ClassCastExceptions
      • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being pushed
    • Azure Injector
      • Fixed UDT quality handling issues
      • Fixed potential Exceptions during MQTT server connection establishment
      • Modified info tags to properly re-init them if they have been deleted
      • Fixed handling of default configurations on initial module installation
      • Added configurable MQTT keep-alive setting
      • Fixed missing UDT member tag changes when TagPath is empty
      • Added java.sql.Timestamp support to Ignition DataSet
      • Added null check for null DataSet values on metrics
      • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
      • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
      • Cleaned up shutdown code to prevent RejectedExecutionExceptions
      • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
      • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
      • Added support for client based auth in Azure IoT Hubs
      • Added partial support for overridden property values bound to UDT parameters
      • Added support for most Ignition array datatypes in Ignition8
      • Made the Tag Pacing Period a mandatory field
      • Improved Exception handling during startup and iterating the tag tree
      • Fixed to dynamic handling in configuration menus
      • Added code to specify a default 'Set' when appropriate during configuration
      • Fixed handling of parameterized datatypes
      • Fixed potential ClassCastExceptions
      • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being pushed
    • Google Cloud Injector
      • Fixed UDT quality handling issues
      • Fixed potential Exceptions during MQTT server connection establishment
      • Modified info tags to properly re-init them if they have been deleted
      • Fixed handling of default configurations on initial module installation
      • Added configurable MQTT keep-alive setting
      • Fixed missing UDT member tag changes when TagPath is empty
      • Added java.sql.Timestamp support to Ignition DataSet
      • Added null check for null DataSet values on metrics
      • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
      • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
      • Cleaned up shutdown code to prevent RejectedExecutionExceptions
      • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
      • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
      • Added partial support for overridden property values bound to UDT parameters
      • Added support for most Ignition array datatypes in Ignition8
      • Made the Tag Pacing Period a mandatory field
      • Improved Exception handling during startup and iterating the tag tree
      • Fixed to dynamic handling in configuration menus
      • Added code to specify a default 'Set' when appropriate during configuration
      • Fixed handling of parameterized datatypes
      • Fixed potential ClassCastExceptions
      • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being pushed
    • IBM Cloud Injector
      • Fixed UDT quality handling issues
      • Fixed potential Exceptions during MQTT server connection establishment
      • Modified info tags to properly re-init them if they have been deleted
      • Fixed handling of default configurations on initial module installation
      • Added configurable MQTT keep-alive setting
      • Fixed missing UDT member tag changes when TagPath is empty
      • Added java.sql.Timestamp support to Ignition DataSet
      • Added null check for null DataSet values on metrics
      • Fixed UDT handling to extract the Tag provider name from when not found in the tag configuration to improve UDT handling
      • Added support for 'ParameterValue' objects introduced in Ignition 8.0.15
      • Cleaned up shutdown code to prevent RejectedExecutionExceptions
      • Added code to bind bound parameters of UDTs to tag properties if they are simple bindings
      • Fixed UDT member tag property to UDT parameter bindings for 'convert to normal tags' case
      • Added partial support for overridden property values bound to UDT parameters
      • Added support for most Ignition array datatypes in Ignition8
      • Made the Tag Pacing Period a mandatory field
      • Improved Exception handling during startup and iterating the tag tree
      • Fixed to dynamic handling in configuration menus
      • Added code to specify a default 'Set' when appropriate during configuration
      • Fixed handling of parameterized datatypes
      • Fixed potential ClassCastExceptions
      • Added Exception handling around adding parameters to UDTs to prevent UDT parsing failures that prevent them from being pushed
    • EFM ABB Totalflow Module
      • None - v4.0.5-beta1 is still the current release.
    • EFM Emerson ROC Module
      • Initial GA release
    • EFM Export
      • Initial GA release
    • Opto22 groov EPIC and SNAPPAC Driver
      • Tags are refreshed on each occurrence the scanner connects to the controller

      • If a controller tag is scanned as invalid, all of it’s expanded (un-optimized) root tags will be marked as stale. For example, if a table is invalid, all of it’s table elements will stale or an integer scanned becomes invalid, all of its boolean, bit-picked, and integer values will stale.

      • Reconnect algorithm has been streamlined to minimize lag

    Cirrus Link Modules for Ignition v4.0.5-beta1 - Sept 1, 2020 (EFM ABB Totalflow only)

    ...

    • EFM ABB Totalflow
      • Initial release of the module for Ignition8

    Cirrus Link Modules for Ignition v4.0.5-beta1 - Aug 5, 2020 (EFM Emerson ROC and EFM Export only)

    ...

    • EFM Emerson ROC
      • Initial release of the module for Ignition8
    • EFM Export
      • Initial release of the module for Ignition8

    Cirrus Link Modules for Ignition v4.0.5 - June 29, 2020

    ...

    • MQTT Distributor
      • Added support for Ignition Maker Edition
      • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
      • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
      • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
    • MQTT Engine
      • Added support for Ignition Maker Edition
      • Added support for custom namespace charset selection for binary encoding support - set default to UTF-8
      • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
      • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
      • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
      • Modified certificate display in Server configuration to not show any certs since we can't show all of them
      • Improved handling for missing bdSeq numbers in faulty Sparkplug edge client's LWTs
      • Fixed access to property matching for proper property filtering
      • Added alarmEvalEnabled to default property filter list
      • Added support for modified 'configureTag' behavior in Ignition 8.0.14
    • MQTT Transmission
      • Added support for Ignition Maker Edition
      • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
      • Fixed Transmission version reporting in the Transmission Info tag
      • Fixed NPE when getting the module version
      • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
      • Added code to ignore _invalid_ tag paths when traversing the tag tree
      • Fixed 'reset metrics' info tag to always be writable
      • Logging improvements
      • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
      • Added alarmEvalEnabled to default property filter list
      • Added support for modified 'configureTag' behavior in Ignition 8.0.14
    • MQTT Recorder
      • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
    • AWS Injector
      • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
      • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
      • Added code to ignore _invalid_ tag paths when traversing the tag tree
      • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
      • Fixed issue with null-check on S&F type
      • Fixed 'Edge Nodes' folder creation to occur the the correct tag provider
    • Azure Injector
      • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
      • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
      • Added code to ignore _invalid_ tag paths when traversing the tag tree
      • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
      • Fixed issue with null-check on S&F type
      • Fixed issue with 'Push Policy' not being persisted properly
      • Fixed 'Edge Nodes' folder creation to occur the the correct tag provider
    • Google Cloud Injector
      • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
      • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
      • Added code to ignore _invalid_ tag paths when traversing the tag tree
      • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
      • Fixed issue with null-check on S&F type
      • Fixed issue with 'Push Policy' not being persisted properly
      • Fixed 'Edge Nodes' folder creation to occur the the correct tag provider
    • IBM Cloud Injector
      • Fixed enum usage to prevent class loading exceptions when browsing/modifying gateway web UI configuration
      • Added support for breaking 'SecurityContext' API change in Ignition 8.0.13
      • Added code to ignore _invalid_ tag paths when traversing the tag tree
      • Added backward compatibility support so v4.0.5 will run on Ignition v8.0.12 and before
      • Fixed issue with null-check on S&F type
      • Fixed issue with 'Push Policy' not being persisted properly
      • Fixed 'Edge Nodes' folder creation to occur the the correct tag provider
    • Opto22 groov EPIC and SNAPPAC Driver
      • None

    Cirrus Link Modules for Ignition v4.0.4 - May 20, 2020

    ...

    IMPORTANT NOTE: These are not compatible Ignition 8.0.13 or later. If using 8.0.13 or 8.0.14 use v4.0.5 Cirrus Link modules

    • General (All Modules)
      • Fixed documentation links in tooltips of the module config pages
      • Updated code signing cerificate
    • MQTT Distributor
      • Modified TLS setup to piggyback off of native Ignition SSL mechanism
    • MQTT Engine
      • Fixed retention of UDT properties across module restarts
      • Add custom property for 'sequence number reordering'
      • Added a cache layer for improved custom namespace performance
      • Modified to create default reasonable history config on all dynamic MQTT Engine tags
      • Added a validator to primary host ID creation to prevent runtime errors
      • Added support for non-clean session and QoS1 support in custom namespaces
      • Added additional tooltip info for Custom Namespace writable tags
      • Fixed client reinitialization after custom namespace changes
      • Improved certificate file management in the config web configuration UI
      • Fixed 'Critical App State' info tag to prevent erroneous data
      • Fixed Edge Node Tag staling from NDATA message
      • Added staling of custom namespace tags on namespace deletion
      • Fixed 'empty' property filter setting to allow all
    • MQTT Transmission
      • Fixed dynamic update of client ID under MQTT Transmission Info tags
      • Added support to allow RPC clients to not automatically reconnect
      • Improved DB reconnect logic for the Disk-backed store and forward mechanism
      • Fixed Timer thread leak on pending publish creation
      • Fixed to caching of Transmission Info metrics to prevent erroneous data
      • Added a validator to primary host ID creation to prevent runtime errors
      • Fixed handling of non-memory tags (i.e. derived, OPC, etc) in Sparkplug Record publishes
      • Added parameter based UDT DataType handling when convertUDTs=true
      • Fixed potential ClassCastException around BoundPropertySet Objects
      • Added tag pacing period validator to ensure it is greater than zero
      • Improved certificate file management in the config web configuration UI
      • Fixed Transmission TLS connect on startup
      • Added Transmission Info Tags for tracking messsages and bytes
      • Fixed NPE from caching BIRTHs when TransmissionClient is shutdown
      • Removed properties and parameters from being improperly published in DATA messages
      • Fixed missing Sparkplug IDs on Transmitters page
      • Added code to ignore _types_ folder when creating Edge Nodes
      • Fixed handling of EdgeNode tag removal events
      • Added new custom property 'ConfiguredTagPath' to tag properties
      • Fixed RPC clients to update on server setting change
      • Fixed 'empty' property filter setting to allow all
      • Fixed fetching of the tag provider name by ignoring case
      • Fixed device detection when auto-discovery is enabled
      • Fixed NPE on aliased metrics in NCMD messages
      • Fix for Tag add/remove root path comparisons
      • Fixed folder detection on tag structure change events
      • Fixed check history stores to update Transmitters on configuration changes
    • MQTT Recorder
      • None
    • AWS Injector 
      • Fixed Timer thread leak on pending publish creation
      • Fixed potential ClassCastException around BoundPropertySet Objects
      • Added null checks to Injector start/stop to prevent NPEs
      • Added tag pacing period validator to ensure it is greater than zero
      • Removed properties and parameters from being improperly published in DATA messages
      • Added code to ignore _types_ folder when creating Edge Nodes 
      • Fixed handling of EdgeNode tag removal events
      • Fixed device detection when auto-discovery is enabled
      • Fix for Tag add/remove root path comparisons
      • Fixed folder detection on tag structure change events
      • General performance enhancements
      • Disconnect logic cleanup
    • Azure Injector
      • Tooltip/help improvements
      • Fixed Timer thread leak on pending publish creation
      • Fixed potential ClassCastException around BoundPropertySet Objects
      • Added null checks to Injector start/stop to prevent NPEs
      • Added tag pacing period validator to ensure it is greater than zero
      • Removed unused certificate file upload field
      • Added support for a connection pooling to allow for increased throughput
      • Removed properties and parameters from being improperly published in DATA messages
      • Added code to ignore _types_ folder when creating Edge Nodes 
      • Fixed handling of EdgeNode tag removal events
      • Fixed device detection when auto-discovery is enabled
      • Fix for Tag add/remove root path comparisons
      • Fixed folder detection on tag structure change events
      • General performance enhancements
      • Disconnect logic cleanup
      • Added reconnect logic to MQTT Injectors when message pushes fail
    • Google Cloud Injector
      • Fixed Timer thread leak on pending publish creation
      • Fixed potential ClassCastException around BoundPropertySet Objects
      • Added null checks to Injector start/stop to prevent NPEs
      • Added tag pacing period validator to ensure it is greater than zero
      • Added support for a connection pooling to allow for increased throughput
      • Removed properties and parameters from being improperly published in DATA messages
      • Added code to ignore _types_ folder when creating Edge Nodes 
      • Fixed handling of EdgeNode tag removal events
      • Fixed device detection when auto-discovery is enabled
      • Fix for Tag add/remove root path comparisons
      • Fixed folder detection on tag structure change events
      • General performance enhancements
      • Disconnect logic cleanup
      • Added reconnect logic to MQTT Injectors when message pushes fail
    • IBM Cloud Injector
      • Fixed Timer thread leak on pending publish creation
      • Fixed potential ClassCastException around BoundPropertySet Objects
      • Added null checks to Injector start/stop to prevent NPEs
      • Added tag pacing period validator to ensure it is greater than zero
      • Added support for a connection pooling to allow for increased throughput
      • Removed properties and parameters from being improperly published in DATA messages
      • Added code to ignore _types_ folder when creating Edge Nodes 
      • Fixed handling of EdgeNode tag removal events
      • Fixed device detection when auto-discovery is enabled
      • Fix for Tag add/remove root path comparisons
      • Fixed folder detection on tag structure change events
      • General performance enhancements
      • Disconnect logic cleanup
      • Added reconnect logic to MQTT Injectors when message pushes fail
    • Opto22 groov EPIC and SNAPPAC Driver
      • None

    Cirrus Link Modules for Ignition v4.0.3 - January 28, 2020

    ...

    • General (All Modules)
      • Various fixes in UDT definition and instance handling
      • Fixed potential deadlock in CirrusClient disconnect
      • Improved logging
      • Improved BD sequence number handling
      • Improved event handling
      • Improved CirrusClient disconnection and LWT handling
      • Updated auto-client ids to be 23 characters or less (required by some MQTT server implementations)
    • MQTT Distributor
      • Fixed potential deadlock on shutdown
      • Added Distributor Info tags showing number of connected clients
    • MQTT Engine
      • Added staling of MQTT Engine Tags on startup
      • Fixed various staling issues affecting MQTT Engine Tags
      • Fixed issues with MQTT Engine restarts and deleted tags reappearing
      • Fixed MQTT Engine client subscription handling to only subscribe to topics STATE/# and SM/<client_id>/# when necessary
      • Fixed potential concurrency issues in MQTT Engine on reconnect
      • Fixed the enabling/disabling of Namespaces on a configuration update
      • Added support to records to pull data from ManagedTagProviders
      • Improvements in Edge/Device cache
      • Added support for 'writable tags' in Custom Namespaces
      • Improvements in Metric caching
    • MQTT Transmission
      • Various fixes in disk-backed history store and forward
      • Fixed potential thread leaks
      • Fixed issue with BIRTH incorrectly containing cached/old Tag values
      • Performance improvements in disk-backed history store and forward
      • Added optional 'random' delay setting to Transmitter configuration
    • MQTT Recorder
      • Initial release
    • AWS Injector 
      • Added settings validators to ensure correct Injector configuration
    • Azure Injector
      • Fixed shutdown issue to prevent duplicate MQTT client connections
      • Added settings validators to ensure correct Injector configuration
    • Google Cloud Injector
      • Added settings validators to ensure correct Injector configuration
    • IBM Cloud Injector
      • Added settings validators to ensure correct Injector configuration
    • Opto22 groov EPIC and SNAPPAC Driver
      • None

    Cirrus Link Modules for Ignition v4.0.2 - October 11, 2019

    ...

    • General (All Modules)
      • Security improvements
      • Added validation to ensure passwords can not be null, empty, or only whitespace
      • Added ability to delete certificates from configurations
      • Updated all existing password/secret configuration fields to use the "enter twice" validation
      • Various minor bug fixes
    • MQTT Distributor
      • Add support for spaces in ACL topics
    • MQTT Engine
      • Added support for updating/changing incoming tag datatypes
      • Added 'Hostname Verification' setting to optionally enable TLS hostname verification
      • Added support for configuring which Tag properties get filtered/ignored on incoming publishes
      • Improved tracking of BIRTH/DEATH counts
      • Fixed Custom Namespace support for periods (".") in MQTT topics, now interpreted as folder separator in the resulting tag path
      • Fixed "Online Nodes" dataset initialization error
      • Fixes for handling legacy quality types
    • MQTT Transmission
      • Replaced "Default Transmitter" with new "Example Transmitter" and associated example Tags.
      • Made the publishing of UDT definitions in BIRTH messages configurable
      • Added 'Last Refresh' Tag to denote time of last Refresh button click
      • Added 'Refresh Required' Tag to denote if an MQTT Transmission refresh is required/needed
      • Added protection against configuring the same History Store setting on multiple Transmitters
      • Added 'Hostname Verification' setting to optionally enable TLS hostname verification
      • Added support for configuring which Tag properties get published
      • Fixed publishing of derived tags, OPC tags, and other indirect types
    • AWS Injector
      • Added support for configuring which Tag properties get published
    • Azure Injector
      • Added support for configuring which Tag properties get published
    • Google Cloud Injector
      • Added support for configuring which Tag properties get published
    • IBM Cloud Injector
      • Added support for configuring which Tag properties get published
    • Opto22 groov EPIC and SNAPPAC Driver
      • Added scanner refresh control Tag

    Cirrus Link Modules for Ignition v4.0.1 - June 19, 2019

    ...

    • Fixed support for auto-detected Edge Nodes in tag trees

    • Various tag path handling fixes

    • Various UDT fixes

    • Improvements to handling of null values

    • Added Agent record validation in Web UI configuration

    ...

    • Fixed support for auto-detected Edge Nodes in tag trees

    • Various tag path handling fixes

    • Various UDT fixes

    • Improvements to handling of null values

    • Added Agent record validation in Web UI configuration

    • Fixed publishing of NBIRTH messages for Event Hubs

    ...

    • Fixed support for auto-detected Edge Nodes in tag trees

    • Various tag path handling fixes

    • Various UDT fixes

    • Improvements to handling of null values

    • Added Agent record validation in Web UI configuration

    ...

    • Fixed support for auto-detected Edge Nodes in tag trees

    • Various tag path handling fixes

    • Various UDT fixes

    • Improvements to handling of null values

    • Added Agent record validation in Web UI configuration

    ...

    • None

    ...

    • Fixed online status info tags to denote the proper values
    • Added support for Ignition7/Transmission to publish to Ignition8/Engine with quality code translations
    • Fixed multiple tag write issues
    • Various tag path handling fixes
    • Fixed issues with property merging in MQTT Engine
    • Various UDT fixes
    • Fixed typing of JSON tags in custom namespaces

    ...

    • Improved Transmitter field validation in the Web UI configuration
    • Added support for multiple tag paths in a single Transmitter configuration
    • Added support for additional topic tokens to be published via special char sequence in a Sparkplug Device folder
    • Fixed multiple tag write issues
    • Fixed support for auto-detected Edge Nodes in tag trees
    • Fixed issue that could result in Transmitter Threads running after Transmission shutdown
    • Various tag path handling fixes
    • Various UDT fixes
    • Improvements to handling of null values
    • Fixed connected Server URL info tag handling
    • Added sorting of UDT definitions to ensure proper order for creation of UDTs
    • Added batching and caching components to improve performance
    • Fixed alias support
    • Improvements to Disk-backed history stores
    Fixed
    • Fixed retry logic when publishing files
    • Added NPE protection when handling Aliases
    • Fixed an issue where updating a File Configuration could result in removing or resetting file info tags
    • Fixed issue with birth caching logic that produced failures in flushing history when flushing in-order
    • Added NPE protection when updating Transmission Info tags
    • Fixed issue that could result in DATA messages being published before the BIRTH sequence when flushing history in-order
    • Fixed startup/shutdown synchronization that could result in thread leaks
    • Fixed issue when flushing in-order that could result in an endless loop with many devices
    • Fixes to Edge Node discovery to ensure discovery and status flags update properly
    • Fixed issue with Transmission publishing incorrect (newer) metric timestamp in Birth message when using in-order/RAM store and forward
    • Added NPE check when shutting down Transmission clients
    • Fixed RejectedExecutionException that could occur when deleting tags Transmission was publishing
    • Fixed potential double DEATH publishes that could occur on device folder removal



    Expand
    titleMQTT Recorder


    Expand
    titleWhat's New or Improved
    • Added Python scripting API for scripted configuration


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleAWS Injector


    Expand
    titleWhat's New or Improved
    • Improved Birth caching to increase performance
    • Removed excessive calls to 'getTagConfigsAsync' to increase performance


    Expand
    titleWhat's Fixed
    • Fixed startup/shutdown synchronization that could result in thread leaks
    • Fixed issue that could result in the Push Policy reverting back to 'Push to All'



    Expand
    titleAzure Injector


    Expand
    titleWhat's New or Improved
    • Improved Birth caching to increase performance
    • Removed excessive calls to 'getTagConfigsAsync' to increase performance


    Expand
    titleWhat's Fixed
    • Fixed startup/shutdown synchronization that could result in thread leaks
    • Fixed issue that could result in the Push Policy reverting back to 'Push to All'
    • Modified scripting API to use 'AzureSetId' instead of 'AzureSet' for Set key names



    Expand
    titleGoogle Cloud Injector


    Expand
    titleWhat's New or Improved
    • Added TCP port number configuration option for connecting to Google IoT Core
    • Improved Birth caching to increase performance
    • Added Python scripting API for scripted configuration
    • Removed excessive calls to 'getTagConfigsAsync' to increase performance
    • Added a 'max throughput' configuration option to throttle data flowing to Google IoT Core


    Expand
    titleWhat's Fixed
    • Fixed startup/shutdown synchronization that could result in thread leaks
    • Fixed issue that could result in the Push Policy reverting back to 'Push to All'



    Expand
    titleIBM Cloud Injector


    Expand
    titleWhat's New or Improved
    • Improved Birth caching to increase performance
    • Added Python scripting API for scripted configuration
    • Removed excessive calls to 'getTagConfigsAsync' to increase performance


    Expand
    titleWhat's Fixed
    • Fixed startup/shutdown synchronization that could result in thread leaks
    • Fixed issue that could result in the Push Policy reverting back to 'Push to All'



    Expand
    titleEFM ABB Totalflow Module


    Expand
    titleWhat's New or Improved
    • Added Tag Path validation to configuration


    Expand
    titleWhat's Fixed
    • Fixed meter type handling during auto-discovery when using applications other than AGA3, SUAGA3, AGA7, and SUAGA7



    Expand
    titleEFM Emerson ROC Module


    Expand
    titleWhat's New or Improved
    • Added Tag Path validation to configuration


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleEFM Export


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes



    Expand
    titleOpto22 groov EPIC and SNAPPAC Driver


    Expand
    titleWhat's New or Improved
    • No new features


    Expand
    titleWhat's Fixed
    • No fixes




    Release notes for earlier module versions available here

    ...

    Cirrus Link Modules for Ignition v4.0.0 - May 13, 2019

    ...

    • Initial port to Ignition8

    ...

    • Initial port to Ignition8

    ...

    • Initial port to Ignition8

    ...

    • Initial port to Ignition8

    ...

    • Initial port to Ignition8

    ...

    • Initial port to Ignition8
    • Known issues
      • Throughput is not as good as it was in Ignition 7 compatible modules

    ...

    • Initial port to Ignition8
    • Removed default transmitter and now seed a default transmitter with the same functionality as the old default transmitter
    • Added support for multiple tag paths to a single transmitter
    • Added custom property to 'exclude tags' from payloads
    • Added custom property to specify which tags changes events will be stored in store and forward cache
    • Known issues
      • Throughput is not as good as it was in Ignition 7 compatible modules

    ...

    Improved tag writing throughput working with massive tag lists and during episodes of congested writes

    ...

    An initially scanned floating point value of Not-A-Number (NaN) is better handled

    ...

    Scanner waits for acceptance of tags before publishing data

    ...

    Duplicate tag definitions are prevented

    ...