Search in sources :

Example 31 with Item

use of org.openhab.core.items.Item in project openhab1-addons by openhab.

the class MysqlPersistenceService method getItemType.

/**
     * 
     * @param i
     * @return
     */
private String getItemType(Item i) {
    Item item = i;
    if (i instanceof GroupItem) {
        item = ((GroupItem) i).getBaseItem();
        if (item == null) {
            // if GroupItem:<ItemType> is not defined in *.items using StringType
            logger.debug("mySQL: Cannot detect ItemType for {} because the GroupItems' base type isn't set in *.items File.", i.getName());
            item = ((GroupItem) i).getMembers().get(0);
            if (item == null) {
                logger.debug("mySQL: No ItemType found for first Child-Member of GroupItem {}, use ItemType STRINGITEM ({}) as Fallback", i.getName(), sqlTypes.get("STRINGITEM"));
                return sqlTypes.get("STRINGITEM");
            }
        }
    }
    String itemType = item.getClass().getSimpleName().toUpperCase();
    if (sqlTypes.get(itemType) == null) {
        logger.debug("mySQL: No sqlType found for ItemType {}, use ItemType STRINGITEM ({}) as Fallback for {}", itemType, sqlTypes.get("STRINGITEM"), i.getName());
        return sqlTypes.get("STRINGITEM");
    }
    logger.debug("mySQL: Use ItemType {} ({}) for Item {}", itemType, sqlTypes.get(itemType), itemType, i.getName());
    return sqlTypes.get(itemType);
}
Also used : DimmerItem(org.openhab.core.library.items.DimmerItem) SwitchItem(org.openhab.core.library.items.SwitchItem) ColorItem(org.openhab.core.library.items.ColorItem) DateTimeItem(org.openhab.core.library.items.DateTimeItem) HistoricItem(org.openhab.core.persistence.HistoricItem) NumberItem(org.openhab.core.library.items.NumberItem) GroupItem(org.openhab.core.items.GroupItem) RollershutterItem(org.openhab.core.library.items.RollershutterItem) Item(org.openhab.core.items.Item) ContactItem(org.openhab.core.library.items.ContactItem) GroupItem(org.openhab.core.items.GroupItem)

Example 32 with Item

use of org.openhab.core.items.Item in project openhab1-addons by openhab.

the class JdbcBaseDAO method getItemType.

public String getItemType(Item i) {
    Item item = i;
    String def = "STRINGITEM";
    if (i instanceof GroupItem) {
        item = ((GroupItem) i).getBaseItem();
        if (item == null) {
            // if GroupItem:<ItemType> is not defined in
            // *.items using StringType
            // logger.debug("JDBC: BaseItem GroupItem:<ItemType> is not
            // defined in *.items searching for first Member and try to use
            // as ItemType");
            logger.debug("JDBC::getItemType: Cannot detect ItemType for {} because the GroupItems' base type isn't set in *.items File.", i.getName());
            item = ((GroupItem) i).getMembers().get(0);
            if (item == null) {
                logger.debug("JDBC::getItemType: No ItemType found for first Child-Member of GroupItem {}, use ItemType for STRINGITEM as Fallback", i.getName());
                return def;
            }
        }
    }
    String itemType = item.getClass().getSimpleName().toUpperCase();
    logger.debug("JDBC::getItemType: Try to use ItemType {} for Item {}", itemType, i.getName());
    if (sqlTypes.get(itemType) == null) {
        logger.warn("JDBC::getItemType: No sqlType found for ItemType {}, use ItemType for STRINGITEM as Fallback for {}", itemType, i.getName());
        return def;
    }
    return itemType;
}
Also used : DimmerItem(org.openhab.core.library.items.DimmerItem) SwitchItem(org.openhab.core.library.items.SwitchItem) JdbcItem(org.openhab.persistence.jdbc.model.JdbcItem) ColorItem(org.openhab.core.library.items.ColorItem) DateTimeItem(org.openhab.core.library.items.DateTimeItem) HistoricItem(org.openhab.core.persistence.HistoricItem) NumberItem(org.openhab.core.library.items.NumberItem) GroupItem(org.openhab.core.items.GroupItem) RollershutterItem(org.openhab.core.library.items.RollershutterItem) Item(org.openhab.core.items.Item) StringItem(org.openhab.core.library.items.StringItem) ContactItem(org.openhab.core.library.items.ContactItem) GroupItem(org.openhab.core.items.GroupItem)

