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 v3.4.12 - March 26, 2021 - Requires Ignition 7.9.13 or newer!

  • MQTT Distributor
    • None
  • MQTT Engine
    • Added a thread pool to more efficiently handle custom namespace JSON messages
    • Improved logic in cusom namespace non-JSON payload handling to increase performance
    • Modified manual client ID logic to allow for client ID lengths longer than 23 characters if user-specified
    • Added error-case handling if invalid characters are included in a payload such as $, °, and &
    • Removed the Advantech B&B Wzzard namespace as this is now covered by the custom JSON namespaces
    • Improved Sparkplug topic namespace filters to prevent overlapping subscriptions when possible
    • Fix to ensure unsubscribe from STATE topics only occurs when required
    • Added error handling when receiving DRECORD messages for non-existent Sparkplug Devices
    • Added Rebirth request in event that a message arrives on a non-existent Sparkplug Device
    • Upgraded Eclipse Paho MQTT Client to v1.2.5
    • Fixed issue that could result in missing 'OFFLINE' state messages under multiple MQTT Server scenarios
    • Modified MQTT Engine to subscribe/unsubscribe only on it's specific PHID STATE topic
    • Fixed issue that resulted in Elecsys formated RBE data being 'zeroed out' on any RBE message
    • Fixes to Primary Host Application info tags in MQTT Engine to reflect the correct state
  • MQTT Transmission
    • Modified manual client ID logic to allow for client ID lengths longer than 23 characters if user-specified
    • Fixed issue where UDT member tags were not denoted as stale when removed from a Transmitter
    • Fixed issue where duplicate metrics could be included when converting UDTs and tags were deleted in a Transmitter
    • Improved logging and error handling around legacy property conversion to ensure BIRTH messages can be published
    • General improvements to Exception handling and logging
    • Fix to prevent DRECORD messages from being published when the specified Sparkplug Device doesn't exist
    • Improved log messages to reduce log noise when under heavy load
    • Upgraded Eclipse Paho MQTT Client to v1.2.5
    • Fixed issue that could result in History Stores being converted from Disk-backed to Memory-backed in certain DB migration scenarios
  • MQTT Recorder
    • None
  • AWS Injector
    • Fix to push NDEATH on manual shutdown/disable
    • Added 'Push Policy' support to allow for easier optimization of pushes under load
  • Azure Injector
    • Fix to push NDEATH on manual shutdown/disable
    • Modified manual client ID logic to allow for client ID lengths longer than 23 characters if user-specified
    • Upgraded Eclipse Paho MQTT Client to v1.2.5
    • Added support for setting of 'content type' and 'content encoding' to support Azure message based routing
    • Added setting to specify timestamp format to support Azure Time Series Insights timestamp requirements
  • Google Cloud Injector
    • Fix to push NDEATH on manual shutdown/disable
    • Modified manual client ID logic to allow for client ID lengths longer than 23 characters if user-specified
    • Upgraded Eclipse Paho MQTT Client to v1.2.5
  • IBM Cloud Injector
    • Fix to push NDEATH on manual shutdown/disable
    • Modified manual client ID logic to allow for client ID lengths longer than 23 characters if user-specified
    • Upgraded Eclipse Paho MQTT Client to v1.2.5
  • EFM ABB Totalflow Driver
    • Initial GA release of the EFM ABB Totalflow Driver
  • EFM Emerson ROC Driver
    • None
  • EFM Export
    • None
  • Opto22 groov EPIC and SNAPPAC Driver
    • None


