| Overview
Predefined alerts are a set of alerts that are preprogrammed and prepopulated in the 75F alerting system. They are defined and programmed based on an approach that is derived from the research made on the different types of buildings.
They also include alerting for possible failures or breaches of parts of the 75F system, knowing how the predefined alerts are designed to produce the required, the support personnel can make better decisions on what alerts to be used for a building, and what alerts can be used as a base for creating a custom alert.
| Predefined Alerts Explained
Below is a table that talks about all the predefined alerts in the system, their purpose, usage, and replicability for a custom alert.
ALERT NAME | ALERT DEFINITION | ALERTING EXPLAINED |
CM DEAD | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "CM DEAD", "mMessage": "For %s, %s has stopped reporting data. Please contact 75F support.", "mNotificationMsg": "For %s, %s has stopped reporting data. Please contact 75F support.", "mSeverity": "SEVERE", "mEnabled": true } } |
As shown in the alert definition the "CM DEAD" alert notifies the facility manager when the CM board/ boards in the building stop reporting data. |
CCU DISCONNECTED | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 60, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "CCU DISCONNECTED", "mMessage": "#site #ccu has been offline/unresponsive for more than #offset minutes", "mNotificationMsg": "#site #ccu has been offline/unresponsive for more than #offset minutes", "mSeverity": "SEVERE", "mEnabled": true } } |
The "CCU DISCONNETED" alert notifies the facility manager when the CCU in the building is offline/ not responding for more than a preset interval of 60 minutes. |
ZONE TEMPERATURE DEAD | { "conditionals": [ { "order": 1, "key": "zone and current and temp", "value": "tuner and building and limit and min", "grpOperation": "equip", "condition": "<" }, { "order": 2, "operator": "||" }, { "order": 3, "key": "zone and current and temp", "value": "tuner and building and limit and max", "grpOperation": "equip", "condition": ">" }, { "order": 4, "operator": "||" }, { "order": 5, "key": "zone and status and not the message", "value": "3", "grpOperation": "equip", "condition": "==" } ], "offset": 5, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "ZONE TEMPERATURE DEAD", "mMessage": "Equip #equipname1 is reporting a temperature of #pointval1 °F outside the defined building limit #condval1 °F ~ #condval3 °F", "mNotificationMsg": "Equip #equipname1 is reporting a temperature of #pointval1 °F outside the defined building limit #condval1 °F ~ #condval3 °F", "mSeverity": "SEVERE", "mEnabled": true } } |
@ Order 1 and 3 The "ZONE TEMPERATURE DEAD" alert looks for the currentTemp point in the zone and compares it with the building tuner, building LimitMax value, and generates an alert when the currentTemp > building LimitMax
@ Order 5 The "ZONE TEMPERATURE DEAD" alert looks for the euipStatus point generates an alert when the euipStatus = "3" |
BATTERY LEVEL LOW FATAL | { "conditionals": [ { "order": 1, "key": "diag and battery and level", "value": "20", "grpOperation": "", "condition": "<" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "BATTERY LEVEL LOW FATAL", "mMessage": "The battery level of your CCU #ccuname has dropped below 20% and is not charging. Please check that the tablet is secured to it's mount. if it is plugged in, please contact 75F support.", "mNotificationMsg": "The battery level of your CCU #ccuname has dropped below 20% and is not charging. Please check that the tablet is secured to it's mount. if it is plugged in, please contact 75F support.", "mSeverity": "SEVERE", "mEnabled": true } } |
The "BATTERY LEVEL LOW FATAL" alert looks for the DiagEquip-bateryLevel point in the building and generates an alert when the DiagEquip-bateryLevel < 20% |
INCORRECT PASSWORD ENTERED(ERROR) | { "conditionals": [ { "order": 1, "key": "password and attempt", "value": "10", "grpOperation": "security", "condition": ">=" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "INCORRECT PASSWORD ENTERED[ERROR]", "mMessage": "Incorrect password entered 10 times in a row. Please have your admin or security team check the intrusion.", "mNotificationMsg": "Incorrect password entered 10 times in a row. Please have your admin or security team check the intrusion.", "mSeverity": "MODERATE", "mEnabled": true } } |
The "INCORRECT PASSWORD ENTERED(ERROR)" alert looks for the passwordAttempt point in the building and generates an alert when the point name value >= 10 attempts. |
DEVICE DEAD | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "DEVICE DEAD", "mMessage": "For %s, %s has stopped reporting data. Please contact 75F support.", "mNotificationMsg": "For %s, %s has stopped reporting data. Please contact 75F support.", "mSeverity": "MODERATE", "mEnabled": true } } |
As shown in the alert definition the "DEVICE DEAD" alert notifies the facility manager when the CM board/ boards in the building stop reporting data. |
VOC ABOVE TARGET ERROR | { "conditionals": [ { "order": 1, "key": "zone and air and voc and sensor", "value": "tuner and zone and voc and target", "grpOperation": "equip", "condition": ">" } ], "offset": 15, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "VOC ABOVE TARGET ERROR", "mMessage": "#equipname reports VOC level of #pointval above 10% of the target value #condval for 15 minutes", "mNotificationMsg": "#equipname reports VOC level of #pointval above 10% of the target value #condval for 15 minutes", "mSeverity": "MODERATE", "mEnabled": true } } |
The "VOC ABOVE TARGET ERROR" alert looks for the voc point in the zone and compares it with applicable the, zoneVOCTarget, and generates an alert when the voc point value is 10% > zoneVOCTarget for more than 15 minutes preset interval. |
CO2 ABOVE TARGET ERROR | { "conditionals": [ { "order": 1, "key": "zone and air and co2 and sensor", "value": "zone and co2 and target", "grpOperation": "equip", "condition": ">" } ], "offset": 15, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "CO2 ABOVE TARGET ERROR", "mMessage": "#equipname reports CO2 level of #pointval above 10% of the target value #condval for 15 minutes", "mNotificationMsg": "#equipname reports CO2 level of #pointval above 10% of the target value #condval for 15 minutes", "mSeverity": "MODERATE", "mEnabled": true } } |
The "CO2 ABOVE TARGET ERROR" alert looks for the co2 point in the zone and compares it with the applicable zoneCO2Target, and generates an alert when the co2 point value is 10% > zoneCO2Target for more than 15 minutes preset interval. |
CO ABOVE THRESHOLD WARN | { "conditionals": [ { "order": 1, "key": "zone and air and co and sensor", "value": "tuner and zone and co and target", "grpOperation": "equip", "condition": ">" } ], "offset": 15, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "CO ABOVE THRESHOLD WARN", "mMessage": "#equipname reports CO level of #pointval above the threshold of #condval for 15 minutes", "mNotificationMsg": "#equipname reports CO level of #pointval above the threshold of #condval for 15 minutes", "mSeverity": "LOW", "mEnabled": true } } |
The "CO ABOVE THRESHOLD WARN"alert looks for the co point in the zone and compares it with the applicable zoneCOThreshold and generates an alert when the co point value is 10% > zoneCOThreshold for more than15 minutes preset interval. (We do not support a CO sensor as of now.) |
MAT OUTSIDE RANGE | { "conditionals": [ { "order": 1, "key": "mixed and air and temp and sensor", "value": "oao and outside and damper and mat and min", "grpOperation": "oao", "condition": "<" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "MAT OUTSIDE RANGE", "mMessage": "The Mixed air Temperature in your Roof Top Unit is #pointval1 °F which is lesser than the expected value #condval1 °F", "mNotificationMsg": "The Mixed air Temperature in your Roof Top Unit is #pointval1 °F degrees which is lesser than the expected value #condval1 °F", "mSeverity": "LOW", "mEnabled": true } } |
The "MAT OUTSIDE RANGE" alert looks for the MatTemp point in the zone and compares it with the building tuner, outsideDamperMixedAirTarget, and generates an alert when the MatTemp < outsideDamperMixedAirTarget |
DEVICE LOW SIGNAL | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "DEVICE LOW SIGNAL", "mMessage": "For %s, %s is having an issues and has reported low signal for last 50 updates. If you continue to receive this alert, please contact 75F support.", "mNotificationMsg": "For %s, %s is having an issues and has reported low signal for last 50 updates. If you continue to receive this alert, please contact 75F support.", "mSeverity": "LOW", "mEnabled": true } } |
The "DEVICE LOW SIGNAL" alert notifies the facility manager when the devices in the building report low signal for last 50 updates. |
ABNORMAL CUR TEMP | { "conditionals": [ { "order": 1, "key": "zone and current and temp", "value": "5", "grpOperation": "delta", "condition": ">" }, { "order": 2, "operator": "||" }, { "order": 3, "key": "zone and current and temp", "value": "-5", "grpOperation": "delta", "condition": "<" } ], "offset": 5, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "ABNORMAL CUR TEMP", "mMessage": "#equipName reported a sudden change in current temperature. New temperature is #presentVal °F and previous temperature is #oldVal °F. If you continue to receive this alert, please contact 75F Support.", "mNotificationMsg": "#equipName reported a sudden change in current temperature. New temperature is #presentVal °F and previous temperature is #oldVal °F. If you continue to receive this alert, please contact 75F Support.", "mSeverity": "LOW", "mEnabled": true } } |
@ Order 1 The "ABNORMAL CUR TEMP" alert looks for the currentTemp point in the zone and generates an alert when the difference between the last two historized values of the currentTemp is > 5 degrees Fahrenheit, and it remains the same for an offset of 5 mins
@ Order 3 The "ABNORMAL CUR TEMP" alert looks for the currentTemp point in the zone and generates an alert when the difference between the last two historized values of the currentTemp is <- 5 degrees Fahrenheit, and it remains the same for an offset of 5 mins. |
CONSTANT CUR TEMP | { "conditionals": [ { "order": 1, "key": "zone and current and temp", "value": "0", "grpOperation": "delta", "condition": "==" } ], "offset": 45, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "CONSTANT CUR TEMP", "mMessage": "#equipname is reporting same temperature #presentVal °F for last #offsetVal minutes", "mNotificationMsg": "#equipname is reporting same temperature #presentVal °F for last #offsetVal minutes", "mSeverity": "LOW", "mEnabled": true } } |
The "CONSTANT CUR TEMP" alert looks for the currentTemp point in the zone and generates an alert when the difference between the last two historized values of the currentTemp is = 0 degrees Fahrenheit, and it remains the same for an offset of 45 mins. |
CM ERROR REPORT | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER INVISIBLE", "mTitle": "CM ERROR REPORT", "mMessage": "CM error: %s", "mNotificationMsg": "CM error: %s", "mSeverity": "INTERNAL_MODERATE", "mEnabled": false } } |
As shown in the alert definition the "CM ERROR REPORT" alert notifies the facility manager when the CM board/ boards in the building reports data error. |
CM RESET | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER INVISIBLE", "mTitle": "CM RESET", "mMessage": "CM Reset request sent for %s", "mNotificationMsg": "CM Reset request sent for %s", "mSeverity": "INTERNAL_INFO", "mEnabled": true } } |
The "CM RESET" alert notifies the facility manager when a reset request is sent for the CM. |
CCU IN SAFE MODE | { "conditionals": [ { "order": 1, "key": "point and diag and safe and mode and status", "value": "1", "grpOperation": "", "condition": "==" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER INVISIBLE", "mTitle": "CCU IN SAFE MODE", "mMessage": "#site #ccu has entered a crash loop and has been placed into safe mode", "mNotificationMsg": "#site #ccu has entered a crash loop and has been placed into safe mode", "mSeverity": "INTERNAL_SEVERE", "mEnabled": true } } |
The "CCU IN SAFE MODE" alert is generated when the CCU in the building is affected with a number of crashes back-to-back and enters a safe mode. |
CCU CRASH | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER INVISIBLE", "mTitle": "CCU CRASH", "mMessage": "CCU Crash info - %s", "mNotificationMsg": "CCU Crash info - %s", "mSeverity": "INTERNAL_SEVERE", "mEnabled": true } } |
The "CCU CRASH" alert is generated when the CCU in the building crashes for at least once, it provides the information related to the crash. |
DEVICE REBOOT |
{ "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER INVISIBLE", "mTitle": "DEVICE REBOOT", "mMessage": "Device reboot info - %s", "mNotificationMsg": "Device reboot info - %s", "mSeverity": "INTERNAL_LOW", "mEnabled": true } } |
The "DEVICE REBOOT" alert is generated when the CCU in the building rebooted. |
DEVICE RESTART COMMAND | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER INVISIBLE", "mTitle": "DEVICE RESTART COMMAND", "mMessage": "Command sent for Device restart", "mNotificationMsg": "Command sent for Device restart", "mSeverity": "INTERNAL_INFO", "mEnabled": true } } |
The "DEVICE RESTART COMMAND" alert notifies the facility manager when a restart request is sent for the CCU. |
FIRMWARE OTA UPDATE STARTED | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER INVISIBLE", "mTitle": "FIRMWARE OTA UPDATE STARTED", "mMessage": "Firmware OTA update for %s started for SmartNode %d with version %s", "mNotificationMsg": "Firmware OTA update for %s started for SmartNode %d with version %s", "mSeverity": "INTERNAL_INFO", "mEnabled": true } } |
The "DEVICE REBOOT" alert is generated when the an OTA update has started for any device in the building. |
FIRMWARE OTA UPDATE ENDED | { "conditionals": [ { "order": 1, "key": "", "value": "", "grpOperation": "alert", "condition": "" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER INVISIBLE", "mTitle": "FIRMWARE OTA UPDATE ENDED", "mMessage": "Firmware OTA update for %s ended for SmartNode %d with version %s", "mNotificationMsg": "Firmware OTA update for %s ended for SmartNode %d with version %s", "mSeverity": "INTERNAL_INFO", "mEnabled": true } } |
The "DEVICE REBOOT" alert is generated when the an OTA update has ended for any device in the building. |
INCORRECT PASSWORD ENTERED(ERROR) | { "conditionals": [ { "order": 1, "key": "password and attempt", "value": "3", "grpOperation": "security", "condition": ">=" } ], "offset": 0, "alert": { "mAlertType": "CUSTOMER VISIBLE", "mTitle": "INCORRECT PASSWORD ENTERED[WARN]", "mMessage": "Incorrect password entered 3 times in a row. Please have your admin or security team check the intrusion.", "mNotificationMsg": "Incorrect password entered 3 times in a row. Please have your admin or security team check the intrusion.", "mSeverity": "LOW", "mEnabled": true } } |
The "INCORRECT PASSWORD ENTERED(ERROR)" alert looks for the password attempt point in the building and generates an alert when the password attempt value is >= 3 attempts. |
| Alert Definition Components
The table below talks about the component in an alert definition.
KEY WORDS |
USAGE |
Conditionals |
Main Key for all the data point variables check which will need to be fetched before an Alert is raised |
Order |
This order "number" will specify the placement of the JSON section within the "conditionals" key |
Key |
This forms the main part of the conditional which will be made up of numerous or a single tag to filter out point or points, else it can also be a pointref trying to reference a point. This will become part of the main query that will be sent for points fetch wrt to the Equip, Floor, System, Tuner . This can be used on either side LHS and RHS of the condition. Example : "key" : "desired and temp and cooling", / "key": "id == @c11a6ceb-0bf2-4580-9925-afbe663fb534", "value" : "tuner and temp and cooling", "condition": "==" |
Value |
"value" can be a verifiable number which will be used for verifying a key fetched data point. Value can also be a query which will give points against which the point results from Key will be verified against. "value" : "tuner and temp and cooling", |
Condition |
Conditions are different comparison operators like "<", ">", "<=", ">=", "==", "!=" |
Operator |
This key "operator" is used to join two condition blocks together like "AND","OR" |
Grpoperation |
This defines the group operation. It can be equip, delta, min max or avg. * "" : run the key query system wide and fetch the matching point for evaluation with condition and value. * "equip" : fetch all zone equips matching key query for individual evaluation with condition and value. * "delta" : fetch all zone equips matching key query. For each equip, find the difference between the last two history values and use that for evaluation with condition and value. * "min" or "max" or "avg" : find all points matching the key query system wide, and take their min/max/ave for evaluation with condition and value. * "bottom NN" or "top NN" : (where NN is a percentage) find the values of all points matching the key query system wide. Take the bottom or top NN percent of the points. Use the closest value to that percentage and evaluate with condition and value. * "oao" : fetch all zone equips matching key query with the "oao" tag. For each, evaluate with condition and the history value of the point for the same equip matching the value query. * "security" : Special logic evaluating the number of password attempts against value with condition. * "alert" : Special hard-coded logic on the CCU defines these alerts |
Offset |
The Time interval after which the alerts needs to be generated. |
Alert |
Alert Key section will contain |
mAlertType |
This can be of two types : INTERNAL and CUSTOMER VISIBLE |
mTitle |
This will need to be unique set of alphanumeric characters[Space also included] which will differentiate one Alert to another alert. |
mMessage |
A short description that will sent when Alerts are sent out to CCU, FAC apps |
mNotificationMsg |
A detailed Message that can be seen when the Short Alert messages are clicked. These messages also are sent for notification alerts options like the emails, Push Notifications. |
mSeverity |
Severe Moderate Low Internal_Severe Internal_Moderate Internal_Low Internal_Info |
mEnabled |
TRUE/FALSE : This will be set to TRUE only if this has been enabled for a site by the Support Personnel in Internal portal in the Alerts Configuration Section |
Messages To follow #defined nomenclature for dynamic inclusion of variable names and values |
|
#equipname |
substituted by the equipRef of the shortlisted alertable points |
#zonename |
substituted by the roomRef of the shortlisted alertable points |
#floorname |
substituted by the floorRef of the shortlisted alertable points |
#systemname |
substituted by the systemRef of the shortlisted alertable points |
#sitename1 |
Obtained from the siteRef of the shortlisted alertable points |
#pointVal1 |
pointVal1 is obtained when we evaluate the #condval1 , and pick its value |
#pointVal2 |
pointVal2 is obtained when we evaluate the #condval2 , and pick its value |
#pointVal3 |
pointVal3 is obtained when we evaluate the #condval3 , and pick its value |
#pointVal4 |
pointVal4 is obtained when we evaluate the #condval4 , and pick its value |
#pointName1 |
pointName1 is obtained when we evaluate the #condval1 , and pick its name |
#pointName2 |
pointName2 is obtained when we evaluate the #condval2 , and pick its name |
#pointName3 |
pointname3 is obtained when we evaluate the #condval3 , and pick its name |
Comments
0 comments
Please sign in to leave a comment.