[shelly] support QuantityType commands (#17947)

Signed-off-by: Andrew Fiddian-Green <software@whitebear.ch>
This commit is contained in:
Andrew Fiddian-Green 2024-12-21 11:18:22 +00:00 committed by GitHub
parent 56d447fa77
commit da6dde5cad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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