Example 33 with Item

use of org.openhab.core.items.Item in project openhab1-addons by openhab.

the class CaldavPersistenceService method query.

@Override
public Iterable<HistoricItem> query(final FilterCriteria filter) {
    List<CalDavEvent> events = calDavLoader.getEvents(new CalDavQuery(calendarId));
    List<HistoricItem> outList = new ArrayList<HistoricItem>();
    for (CalDavEvent calDavEvent : events) {
        if (filter.getBeginDate() != null && calDavEvent.getEnd().toDate().before(filter.getBeginDate())) {
            continue;
        }
        if (filter.getEndDate() != null && calDavEvent.getStart().toDate().after(filter.getEndDate())) {
            continue;
        }
        Item item = null;
        try {
            item = this.itemRegistry.getItem(filter.getItemName());
        } catch (ItemNotFoundException e) {
            logger.error("item {} could not be found", filter.getItemName());
            continue;
        }
        final List<EventUtils.EventContent> parseContent = EventUtils.parseContent(calDavEvent, item);
        for (EventUtils.EventContent eventContent : parseContent) {
            if (filter.getBeginDate() != null && eventContent.getTime().toDate().before(filter.getBeginDate())) {
                continue;
            }
            if (filter.getEndDate() != null && eventContent.getTime().toDate().after(filter.getEndDate())) {
                continue;
            }
            final State eventState = eventContent.getState();
            if (filter.getState() != null && filter.getOperator() != null) {
                switch(filter.getOperator()) {
                    case EQ:
                        {
                            if (!filter.getState().equals(eventState)) {
                                continue;
                            }
                            break;
                        }
                    case NEQ:
                        {
                            if (filter.getState().equals(eventState)) {
                                continue;
                            }
                            break;
                        }
                    case LTE:
                        {
                            if (eventState instanceof DecimalType && filter.getState() instanceof DecimalType) {
                                if (((DecimalType) eventState).longValue() > ((DecimalType) filter.getState()).longValue()) {
                                    continue;
                                }
                            } else {
                                continue;
                            }
                            break;
                        }
                    case GTE:
                        {
                            if (eventState instanceof DecimalType && filter.getState() instanceof DecimalType) {
                                if (((DecimalType) eventState).longValue() < ((DecimalType) filter.getState()).longValue()) {
                                    continue;
                                }
                            } else {
                                continue;
                            }
                            break;
                        }
                    case LT:
                        {
                            if (eventState instanceof DecimalType && filter.getState() instanceof DecimalType) {
                                if (((DecimalType) eventState).longValue() >= ((DecimalType) filter.getState()).longValue()) {
                                    continue;
                                }
                            } else {
                                continue;
                            }
                            break;
                        }
                    case GT:
                        {
                            if (eventState instanceof DecimalType && filter.getState() instanceof DecimalType) {
                                if (((DecimalType) eventState).longValue() <= ((DecimalType) filter.getState()).longValue()) {
                                    continue;
                                }
                            } else {
                                continue;
                            }
                            break;
                        }
                }
            }
            // just filtered events are here...
            final CaldavItem caldavItem = new CaldavItem(filter.getItemName(), eventState, eventContent.getTime().toDate());
            caldavItem.setEvent(calDavEvent);
            outList.add(caldavItem);
        }
    }
    Collections.sort(outList, new Comparator<HistoricItem>() {

        @Override
        public int compare(HistoricItem arg0, HistoricItem arg1) {
            if (filter.getOrdering().equals(FilterCriteria.Ordering.ASCENDING)) {
                return (int) (arg0.getTimestamp().getTime() - arg1.getTimestamp().getTime());
            } else {
                return (int) (arg1.getTimestamp().getTime() - arg0.getTimestamp().getTime());
            }
        }
    });
    if (outList.size() < filter.getPageNumber() * filter.getPageSize()) {
        return Collections.emptyList();
    }
    outList = outList.subList(filter.getPageNumber() * filter.getPageSize(), Math.min((filter.getPageNumber() * filter.getPageSize()) + filter.getPageSize(), outList.size()));
    logger.trace("result size for query: {}", outList.size());
    return outList;
}
Also used : EventUtils(org.openhab.io.caldav.EventUtils) ArrayList(java.util.ArrayList) HistoricItem(org.openhab.core.persistence.HistoricItem) Item(org.openhab.core.items.Item) CalDavEvent(org.openhab.io.caldav.CalDavEvent) State(org.openhab.core.types.State) DecimalType(org.openhab.core.library.types.DecimalType) CalDavQuery(org.openhab.io.caldav.CalDavQuery) HistoricItem(org.openhab.core.persistence.HistoricItem) ItemNotFoundException(org.openhab.core.items.ItemNotFoundException)

