Skip to content

Alarm API

Alarm API queries alarms and alarm groups, activates or deactivates groups, fetches fired-alarm history, and runs acknowledge / comment / force-off actions on individual alarms.

Returns a single alarm’s definition — AlarmResponseDto.

var a = ins.getAlarm("HighTemperature");
ins.consoleLog(a.getName() + " (" + a.getType() + ") — delay=" + a.getDelay());

ins.getAlarmGroup(name) / (projectName, name)

Section titled “ins.getAlarmGroup(name) / (projectName, name)”

Returns a single alarm group’s definition — AlarmGroupResponseDto.

var g = ins.getAlarmGroup("Temperature_Alarms");
ins.consoleLog(g.getName() + " priority=" + g.getPriority() + " scan=" + g.getScanTimeInMillis() + "ms");
MethodTypeDescription
getName()StringAlarm name
getDsc()StringDescription
getGroupId()StringGroup ID
getType()StringType (DIGITAL, ANALOG_HIGH_HIGH, ANALOG_HIGH, ANALOG_LOW, ANALOG_LOW_LOW, ANALOG_SET_POINT, CUSTOM)
getDelay()IntegerTrigger delay (seconds)
getIsActive()BooleanWhether the alarm definition is active
getPart()StringPartition key inside the group
getOnTimeVariableId() / getOffTimeVariableId()StringVariable IDs where on/off timestamps get written
MethodTypeDescription
getName()StringGroup name
getDsc()StringDescription
getPriority()ShortPriority
getScanTimeInMillis()IntegerGroup scan period
getOnScriptId() / getOffScriptId() / getAckScriptId()StringScript IDs triggered on on/off/ack
getOnNoAckColor() / getOnAckColor() / getOffNoAckColor() / getOffAckColor()StringColor codes per state
getPrinterIp() / getPrinterPort()Printer address (if any)
getPrintWhenOn() / getPrintWhenOff() / getPrintWhenAck() / getPrintWhenComment()BooleanWhich events get printed

ins.getAlarmStatus(name) / (projectName, name)

Section titled “ins.getAlarmStatus(name) / (projectName, name)”

Returns an AlarmStatus enum — two values:

ValueMeaning
"Active"Alarm is actively running
"Not Active"Alarm is disabled
if (ins.getAlarmStatus("HighTemperature") == "Not Active") {
ins.notify("info", "Alarm", "HighTemperature is disabled");
}

ins.getAlarmGroupStatus(name) / (projectName, name)

Section titled “ins.getAlarmGroupStatus(name) / (projectName, name)”

Same enum for the group.

Returns a summary of the group’s current state — Map<String, Object> (totals, active count, not-ack’d count, etc.).

var info = ins.getCurrentAlarmGroupInfo("Temperature_Alarms");
ins.consoleLog(JSON.stringify(info));

ins.activateAlarmGroup(name) / (projectName, name)

Section titled “ins.activateAlarmGroup(name) / (projectName, name)”

ins.deactivateAlarmGroup(name) / (projectName, name)

Section titled “ins.deactivateAlarmGroup(name) / (projectName, name)”

Turns an entire group on/off for maintenance or temporary suspension.

// Start maintenance
ins.deactivateAlarmGroup("Temperature_Alarms");
// ...
// End maintenance
ins.activateAlarmGroup("Temperature_Alarms");

A “fired alarm” is a single event — from the moment an alarm fires (on) to when it clears (off). Use includeOff to decide whether cleared (off) events are included.

ins.getFiredAlarm() / (projectName) / (index) / (index, includeOff)

Section titled “ins.getFiredAlarm() / (projectName) / (index) / (index, includeOff)”

Returns a single fired alarm by index.

var f = ins.getFiredAlarm(0); // newest still active
var fAny = ins.getFiredAlarm(0, true); // newest (including off)

ins.getFiredAlarms(index, count) / (index, count, includeOff) / projectName variants

Section titled “ins.getFiredAlarms(index, count) / (index, count, includeOff) / projectName variants”

Returns a window (start = index, size = count) — Collection<FiredAlarmDto>.

// Top 10 active fired alarms
var top10 = ins.getFiredAlarms(0, 10);
top10.forEach(function(f) {
ins.consoleLog(f.getName() + " @ " + f.getOnTime());
});
// Last 50 including off
var last50 = ins.getFiredAlarms(0, 50, true);

