use of org.thingsboard.server.common.data.Event in project thingsboard by thingsboard.
the class BaseEventServiceTest method findEventsByTypeAndTimeDescOrder.
@Test
public void findEventsByTypeAndTimeDescOrder() throws Exception {
long timeBeforeStartTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 11, 30).toEpochSecond(ZoneOffset.UTC);
long startTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 12, 0).toEpochSecond(ZoneOffset.UTC);
long eventTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 12, 30).toEpochSecond(ZoneOffset.UTC);
long endTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 13, 0).toEpochSecond(ZoneOffset.UTC);
long timeAfterEndTime = LocalDateTime.of(2016, Month.NOVEMBER, 1, 13, 30).toEpochSecond(ZoneOffset.UTC);
RuleId ruleId = new RuleId(UUIDs.timeBased());
TenantId tenantId = new TenantId(UUIDs.timeBased());
saveEventWithProvidedTime(timeBeforeStartTime, ruleId, tenantId);
Event savedEvent = saveEventWithProvidedTime(eventTime, ruleId, tenantId);
Event savedEvent2 = saveEventWithProvidedTime(eventTime + 1, ruleId, tenantId);
Event savedEvent3 = saveEventWithProvidedTime(eventTime + 2, ruleId, tenantId);
saveEventWithProvidedTime(timeAfterEndTime, ruleId, tenantId);
TimePageData<Event> events = eventService.findEvents(tenantId, ruleId, DataConstants.STATS, new TimePageLink(2, startTime, endTime, false));
Assert.assertNotNull(events.getData());
Assert.assertTrue(events.getData().size() == 2);
Assert.assertTrue(events.getData().get(0).getUuidId().equals(savedEvent3.getUuidId()));
Assert.assertTrue(events.getData().get(1).getUuidId().equals(savedEvent2.getUuidId()));
Assert.assertTrue(events.hasNext());
Assert.assertNotNull(events.getNextPageLink());
events = eventService.findEvents(tenantId, ruleId, DataConstants.STATS, events.getNextPageLink());
Assert.assertNotNull(events.getData());
Assert.assertTrue(events.getData().size() == 1);
Assert.assertTrue(events.getData().get(0).getUuidId().equals(savedEvent.getUuidId()));
Assert.assertFalse(events.hasNext());
Assert.assertNull(events.getNextPageLink());
}
use of org.thingsboard.server.common.data.Event in project thingsboard by thingsboard.
the class AlarmDeduplicationProcessor method process.
@Override
public RuleProcessingMetaData process(RuleContext ctx, ToDeviceActorMsg msg) throws RuleException {
RuleProcessingMetaData md = new RuleProcessingMetaData();
VelocityContext context = VelocityUtils.createContext(ctx.getDeviceMetaData(), msg.getPayload());
String alarmId = VelocityUtils.merge(alarmIdTemplate, context);
String alarmBody = VelocityUtils.merge(alarmBodyTemplate, context);
Optional<Event> existingEvent = ctx.findEvent(DataConstants.ALARM, alarmId);
if (!existingEvent.isPresent()) {
Event event = new Event();
event.setType(DataConstants.ALARM);
event.setUid(alarmId);
event.setBody(mapper.createObjectNode().put("body", alarmBody));
Optional<Event> savedEvent = ctx.saveIfNotExists(event);
if (savedEvent.isPresent()) {
log.info("New Alarm detected: '{}'", alarmId);
md.put(IS_NEW_ALARM, Boolean.TRUE);
md.put("alarmId", alarmId);
md.put("alarmBody", alarmBody);
for (Object key : context.getKeys()) {
md.put(key.toString(), context.get(key.toString()));
}
}
}
return md;
}
use of org.thingsboard.server.common.data.Event in project thingsboard by thingsboard.
the class ActorSystemContext method persistLifecycleEvent.
public void persistLifecycleEvent(TenantId tenantId, EntityId entityId, ComponentLifecycleEvent lcEvent, Exception e) {
Event event = new Event();
event.setTenantId(tenantId);
event.setEntityId(entityId);
event.setType(DataConstants.LC_EVENT);
event.setBody(toBodyJson(discoveryService.getCurrentServer().getServerAddress(), lcEvent, Optional.ofNullable(e)));
persistEvent(event);
}
use of org.thingsboard.server.common.data.Event in project thingsboard by thingsboard.
the class EventEntity method toData.
@Override
public Event toData() {
Event event = new Event(new EventId(id));
event.setCreatedTime(UUIDs.unixTimestamp(id));
event.setTenantId(new TenantId(tenantId));
event.setEntityId(EntityIdFactory.getByTypeAndUuid(entityType, entityId));
event.setBody(body);
event.setType(eventType);
event.setUid(eventUid);
return event;
}
use of org.thingsboard.server.common.data.Event in project thingsboard by thingsboard.
the class EventEntity method toData.
@Override
public Event toData() {
Event event = new Event(new EventId(getId()));
event.setCreatedTime(UUIDs.unixTimestamp(getId()));
event.setTenantId(new TenantId(toUUID(tenantId)));
event.setEntityId(EntityIdFactory.getByTypeAndUuid(entityType, toUUID(entityId)));
event.setBody(body);
event.setType(eventType);
event.setUid(eventUid);
return event;
}
Aggregations