Cirrus Link Modules for Ignition v3.4.11 - November 21, 2020 - Requires Ignition 7.9.13 or newer!

  • MQTT Distributor
    • Fixed classloader issues when configuring the module
    • Fixed handling of default configurations on initial module installation
    • Modified info tags to properly re-init them if they have been deleted
    • Fix to ensure client count displays zero when MQTT Distributor is shutdown
    • Fixed to dynamic handling in configuration menus
  • MQTT Engine
    • Added staling of custom namespace tags when a custom namespace is deleted
    • Added support for blocking of all outbound commands to Engine
    • Added support for different charsets for custom namespaces
    • Fixed classloader issues when configuring the module
    • Added support for blocking 'auto-rebirth' commands via a custom config option
    • Removed CA cert files from the Server Settings list views
    • Added null check on bdSeq numbers in LWT to gracefully handle missing bdSeq numbers in NDEATH messages
    • Improved logging and prevent NPEs on sequence number reordering
    • Improved dataset handling to prevent NPEs
    • Fixed handling of default configurations on initial module installation
    • Modified info tags to properly re-init them if they have been deleted
    • Fixed Enable Latency Check Tag to only sub/unsub when state changes
    • Added java.sql.Timestamp support to Ignition DataSet
    • General logging cleanup
    • Added support for filtering by both Sparkplug group and edge node IDs
    • Fixed to dynamic handling in configuration menus
  • MQTT Transmission
    • Fixed classloader issues when configuring the module
    • Removed CA cert files from the Server Settings list views
    • Added code to ensure Transmission connection verification accounts for random startup delay and debounce time
    • Improved logging of history flushing errors
    • Added DataFormatType to select JSON vs Protobuf publishing. This replaces the 'server type' selector
    • Fixed in-order history flushing bug when many devices are are part of an Edge Node that prevented buffer from ever emptying
    • Fixed handling of default configurations on initial module installation
    • Modified info tags to properly re-init them if they have been deleted
    • Added primary host and BD sequence number validation on unexpected LWTs
    • Modified auto-RPC reconnect settings to denote whether or not to connect at all
    • Added java.sql.Timestamp support to Ignition DataSet
    • General logging cleanup
    • Fixed thread leak in record publishes
    • Added 'cached birth' option to Transmission to improve Rebirth request performance
    • Fixed issue where a Transmitter could be started even if disabled in config
    • Fixed null value datatype coercion to prevent NPEs and tag reading
    • Improvements to overridden UDT property handling
    • Made the Tag Pacing Period a mandatory field
    • Added enforcement to prevent 'aliasing' and publishing of UDTs to be enabled at the same time
    • Fixed to dynamic handling in configuration menus
    • Added code to specify a default 'Set' when appropriate during configuration
    • Improved null check/Exception handling for overridden UDT properties
  • MQTT Recorder
    • Fixed classloader issues when configuring the module
    • Fixed handling of default configurations on initial module installation
    • Fixed to dynamic handling in configuration menus
  • AWS Injector
    • Fixed classloader issues when configuring the module
    • Fixed handling of default configurations on initial module installation
    • Modified info tags to properly re-init them if they have been deleted
    • Added java.sql.Timestamp support to Ignition DataSet
    • General logging cleanup
    • Fixed null value datatype coercion to prevent NPEs and tag reading
    • Improvements to overridden UDT property handling
    • Made the Tag Pacing Period a mandatory field
    • Fixed to dynamic handling in configuration menus
    • Added code to specify a default 'Set' when appropriate during configuration
    • Fix for ClassCastException on getting compression type
    • Improved null check/Exception handling for overridden UDT properties
  • Azure Injector
    • Fixed classloader issues when configuring the module
    • Logging cleanup to differentiate between different Azure connections
    • Fixed handling of default configurations on initial module installation
    • 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
    • General logging cleanup
    • Added support for client based auth in Azure IoT Hubs
    • Fixed null value datatype coercion to prevent NPEs and tag reading
    • Improvements to overridden UDT property handling
    • Made the Tag Pacing Period a mandatory field
    • Fixed to dynamic handling in configuration menus
    • Added code to specify a default 'Set' when appropriate during configuration
    • Fix for ClassCastException on getting compression type
    • Improved null check/Exception handling for overridden UDT properties
  • Google Cloud Injector
    • Fixed classloader issues when configuring the module
    • Fixed handling of default configurations on initial module installation
    • 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
    • General logging cleanup
    • Fixed null value datatype coercion to prevent NPEs and tag reading
    • Improvements to overridden UDT property handling
    • Made the Tag Pacing Period a mandatory field
    • Fixed to dynamic handling in configuration menus
    • Added code to specify a default 'Set' when appropriate during configuration
    • Fix for ClassCastException on getting compression type
    • Improved null check/Exception handling for overridden UDT properties
    • Fixed potential NPE on setting deletion
  • IBM Cloud Injector
    • Fixed classloader issues when configuring the module
    • Fixed handling of default configurations on initial module installation
    • 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
    • General logging cleanup
    • Fixed null value datatype coercion to prevent NPEs and tag reading
    • Improvements to overridden UDT property handling
    • Made the Tag Pacing Period a mandatory field
    • Fixed to dynamic handling in configuration menus
    • Added code to specify a default 'Set' when appropriate during configuration
    • Fix for ClassCastException on getting compression type
    • Improved null check/Exception handling for overridden UDT properties
  • EFM ABB Totalflow Driver
    • None - v4.0.5-beta1 is still the current release.
  • EFM Emerson ROC Driver
    • Fixed classloader issues when configuring the module
    • Fixxed potential deadlocks on reconnect
    • Fixed time TLPs to show Timezone offsets
    • Fixed issue with month on DateTime objects that would shift months by 1
  • EFM Export
    • Fixed classloader issues when configuring the module
    • Fixed handling of default configurations on initial module installation
    • Fixed to dynamic handling in configuration menus
  • 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 v3.4.10-beta1 - Aug 10, 2020 (EFM ABB Totalflow)

  • EFM ABB Totalflow
    • Initial release of the module for Ignition7
    • Note - if using this in conjunction with MQTT Recorder you must use the latest NIGHTLY snapshot of MQTT Recorder and MQTT Transmission.


