FairCom Edge provides connectors that collect data from devices, such as PLCs, equipment, and sensors. You configure a connector to poll a device on a regular basis to collect data and save it to an integration table in FairCom's built-in database. A connector can save all values each time it collects them, or it can follow rules to save data conditionally, such as when a collected value is a significant change, within a normal range, and outside a deadband range.
Scenarios
You want to rapidly collect rotation speed, but the sensor is overly sensitive and reports many insignificant changes. You only want to store values that change significantly from previous values.
You want to collect air pressure, but it has short, unpredictable leaks that cause pressure drops. You want to ignore these outliers and store only meaningful pressure values.
You want to collect temperature from an HVAC system once a second. Most collected values are between 70 and 73 degrees Fahrenheit. You want to store outliers that exceed this normal range to automatically send alerts over MQTT.
Examples how conditional data collection rules apply to collected tags
Normal Range Illustration
The following chart shows a connector using the Normal Range Rule to prevent outliers from being saved. A connector only saves changes within the normal range.

Deadband Illustration
The following chart shows a connector using the Deadband Rule to prevent a range of values from being saved. A connector only saves changes outside the deadband range.

Significant Change Illustration
The following chart shows a connector using the Significant Change Rule, which saves the first event and subsequent events that equal or exceed a specified magnitude. The baseline value for measuring a significant change is established by each saved event.

Maximum Unsaved Events Illustration
The following chart shows a connector saving a value every 5 data collection events even though all events are within a deadband. It uses the Maximum Unsaved Events Rule with a value of 4 to ensure there are no more than 4 unsaved events between each save event. The chart also uses a deadband rule with lower and upper limits that prevents all values between 1 and 6 from being saved. Both rules are combined to emphasize that the Maximum Unsaved Events rule periodically saves values regardless of other conditional rules.

Illustration Combining Normal Range and Deadband
The following chart shows a connector combining the Normal Range and Deadband Rules. Both rules must be met before a value is saved. A connector saves values within the normal range but not inside the deadband range.

Illustration Combining Normal Range, Deadband, and Significant Change
The following chart shows a connector combining the Normal Range, Deadband, and Significant Change rules. All three rules must be met before a value is saved. A connector saves a tag's value when it is outside the deadband range, within the normal range, and has changed more than 3 from the previously saved value.

Illustration Combining Normal Range, Deadband, Significant Change, and Maximum Unsaved Events
The following chart shows a connector combining the Normal Range, Deadband, Significant Change, and Maximum Unsaved Events rules. A value must be outside the deadband range, within the normal range, and must change by a magnitude of 3 or more. In addition, if 5 data collection events occur without being saved, the maximum unsaved events rule saves the fifth event even if the other rules would prevent it from being saved.

Conditional Data Collection API
The Conditional Data Collection API refers to the properties in the "createInput" and "alterInput" actions that conditionally define when to save collected values. These properties apply only when "dataPersistenceStrategy" is set to "onChange".
When a connector conditionally saves tag values, it requires the following information:
- What tags to save
- When to save tags
- What qualifies as a change
- For example, a connector may choose not to save values that fluctuate insignificantly, are outliers, or occur within a deadband zone.
The following properties in the "createInput" and "alterInput" actions work together to answer these questions.
- The
"onChangeScope"property works with"onChangeScopeTags"to define which tags to save. - The
"onChangeTrigger"property works with"onChangeTriggerTags"to define when to save tags. It triggers a change under one of the following conditions:- Any tag collected by the connector has changed
- All tags collected by the connector have changed.
- Any tag specified in
"onChangeScopeTags"has changed - All tags specified in
"onChangeScopeTags"have changed.
- The
"maxUnsavedEvents"property saves tags periodically – even if they have not changed. - The
"deadbandLowerLimit"and"deadbandUpperLimit"properties define the boundaries of the deadband zone. The connector ignores values that are inside the deadband zone. It does not ignore values outside the deadband zone or that transition into or out of the zone. - The
"normalLowerLimit"and"normalUpperLimit"properties define the boundaries of normal values. A value outside of this range is an outlier. The connector ignores outliers. - The
"significantMagnitude"property defines a significant magnitude of change. The connector ignores an insignificant data change.
Conditional Data Persistence Rules
Note: If you choose not to specify values for the conditional data persistence properties, the connector saves every value it collects.
When a connector's "dataPersistenceStrategy" property is "onChange", the connector uses the following optional rules to ensure a collected value qualifies as a meaningful change and can be saved to an integration table:
Maximum Unsaved Events Rule
- The connector saves values periodically regardless of the other rules.
- You can use it to ensure values filtered out by the other rules are saved periodically.
Deadband Rule
- The connector saves values that are outside the deadband range.
- A deadband is a range of values that are ignored by the connector.
- The deadband range is defined by the inclusive
"deadbandLowerLimit"and"deadbandUpperLimit"properties. - The connector evaluates deadband first because it takes precedence over the other rules.
- You can set the deadband to a normal range of values, and the connector stores outliers for sending alerts.
- You can set the deadband to a range of values inside a normal range of values to exclude the inner range from being saved. This is equivalent to creating two normal ranges of values: one above the deadband and one below.
Normal Range Rule
- The connector saves values that are inside the normal range. Thus, this rule does not save outliers.
- The range is defined by the inclusive
"normalLowerLimit"and"normalUpperLimit"properties. - The connector evaluates the Normal Range Rule after the Deadband Rule.
Significant Change Rule
- The connector saves significant changes.
- You can use it to filter out insignificant values, such as noise and turbulence.
- A value is a significant change when its magnitude equals or exceeds the value of the inclusive
"significantMagnitude"property. - Each saved event establishes the baseline value for measuring the next significant change.
- The connector evaluates the significance of changes after deadband and outliers.