CachedUnitRegistryRemote.waitForData(); MetaConfigVariableProvider configVariableProvider = new MetaConfigVariableProvider("AmbientColorAgent", config.getMetaConfig()); while (!(unitId = configVariableProvider.getValue(UNIT_KEY + "_" + i)).isEmpty()) { logger.debug("Found unit id [" + unitId + "] with key [" + UNIT_KEY + "_" + i + "]"); ColorStateServiceRemote remote = new ColorStateServiceRemote(); String colorString; try { while (!(colorString = configVariableProvider.getValue(COLOR_KEY + "_" + i)).isEmpty()) { logger.debug("Found color [" + colorString + "] with key [" + COLOR_KEY + "_" + i + "]"); String[] split = colorString.split(SEPERATOR); holdingTime = Long.parseLong(configVariableProvider.getValue(HOLDING_TIME_KEY)); strategy = ColoringStrategy.valueOf(configVariableProvider.getValue(STRATEGY_KEY));
@Override public UnitConfig applyConfigUpdate(UnitConfig config) throws CouldNotPerformException, InterruptedException { setDataField(TYPE_FIELD_USER_NAME, config.getUserConfig().getUserName()); MetaConfigVariableProvider variableProvider = new MetaConfigVariableProvider(config.getLabel(), config.getMetaConfig()); for (String netDevice : variableProvider.getValues(NET_DEVICE_VARIABLE_IDENTIFIER).values()) { if (!netDeviceDetectorMap.containsKey(netDevice)) { NetDeviceDetector netDeviceDetector = new NetDeviceDetector();
public GroupEntry(final UnitConfig locationUnitConfig) throws CouldNotPerformException, InterruptedException { this(ItemIdGenerator.generateUnitGroupID(locationUnitConfig), locationUnitConfig.getLabel(), detectIcon(new MetaConfigVariableProvider("LocationConfig", locationUnitConfig.getMetaConfig())), new ArrayList<>()); if (!locationUnitConfig.getLocationConfig().getRoot()) { this.parentLocations.add(ItemIdGenerator.generateParentGroupID(locationUnitConfig)); } calculateGaps(); }
/** * Returns the variable provider of this unit like {@code generateVariablePool()}. Additionally this provider also contains variables related to the given service of this unit. * For this it's needed that this unit supports the given service. Additional to the {@code generateVariablePool()} this method further provides: * * BindingServiceConfig (if available) * * ServiceMetaConfig (if available) * * ServiceConfig (protobuf fields) * * @return a key - value pair pool providing all related variable of this unit including the service variables. * * @throws NotAvailableException is thrown if the variable pool is not available. */ default VariableProvider generateVariablePool(final ServiceConfig serviceConfig) throws NotAvailableException { final MetaConfigPool configPool = (MetaConfigPool) generateVariablePool(); if (serviceConfig.hasBindingConfig()) { configPool.register(new MetaConfigVariableProvider("BindingServiceConfig", serviceConfig.getBindingConfig().getMetaConfig())); } configPool.register(new MetaConfigVariableProvider("ServiceMetaConfig", serviceConfig.getMetaConfig())); configPool.register(new ProtobufVariableProvider(serviceConfig)); return configPool; }
public static String getItemName(final Service service, final ServiceConfigType.ServiceConfig serviceConfig) throws CouldNotPerformException { try { if (!serviceConfig.hasBindingConfig()) { throw new NotAvailableException("binding service config"); } if (!serviceConfig.getBindingConfig().hasMetaConfig()) { throw new NotAvailableException("binding service config meta config"); } MetaConfigVariableProvider metaConfigVariableProvider = new MetaConfigVariableProvider("BindingServiceConfig", serviceConfig.getBindingConfig().getMetaConfig()); return metaConfigVariableProvider.getValue(OPENHAB_BINDING_ITEM_ID); } catch (CouldNotPerformException ex) { throw new CouldNotPerformException("Could not generate item name!", ex); } } }
Registries.getUnitRegistry().waitForData(); final MetaConfigPool metaConfigPool = new MetaConfigPool(); metaConfigPool.register(new MetaConfigVariableProvider("UnitConfig", config.getMetaConfig())); if (config.hasUnitHostId() && !config.getUnitHostId().isEmpty()) { try { metaConfigPool.register(new MetaConfigVariableProvider("UnitHost", Registries.getUnitRegistry().getUnitConfigById(config.getUnitHostId()).getMetaConfig())); } catch (NotAvailableException ex) { logger.warn("Could not check host of unit[" + ScopeGenerator.generateStringRep(config.getScope()) + "] for infrastructure filter because its not available");
CachedUnitRegistryRemote.waitForData(); MetaConfigVariableProvider configVariableProvider = new MetaConfigVariableProvider("IlluminationRollerShutterAgent", config.getMetaConfig()); minimumNeededMeta = Integer.parseInt(configVariableProvider.getValue(MINIMUM_NEEDED_KEY)); } catch (CouldNotPerformException ex) { maximumWantedMeta = Integer.parseInt(configVariableProvider.getValue(MAXIMUM_WANTED_KEY)); } catch (CouldNotPerformException ex) {
public void updateNeutralWhiteValue(final UnitConfig config) throws InterruptedException { try { final MetaConfigPool configPool = new MetaConfigPool(); configPool.register(new MetaConfigVariableProvider("UnitConfig", config.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceConfig", colorStateServiceConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceUnitConfig", deviceUnitConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceClass", deviceClass.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceTemplateConfig", colorStateServiceTemplateConfig.getMetaConfig()));
CachedUnitRegistryRemote.waitForData(); MetaConfigVariableProvider configVariableProvider = new MetaConfigVariableProvider("IlluminationLightSavingAgent", config.getMetaConfig()); minimumNeededMeta = Integer.parseInt(configVariableProvider.getValue(MINIMUM_NEEDED_KEY)); } catch (CouldNotPerformException ex) { maximumWantedMeta = Integer.parseInt(configVariableProvider.getValue(MAXIMUM_WANTED_KEY)); } catch (CouldNotPerformException ex) {
public void updateNeutralWhiteValue(final UnitConfigType.UnitConfig config) throws InterruptedException { try { final MetaConfigPool configPool = new MetaConfigPool(); configPool.register(new MetaConfigVariableProvider("UnitConfig", config.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceConfig", colorStateServiceConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceUnitConfig", deviceUnitConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceClass", deviceClass.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceTemplateConfig", colorStateServiceTemplateConfig.getMetaConfig()));
ContactDoorPosition contactDoorPosition; try { MetaConfigVariableProvider variableProvider = new MetaConfigVariableProvider("doorPositionMetaConfigProvider", unitConfig.getMetaConfig()); contactDoorPosition = ContactDoorPosition.valueOf(variableProvider.getValue(META_CONFIG_DOOR_POSITION_KEY)); } catch (NotAvailableException | IllegalArgumentException ex) { contactDoorPosition = DEFAULT_CONTACT_DOOR_POSITION; ContactWindowPosition contactWindowPosition; try { MetaConfigVariableProvider variableProvider = new MetaConfigVariableProvider("windowPositionVariableProvider", unitConfig.getMetaConfig()); contactWindowPosition = ContactWindowPosition.valueOf(variableProvider.getValue(META_CONFIG_WINDOW_POSITION_KEY)); } catch (NotAvailableException | IllegalArgumentException ex) { contactWindowPosition = DEFAULT_CONTACT_WINDOW_POSITION;
variableProvider = new MetaConfigVariableProvider("BindingConfigVariableProvider", Registries.getDeviceRegistry().getDeviceClassById(deviceUnitConfig.getDeviceConfig().getDeviceClassId()).getBindingConfig().getMetaConfig()); openhabBindingType = variableProvider.getValue(SERVICE_TEMPLATE_BINDING_TYPE); if (!"zwave".equals(openhabBindingType)) { variableProvider = new MetaConfigVariableProvider("DeviceConfigVariableProvider", deviceUnitConfig.getMetaConfig()); zwaveNodeID = variableProvider.getValue(OPENHAB_BINDING_DEVICE_ID); zwaveNodeConfigFile = new File(zwaveDb, "node" + zwaveNodeID + ".xml");
Registries.getUnitRegistry().waitForData(); MetaConfigVariableProvider configVariableProvider = new MetaConfigVariableProvider("PowerStateSynchroniserAgent", config.getMetaConfig()); UnitConfig sourceUnitConfig = Registries.getUnitRegistry().getUnitConfigById(configVariableProvider.getValue(SOURCE_KEY)); if (sourceUnitConfig.getEnablingState().getValue() != EnablingState.State.ENABLED) { throw new NotAvailableException("Source[" + ScopeGenerator.generateStringRep(sourceUnitConfig.getScope()) + "] is not enabled"); String unitId; try { while (!(unitId = configVariableProvider.getValue(TARGET_KEY + "_" + i)).isEmpty()) { i++; logger.debug("Found target id [" + unitId + "] with key [" + TARGET_KEY + "_" + i + "]"); sourceBehaviour = PowerStateSyncBehaviour.valueOf(configVariableProvider.getValue(SOURCE_BEHAVIOUR_KEY)); } catch (NotAvailableException ex) { sourceBehaviour = DEFAULT_SOURCE_BEHAVIOR; targetBehaviour = PowerStateSyncBehaviour.valueOf(configVariableProvider.getValue(TARGET_BEHAVIOUR_KEY)); } catch (NotAvailableException ex) { targetBehaviour = DEFAULT_TARGET_BEHAVIOR;
configPool.register(new MetaConfigVariableProvider("BindingServiceConfig", serviceConfig.getBindingConfig().getMetaConfig())); configPool.register(new MetaConfigVariableProvider("ServiceMetaConfig", serviceConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("UnitLocationMetaConfig", locationUnitConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("UnitMetaConfig", unitConfig.getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceMetaConfig", unitHostMetaConfig)); configPool.register(new MetaConfigVariableProvider("DeviceBindingConfig", deviceClass.getBindingConfig().getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceClassMetaConfig", deviceClass.getMetaConfig())); configPool.register(new ProtobufVariableProvider(locationUnitConfig)); configPool.register(new ProtobufVariableProvider(unitConfig)); configPool.register(new MetaConfigVariableProvider("ServiceTemplateMetaConfig", lookupServiceTemplate(deviceClass, unitConfig, serviceConfig).getMetaConfig())); } catch (final NotAvailableException ex) { ExceptionPrinter.printHistory(new CouldNotPerformException("Could not load service template meta config for Service[" + serviceConfig.getServiceDescription().getType().name() + "] of Unit[" + unitConfig.getLabel() + "]", ex), logger, LogLevel.ERROR);
configPool.register(new MetaConfigVariableProvider("HostConfigMetaConfig", hostUnitConfig.getMetaConfig())); configPool.register(new ProtobufVariableProvider(hostUnitConfig)); switch (hostUnitConfig.getType()) { case DEVICE: final DeviceClass deviceClass = Registries.getDeviceRegistry().getDeviceClassById(hostUnitConfig.getDeviceConfig().getDeviceClassId()); configPool.register(new MetaConfigVariableProvider("DeviceBindingConfig", deviceClass.getBindingConfig().getMetaConfig())); configPool.register(new MetaConfigVariableProvider("DeviceClassMetaConfig", deviceClass.getMetaConfig())); configPool.register(new ProtobufVariableProvider(deviceClass)); break; case APP: final AppClass appClass = Registries.getAppRegistry().getAppClassById(hostUnitConfig.getAppConfig().getAppClassId()); configPool.register(new MetaConfigVariableProvider("AppBindingConfig", appClass.getBindingConfig().getMetaConfig())); configPool.register(new MetaConfigVariableProvider("AppClassMetaConfig", appClass.getMetaConfig())); configPool.register(new ProtobufVariableProvider(appClass)); break; configPool.register(new MetaConfigVariableProvider("UnitLocationMetaConfig", locationUnitConfig.getMetaConfig())); configPool.register(new ProtobufVariableProvider(locationUnitConfig)); } catch (NullPointerException | CouldNotPerformException | InterruptedException ex) { configPool.register(new MetaConfigVariableProvider("UnitMetaConfig", unitConfig.getMetaConfig())); configPool.register(new ProtobufVariableProvider(unitConfig)); return configPool;