When the binding is stopped sleeping threads are interrupted by design.
By throwing the InterruptedException, it should be caught in LifxSelectorUtil.sendPacket (which is waiting for the packet interval to elapse), which will then abort sending a packet.
This prevents:
```
[ERROR] [lifx.internal.util.LifxThrottlingUtil] - An exception occurred while putting the thread to sleep : 'sleep interrupted'
```
Signed-off-by: Wouter Born <github@maindrain.net>
Adds the products with IDs 93, 112, 113, 114 so that they can be discovered and the right features are available.
Fixes#11402
Signed-off-by: Wouter Born <github@maindrain.net>
* [lifx] Add channels for controlling absolute color temperature in Kelvin
Adds an 'abstemperature' channel to all Thing Types for controlling the absolute color temperature in Kelvin.
MultiZone lights also have 'abstemperaturezone' channels that allow for controlling the color temperature of a zone in Kelvin.
These channels make it easier to use the same color temperature with lights that have a different color temperature range.
Furthermore the channel type tags have been updated which simplifies using the generated items with the semantic model.
Signed-off-by: Wouter Born <github@maindrain.net>
* Implement HEV packets
* Add colorhevlight thing type with a hevcycle channel
* Update documentation
Signed-off-by: Wouter Born <github@maindrain.net>
* [lifx] Improve firmware version support
When the firmware of a light is upgraded the supported features can change.
With these changes the binding uses the features based on the light firmware version.
Also corrects some of the temperature ranges based on the LIFX products description.
Signed-off-by: Wouter Born <github@maindrain.net>
* Remove dependency on commons-lang classes
* Use HexUtils
* Fix/add missing initial contribution author lines
* Add unit test for MACAddress
* Rename protocol package to dto
Signed-off-by: Wouter Born <github@maindrain.net>
These workarounds to prevent false positives can be removed now the EEAs allow for proper null analysis.
Signed-off-by: Wouter Born <github@maindrain.net>
* Properly handle datagrams that are not immediately available so no NPEs are logged on debug
* Properly handle sockets channels that are not connected so no NPEs are logged on debug
* Prevent load/garbage by reusing ByteBuffer and not allocating trace logging strings
Fixes#8932
Signed-off-by: Wouter Born <github@maindrain.net>