Cirrus Link Modules for Ignition 8.x
Expand/Collapse All to allow Search
v4.0.25 Nov 12, 2024
MQTT Distributor
What's New or Improved
- Added documentation property to info tags to describe each tag
MQTT Engine
What's New or Improved
- Added documentation property to info tags to describe each tag
- Made alarm persistence location configurable
- Added documentation property to info tags to describe each tag
- Added the 'ActiveSubscription' Engine Info tag
- Modified python script APIs to not return private keys in plain text
- Logging improvements
- Added support for Alarm ACKs even when command blocking is enabled
- Moved default H2 DB location for Windows from 'data' to 'user-lib'
What's Fixed
- Fixed alarm handling of 'ack time', 'clear time', and 'display path'
- Fixed potential erroneous tag states when both UNS and default Sparkplug tags were enabled
- Fixed issue that could result in incorrect filters when filtering on a per server basis
- Fixed alarm ACKs when using Engine on Windows OS
- Fixed logging and feedback when an alarm is ACKed and the associated Edge Node is offline
MQTT Transmission
What's New or Improved
- Added support for UNS Transmitters
- Added support for alarm 'notes'
- Made disk-backed history store persistence location configurable
- Added documentation property to info tags to describe each tag
- Modified python script APIs to not return private keys in plain text
- Moved default H2 DB location for Windows from 'data' to 'user-lib'
- Improved Exception handling when building BIRTHs to denote datatype mismatches
- Added RedundnacyTransitionActiveDelay config option to Transmission to allow redundant gateway to stop before the active one starts
What's Fixed
- Fixed alarm handling of 'ack time', 'clear time', and 'display path'
- Fixed a deadlock that could occur on rebirth requests or in certain startup scenarios
- Fixed SecurityContext handling when not validating writes against a supplied security context
- Fixed issue that could result in in-order history flushing not being honored when a Transmission server config is updated
- Fixed NPE when alarm config contained unknown property
- Fixed situations that could result in an 'unregistered' alarm
- Fixed updating/unregistering a disabled Transmitter
AWS Injector
What's New or Improved
- Made disk-backed history store persistence location configurable
- Added documentation property to info tags to describe each tag
- Moved default H2 DB location for Windows from 'data' to 'user-lib'
- Improved Exception handling when building BIRTHs to denote datatype mismatches
- Added support for 'SendAllProps' to send all default tag properties in a BIRTH
What's Fixed
- Fixed dynamic handling of services after creating, updating, or deleting agents
- Fixed issue that could result in startup or shutdown of wrong Kinesis endpoint on config changes
- Modified JSON Metrics to always include a value even if it is null
Azure Injector
What's New or Improved
- Made disk-backed history store persistence location configurable
- Added documentation property to info tags to describe each tag
- Modified python script APIs to not return private keys in plain text
- Moved default H2 DB location for Windows from 'data' to 'user-lib'
- Improved Exception handling when building BIRTHs to denote datatype mismatches
- Added support for 'SendAllProps' to send all default tag properties in a BIRTH
What's Fixed
- Fixed dynamic handling of services after creating, updating, or deleting agents
- Modified JSON Metrics to always include a value even if it is null
Google Cloud Injector
What's New or Improved
- Made disk-backed history store persistence location configurable
- Added documentation property to info tags to describe each tag
- Modified python script APIs to not return private keys in plain text
- Moved default H2 DB location for Windows from 'data' to 'user-lib'
- Improved Exception handling when building BIRTHs to denote datatype mismatches
- Added support for 'SendAllProps' to send all default tag properties in a BIRTH
What's Fixed
- Fixed dynamic handling of services after creating, updating, or deleting agents
- Modified JSON Metrics to always include a value even if it is null
EFM ABB Totalflow
What's New or Improved
- Added initial support for AAR Alarms
What's Fixed
- Fixed an issue with incorrect EFM device connection status when 2-hours trial expires
EFM Emerson ROC
What's Fixed
- Fixed potential migration issue with global TLP handling when upgrading from Ignition 7 to 8
- Fixed an issue with incorrect EFM device connection status when 2-hours trial expires
Opto22 groov EPIC and SNAPPAC Driver
v4.0.24 Sept 16, 2024
MQTT Engine
What's Fixed
- Fixed Alarm handling to support clearing of alarms before acknowledgement
Opto22 groov EPIC and SNAPPAC Driver
v4.0.23 Sept 13, 2024
MQTT Distributor
What's Fixed
- Fixed issue that could cause Distributor to disconnect clients due to not receiving a PINGRESP even when data in still being received
- Fixed socket close handling when no data is sent to support health checks
MQTT Engine
What's New or Improved
- Added support for Alarm events via MQTT with Acknowledgments
- Added ‘UNS Tag Tree’ support
- Added ‘Delete UNS’ control tags to better support Edge Node deletion in UNS namespaces
- Added info tags in MQTT Engine to better track the inbound message queue health
- Added configuration option for inbound message thread pool sizing
- Removed ‘URL validation’ is MQTT Engine that prevented duplicate IP/hostname definitions
- Added support for Python system.cirruslink.engine.publish to take either a Server Name or a Server Set name
- Added support for a configurable rebirth debounce delay instead of a hardcoded 5s
What's Fixed
- Improved thread/queue handling for inbound messages to prevent ‘rebirth storms’
- Fixed issue where MQTT Engine ‘overrides’ UDT instance member properties if the user has manually modified the Engine side UDT definition member properties
- Fixed Engine server set migration to create a server set per server definition from Engine prior to adding server set support
- Fixed issue that could cause MQTT Engine to not properly publish rebirth requests in some cases
MQTT Transmission
What's New or Improved
- Added support for Alarm events via MQTT with Acknowledgments
- Modified RPC clients to only be one per server set
- Added a configuration option to delay birth fetching to allow consumption of tag change events that may occur with timestamps before ‘now’ and birth fetching
- Added support for handling of multiple metrics in NCMD and DCMDs
- Moved payload logging from TransmissionClientManager to TransmissionClient
What's Fixed
- Fixed issue where MQTT Engine ‘overrides’ UDT instance member properties if the user has manually modified the Engine side UDT definition member properties
- Fixed birth creation to reconcile the birth with tag change events during the birth building process
- Fixed issue that could result in duplicate or incorrect generated aliases
- Fixed issue that could cause Transmission to erroneously flush history when in-order after failing to publish a birth sequence
- Fixed timestamp handling of Array, Document, and Dataset types now that Ignition resolved timestamp handling in Ignition 8.1.43
- Added synchronization around RPC client startup/shutdown to prevent potential thread leak
- Fixed escaping of table names in the disk-backed history store to support ‘-’ chars in Sparkplug IDs
- Added/fixed support for null dataset values
AWS Injector
What's New or Improved
- Added a configuration option to delay birth fetching to allow consumption of tag change events that may occur with timestamps before ‘now’ and birth fetching
What's Fixed
- Fixed birth creation to reconcile the birth with tag change events during the birth building process
- Fixed timestamp handling of Array, Document, and Dataset types now that Ignition resolved timestamp handling in Ignition 8.1.43
- Fixed escaping of table names in the disk-backed history store to support ‘-’ chars in Sparkplug IDs
- Added/fixed support for null dataset values
Azure Injector
What's New or Improved
- Added a configuration option to delay birth fetching to allow consumption of tag change events that may occur with timestamps before ‘now’ and birth fetching
What's Fixed
- Fixed birth creation to reconcile the birth with tag change events during the birth building process
- Fixed timestamp handling of Array, Document, and Dataset types now that Ignition resolved timestamp handling in Ignition 8.1.43
- Fixed escaping of table names in the disk-backed history store to support ‘-’ chars in Sparkplug IDs
- Added/fixed support for null dataset values
Google Cloud Injector
What's New or Improved
- Added a configuration option to delay birth fetching to allow consumption of tag change events that may occur with timestamps before ‘now’ and birth fetching
What's Fixed
- Fixed birth creation to reconcile the birth with tag change events during the birth building process
- Fixed timestamp handling of Array, Document, and Dataset types now that Ignition resolved timestamp handling in Ignition 8.1.43
- Fixed escaping of table names in the disk-backed history store to support ‘-’ chars in Sparkplug IDs
- Added/fixed support for null dataset values
EFM ABB Totalflow
What's Fixed
- Improved ABB CSV parsing to prevent edge case Exceptions
- Fixed migration bug around CSV file handling
- Potential problem when parsing @ROWLOOP @REPLACE with increment above 1
Opto22 groov EPIC and SNAPPAC Driver
v4.0.22 June 20, 2024
MQTT Distributor
What's Fixed
- Fixed connection issues with clients with no specified client ID
- Fixed possible minor delay in processing QoS 2 messages
- Fixed packet identifier warnings in log
MQTT Transmission
What's New or Improved
- Added URL validation to server records
- Added a thread pool to hand off history store writes to keep data flowing smoothly out of Transmission
- Added support for 'maximum history store size' to prevent history from overrunning memory or disk
- Added support for AWT Colors in DataSets
- Added a config UI validator to ensure PHID is set when file 'auto-publish' is enabled as it is required
- Added support for Array, DataSets, and Document tag properties
- Made the H2 TCP port configurable
- General logging cleanup
- Increated Transmission RPC clients to support 500 in-flight MQTT messages
- General performance improvements to disk-backed history storage
What's Fixed
- Fixed History Store category headings in the config UI
- Fixed handling of restarted tags to ensure they properly return to a good quality
- Fixed issue that prevented proper publishing when child UDTs are deleted from a parent UDT and 'convert UDTs' is enabled
- Moved history store on disk to the 'data' directory to better support redundancy and gateway backups
- Fixed permissions issue that prevented Transmission from browsing tags when read permissions had been modified on the tag provider
- Various fixes to UDT collision detection
- Fixed startup race condition that could result in invalid initial values
- Various fixes to Transmission info tags
- Fixed potential NPEs when fetching existing tag paths
- Fixed handling of numeric parameter values in UDTs
AWS Injector
What's New or Improved
- Added support for EC2 Instance IAM Roles as an alternative to AWS access/secret keys
- Added support for 'maximum history store size' to prevent history from overrunning memory or disk
- Added support for AWT Colors in DataSets
- Added support for Array, DataSets, and Document tag properties
- Made the H2 TCP port configurable
- General logging cleanup
- General performance improvements to disk-backed history storage
What's Fixed
- Fixed handling of restarted tags to ensure they properly return to a good quality
- Moved history store on disk to the 'data' directory to better support redundancy and gateway backups
- Fixed permissions issue that prevented Injectors from browsing tags when read permissions had been modified on the tag provider
- Fixed startup race condition that could result in invalid initial values
- Fixed potential NPEs when fetching existing tag paths
- Fixed handling of numeric parameter values in UDTs
- Fixed dynamic configuration UI handling in Kinesis configuration
- Fixed support for Kinesis Firehose configurations
Azure Injector
What's New or Improved
- Added support for 'maximum history store size' to prevent history from overrunning memory or disk
- Added support for AWT Colors in DataSets
- Added support for Array, DataSets, and Document tag properties
- Made the H2 TCP port configurable
- General logging cleanup
- General performance improvements to disk-backed history storage
What's Fixed
- Fixed handling of restarted tags to ensure they properly return to a good quality
- Moved history store on disk to the 'data' directory to better support redundancy and gateway backups
- Fixed permissions issue that prevented Injectors from browsing tags when read permissions had been modified on the tag provider
- Fixed startup race condition that could result in invalid initial values
- Fixed potential NPEs when fetching existing tag paths
- Fixed handling of numeric parameter values in UDTs
- Fixed potential NPE when using certificate based auth and no CA cert is defined
Google Cloud Injector
What's New or Improved
- Added support for 'maximum history store size' to prevent history from overrunning memory or disk
- Added support for AWT Colors in DataSets
- Added support for Array, DataSets, and Document tag properties
- Made the H2 TCP port configurable
- General logging cleanup
- General performance improvements to disk-backed history storage
What's Fixed
- Fixed handling of restarted tags to ensure they properly return to a good quality
- Moved history store on disk to the 'data' directory to better support redundancy and gateway backups
- Fixed permissions issue that prevented Injectors from browsing tags when read permissions had been modified on the tag provider
- Fixed startup race condition that could result in invalid initial values
- Fixed potential NPEs when fetching existing tag paths
- Fixed handling of numeric parameter values in UDTs
EFM ABB Totalflow
What's New or Improved
- Added 'Flow Factor', 'Flow Time', and 'Total Volume' column support
What's Fixed
- Fixes to migration code for Totalflow applications
- Fix to restart polling when auto-discovery completes and ON_DEMAND is being used
- Fixed flowtime calculation as it was improperly being multiplied by 60
EFM Emerson ROC
What's New or Improved
- Added 'Flow Factor', 'Flow Time', and 'Total Volume' column support
Opto22 groov EPIC and SNAPPAC Driver
v4.0.21 January 26, 2024
MQTT Distributor
What's New or Improved
- Added custom property support for 'maxOutboundQueueSize'
MQTT Engine
What'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
What's Fixed
Fixed potential 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
MQTT Transmission
What's New or Improved
- 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
What's Fixed
- Fixed 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
MQTT Recorder
What's New or Improved
- Made 'hashing algorithm' names consistent across all modules
AWS Injector
What'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
What'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
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
Azure Injector
What'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
What'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
- Fixed potential IoT Hub deadlock
- Removed issue that could result in Ignition shutdown when using disk-backed history store
Google Cloud Injector
What's New or Improved
- 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
What'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
EFM ABB Totalflow
What's New or Improved
- Made 'hashing algorithm' names consistent across all modules
EFM Emerson ROC
What's New or Improved
- Made 'hashing algorithm' names consistent across all modules
Opto22 groov EPIC and SNAPPAC Driver
v4.0.20 November 22, 2023
MQTT Transmission
What'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
AWS Injector
What'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
Azure Injector
What'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
Google Cloud Injector
What'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
EFF ABB Totalflow Modules
Opto22 groov EPIC and SNAPPAC Driver
v4.0.19 November 6, 2023
MQTT Distributor
What's New or Improved
- Improved logging on clearing of retained messages
What's Fixed
- Fixed log messages when client connections pre-empt existing connections with same client ID
MQTT Engine
What's 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
MQTT Transmission
What'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
- 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
What's Fixed
- Fixed issue 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
AWS Injector
What'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
What'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 '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
Azure Injector
What'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
- Added configurable SAS token expiration length
What'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 '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
Google Cloud Injector
What'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
What'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 '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
EFM ABB Totalflow Module
What's New or Improved
- Added Python scripting APIs to copy configs
What's Fixed
- Fixed handling of empty CFX publish cron expressions
- Fixed a web UI validation issue 'Publish Files Folder' field
EFM Emerson ROC Module
What's New or Improved
- Added Python scripting APIs to copy configs
- Improved CRC calculation on ROC messages to account for padding
What's Fixed
- Fixed handling of empty CFX publish cron expressions
- Fixed a web UI validation issue 'Publish Files Folder' field
Opto22 groov EPIC and SNAPPAC Driver
v4.0.18 August 11, 2023
MQTT Distributor
What's New or Improved
- Added additional 'Distributor Info' tags
MQTT Engine
What'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
MQTT Transmission
What's Fixed
- Fixed 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
AWS Injector
What's New or Improved
- Added Edge Node refresh support
- Improved Agent and Set refresh/restart logic
What's Fixed
- Fixed issue where BIRTH message might not get sent on Kinesis Stream enable/disable
Azure Injector
What's New or Improved
- Added Edge Node refresh support
What's Fixed
- Fixed IoT Central connections not publishing BIRTH
Google Cloud Injector
What's New or Improved
- Added Edge Node refresh support
Opto22 groov EPIC and SNAPPAC Driver
v4.0.17 June 29, 2023
MQTT Distributor
What's New or Improved
- Updated the code signing certificate
- Improved logging around PUBLISH and DISCONNECT packet handling
What's Fixed
- Improved session tracking and expiring of expired/disconnected sessions
- Fixed CONNACK error code for failed authentication
MQTT Engine
What'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
What'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
MQTT Transmission
What's New or Improved
- Updated the code signing certificate
- 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
What's Fixed
- Fixed 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
MQTT Recorder
What's New or Improved
- Updated the code signing certificate
AWS Injector
What'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
What's Fixed
- Fixed FlushPeriod return type in the Python scripting API
- Fixed cache updating issue when handling with disabled tags
Azure Injector
What'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
What's Fixed
- Fixed cache updating issue when handling with disabled tags
Google Cloud Injector
What'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
What's Fixed
- Fixed cache updating issue when handling with disabled tags
EFM ABB Totalflow Module
What's New or Improved
- Updated the code signing certificate
What's Fixed
- Fixed deletion and validation of global definitions and their references
EFM Emerson ROC Module
What's New or Improved
- Updated the code signing certificate
Opto22 groov EPIC and SNAPPAC Driver
What's New or Improved
- Updated the code signing certificate
v4.0.16 April 17, 2023
MQTT Distributor
What's Fixed
- Fixed thread management issue when clients continually reconnect with bad credentials
MQTT Engine
What's Fixed
- Fixed 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
MQTT Transmission
What's New or Improved
- Modified 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
What's Fixed
- 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
MQTT Recorder
What's Fixed
- Fixed various RPC calls for Python scripting consistency
AWS Injector
What's New or Improved
- Added support for 'ExcludeFromPayload' to prevent specific UDTs from being published via MQTT
What's Fixed
- Fixed 'Enabled' property change event reporting on UDT member tags
Azure Injector
What's New or Improved
- Added support for 'ExcludeFromPayload' to prevent specific UDTs from being published via MQTT
What's Fixed
- Fixed various RPC calls for Python scripting consistency
- Fixed 'Enabled' property change event reporting on UDT member tags
Google Cloud Injector
What's New or Improved
- Added support 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
What's Fixed
- Fixed 'Enabled' property change event reporting on UDT member tags
EFM ABB Totalflow Module
What's New or Improved
- Improved CFX filename conventions
What's Fixed
- Added support to ensure application names during auto-discovery are unique
- Fixed potental NPEs when updating meter and periodic config mappings
EFM Emerson ROC Module
What's New or Improved
- Improved CFX filename conventions
- Modified Opcode table support to include the 'L' value in tag names to prevent name overlap
What's Fixed
- 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
Opto22 groov EPIC and SNAPPAC Driver
v4.0.15 February 9, 2023
MQTT Distributor
What's New or Improved
- Added return values for Python scripting API CRUD operations
MQTT Engine
What'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
What's Fixed
- Fixed status indication for devices that fail to subscribe to the MQTT Server
- Fixed Elecsys support for '_' chars in messages
MQTT Transmission
What's New or Improved
- Added return values for Python scripting API CRUD operations
What'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
MQTT Recorder
What's New or Improved
- Added return values for Python scripting API CRUD operations
AWS Injector
What's New or Improved
- Added 'refresh required' info tag and removed the 'auto-discover' feature
- Added return values for Python scripting API CRUD operations
What'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
Azure Injector
What's New or Improved
- Added 'refresh required' info tag and removed the 'auto-discover' feature
- Added return values for Python scripting API CRUD operations
What'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
Google Cloud Injector
What's New or Improved
- Added 'refresh required' info tag and removed the 'auto-discover' feature
- Added return values for Python scripting API CRUD operations
What'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
EFM ABB Totalflow Module
What's New or Improved
- 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
What'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
EFM Emerson ROC Module
What's New or Improved
- 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
What's Fixed
- Fixed race condition that resulted in errors when the history poller is stopped
Opto22 groov EPIC and SNAPPAC Driver
v4.0.14 December 14, 2022
MQTT Distributor
What's New or Improved
- Replaced core MQTT Server code with clean room implementation
MQTT Engine
What's Fixed
- Fixed 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
MQTT Transmission
What's Fixed
- Fixed 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
AWS Injector
What'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
What'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
Azure Injector
What'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
What'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
Google Cloud Injector
What'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
What'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
IBM Cloud Injector
What'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
What'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
Opto22 groov EPIC and SNAPPAC Driver
v4.0.13 September 21, 2022
MQTT Engine
What'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 sets
MQTT Transmission
What'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
What'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
Google Cloud Injector
What's New or Improved
- Added session token auto-refresh
Opto22 groov EPIC and SNAPPAC Driver
v4.0.12 July 28, 2022
MQTT Distributor
What's New or Improved
- Improvements to handling of redundancy synchronization after record updates
MQTT Transmission
What's 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
What'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
MQTT Recorder
What's New or Improved
- Improvements to handling of redundancy synchronization after record updates
AWS Injector
What's New or Improved
- Improvements to handling of redundancy synchronization after record updates
Azure Injector
What'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
IBM Cloud Injector
What's New or Improved
- Improvements to handling of redundancy synchronization after record updates
EFM ABB Totalflow Module
What's New or Improved
- Improvements to handling of redundancy synchronization after record updates
- Added support for SUCOR type applications
What's Fixed
- Prevent the one-short record poll after reconnect when in persistent mode
EFM Emerson ROC Module
What'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 updates
Opto22 groov EPIC and SNAPPAC Driver
What's New or Improved
- Improvements to handling of redundancy synchronization after record updates
v4.0.11 June 1, 2022
MQTT Distributor
What's Fixed
- Fixed Python Scripting API bug around updating Users
MQTT Engine
What's Fixed
- 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
MQTT Transmission
What's New or Improved
- 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
What's 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
MQTT Recorder
What's New or Improved
- Added Python scripting API for scripted configuration
AWS Injector
What's New or Improved
- Improved Birth caching to increase performance
- Removed excessive calls to 'getTagConfigsAsync' to increase performance
What'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'
Azure Injector
What's New or Improved
- Improved Birth caching to increase performance
- Removed excessive calls to 'getTagConfigsAsync' to increase performance
What'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
Google Cloud Injector
What'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
What'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'
IBM Cloud Injector
What'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
What'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'
EFM ABB Totalflow Module
What's New or Improved
- Added Tag Path validation to configuration
What's Fixed
- Fixed meter type handling during auto-discovery when using applications other than AGA3, SUAGA3, AGA7, and SUAGA7
EFM Emerson ROC Module
What's New or Improved
- Added Tag Path validation to configuration
Opto22 groov EPIC and SNAPPAC Driver
Release notes for earlier module versions available here