How Enum Mappings affect FDD & FTT Rules

How Enum Mappings affect FDD & FTT Rules

Introduction

This document explains how Enum Mappings impact the rules used by our Fault Detection and Diagnostics (FDD) and Functional Testing Tool (FTT) within the platform. It highlights the importance of correctly configuring enumMappings to ensure these rules work as intended.

What Are Enum Mappings?

Enum mappings play a vital role in our platform. They define how specific data points are understood and processed by FDD and FTT rules. Simply put, they link raw data values to their intended meanings, enabling accurate fault detection and diagnostics.

How Enum Mappings Impact FDD & FTT Rules

Example Scenario

Imagine a case where Enum Mapping Blocks are used in FDD rules to process data points from different sources. One common challenge arises when setting up enumMappings for a particular group of enumerated values.

Common Issue

When processing data points with enumerated values, the system may receive a range of possible values from the API. For example, enums like the following might be included:

  • "Disconnected"

  • "Connected"

  • "Factory_Default"

  • "Long_Failed"

  • "Initializing"



Enum Mappings and Their Importance

If only two values, such as "Connected" and "Disconnected", are mapped correctly, these are the only ones recognized as valid "Enum Values." Other values, like "Factory_Default" or "Long_Failed", will not be identified as enums unless they are explicitly defined. When unmapped, their status defaults to "Unknown" (an example is provided later in the document).

In programming terms, this means enum values are processed like this:

"pointEnum": [

"Disconnected",

"Connected",

"Factory_Default",

"Long_Failed",

"Initializing"

],

"readMap": [

{

"key": "Connected",

"value": "Connected"

},

{

"key": "Disconnected",

"value": "Disconnected"

}

],


On KODE OS, mappings like the following apply:

  • "Connected" → "Connected"

  • "Disconnected" → "Disconnected"

Mappings can also group multiple related values under one interpreted category. For example:




"Fan Only" => translates to  "Cooling"

"Cool_Stage_1" => translates to  "Cooling"

"Cool_Stage_2" => translates to "Cooling"

"Economizer Cooling" => translates to "Cooling"

"Emergency_Heat" => translates to "Heating"

"Heat_Stage_1" => translates to "Heating"

"Hot_Gas_Reheat" => translates to "Heating"

... and so on

Why Accurate Enum Mappings Matter

It is critical to configure enumMappings precisely within the platform (e.g., BMS).

Misconfigured or missing mappings can lead to:

  • False interpretations of data.

  • Incorrect fault detection, affecting the reliability of FDD rules.


AlertImportant Note: Enumerated values are case-sensitive.

Case Sensitivity Example

If the expected enum value is "Disconnected", but the system receives "DISCONNECTED" or "LONG_FAILED", it will not match any predefined mappings.

For example:


Expected enum values:

  • "Disconnected"

  • "Long_Failed"


Reported values:

  • "DISCONNECTED"

  • "LONG_FAILED"


When values don't match, the system assigns a status of "Unknown", which disrupts fault generation in FDD rules.


Example output:


{

"curStatus": "ok",

"curVal": "DISCONNECTED",

"mappedValue": "Unknown",

"time": "2024-05-06T18:56:46.360+0000",

"changelog": "CHANGE"

}

  

Scenario 2: Enum Mappings Not Configured Correctly

If the Ontology Report shows unexpected results, it indicates that the readMap values are not configured properly.

This misconfiguration prevents the generation of events because required mappedValues like "Normal" and "Alarm" are missing. These values are essential for the FDD and FTT systems to function correctly and trigger events as expected.

Without these mappings, the system cannot interpret the data points properly, leading to errors and missed event generation.

InfoKey takeaway: Ensure all required enumMappings, such as "Normal" and "Alarm", are accurately defined to avoid disruptions in event processing.





    • Related Articles

    • Enum Mapping

      KODE OS is taking steps to unlock the full power of automation and control. Now with the ability to map enums into the universal language that powers KODE OS, our functional testing , fault detection, optimized start stop, and insights will work at ...
    • FTT Projects

      Hello there ? If you’re reading this then you’re well on your way to functionally testing your building. To get started, enter the main FTT page from the left sidebar on KODE OS. In the 3 dots, you will see projects. FTT Projects are a new concept ...
    • FDD Batch Configuration

      The goal of FDD configuration is to establish monitoring and alarms on any of the integrated pieces of equipment to determine a system fault. Follow the below steps to configure FDDs of your choice. Go to KDOE OS and select a site. Navigate to the ...
    • FDD on Mobile App

      Introduction Fault Detection and Diagnostics (FDD) is a proactive approach for identifying and analyzing system failures or faults within a building's infrastructure at their earliest stages. Navigate through FDD Log into the Mobile App and you’ll ...
    • FDD User Manual

      Understanding Fault Detection & Diagnostics What is a Fault? A fault is a period of time in which a specified condition is true on a specific device. For example, this is a fault: @8:00am AHU-1 Could not maintain discharge temperature within setpoint ...