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;
}
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