Example 34 with Item

use of org.openhab.core.items.Item in project openhab1-addons by openhab.

the class ItemStateRequestProcessor method getItemState.

public ItemStateData getItemState(String itemId) throws ServiceException {
    ItemRegistry itemRegistry = getItemRegistry();
    ItemStateData itemState = null;
    try {
        Item item = itemRegistry.getItem(itemId);
        StateTransformable state = getState(item);
        itemState = new ItemStateData(System.currentTimeMillis(), itemId, state);
    } catch (ItemNotFoundException ex) {
        logger.info(itemId + " not found", ex);
    }
    return itemState;
}
Also used : Item(org.openhab.core.items.Item) StateTransformable(org.creek.mailcontrol.model.data.StateTransformable) ItemStateData(org.creek.mailcontrol.model.data.ItemStateData) ItemRegistry(org.openhab.core.items.ItemRegistry) ItemNotFoundException(org.openhab.core.items.ItemNotFoundException)

Example 35 with Item

use of org.openhab.core.items.Item in project openhab1-addons by openhab.

the class NikobusGenericBindingProviderTest method parseButtonWithRefresh.

private void parseButtonWithRefresh(String name, String config, Button.PressType type, String address, String[] groups) throws BindingConfigParseException {
    Item item = new SwitchItem(name);
    provider.processBindingConfiguration("context", item, config);
    Button button = (Button) provider.getItemConfig(name);
    assertEquals(name, button.getName());
    assertEquals(address, button.getAddress());
    assertEquals(type, button.getType());
    String[] modules = (String[]) Whitebox.getInternalState(button, "impactedModules");
    assertEquals(groups.length, modules.length);
    for (int i = 0; i < groups.length; i++) {
        assertEquals(groups[i], modules[i]);
    }
}
Also used : SwitchItem(org.openhab.core.library.items.SwitchItem) Item(org.openhab.core.items.Item) Button(org.openhab.binding.nikobus.internal.config.Button) SwitchItem(org.openhab.core.library.items.SwitchItem)

Aggregations

Item (org.openhab.core.items.Item)59 SwitchItem (org.openhab.core.library.items.SwitchItem)23 NumberItem (org.openhab.core.library.items.NumberItem)20 ItemNotFoundException (org.openhab.core.items.ItemNotFoundException)16 State (org.openhab.core.types.State)16 RollershutterItem (org.openhab.core.library.items.RollershutterItem)15 ContactItem (org.openhab.core.library.items.ContactItem)14 DimmerItem (org.openhab.core.library.items.DimmerItem)14 DecimalType (org.openhab.core.library.types.DecimalType)9 HistoricItem (org.openhab.core.persistence.HistoricItem)9 ArrayList (java.util.ArrayList)7 ColorItem (org.openhab.core.library.items.ColorItem)7 StringItem (org.openhab.core.library.items.StringItem)7 HomematicBindingConfig (org.openhab.binding.homematic.internal.config.binding.HomematicBindingConfig)6 DateTimeItem (org.openhab.core.library.items.DateTimeItem)6 Test (org.junit.Test)5 GenericItem (org.openhab.core.items.GenericItem)5 GroupItem (org.openhab.core.items.GroupItem)5 ItemRegistry (org.openhab.core.items.ItemRegistry)5 Calendar (java.util.Calendar)3