ins.getFiredAlarmsByDate(startDate, endDate, includeOff, limit) / projectName variant

Section titled “ins.getFiredAlarmsByDate(startDate, endDate, includeOff, limit) / projectName variant”

Fired alarms in a time range.

var end = ins.now();
var start = ins.getDate(end.getTime() - 86400000); // last 24 hours
var history = ins.getFiredAlarmsByDate(start, end, true, 500);

ins.getFiredAlarmsByPart(part, page, count) / projectName variant

Section titled “ins.getFiredAlarmsByPart(part, page, count) / projectName variant”

Paged list of fired alarms for a specific part (partition key).

var forLine1 = ins.getFiredAlarmsByPart("Line1", 0, 20);

ins.getCurrentAlarms(includeOff) / (projectName, includeOff)

Section titled “ins.getCurrentAlarms(includeOff) / (projectName, includeOff)”

Every alarm currently active. includeOff=true also includes those that cleared but still need acknowledgement.

var active = ins.getCurrentAlarms(false);
ins.setVariableValue("ActiveAlarmCount", { value: active.size() });

ins.getCurrentAlarmsByName(alarmNames[], includeOff)

Section titled “ins.getCurrentAlarmsByName(alarmNames[], includeOff)”

Returns a map from alarm name to its current fired state — Map<String, FiredAlarmDto>.

var map = ins.getCurrentAlarmsByName(["HighTemperature", "LowPressure"], false);
if (map.HighTemperature) {
ins.consoleLog("HighTemperature active, on at " + map.HighTemperature.getOnTime());
}
MethodTypeDescription
getName() / getDsc()StringAlarm name and description
getId() / getAlarmId() / getGroupId() / getProjectId()StringIdentifiers
getGroup() / getProject()StringGroup and project name
getPart()StringPartition key
getStatus()FiredAlarmStatus"On" / "Off"
getStatusValue()IntegerRaw status integer
getFiredAlarmType()FiredAlarmTypeDigital, Custom, Analog High High, Analog High, Analog Low, Analog Low Low, Analog Set Point
getOnValue() / getOffValue() / getOnValueB() / getOffValueB()DoubleOn/off trigger values
getOnTime() / getOnTimeInMs()Date / LongOn timestamp
getOffTime() / getOffTimeInMs()Date / LongOff timestamp (null if not yet off)
getAcknowledgeTime() / getAcknowledgeTimeInMs() / getAcknowledger()Acknowledgement info
getForcedOff() / getForcedOffBy()Boolean / StringWhether forced off
getComment() / getCommentedBy() / getCommentTime() / getCommentTimeInMs()Comment info

Actions (acknowledgeAlarm, forceOffAlarm, commentAlarm) take a FiredAlarmDto — typical pattern: fetch the fired alarm first, then operate on it.

var active = ins.getCurrentAlarms(false);
active.forEach(function(f) {
ins.acknowledgeAlarm(f);
});

Forces an alarm off even if the underlying trigger still holds.

var f = ins.getFiredAlarm(0);
if (f && f.getName() == "StaleSensor") {
ins.forceOffAlarm(f);
}

Attaches an operator comment to the alarm.

var f = ins.getFiredAlarm(0);
ins.commentAlarm(f, "Sensor recalibrated — false positive");

Requires a full AlarmResponseDto — use the get/mutate/update pattern.

var a = ins.getAlarm("HighTemperature");
a.setDelay(60); // delay → 60 s
a.setDsc("High temperature — updated");
ins.updateAlarm("HighTemperature", a);
function main() {
var end = ins.now();
var start = ins.getDate(end.getTime() - 3600000);
// Every alarm fired in the last hour
var events = ins.getFiredAlarmsByDate(start, end, true, 1000);
ins.writeLog("INFO", "AlarmReport", "Last hour: " + events.size() + " events");
// After sensor cleanup, auto-ack alarms in the cleanup group
var active = ins.getCurrentAlarms(false);
active.forEach(function(f) {
if (f.getGroup() == "Sensors_Cleanup") {
ins.commentAlarm(f, "Auto-ack — post-cleanup");
ins.acknowledgeAlarm(f);
}
});
}
main();