* Implement WS API endpoints for zigpy backups
* Implement backup restoration
* Display error messages caused by invalid backup JSON
* Indicate to the frontend when a backup is incomplete
* Perform a coordinator backup before HA performs a backup
* Fix `backup.async_post_backup` docstring
* Rename `data` to `backup` in restore command
* Add unit tests for new websocket APIs
* Unit test backup platform
* Move code to overwrite EZSP EUI64 into ZHA
* Include the radio type in the network settings API response
* Moved color commands to a new ``async_handle_color_commands`` method
* Fixed tests
* Fix brightness jumping around during transitions
* Add config option to disable "Enhanced brightness slider during light transition"
* fix polling currentSaturation
* Guard light groups against enhanced current hue
* Use XY if all group members do not support HS
* add config option to always prefer XY color mode
* use correct enum
* remove periods
* Set min transition time for Sengled lights in ZHA groups
* Change test to expect correct min transition time for group with Sengled light
* Fix turn_off with transition 0 for Sengled lights
* Add ZHA config option for "enhanced light transition from an off-state"
* Default option to disabled
* Always disable "enhanced light transition" for ZHA LightGroups
* Rename _enhanced_light_transition to _zha_config_enhanced_light_transition
* Remove LightGroup check, as config option always disables for groups
* Remove duplicated line
* Remove duplicated line
* Move ZHA config transition line below other config line
* Renamed comments of renamed variable in tests
color_provided_while_off -> new_color_provided_while_off
* Enable "enhanced light transitions" for testing
* use base class attributes
* initial hue and saturation support
* spec is 65536 not 65535
* fixes
* enhanced current hue
* fix comparison
* clean up
* fix channel test
* oops
* report enhanced current hue
* rename variable
* default transition is for color commands not level
* no extra command for groups
* don't transition color change when light off -> on
* clean up
* update condition
* fix condition again...
* simplify
* simplify
* missed one
* rename
* simplify
* rename
* tests
* color_provided_while_off with no changes
* fix missing flag clear
* more tests for transition scenarios
* add to comment
* fix comment
* don't transition when force on is set
* stale comment
* dont transition when colors don't change
* remove extra line
* remove debug print :)
* fix colors
* restore color to 65535 until investigated
* Add Particulate Matter 2.5 of ZCL concentration clusters to ZHA component
* Fixed black and flake8 test
* New sensors and manufacturer cluster to support IKEA STARKVIND (with quirk)
* Fix multi_match for FilterLifeTime, device_run_time, filter_run_time sensors for Ikea starkvind
* Remove model match because sensors are matched with manufacturer channel
* Update manufacturerspecific.py
* Update number.py
* Add PolledSmartEnergySummation to poll summation_delivered for some ZHA plugs
* Remove PolledSmartEnergyMetering, add stop_on_match_group to summation sensors
* Initial implementation of fixing color transition when turning on a ZHA light
* Add off_with_transition attribute, very slightly cleanup
* Fix unnecessarily using last off_brightness when just turning on light
Now it uses the Zigbee on_off call again if possible (instead of always move_to_level_with_on_off)
* Use DEFAULT_TRANSITION constant for color transition, add DEFAULT_MIN_BRIGHTNESS constant
* Add _DEFAULT_COLOR_FROM_OFF_TRANSITION = 0 but override transition for Sengled lights to 0.1s
* Add Particulate Matter 2.5 of ZCL concentration clusters to ZHA component
* Fixed black and flake8 test
* New sensors and manufacturer cluster to support IKEA STARKVIND (with quirk)
* Isort and codespell fixes
* Instead using the fan cluster, i've created a Ikea air purifier cluster/channel that supports all sensors and fan modes
* update sensors to support the new ikea_airpurifier channel
* Fix black, flake8, isort
* Mylint/mypy fixes + Use a TypedDict for REPORT_CONFIG in zha #73629
* Last fix for test_fan.py
* fix fan test
Co-authored-by: David F. Mulcahey <david.mulcahey@me.com>