Cirrus Link Modules for Ignition v3.4.10 - April 29, 2020 - Requires Ignition 7.9.13 or newer!

  • MQTT Transmission
    • Improved TLS Certificate upload/management
    • Added option to disable RPC client reconnects
    • Added primary host ID validation
    • Added new Transmission Info tags for outgoing messages
    • Performance improvements in disk-backed history store and forward
    • Fixed BED sequence number wrapping
    • Fixes for Disk-backed Store and Forward
    • Fixed Transmission Info tag updates
    • Fixed Transmission reconnect issues that required module restart when using disk-backed store and forward
    • Fixed alias caching in that could result incorrect aliases being used
    • Fixed issue where NDATA sometimes published before NBIRTH
    • Fixed issue with primary host and lost history publishes
    • Fixed issue with RPC client updates when Server Settings are modified
  • MQTT Engine
    • Improved TLS Certificate upload/management 
    • Removed 'Device Control' tags
    • Fixed issue with sending Rebirth commands
    • Fixes to issues with Tag staling
    • Fixed issue with changes to Namespaces requiring module restart
    • Fixed unsubscribe on shutdown for Custom Namespace topic subscriptions
  • MQTT Distributor
    • Fixes for module shutdown
  • MQTT Recorder
  • AWS Injector
    • Added new Push Policy setting to support round-robin connection pools
    • Fixed issue with Agent restarts on Server Set changes
    • Fixed issue with DEATH message payloads
  • Azure Injector
    • Added new Push Policy setting to support round-robin connection pools
    • Fixed issue with Agent restarts on Server Set changes
    • Fixes to threading issue on failed push attempt
    • Fixes to occasional errors on shutdown
    • Removed cert file upload
    • Fixes for issues with duplicate endpoint configurations
    • Fixed issue with DEATH message payloads
  • Google Cloud Injector
    • Added new Push Policy setting to support round-robin connection pools
    • Fixed issue with Agent restarts on Server Set changes
    • Fixed issue with DEATH message payloads
  • IBM Cloud Injector
    • Added new Push Policy setting to support round-robin connection pools
    • Fixed issue with Agent restarts on Server Set changes
    • Fixed issue with DEATH message payloads
  • EFM Emerson ROC Driver
    • Improved log messages around ROC CRC errors
    • Fixes to serial connection if terminal server is used
    • Fixed issue with configurable hashing algorithm
    • Fixed issue with integer/byte conversions
    • Fixed display issue with parameter types dropdown
    • Fixed synchronization issue
    • Fixed deadlock issue related to licensing
    • Fixed deadlock issue related to Device delete during initial history polling
  • EFM Export
    • None
  • Opto22 groov EPIC and SNAPPAC Driver
    • None


Cirrus Link Modules for Ignition v3.4.9 - Jan 3, 2020 - Requires Ignition 7.9.12 or newer!

  • AWS Injector
    • Improved password handling
    • Added code to prevent potential duplicate configuration records
    • Added NDEATH message support
  • Azure Injector
    • Fixed potential deadlock issue in the MQTT client connection
    • Improved password handling
    • Added code to prevent potential duplicate configuration records
    • Added NDEATH message support
  • EFM Emerson ROC Driver
    • Improved error handling and logging
    • Fixed issue with TLP string type parsing
    • Fixed issue with updating 'Last Timestamp' tag for events and alarms
    • Added logging improvements around byte datatype handling
    • Improved password handling
    • Improved manual history polling
    • Fixed multiple reconnect issues
  • EFM Export
    • None
  • Google Cloud Injector
    • Fixed potential deadlock issue in the MQTT client connection
    • Improved password handling
    • Added code to prevent potential duplicate configuration records
    • Added NDEATH message support
  • IBM Cloud Injector
    • Fixed potential deadlock issue in the MQTT client connection
    • Improved password handling
    • Added code to prevent potential duplicate configuration records
    • Added NDEATH message support
  • MQTT Distributor
    • Fixed potential deadlock issue on shutdown
    • Fixed 'Enabled' tag update when module is updated via the web ui.
    • Improved password handling
    • Fixed memory leak
    • Fixed sync issues around internal DB access
  • MQTT Engine
    • Modified JSON custom namespace handling to upcast datatypes
    • Improved array datatype error handling
    • Improved data metric handling
    • Fixed race condition that could result in an unwanted STATE/primary host ID publish
    • Added support for custom namespace tags to be writable
    • Fixed potential deadlock issue in the MQTT client connection
    • Improved configuration naming conventions
    • Added support for Ignition8 Transmission clients
    • Modified Engine subscriptions to only subscribe to STATE messages when primary host is enabled
    • Fixed restart issue when namespaces are modified
    • Added BD sequence number checks to only honor LWTs when appropriate
    • Made BD sequence number checks optional for non-compliant Sparkplug clients
    • Fixed a sequence number rollover handling
    • Improved password handling
    • Concurrency fixes around reconnect logic
    • Added support for different potential datatypes on sequence numbers
    • Modifed shutdown of Engine callback to prevent ExecutionRejectedExceptions
    • Added support for sequence number buffering/reordering for out of MQTT compliance MQTT Servers
    • Logging improvements around client ID collisions
    • Logging improvements around invalid JSON or String based custom namespaces
    • Modified auto-generated client IDs to be 23 characters or less
  • MQTT Recorder
    • Fixed table filters to include data partitions
    • Added table field filtering on Record fields
    • Fixed MSSQL timestamp conversion issue
    • Fixed NPE on applying of filters
    • Renamed 'Table Filters' to 'Table Settings'
    • Moved default table name/behavior to initially seeded table setting
    • Added field filter validation
    • Logging improvements around no table settings matches on an incoming record
  • MQTT Transmission
    • Improved BIRTH publishing to prevent potential edge case sequence number error
    • Fixed issue with 'Refresh Required' tag that could result in an erroneous state
    • Added support for custom MQTT Record publish tags
    • Logging improvements
    • Fixed potential deadlock issue in the MQTT client connection
    • Improved configuration naming conventions
    • Detached tag change events from blocking thread to improve performance
    • Fixed threadleak issues on connection lost
    • Added auto-incrementing of BD sequence number to ensure uniqueness of each session
    • Added NPE fix when in-order history is enabled
    • Improved password handling
    • Added support for a randomized startup delay to prevent potential data storms
    • Fixed potential NPEs withe null metric names on a BIRTH when in-order history is used
    • Fixed potential sync issues around the Edge Node cache that could result in invalid tag values
    • Fixed aliasing when in-order history is used
    • Modified auto-generated client IDs to be 23 characters or less
    • Fixed connected node counts
    • Fixed NPE that could occur while an Edge Node is unable to connect
    • Fixes to disconnect logic
    • UDT performance improvments
    • Increased support for total Edge Node/Device counts when disk-backed store and forward is enabled
  • Opto22 groov EPIC and SNAPPAC Driver
    • None


