@Override public Iterable<HistoricItem> query(FilterCriteria filter) { org.openhab.core.persistence.FilterCriteria mappedFilter = new org.openhab.core.persistence.FilterCriteria() .setBeginDate(filter.getBeginDate()).setEndDate(filter.getEndDate()).setItemName(filter.getItemName()) .setOperator(mapOperator(filter.getOperator())).setOrdering(mapOrdering(filter.getOrdering())) .setPageNumber(filter.getPageNumber()).setPageSize(filter.getPageSize()) .setState(mapState(filter.getState())); org.openhab.core.persistence.QueryablePersistenceService pService = (org.openhab.core.persistence.QueryablePersistenceService) service; Iterable<org.openhab.core.persistence.HistoricItem> historicItems = pService.query(mappedFilter); ArrayList<HistoricItem> result = new ArrayList<>(); if (historicItems != null) { for (final org.openhab.core.persistence.HistoricItem item : historicItems) { result.add(new HistoricItem() { @Override public Date getTimestamp() { return item.getTimestamp(); } @Override public State getState() { return (State) TypeMapper.mapToESHType(item.getState()); } @Override public String getName() { return item.getName(); } }); } } return result; }