Skip to content

Commit

Permalink
Merge pull request #6 from mgeramb/HandleOnOffInPercentageChannel
Browse files Browse the repository at this point in the history
[amazonechocontrol]
  • Loading branch information
lkn94 authored Sep 27, 2019
2 parents 6cd3a7c + 4879687 commit 1d28a55
Showing 1 changed file with 29 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -183,7 +198,6 @@ public void handleCommand(ChannelUID channelUID, Command command) {
if (accountHandler == null) {
return;
}

try {
Map<String, String> props = this.thing.getProperties();
String entityId = props.get(DEVICE_PROPERTY_LIGHT_ENTITY_ID);
Expand Down Expand Up @@ -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<String, String> 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);
}
}
}
Expand Down

0 comments on commit 1d28a55

Please sign in to comment.