Cirrus Link Modules for Ignition v3.4.8 - Sept 17, 2019 - Requires Ignition 7.9.12 or newer!

  • AWS Injector
    • Fixed nested UDT to Sparkplug Template conversions
    • Fix to ensure the birth sequence is pushed on reconnections
    • Improved connection status indicators
  • Azure Injector
    • Fixed nested UDT to Sparkplug Template conversions
    • Added ability to explicitly delete CA certificates from IoT Hub configurations
    • Fix to ensure the birth sequence is pushed on reconnections
    • Improved connection status indicators
  • EFM Emerson ROC Driver
    • First GA release of module
    • Fixed shutdown of history pollers to prevent long shutdown delays
    • Added configurable HistoryTimeStamp to Emerson ROC for record_span_hourly column

    • Fixed internal index tracking to prevent BrokenOptimisticLockExceptions
    • Logging improvements around security logic for ROC and ROC PLUS
    • Fixed iniitialization of signature verification tags
  • EFM Export
    • First GA release of module
    • Improved connection status indicators in Ignition gateway web UI
  • Google Cloud Injector
    • Fixed nested UDT to Sparkplug Template conversions
    • Fix to ensure the birth sequence is pushed on reconnections
    • Improved connection status indicators
  • IBM Cloud Injector
    • Fixed nested UDT to Sparkplug Template conversions
    • Fix to ensure the birth sequence is pushed on reconnections
    • Improved connection status indicators
  • MQTT Distributor
    • No changes from v3.4.7
  • MQTT Engine
    • Improved handling of null values in datasets and UDTs arriving in MQTT payloads
    • Added ability to explicitly delete CA certificates from MQTT Server configurations
    • Fixed shutdown logic to prevent RejectedExecutionExceptions
  • MQTT Recorder
    • First GA release of module
    • Fixed description in Ignition gateway web UI to table filter setting
  • MQTT Transmission
    • Fixed potential duplicate sending of tag change events
    • Fixed nested UDT to Sparkplug Template conversions
    • Improved start/stop logic when history stores are in use
    • Added ability to explicitly delete CA certificates from MQTT Server configurations
    • Added Ignition gateway web UI validators to protect against dual history store usage
  • Opto22 groov EPIC and SNAPPAC Driver
    • Fix to reconnect logic when a strategy is changed to ensure tags properly update


