improvements
This commit is contained in:
parent
b3aaf66f3f
commit
a4ae57eb86
@ -27,11 +27,14 @@ import org.thingsboard.rule.engine.api.TbNodeConfiguration;
|
||||
import org.thingsboard.rule.engine.api.TbNodeException;
|
||||
import org.thingsboard.rule.engine.api.util.TbNodeUtils;
|
||||
import org.thingsboard.server.common.data.alarm.Alarm;
|
||||
import org.thingsboard.server.common.data.alarm.AlarmId;
|
||||
import org.thingsboard.server.common.data.alarm.AlarmStatus;
|
||||
import org.thingsboard.server.common.data.plugin.ComponentType;
|
||||
import org.thingsboard.server.common.msg.TbMsg;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
import java.io.IOException;
|
||||
import java.util.UUID;
|
||||
|
||||
import static org.thingsboard.rule.engine.api.TbRelationTypes.FAILURE;
|
||||
import static org.thingsboard.rule.engine.api.TbRelationTypes.SUCCESS;
|
||||
@ -41,6 +44,7 @@ import static org.thingsboard.rule.engine.api.TbRelationTypes.SUCCESS;
|
||||
type = ComponentType.FILTER,
|
||||
name = "checks alarm status",
|
||||
configClazz = TbCheckAlarmStatusNodeConfig.class,
|
||||
relationTypes = {"True", "False"},
|
||||
nodeDescription = "Checks alarm status.",
|
||||
nodeDetails = "If the alarm status matches the specified one - msg is success if does not match - msg is failure.",
|
||||
uiResources = {"static/rulenode/rulenode-core-config.js"},
|
||||
@ -64,18 +68,22 @@ public class TbCheckAlarmStatusNode implements TbNode {
|
||||
Futures.addCallback(latest, new FutureCallback<Alarm>() {
|
||||
@Override
|
||||
public void onSuccess(@Nullable Alarm result) {
|
||||
if (result != null) {
|
||||
boolean isPresent = false;
|
||||
for (String alarmStatus : config.getAlarmStatusList()) {
|
||||
if (alarm.getStatus().name().equals(alarmStatus)) {
|
||||
for (AlarmStatus alarmStatus : config.getAlarmStatusList()) {
|
||||
if (alarm.getStatus() == alarmStatus) {
|
||||
isPresent = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (isPresent) {
|
||||
ctx.tellNext(msg, SUCCESS);
|
||||
ctx.tellNext(msg, "True");
|
||||
} else {
|
||||
ctx.tellNext(msg, FAILURE);
|
||||
ctx.tellNext(msg, "False");
|
||||
}
|
||||
} else {
|
||||
ctx.tellFailure(msg, new TbNodeException("No such Alarm found."));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -17,18 +17,19 @@ package org.thingsboard.rule.engine.filter;
|
||||
|
||||
import lombok.Data;
|
||||
import org.thingsboard.rule.engine.api.NodeConfiguration;
|
||||
import org.thingsboard.server.common.data.alarm.AlarmStatus;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class TbCheckAlarmStatusNodeConfig implements NodeConfiguration<TbCheckAlarmStatusNodeConfig> {
|
||||
private List<String> alarmStatusList;
|
||||
private List<AlarmStatus> alarmStatusList;
|
||||
|
||||
@Override
|
||||
public TbCheckAlarmStatusNodeConfig defaultConfiguration() {
|
||||
TbCheckAlarmStatusNodeConfig config = new TbCheckAlarmStatusNodeConfig();
|
||||
config.setAlarmStatusList(Collections.emptyList());
|
||||
config.setAlarmStatusList(Arrays.asList(AlarmStatus.ACTIVE_ACK, AlarmStatus.ACTIVE_UNACK));
|
||||
return config;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user