The "significantMagnitude" property is an optional object that specifies the minimum magnitude that a collected value must change to be meaningful. It defaults to {}. It causes the connector to ignore insignificant changes. In other words, a change is saveable when it is greater than or equal to the significant magnitude. Each saved event establishes the baseline value for measuring the next significant change. The magnitude is an absolute value that measures change in the positive or negative. It is also inclusive.
The "significantMagnitude" property must be a positive numeric value greater than 0. The default is "disabled", which lets the connector save insignificant changes.
The significant change rule saves the first collected value unless other rules prevent it. Afterwards, it compares the collected value with the previously saved value and determines if the magnitude of change is greater than or equal to "significantMagnitude". If so, the connector marks the value as saveable because the value has changed a significant amount.
In other words, each saved value becomes the baseline for comparisons to subsequently collected values. The connector saves a collected value when its magnitude of change is greater than or equal to the "significantMagnitude" property.
The following chart shows a connector saving a tag's value because the previous saved change has an adequate magnitude.

- The connector compares the current value to the previously saved value – not to the previously collected value. Thus, the connector ignores collected values until one varies significantly from the last saved value, then it saves that value as the new reference point for meaningful change.
- You can configure the connector to collect many tags in one data collection event. Some tags may have significant changes while others may not. Regardless, the connector saves the current value of each tag specified in the
"onChangeScope"property. Thus, the saved value of some tags may not have changed significantly. If this is not acceptable, create another input for tags that must only save significant changes.
Scenario
A connector may collect rotation speed from a sensor once a millisecond. The rotation speed has insignificant changes that vary by ±19 that you do not want to save. To ignore these insignificant changes, set "significantMagnitude" to 20.
Code example
{
"api": "hub",
"action": "createInput",
"params": {
"inputName": "modbusTCP",
"serviceName": "modbus",
"tableName": "modbusTableTCP",
"dataCollectionIntervalMilliseconds": 1000,
"dataPersistenceStrategy": "onChange",
"maxUnsavedEvents": 3600,
"settings": {
"modbusProtocol": "TCP",
"modbusServer": "127.0.0.1",
"modbusServerPort": 502,
"propertyMapList": [
{
"propertyPath": "rotationSpeed",
"modbusDataAccess": "holdingregister",
"modbusDataAddress": 4003,
"modbusDataType": "int16Signed",
"significantMagnitude": 20
}
]
}
},
"authToken": "replaceWithAuthTokenFromCreateSession"
}
Notes
- The connector uses this property only when the
"dataPersistenceStrategy"is"onChange". - The following properties work together to save meaningful data changes.
"dataPersistenceStrategy""maxUnsavedEvents""normalLowerLimit""normalUpperLimit""deadbandLowerLimit""deadbandUpperLimit""significantMagnitude""onChangeScope""onChangeScopeTags""onChangeTrigger""onChangeTriggerTags"