Cirrus Link Modules for Ignition v3.4.7 - Aug 8, 2019

  • AWS Injector
    • Added web form validation to tag agent paths
    • General UDT handling fixes
    • Improved validation of web UI forms
    • Fixes to quality handling in the edge case of null qualities in Ignition
    • Security improvements
    • Fixed potential StringIndexOutOfBoundsException in the tag change event processing
    • Updated code signing certificate
    • Fixed potential NPE on removal of 'Edge Nodes' folder or immediate child folder
    • Fixed potential NotSerializableException when editing group or edge node ID fields
    • Added validation to ensure passwords can not be null, empty, or only whitespace
  • Azure Injector
    • Improved handling when malformed connection string is supplied by the user
    • Added web form validation to tag agent paths
    • General UDT handling fixes
    • Improved validation of web UI forms
    • Fixes to quality handling in the edge case of null qualities in Ignition
    • Security improvements
    • Improved Event Hub startup logic
    • Fixed potential StringIndexOutOfBoundsException in the tag change event processing
    • Updated code signing certificate
    • Fixed potential NPE on removal of 'Edge Nodes' folder or immediate child folder
    • Fixed potential NotSerializableException when editing group or edge node ID fields
    • Added validation to ensure passwords can not be null, empty, or only whitespace
  • EMF Emerson ROC Driver
    • Added Meter Config Mapping with Events
    • Added working Meter Config Transaction Records
    • Fixed TLP Poller NPE
    • Added snapshot inserts
    • Fixes for ROC event processing
    • Added support for security options (username/password/access level) via opcode 17
    • Improvements to history record column names
    • Added configurable secure hash signature to records with validation in MQTT Recorder
    • Regrouped basic ROC settings
    • Fixed serialization issue with regard to web settings
    • Improvements to period history mapping in records
    • Added serial number and logical number columns
    • Update CSV file formats
    • Added active meter/station detection
    • Enhanced detection and handling of meter types
    • Fixed system variables in meter config records
    • Added common column names and added value enum mappings
    • Fixes to ROC alarm conditions
    • Added manual meter configuration record support
    • Added support for history segment TLPs in Meter Configuration records for ROC Plus

    • Optimizations to polling algortihms for alarms, events, and history
    • Fixes to time handling
    • Fixed history segment meter events
    • Fixed ROC PLUS alarm and event timestamps
    • Added system meter event handling
    • Added support for multiple config columns per TLP in EFM mapping

    • Updated code signing certificate
    • Added multiple meter event generation from ROC system variable events
    • Added support for polling ROC Plus Weights & Measures Events
    • Added poller diagnostics Tags for Weights & Measures Events
    • Fixed Alarm/Event timestamp tracking to only use raw dates from ROC device
    • Added merging of TLP templates on import
    • Improvements to re-connection logic
    • Fixes to polling secondary events
    • Modified history polling to use only indices for tracking which history records have already been handled
    • Fixes to internal DB tracking of alarm, event, and history poller indices
  • EFM Export
    • Initial release
  • Google Cloud Injector
    • Added web form validation to tag agent paths
    • General UDT handling fixes
    • Improved validation of web UI forms
    • Fixes to quality handling in the edge case of null qualities in Ignition
    • Security improvements
    • Fixed potential StringIndexOutOfBoundsException in the tag change event processing
    • Updated code signing certificate
    • Fixed potential NPE on removal of 'Edge Nodes' folder or immediate child folder
    • Fixed potential NotSerializableException when editing group or edge node ID fields
    • Added validation to ensure passwords can not be null, empty, or only whitespace
  • IBM Cloud Injector
    • Added web form validation to tag agent paths
    • General UDT handling fixes
    • Improved validation of web UI forms
    • Fixes to quality handling in the edge case of null qualities in Ignition
    • Security improvements
    • Fixed potential StringIndexOutOfBoundsException in the tag change event processing
    • Updated code signing certificate
    • Fixed potential NPE on removal of 'Edge Nodes' folder or immediate child folder
    • Fixed potential NotSerializableException when editing group or edge node ID fields
    • Added validation to ensure passwords can not be null, empty, or only whitespace
  • MQTT Distributor
    • Security improvements
    • Fixed ACL validator to allow topics with spaces
    • Updated code signing certificate
    • Modified distributor to piggy-back off of Ignition's ssl.key keystore instead of having its own Java Keystore
  • MQTT Engine
    • MQTT logging improvements around connection issues
    • Added 'record' data to TX/RX byte count in info metrics
    • Improved JSON payload handling and logging in custom namespaces
    • Fixed potential NPE in handling of String based custom namespaces
    • Added support to update datatype if datatype changes on the edge side
    • Security improvements
    • Fixed UDT issue by adding logic to handle UDT definition lookups
    • Updated code signing certificate
    • Added validation to ensure passwords can not be null, empty, or only whitespace
    • Fixed online/offline edge nodes and device nodes info tag to only update when an actual change occurs
  • MQTT Recorder
    • Added table name configurations and filtering options
    • Added record signature validation
    • Fixes to date/time handling of records
    • Updated code signing certificate
  • MQTT Transmission
    • MQTT logging improvements around connection issues 
    • Fixed JSON serialization to prevent lockup in RAM based History Store
    • Fixed target server URL info tag to update properly
    • UDT publishing fixes to detect difference between UDT instance members and member folders
    • Security improvements
    • Added 'Last Refresh' info tag to denote the last time Transmission was refreshed
    • Added 'Refresh Required' info tag to denote whether or not a refresh is required
    • Updated code signing certificate
    • Fixed potential NPE in custom transmitter record validator
    • Added validation to ensure passwords can not be null, empty, or only whitespace
    • Added validation to prevent same history 'store and forward' instance from being bound to multiple transmitters
    • Modified 'Convert UDT members to normal tags' to be the default setting
  • Opto22 groov EPIC and SNAPPAC Driver
    • Improved tag writing throughput working with massive tag lists and during episodes of congested writes

    • Fixed potential lockup scenario
    • 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

    • Updated code signing certificate


