mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-10 15:11:59 +01:00
Fix NullPointerException (#16356)
Resolves #16180 Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
parent
e2313e9801
commit
708dbeeaaf
@ -26,6 +26,7 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.eclipse.jdt.annotation.Nullable;
|
||||
import org.openhab.binding.hue.internal.api.dto.clip1.Capabilities;
|
||||
import org.openhab.binding.hue.internal.api.dto.clip1.ColorTemperature;
|
||||
import org.openhab.binding.hue.internal.api.dto.clip1.Control;
|
||||
import org.openhab.binding.hue.internal.api.dto.clip1.FullLight;
|
||||
import org.openhab.binding.hue.internal.api.dto.clip1.State;
|
||||
import org.openhab.binding.hue.internal.api.dto.clip1.StateUpdate;
|
||||
@ -191,26 +192,34 @@ public class HueLightHandler extends BaseThingHandler implements HueLightActions
|
||||
}
|
||||
|
||||
private void initializeCapabilities(@Nullable FullLight fullLight) {
|
||||
if (!capabilitiesInitializedSuccessfully && fullLight != null) {
|
||||
Capabilities capabilities = fullLight.capabilities;
|
||||
if (capabilities != null) {
|
||||
ColorTemperature ct = capabilities.control.ct;
|
||||
if (ct != null) {
|
||||
colorTemperatureCapabilties = ct;
|
||||
|
||||
// minimum and maximum are inverted due to mired/Kelvin conversion!
|
||||
StateDescriptionFragment stateDescriptionFragment = StateDescriptionFragmentBuilder.create()
|
||||
.withMinimum(new BigDecimal(LightStateConverter.miredToKelvin(ct.max))) //
|
||||
.withMaximum(new BigDecimal(LightStateConverter.miredToKelvin(ct.min))) //
|
||||
.withStep(new BigDecimal(100)) //
|
||||
.withPattern("%.0f K") //
|
||||
.build();
|
||||
stateDescriptionProvider.setStateDescriptionFragment(
|
||||
new ChannelUID(thing.getUID(), CHANNEL_COLORTEMPERATURE_ABS), stateDescriptionFragment);
|
||||
}
|
||||
}
|
||||
capabilitiesInitializedSuccessfully = true;
|
||||
if (capabilitiesInitializedSuccessfully || fullLight == null) {
|
||||
return;
|
||||
}
|
||||
Capabilities capabilities = fullLight.capabilities;
|
||||
if (capabilities == null) {
|
||||
return;
|
||||
}
|
||||
Control control = capabilities.control;
|
||||
if (control == null) {
|
||||
return;
|
||||
}
|
||||
ColorTemperature ct = control.ct;
|
||||
if (ct == null) {
|
||||
return;
|
||||
}
|
||||
colorTemperatureCapabilties = ct;
|
||||
|
||||
// minimum and maximum are inverted due to mired/Kelvin conversion!
|
||||
StateDescriptionFragment stateDescriptionFragment = StateDescriptionFragmentBuilder.create()
|
||||
.withMinimum(new BigDecimal(LightStateConverter.miredToKelvin(ct.max))) //
|
||||
.withMaximum(new BigDecimal(LightStateConverter.miredToKelvin(ct.min))) //
|
||||
.withStep(new BigDecimal(100)) //
|
||||
.withPattern("%.0f K") //
|
||||
.build();
|
||||
stateDescriptionProvider.setStateDescriptionFragment(
|
||||
new ChannelUID(thing.getUID(), CHANNEL_COLORTEMPERATURE_ABS), stateDescriptionFragment);
|
||||
|
||||
capabilitiesInitializedSuccessfully = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user