use of org.eclipse.smarthome.config.core.Configuration in project smarthome by eclipse.
the class ArtnetBridgeHandler method updateConfiguration.
@Override
protected void updateConfiguration() {
Configuration configuration = getConfig();
setUniverse(configuration.get(CONFIG_UNIVERSE), MIN_UNIVERSE_ID, MAX_UNIVERSE_ID);
packetTemplate.setUniverse(universe.getUniverseId());
receiverNodes.clear();
if (configuration.get(CONFIG_ADDRESS) == null) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Could not initialize sender (address not set)");
uninstallScheduler();
logger.debug("remote address not set for {}", this.thing.getUID());
return;
} else {
try {
receiverNodes = IpNode.fromString((String) configuration.get(CONFIG_ADDRESS), ArtnetNode.DEFAULT_PORT);
logger.debug("using unicast mode to {} for {}", receiverNodes.toString(), this.thing.getUID());
} catch (IllegalArgumentException e) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, e.getMessage());
return;
}
}
if (configuration.get(CONFIG_LOCAL_ADDRESS) != null) {
senderNode = new IpNode((String) configuration.get(CONFIG_LOCAL_ADDRESS));
}
logger.debug("originating address is {} for {}", senderNode, this.thing.getUID());
if (configuration.get(CONFIG_REFRESH_MODE) != null) {
refreshAlways = (((String) configuration.get(CONFIG_REFRESH_MODE)).equals("always"));
}
logger.debug("refresh mode set to always: {}", refreshAlways);
updateStatus(ThingStatus.UNKNOWN);
super.updateConfiguration();
logger.debug("updated configuration for ArtNet bridge {}", this.thing.getUID());
}
use of org.eclipse.smarthome.config.core.Configuration in project smarthome by eclipse.
the class ColorThingHandler method initialize.
@Override
public void initialize() {
Configuration configuration = getConfig();
Bridge bridge = getBridge();
DmxBridgeHandler bridgeHandler;
if (bridge == null) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "no bridge assigned");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
} else {
bridgeHandler = (DmxBridgeHandler) bridge.getHandler();
if (bridgeHandler == null) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "no bridge handler available");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
}
if (configuration.get(CONFIG_DMX_ID) == null) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "DMX channel configuration missing");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
try {
List<BaseDmxChannel> configChannels = BaseDmxChannel.fromString((String) configuration.get(CONFIG_DMX_ID), bridgeHandler.getUniverseId());
logger.trace("found {} channels in {}", configChannels.size(), this.thing.getUID());
for (BaseDmxChannel channel : configChannels) {
channels.add(bridgeHandler.getDmxChannel(channel, this.thing));
}
} catch (IllegalArgumentException e) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, e.getMessage());
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
currentValues.add(DmxChannel.MIN_VALUE);
currentValues.add(DmxChannel.MIN_VALUE);
currentValues.add(DmxChannel.MIN_VALUE);
if (configuration.get(CONFIG_DIMMER_FADE_TIME) != null) {
fadeTime = ((BigDecimal) configuration.get(CONFIG_DIMMER_FADE_TIME)).intValue();
logger.debug("setting fadeTime to {} ms in {}", fadeTime, this.thing.getUID());
}
if (configuration.get(CONFIG_DIMMER_DIM_TIME) != null) {
dimTime = ((BigDecimal) configuration.get(CONFIG_DIMMER_DIM_TIME)).intValue();
logger.trace("setting dimTime to {} ms in {}", fadeTime, this.thing.getUID());
}
if (configuration.get(CONFIG_DIMMER_TURNONVALUE) != null) {
String turnOnValueString = String.valueOf(fadeTime) + ":" + ((String) configuration.get(CONFIG_DIMMER_TURNONVALUE)) + ":-1";
ValueSet turnOnValue = ValueSet.fromString(turnOnValueString);
if (turnOnValue.size() == 3) {
this.turnOnValue = turnOnValue;
logger.trace("set turnonvalue to {} in {}", turnOnValue, this.thing.getUID());
} else {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "turn-on value malformed");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
}
this.turnOnValue.setFadeTime(fadeTime);
if (configuration.get(CONFIG_DIMMER_TURNOFFVALUE) != null) {
String turnOffValueString = String.valueOf(fadeTime) + ":" + ((String) configuration.get(CONFIG_DIMMER_TURNOFFVALUE)) + ":-1";
ValueSet turnOffValue = ValueSet.fromString(turnOffValueString);
if (turnOffValue.size() == 3) {
this.turnOffValue = turnOffValue;
logger.trace("set turnoffvalue to {} in {}", turnOffValue, this.thing.getUID());
} else {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "turn-off value malformed");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
}
this.turnOffValue.setFadeTime(fadeTime);
// register feedback listeners
channels.get(0).addListener(new ChannelUID(this.thing.getUID(), CHANNEL_BRIGHTNESS_R), this, ListenerType.VALUE);
channels.get(1).addListener(new ChannelUID(this.thing.getUID(), CHANNEL_BRIGHTNESS_G), this, ListenerType.VALUE);
channels.get(2).addListener(new ChannelUID(this.thing.getUID(), CHANNEL_BRIGHTNESS_B), this, ListenerType.VALUE);
if (bridge.getStatus().equals(ThingStatus.ONLINE)) {
updateStatus(ThingStatus.ONLINE);
dmxHandlerStatus = ThingStatusDetail.NONE;
} else {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE);
}
}
use of org.eclipse.smarthome.config.core.Configuration in project smarthome by eclipse.
the class TunableWhiteThingHandler method initialize.
@Override
public void initialize() {
Configuration configuration = getConfig();
Bridge bridge = getBridge();
DmxBridgeHandler bridgeHandler;
if (bridge == null) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "no bridge assigned");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
} else {
bridgeHandler = (DmxBridgeHandler) bridge.getHandler();
if (bridgeHandler == null) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "no bridge handler available");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
}
if (configuration.get(CONFIG_DMX_ID) == null) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "DMX channel configuration missing");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
try {
List<BaseDmxChannel> configChannels = BaseDmxChannel.fromString((String) configuration.get(CONFIG_DMX_ID), bridgeHandler.getUniverseId());
logger.trace("found {} channels in {}", configChannels.size(), this.thing.getUID());
for (BaseDmxChannel channel : configChannels) {
channels.add(bridgeHandler.getDmxChannel(channel, this.thing));
}
} catch (IllegalArgumentException e) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, e.getMessage());
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
if (channels.size() % 2 != 0) {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "Tunable white dimmers require an even number of channels");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
currentValues.add(DmxChannel.MIN_VALUE);
currentValues.add(DmxChannel.MIN_VALUE);
if (configuration.get(CONFIG_DIMMER_FADE_TIME) != null) {
fadeTime = ((BigDecimal) configuration.get(CONFIG_DIMMER_FADE_TIME)).intValue();
logger.debug("setting fadeTime to {} ms in {}", fadeTime, this.thing.getUID());
}
if (configuration.get(CONFIG_DIMMER_DIM_TIME) != null) {
dimTime = ((BigDecimal) configuration.get(CONFIG_DIMMER_DIM_TIME)).intValue();
logger.trace("setting dimTime to {} ms in {}", fadeTime, this.thing.getUID());
}
if (configuration.get(CONFIG_DIMMER_TURNONVALUE) != null) {
String turnOnValueString = String.valueOf(fadeTime) + ":" + ((String) configuration.get(CONFIG_DIMMER_TURNONVALUE)) + ":-1";
ValueSet turnOnValue = ValueSet.fromString(turnOnValueString);
if (turnOnValue.size() % 2 == 0) {
this.turnOnValue = turnOnValue;
logger.trace("set turnonvalue to {} in {}", turnOnValue, this.thing.getUID());
} else {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "turn-on value malformed");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
}
this.turnOnValue.setFadeTime(fadeTime);
if (configuration.get(CONFIG_DIMMER_TURNOFFVALUE) != null) {
String turnOffValueString = String.valueOf(fadeTime) + ":" + ((String) configuration.get(CONFIG_DIMMER_TURNOFFVALUE)) + ":-1";
ValueSet turnOffValue = ValueSet.fromString(turnOffValueString);
if (turnOffValue.size() % 2 == 0) {
this.turnOffValue = turnOffValue;
logger.trace("set turnoffvalue to {} in {}", turnOffValue, this.thing.getUID());
} else {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, "turn-off value malformed");
dmxHandlerStatus = ThingStatusDetail.CONFIGURATION_ERROR;
return;
}
}
this.turnOffValue.setFadeTime(fadeTime);
// register feedback listeners
channels.get(0).addListener(new ChannelUID(this.thing.getUID(), CHANNEL_BRIGHTNESS_CW), this, ListenerType.VALUE);
channels.get(1).addListener(new ChannelUID(this.thing.getUID(), CHANNEL_BRIGHTNESS_WW), this, ListenerType.VALUE);
if (bridge.getStatus().equals(ThingStatus.ONLINE)) {
updateStatus(ThingStatus.ONLINE);
dmxHandlerStatus = ThingStatusDetail.NONE;
} else {
updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE);
}
}
use of org.eclipse.smarthome.config.core.Configuration in project smarthome by eclipse.
the class HueLightDiscoveryServiceOSGiTest method setUp.
@Before
public void setUp() {
registerVolatileStorageService();
thingRegistry = getService(ThingRegistry.class, ThingRegistry.class);
assertThat(thingRegistry, is(notNullValue()));
Configuration configuration = new Configuration();
configuration.put(HOST, "1.2.3.4");
configuration.put(USER_NAME, "testUserName");
configuration.put(SERIAL_NUMBER, "testSerialNumber");
hueBridge = (Bridge) thingRegistry.createThingOfType(BRIDGE_THING_TYPE_UID, BRIDGE_THING_UID, null, "Bridge", configuration);
assertThat(hueBridge, is(notNullValue()));
thingRegistry.add(hueBridge);
hueBridgeHandler = getThingHandler(hueBridge, HueBridgeHandler.class);
assertThat(hueBridgeHandler, is(notNullValue()));
discoveryService = getService(DiscoveryService.class, HueLightDiscoveryService.class);
assertThat(discoveryService, is(notNullValue()));
}
use of org.eclipse.smarthome.config.core.Configuration in project smarthome by eclipse.
the class Lib485BridgeHandlerTest method setUp.
@Before
public void setUp() {
bridgeProperties = new HashMap<>();
bridgeProperties.put(CONFIG_ADDRESS, TEST_ADDRESS);
bridge = BridgeBuilder.create(THING_TYPE_LIB485_BRIDGE, "lib485bridge").withLabel("Lib485 Bridge").withChannel(ChannelBuilder.create(CHANNEL_UID_MUTE, "Switch").withType(MUTE_CHANNEL_TYPEUID).build()).withConfiguration(new Configuration(bridgeProperties)).build();
ThingHandlerCallback mockCallback = mock(ThingHandlerCallback.class);
doAnswer(answer -> {
((Thing) answer.getArgument(0)).setStatusInfo(answer.getArgument(1));
return null;
}).when(mockCallback).statusUpdated(any(), any());
bridgeHandler = new Lib485BridgeHandler(bridge) {
@Override
protected void validateConfigurationParameters(Map<String, Object> configurationParameters) {
}
};
bridgeHandler.getThing().setHandler(bridgeHandler);
bridgeHandler.setCallback(mockCallback);
bridgeHandler.initialize();
}
Aggregations