Cirrus Link Modules for Ignition v3.4.6 - Feb 28, 2019

  • AWS Injector
    • Fixed handling of enabling tag writes via Ignition Designer
    • Updated EULA
  • Azure Injector
    • Fixes to MQTT client shutdown mechanism for more deterministic disconnect behavior
    • Fixed handling of enabling tag writes via Ignition Designer
    • Updated EULA
  • EMF Emerson ROC Driver
    • Fixes to alarm polling synchronization
    • Fix for potential deadlock around some OpCode 180 and 181 events
    • Improvements to general history polling
    • Started changes to alarm, event, and history records to improve interfacing to third party systems
    • Improved live configuration validation to ensure working configuration on submit
    • Added support for importing CSV files that had been modified using Excel
    • Added ROC configuration field for handling date/time offset between Ignition and the ROC device
    • Added ROC time synchronization mechanism
    • Adding handling of 'gaps' in history segment configuration
    • Fixed potential deadlock around disconnect/reconnect operations
    • Updated EULA
  • Google Cloud Injector
    • Improved some naming of some of the configuration settings and fixed documentation links
    • Fixes to MQTT client shutdown mechanism for more deterministic disconnect behavior
    • Fixed handling of enabling tag writes via Ignition Designer
    • Updated EULA
  • IBM Cloud Injector
    • Fixed handling of enabling tag writes via Ignition Designer
    • Updated EULA
  • MQTT Distributor
    • Updated EULA
    • Added information metric tag to show number of currently connected clients
  • MQTT Engine
    • Fixed issue with buildup of CMD messages with nested UDT members to be valid
    • Fixes to MQTT client shutdown mechanism for more deterministic disconnect behavior
    • Disabled MQTT Client latency check by default
    • Updated EULA
  • MQTT Recorder
    • Updated EULA
  • MQTT Remote Management (Agent/Manager)
    • Fixes to MQTT client shutdown mechanism for more deterministic disconnect behavior
    • Updated EULA
  • MQTT Transmission
    • Added 'disk-backed' Store and Forward mechanism.
    • Added additional information metric tags for store and forward usage
    • Fixed structure of Sparkplug messages containing UDTs to be as it was in v3.4.4
    • Improved some misleading error log messages
    • Fixes to MQTT client shutdown mechanism for more deterministic disconnect behavior
    • Added better log messages when Ignition arrays datatypes are inappropriately used in Ignition
    • Updated EULA
    • Added information metric tag to show the configured primary host ID for each MQTT client
    • Modified connected status to show 'x of y' clients connected where 'y' is now the number of clients in each server set
    • Fixed issue where MQTT clients could not honor the primary host ID in more complex configurations
  • Opto22 groov EPIC and SNAPPAC Driver
    • Updated EULA


Cirrus Link Modules for Ignition v3.4.5 - Dec 10, 2018

  • AWS Injector
    • Added support for AWS Firehose to Kinesis Streams
    • Added Sparkplug verbs to payload pushes
    • Removed unnecessary UDT properties from payload pushes
    • Improved timestamp handling for messaging that wasn't always accurate
    • Removed pushing of unnecessary tag properties
    • Fixed re-enablement of a stream setting when triggered via the Ignition enable/disable tag
  • Azure Injector
    • Added Sparkplug verbs to payload pushes
    • Removed unnecessary UDT properties from payload pushes
    • Improved timestamp handling for messaging that wasn't always accurate
    • Added support for pushing to Azure Event Hub
    • Removed pushing of unnecessary tag properties
    • Fixed re-enablement of a stream setting when triggered via the Ignition enable/disable tag
  • EMF Emerson ROC Driver
    • Fixed issue where configuration UI would show no TLP templates and poll groups defined when there were indeed some defined
    • Fixed alarm, event, and history rollover on the internal Emerson ROC queues that store this information internally
    • Fixed minute history polling issues
    • Fixed initialization issue when no TLP definitions were present
    • Added support for automatically adding TLP definitions to new devices when they are created
    • Fixed multiple synchronization issues
  • Google Cloud Injector
    • Initial beta release
  • IBM Cloud Injector
    • Added Sparkplug verbs to payload pushes
    • Removed unnecessary UDT properties from payload pushes
    • Improved timestamp handling for messaging that wasn't always accurate
    • Removed pushing of unnecessary tag properties
    • Fixed re-enablement of a stream setting when triggered via the Ignition enable/disable tag
  • MQTT Distributor
    • Fixed edge case where retained LWT messages would not be published
    • Added ability to enable/disable Distributor via an Ignition tag
  • MQTT Engine
    • Fixed issue with Server Type selection
    • Improved LWT handling to denote offline clients
    • Improved timestamp handling for messaging that wasn't always accurate
    • Added tag latching mechanism to support synchronized operations between updateTag calls in MQTT Engine and Ignition tag events
      • This allows for use of tag event scripts and transaction groups as history is flushed from remote Sparkplug clients
    • Added client side certificate support for MQTT clients
    • Added UI validation to MQTT keep alive values
  • MQTT Recorder
    • None
  • MQTT Remote Management (Agent/Manager)
    • None
  • MQTT Transmission
    • Removed unnecessary UDT properties from payload publishes
    • Added UI validator to check for overlapping Sparkplug Group and Edge Node ID overlapping
    • Improved timestamp handling for messaging that wasn't always accurate
    • Cleanup to unnecessary tag property publishing
    • Added enable/disable control to Transmitters
    • Added UI validation to MQTT keep alive values
    • Fixed issue that could result in some UDT members missing from BIRTH messages
  • Opto22 groov EPIC and SNAPPAC Driver
    • None

