Browse Source

Merge branch 'develop/2.5.3' of github.com:thingsboard/thingsboard into develop/2.5.3

pull/3293/head
Igor Kulikov 6 years ago
parent
commit
abd67d2536
  1. 12
      application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java

12
application/src/main/java/org/thingsboard/server/service/state/DefaultDeviceStateService.java

@ -16,6 +16,7 @@
package org.thingsboard.server.service.state;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.base.Function;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
@ -503,8 +504,15 @@ public class DefaultDeviceStateService implements DeviceStateService {
private void pushRuleEngineMessage(DeviceStateData stateData, String msgType) {
DeviceState state = stateData.getState();
try {
TbMsg tbMsg = TbMsg.newMsg(msgType, stateData.getDeviceId(), stateData.getMetaData().copy(), TbMsgDataType.JSON
, json.writeValueAsString(state));
String data;
if (msgType.equals(CONNECT_EVENT)) {
ObjectNode stateNode = json.convertValue(state, ObjectNode.class);
stateNode.remove(ACTIVITY_STATE);
data = stateNode.toString();
} else {
data = json.writeValueAsString(state);
}
TbMsg tbMsg = TbMsg.newMsg(msgType, stateData.getDeviceId(), stateData.getMetaData().copy(), TbMsgDataType.JSON, data);
clusterService.pushMsgToRuleEngine(stateData.getTenantId(), stateData.getDeviceId(), tbMsg, null);
} catch (Exception e) {
log.warn("[{}] Failed to push inactivity alarm: {}", stateData.getDeviceId(), state, e);

Loading…
Cancel
Save