Browse Source

Merge pull request #7678 from thingsboard/feature/attribute_nodes_add_options_send_notification

Backport ability to specify scope in the metadata
pull/7680/head
Andrew Shvayka 4 years ago
committed by GitHub
parent
commit
c35c4e991b
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/telemetry/TbMsgAttributesNode.java

17
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/telemetry/TbMsgAttributesNode.java

@ -51,8 +51,8 @@ import java.util.List;
public class TbMsgAttributesNode implements TbNode {
private TbMsgAttributesNodeConfiguration config;
private String scope;
private boolean sendAttributesUpdateNotification;
private static final String SCOPE = "scope";
@Override
public void init(TbContext ctx, TbNodeConfiguration configuration) throws TbNodeException {
@ -60,10 +60,6 @@ public class TbMsgAttributesNode implements TbNode {
if (config.getNotifyDevice() == null) {
config.setNotifyDevice(true);
}
this.scope = config.getScope();
this.sendAttributesUpdateNotification = config.isSendAttributesUpdatedNotification()
&& !DataConstants.CLIENT_SCOPE.equals(scope);
}
@Override
@ -78,7 +74,12 @@ public class TbMsgAttributesNode implements TbNode {
ctx.tellSuccess(msg);
return;
}
String scope = msg.getMetaData().getValue(SCOPE);
if (StringUtils.isEmpty(scope)) {
scope = config.getScope();
}
String notifyDeviceStr = msg.getMetaData().getValue("notifyDevice");
boolean sendAttributesUpdateNotification = checkSendNotification(scope);
ctx.getTelemetryService().saveAndNotify(
ctx.getTenantId(),
msg.getOriginator(),
@ -91,4 +92,8 @@ public class TbMsgAttributesNode implements TbNode {
);
}
private boolean checkSendNotification(String scope){
return config.isSendAttributesUpdatedNotification() && !DataConstants.CLIENT_SCOPE.equals(scope);
}
}

Loading…
Cancel
Save