Cirrus Link Modules for Ignition v3.4.4 - October 11, 2018

  • AWS Injector
    • Added support for enabling/disabling streams on a per stream basis and via a tag in Ignition
    • Fixed gateway configuration navigation error with session token changes
  • Azure Injector
    • Replaced underlying Cirrus Link Sparkplug implementation with Eclipse Tahu implementation
    • Added maximum message size support to limit message sizes per Azure IoT Hub requirements
    • Fixed auto-reconnect issue when connection should be shut down
    • Added checks to prevent multiple connect threads
    • Added session token generation support with configurable token timeout
    • Made reconnect support asynchronous
    • Fixed possibility of accidental LWT from being published
    • Added support for enabling/disabling streams on a per stream basis and via a tag in Ignition
    • Removed duplicate protocols from protocol selector drop-down menu
  • EFM Emerson ROC Driver
    • Initial Beta Release
  • MQTT Distributor
    • Fixed ACL issue that resulted in invalid ACL rejections with spaces in an ACL topic
    • Added configuration time ACL validation of ACLs to prevent configuration time errors
  • MQTT Engine
    • Replaced underlying Cirrus Link Sparkplug implementation with Eclipse Tahu implementation
    • Added support for interfacing to MQTT Recorder and handling Sparkplug Records
    • Added ability to enable/disable specific MQTT server settings
    • Fixed potential deadlock issue when tags are updated while Ignition is starting
    • Added ability to filter namespaces for specific MQTT server settings
    • Fixed issue where tag permissions were being overwritten
    • Fixed some internal concurrency issues
    • Naming convention improvements to some online/offline info tags
  • MQTT Recorder
    • Initial Beta Release
  • MQTT Remote Management (Agent/Manager)
    • Replaced underlying Cirrus Link Sparkplug implementation with Eclipse Tahu implementation
  • MQTT Transmission
    • Replaced underlying Cirrus Link Sparkplug implementation with Eclipse Tahu implementation
    • Added support for sending Sparkplug Records from MQTT Transmission
    • Fixed edge case disconnect issue that could result in failed LWT publish on disconnect
    • Fixed issue where UDT member tag quality may not be published correctly
    • Added support for interfacing to Sparkplug Record providers such as the EFM Emerson ROC module
    • Fixed issue where an Edge Node removal from the default transmitter tag tree could result in the Edge Node to being removed
    • Fixed issue where if aliases were being used the tag name was still also sent
    • Fixes to edge case with in order history flushing in conjunction with primary host id usage
    • Fixed potential deadlock when rebirth occurs at the same time as tag change events
    • Removed UDT tag properties being sent in DATA messages
    • Web UI cleanup to shown fields in the Transmitter configuration list
  • Opto22 groov EPIC and SNAPPAC
    • The module reliably connects with more than one Opto 22 device.
    • Scan time is no longer based on the real-time clock.


Cirrus Link Modules for Ignition v3.4.3 - July 9, 2018

  • AWS Injector
    • Added a thread pool for improved Kinesis push support
    • Added split tag caches to improve performance
  • Azure Injector
    • Added split tag caches to improve performance
  • MQTT Distributor
    • None
  • MQTT Engine
    • Fixed performance issue with handling historical metrics that resulted in an arbitrary long delay
    • Fixed issue to ensure datasets published from a client are properly represented as a dataset on the Engine side
    • Added split tag caches to improve performance
    • Added threading support to message processing to improve performance
    • Fixed handling of tag properties being changed from non-defaults back to defaults
    • Fixed support for null datasets in UDT instances
    • Fixed Java 6 support for Designer/Client components of MQTT Engine
    • Logging optimizations
  • MQTT Transmission
    • Added support for null strings and dates in datasets
    • Added support for an empty 'tag path' string in custom transmitter configuration
    • Fixed support for null datasets in UDT instances
    • General UDT handling improvements
    • Fixed Java 6 support for Designer/Client components of MQTT Transmission
  • MQTT Remote Management (Agent/Manager)
    • Fixed file saving issue with regard to module updates
  • Opto22 groov EPIC and SNAPPAC
    • Fixes to time references


