[shelly] support QuantityType commands (#17947)

Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
Signed-off-by: Ciprian Pascu <contact@ciprianpascu.ro>
This commit is contained in:
Andrew Fiddian-Green 2024-12-21 11:18:22 +00:00 committed by Ciprian Pascu
parent 44a71d9ed0
commit 81a45a9af5

View File

@ -38,6 +38,7 @@ import org.openhab.core.library.types.HSBType;
import org.openhab.core.library.types.IncreaseDecreaseType;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.PercentType;
import org.openhab.core.library.types.QuantityType;
import org.openhab.core.library.types.StringType;
import org.openhab.core.library.unit.Units;
import org.openhab.core.thing.ChannelUID;
@ -187,6 +188,12 @@ public class ShellyLightHandler extends ShellyBaseHandler {
} else if (command instanceof DecimalType decimalCommand) {
temp = decimalCommand.intValue();
logger.debug("{}: Set color temp to {}K (Integer)", thingName, temp);
} else if (command instanceof QuantityType<?> genericQuantity) {
QuantityType<?> kelvinQuantity = genericQuantity.toInvertibleUnit(Units.KELVIN);
if (kelvinQuantity != null) {
temp = kelvinQuantity.intValue();
logger.debug("{}: Set color temp to {}K (Integer)", thingName, temp);
}
}
validateRange(CHANNEL_COLOR_TEMP, temp, col.minTemp, col.maxTemp);
col.setTemp(temp);