diff --git a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/SmartHomeDeviceHandler.java b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/SmartHomeDeviceHandler.java index 09b86275b1ba5..d75194de0e712 100644 --- a/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/SmartHomeDeviceHandler.java +++ b/bundles/org.openhab.binding.amazonechocontrol/src/main/java/org/openhab/binding/amazonechocontrol/internal/handler/SmartHomeDeviceHandler.java @@ -12,7 +12,22 @@ */ package org.openhab.binding.amazonechocontrol.internal.handler; -import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.*; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.BINDING_ID; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_LIGHT_BRIGHTNESS; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_LIGHT_COLOR; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_LIGHT_WHITE_TEMPERATURE; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.CHANNEL_STATE; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.DEVICE_PROPERTY_LIGHT_ENTITY_ID; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.DEVICE_PROPERTY_LIGHT_SUBDEVICE; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.DEVICE_TURN_OFF; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.DEVICE_TURN_ON; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.INTERFACE_BRIGHTNESS; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.INTERFACE_COLOR; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.INTERFACE_COLOR_TEMPERATURE; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.INTERFACE_POWER; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.ITEM_TYPE_DIMMER; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.ITEM_TYPE_STRING; +import static org.openhab.binding.amazonechocontrol.internal.AmazonEchoControlBindingConstants.ITEM_TYPE_SWITCH; import java.io.IOException; import java.math.BigDecimal; @@ -183,7 +198,6 @@ public void handleCommand(ChannelUID channelUID, Command command) { if (accountHandler == null) { return; } - try { Map props = this.thing.getProperties(); String entityId = props.get(DEVICE_PROPERTY_LIGHT_ENTITY_ID); @@ -242,16 +256,25 @@ public void handleCommand(ChannelUID channelUID, Command command) { } } if (channelId.equals(CHANNEL_LIGHT_BRIGHTNESS)) { + Float percentage = null; if (command instanceof PercentType) { + percentage = ((PercentType) command).floatValue() / 100; + } + if (command instanceof OnOffType) { + if (command.equals(OnOffType.ON)) { + percentage = 100f; + } else { + percentage = 0f; + } + } + if (percentage != null) { connection = accountHandler.findConnection(); for (Map.Entry entry : props.entrySet()) { if (entry.getKey().contains(DEVICE_PROPERTY_LIGHT_SUBDEVICE)) { - connection.smartHomeCommand(entry.getValue(), "setBrightness", null, - ((PercentType) command).floatValue() / 100); + connection.smartHomeCommand(entry.getValue(), "setBrightness", null, percentage); } else if (entry.getKey().contains(DEVICE_PROPERTY_LIGHT_ENTITY_ID) && !entry.getKey().contains(DEVICE_PROPERTY_LIGHT_SUBDEVICE)) { - connection.smartHomeCommand(entityId, "setBrightness", null, - ((PercentType) command).floatValue() / 100); + connection.smartHomeCommand(entityId, "setBrightness", null, percentage); } } }