* Update HVAC action handling in ZHA climate devices
* fix class name
* align with class name changes
* get the correct sensor entity for state assertions
* Group multi-matches by channels
* Group multi-matched by explicit groups
* Registryless AnalogInput and PowerConfiguration
* Refactor single cluster sensor registry
* Refactor single cluster cover and lock registry
* Refactor single cluster binary_sensor registry
* Pylint
* Add apparent_power for ZHA ElectricalMeasurement
* Add apparent_power to REPORT_CONFIG
* update device list with apparent_power attribute
* update test decorators for apparent_power
* remove comments
* Add test for apparent_power in test_sensor
* Add electrical measurement type state attribute.
* Add active_power_max attribute
* Skip unsupported attributes on entity update
* Fix tests
* Create sensor only if the main attribute is supported
* Refactor ElectricalMeasurement sensor to use attr specific divisor and multiplier
* Multiple entities for electrical measurement cluster
* Update discovery tests
* Sensor clean up
* update tests
* Pylint
* Update registries.py
Add concentration clusters recently added to zigpy
* Update measurement.py
Add concentration clusters recently added to ZigPy
* Update sensor.py
Add concentration clusters recently added to ZigPy
* Update sensor.py
remove unnecessary tabs
* Update measurement.py
remove unnecessary tabs
* Update sensor.py
Just adding CO and CO2 for now.
* Update registries.py
Just adding CO2 and CO for now.
* Update measurement.py
Just adding CO2 and CO for now
* Update sensor.py
import const CONCENTRATION_PARTS_PER_MILLION
* Update registries.py
removed trailing whitespace
* Update sensor.py
added extra blank lines and removed trailing whitespace
* Update measurement.py
added extra blank lines and removed trailing whitespace
* Update sensor.py
add device classes for CO and CO2
* Refactor ZHA sensors to use cached values after restart
* Get attr from cluster, not channel
* Run cached state through formatter method
* Use cached values for div/multiplier for SmartEnergy channel
* Restore batter voltage from cache
* Refactor sensor to use cached values only
* Update tests
* Add battery sensor test
* Split ZHA device loading and entities adding.
Load zha devices from ZHA gateway, but add entities after integration
was setup.
* Use hass.loop.create_task()
* Split ZHA device initialization from loading.
Restore and initialize ZHA devices separately.
* Use hass.async_create_task()
Load devices prior group initialization.
* cleanup timer handle when device is removed
* separate unavailable times for mains vs battery
* better name
* remove light refresh handle when removing light
* remove unused parallel updates
* don't steal HA const for different purpose
* don't flood network every hour for lights
* update test to test both intervals
* add test for light refresh interval
* fix tests
* update test
* put parallel updates back for now...
* fix async_schedule_update_ha_state usage
* review comment
* review comment
* update test - review conversation
* review comments
* await count not call count
* flip some state
* multi attribute reads for lights
* catch specific exceptions
* get attributes
* fix mains powered update
* add guards and use get_attributes
* use debug for read failures
* cleanup
* update return value for read_attributes
* fix on with timed off