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