Capture edge 2.2.0
This is a feature release, which includes new features. Only looking for fixes? Check the latest stable release: 2.1.x. This lists all changes since 2.1.13. For earlier changes in 2.1.x, see 2.1.1 to 2.1.13.
Features
- Logging: The number of retained log files can be configured using these environment variables:
- `CAPTURE_LOG_FILE_COUNT_LIMIT`
- `CAPTURE_LOG_ERROR_FILE_COUNT_LIMIT`
An overview of all supported environment variables to configure the logging:
Setting | Environment Variable | Description | Default Value |
---|---|---|---|
Log path | CAPTURE_LOGS_DIR | Path where logs are stored | /opt/capture/service/logs (Linux) Installationfolder/logs (Windows) |
Log file limit | CAPTURE_LOGS_MAX_SIZE | Maximum size of a single log file (bytes) | 104857600 (100 MB) |
Separate error log files | CAPTURE_SEPARATE_ERROR_LOG | Whether to create separate error log files | true |
Retained log files | CAPTURE_LOG_FILE_COUNT_LIMIT | Maximum number of rotated log files kept | 14 |
Retained error log files | CAPTURE_LOG_ERROR_FILE_COUNT_LIMIT | Maximum number of rotated error log files | 30 |
- CloudManager: Artifacts. Artifacts can be used to send key-pair values and/or files from the cloud to the edge.
- CloudManager: Autofixing of missing measurement in sync list (autofixing incorrect config).
- Redis Streams: Support for Redis key patterns.
- TimescaleDB: Support for TimescaleDB local database, both narrow table and wide table.
- Collector: System monitoring generates connection state timeseries data for all connections. This allows to track when a connection was (dis)connected.
- Collector: RealTimeMqttSyncer. With the realtime MQTT syncer it is possible to sync points to an MQTT broker, for example the Capture Platform MQTT broker, directly after the point is generated. Depending on the configuration the point is or is not inserted into the local db anymore. For now this can only be configured through the config JSON in the CollectorSettings. Example:
"realTimeSyncDestinations": [
{
"type": 0,
"id": "51ca9420-4f2c-4a2d-9ef3-f35c423d7729",
"enabled": true,
"name": "Capture Mqtt",
"endpoint": "wss://emqx.com.dev.vintecc.cloud:443/mqtt",
"username": null,
"password": null,
"useCaptureCredentials": true,
"skipLocalDatabase": true,
"syncEverything": true,
"measurementsToSync": null,
"variablesToSync": null,
"queueCapacity": 100000,
"maxSendThreads": 8
}
],
- Collector: Optionally set a timeout before data can be written to a local database. Set the JSON property
WriteToDbDelayMs
. This can be useful to allow all data for the same timestamp to be merged before it is written to a CSV local db. - Collector: Influx local db: When data has an invalid format, corrupt fields are removed from the rows and the insert is retried.
- Collector: TLS can be disabled for the MqttMirror with the boolean custom JSON field
DisableTls
. - Collector: Support for extra types in handshake mechanism. Newly supported types in bold: Int32, UInt32, Int16, UInt16, Int64, UInt64, Boolean, Single, Double, String, Byte
- Collector: New connection type: Kafka
- Collector: New connection type: Redis Streams
- CloudManager UI: Edge Bus settings page
- OpcUa: Support for ApplicationCertificate: Set the path to the unencrypted pem file in the custom settings of the connection, property
ApplicationCertificate
. - ADS: Subscription cycle time can be overridden on connection and variable level with the custom option
CycleTime
. Unit: milliseconds. - OpcUa: By default the sample interval of an OpcUa subscription is the Timer value of the Capture variable, or 10ms if no timer is set. This can now be overridden using the custom property
SampleInterval
(in ms) on Connection and Variable level. - Mirroring: It is now possible to define multiple mirrors, of the same or different types. This allows some variables to be mirrored to Opc UA, others to MQTT, yet others to both. By creating multiple MQTT mirrors some variables can be mirrored to a certain root topic, while others are mirrored to another root topic (for example public/private data).
- Syncer: Option to delete files after syncing. Set checkbox
Delete local files after syncing
on the sync settings. - Syncer: Automatic cleanup of old files if disk is (almost) full.
- Syncer: Fallback mechanism for sync rules. With the options FallbackAfter and FallbackDuration on sync rules, you can make sure some measurements get synced for X amount of time, if the required network connections have not been online for Y amount of time. For example: some high-resolution measurements should not be synced when Wifi connection is down, unless it has been down for 1 day, then this data can be synced for 10 minutes.
- Syncer: Optionally add SyncTime field to points before syncing. Set the JSON property
SyncSettings.EnhancePointsWithSyncTime
totrue
to add the sync time (UTC) to every point sent to the cloud. - Syncer: Syncing an external NATS Jetstream local db. Writing to NATS Jetstream is currently not supported.
- Syncer: Failsafe mechanism for sync jobs. Failed sync jobs will be detected and restarted.
Improvements
- General: Improved logging, performance, and automated test coverage. All improvements included in 2.1.1 to 2.1.13.
- OpcUa: Upgraded Traeger OpcUa client from 2.20.4 to 2.50.1. Changelog
Fixes
All fixes included in 2.1.1 to 2.1.14.
- Modbus: Fixed issue with data being inserted in incorrect table if registers of different measurements are read in one group.
Known Issues
No issues known at this time. Noticed a problem? Contact us at capture-support@vintecc.com.
Release created on: 13 October 2025 09:37:38