Cirrus Link Modules for Ignition v3.4.2 - May 16, 2018

  • AWS Injector
    • None
  • Azure Injector
    • None
  • MQTT Distributor
    • Fixed issue with anonymous client configuration setting
    • Fixed issue with anonymous client authorizations
    • Fixed issue with disabling of listening ports
  • MQTT Engine
    • Added new Engine Info Tags for tracking Offline/Online Edge Nodes
    • Added new Engine Info Tags for last Edge Node to connect/disconnect
    • Added new "Store Historical Events" general setting
    • Fixed issue with Tag datatype changes
    • Fixed issue with disabling some default namespaces
  • MQTT Transmission
    • Added new "In-Order History" Transmitter setting
    • Added compression support when publishing to AWS Greengrass
    • Fixed issue with UDT sub-type definition modeling
  • MQTT Remote Management (Agent/Manager)
    • None
  • Opto22 groov EPIC and SNAPPAC
    • Controller's scantime is now fully honored
    • If the strategy's CRC changes, an automatic disconnect and reconnect cycle occurs for background strategy downloads


Cirrus Link Modules for Ignition v3.4.1 - March 21, 2018

  • AWS Injector
    • Added configuration options for setting the maximum message size sent to Kinesis
  • Azure Injector
    • None
  • MQTT Distributor
    • Refactored to use to new logging mechanism to improve performance
  • MQTT Engine
    • Refactored to use to new logging mechanism to improve performance
    • Added cache to String split handling to improve performance
    • Added filtering of Node Info and Device Info folder tags if they do arrive via subscribed topics
    • Fixed issue in handling historical metrics with '.' characters in the the tag name
  • MQTT Transmission
    • Refactored to use to new logging mechanism to improve performance
    • Added cache to String split handling to improve performance
    • Fixed issue with custom transmitters when no device id is specified
    • Added filtering of Node Info and Device Info folder tags so they are not transmitted
    • Added better debug messages to timer threads
    • Moved Primary Host ID configuration option to server sets so it is not global across all sets
  • MQTT Remote Management (Agent/Manager)
    • Refactored to use to new logging mechanism to improve performance
  • Opto22 groov EPIC and SNAPPAC
    • Refactored to use to new logging mechanism to improve performance
    • Minor wording fixes to module menuing and text
  • Other
    • Sparkplug Library
      • None


Cirrus Link Modules for Ignition v3.4.0 - Feb 23, 2018


  • Injector (AWS/Azure)
    • Cleanup and fixes to MQTT disconnect/reconnect logic
    • Fixes to LWT handling
    • Optimizations to thread pool for faster push rates
    • Logging cleanup around failed pushes
    • Added automatic splitting of messages too large to be handled by Kinesis
    • Added info tags for
      • Messages Push Time Average
      • Messages Size Max
      • Messages Size Average
      • Messages Failed
  • MQTT Distributor
    • None
  • MQTT Engine
    • Cleanup and fixes to MQTT disconnect/reconnect logic
    • Fixes to LWT handling
    • Removed unnecessary 'configureTag' calls for tags that already exist or don't have custom property values
    • Added 'message processing latency' tag
    • Added threadpools to message handlers to speed up message handling
    • Cleanup to latency info tags to be more descriptive
    • Improved thread cleanup on MQTT Engine shutdown
    • Logging checks to improve message handling speed
  • MQTT Transmission
    • Cleanup and fixes to MQTT disconnect/reconnect logic
    • Fixes to LWT handling
    • Now uses same client ID across reconnects
    • Fixed DBIRTH handling when Edge Node is offline
    • Added tag cache to MQTT Transmission to improve efficiency
  • MQTT Remote Management (Agent/Manager)
    • Initial module release
  • Opto22 groov EPIC and SNAPPAC

    • Timers may now be written when tags are inventoried from the PAC Controller.
    • Retrieving the string table list of tags from PAC Controllers may take a long time. The module scanner code dynamically adjusts the communication timeout during this period to accommodate the extended time
    • Logging messages were a little excessive (especially with bad/undefined controller tags). Excessive messages were removed
    • Modifications were made to support parallel enhancements to an upcoming version of PAC Control software. This update to PAC Control will allow users (within PAC Control) to select which tags to be "public" and thus automatically generate tag lists that the driver module may access
    • Modified wording to include support for groov EPIC platform as well as SNAP PAC
    • Added form validation to better notify users of out of range configuration values
  • Other
    • Sparkplug Library
      • Reverted Paho lib from 1.2.0 to 1.1.1 due to problems with Paho in order delivery at high message rates
      • Added utility method for splitting messages based on maximum JSON encoded size

      • Fixes to utility for splitting JSON messages with single metric
  • No labels